美文网首页
关系数据库设计基础理论

关系数据库设计基础理论

作者: 娇娇_5038 | 来源:发表于2025-03-18 14:49 被阅读0次

关系数据库逻辑设计

  • 针对具体问题,如何构造一个适合于它的数据模式。 (应该设
    计多少个关系模式、每个关系模式由哪些属
    性构成、关系模式之间的联系)
  • 设计目标:避免出现
  1. 过多数据冗余
  2. 更新异常
  3. 插入异常
  4. 删除异常
  • 解决方案:数据库逻辑设计的工具----关系数据库规范化理论

函数依赖和Armstrong公理

  1. 关系模式的形式化定义(五元组)
  • R(U,D,DOM,F)
  • R: 关系名
  • U: 组成该关系的属性名集合
  • D: 属性组U中属性所来自的域
  • DOM: 属性向域的映像集合
  • F:属性间数据依赖的集合

注:

数据依赖:定义关系内部属性值间的相互关连(主要体现于值的相等与否), 它是数据库模式设计的关键

  1. 数据依赖类型(函数依赖、多值依赖)
  • 函数依赖 (Functional Dependency,简记为FD)
    关系R上的FD指:如果R的两个记录在属性A1,A2....,An上一致(这些属性上对应的分量相同),则它们在其他分量B上的值也必定相同
    记做 A1A2....An-----B 即A1,A2,....,An函数决定B
    合并规则(combinling rule)
    如果A1,A2...An --- Bi(i=1,2,...m),则A1A2...An-----B1B2Bm
    分解规则(Splitting rule)
    如果A1A2...An ---- B1B2Bm ,则A1A2...An---Bi(i=1,2,...m)

例: 建立一个描述学校教务的数据库:
学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)、成绩(Grande)
用单一关系模式描述:Student<U、F>
U={Sno,Sdept,Mname,Cname,Grande}

规则

  • 一个系有若干个学生,而一个学生只属于一个系。
  • 一个系只有一名(正职)负责人--系主任
  • 一个学生可选多门课程,每门课程有若干个学生选修
  • 每个学生选每门课有一个成绩
    F= {Sno--- Sdept,Sdept--Mname,(Sno,Cname)---Grade}



    问题:
    数据冗余: 系主任的名字重复出现
    更新异常:系主任更换,则需要更换所有学生相应的信息
    插入异常:如某系刚成立,没有学生,则不能插入系的相关信息
    删除异常:删除所有学生信息,则删除了一个系的信息

解决方法:可以通过分解关系模式来消除其中不合适的数据依赖。把这个单一模式分成3个关系模式
S{Sno,Sdept,Sno---Sdept}
SC{Sno,Cno,Grade,(Sno,Cno)---Grade}
DEPT{Sdept,Mname,Sdept---Mname}

函数依赖形式定义:
设R(U)是一个属性集U上的关系模式,X和Y是U的子集
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X---Y


函数依赖的类型

  • 平凡的:
  • 非平凡的:Y中至少有一个属性不属于X
  • 完全非平凡: Y中所有属性均不属于X

完成函数依赖
在R(U)中,如果X---Y,并且对于X的任何一个真子集X,都有X 不能推导出Y,则称Y对X完全函数依赖


(Sno,Cno)---Grade
部分函数依赖
若X---Y,但Y不完全依赖于X,则称Y对X部门函数依赖,记作

(Sno,Cno)---Sdept (只要有学号就能推导出来系别)

传递函数依赖

在R(U)中,如果X--Y,
Y---Z

,则Z对X传递函数依赖
X---- Z

eg:
在关系Std(Sno,Sdept,Mname)中,有
Sno---Sdept,Sdept---Mname
Mname传递函数依赖于Sno
若想知道一个FD是否从指定的FD集合中导出,经常使用闭包算法。但可以使用Armstrong公理的一组规则得到一个给定集合能推断出的FD
关系模式R(U,F)来说有以下的基本规则



根据三条基本规则可以得到以下推理规则
合并规则:


闭包计算及其应用

关系模式的规范化理论

模式分解及其特性

相关文章

  • MySQL基础理论

    MySQL基础理论 mySQL (关系型数据库管理系统) 编辑 MySQL是一个关系型数据库管理系统,由瑞典MyS...

  • 数据库基础Database4-数据库设计

    数据库基础Database4-数据库设计 六 关系设计库设计 一个关系模式: R(U, F) 其中: 关系名R是符...

  • MySQL基础(4)——数据表操作

    数据库范式 数据库范式就是在设计关系型数据库时,遵循的规范,这样就能设计出比较合理的关系型数据库。关系型数据库有6...

  • 计科大类相关知识总结(持续更新)

    一.数据库 1. 数据库范式 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被...

  • 数据库设计三范式和反范式

    数据库范式 范式的级别设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同...

  • 数据库范式

    数据库范式设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种...

  • 1、数据库的三范式是什么

    数据库的三范式是什么 设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不...

  • 第33期:MySQL 表标准化设计

    关系表设计合理与否是影响关系型数据库性能的核心要素之一。 谈到关系型数据库表设计问题,首先想到的是范式理论。也就是...

  • SQL范式

    范式(数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据...

  • 范式

    范式(数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据...

网友评论

      本文标题:关系数据库设计基础理论

      本文链接:https://www.haomeiwen.com/subject/dmdomjtx.html