数据库原理-关系数据库理论(数据依赖)

数据库原理-关系数据库理论(数据依赖)关系数据库逻辑设计针对一个具体问题,应如何构造一个适合于它的数据模式,即应该构造几个关系,每个关系由哪些属性组成等数据库逻辑设计的工具——关系数据库的规范化理论关系数据库设计理论-数据依赖-范式(1NF,2NF,3NF,BCNF)-关系模式的规范化关系:描述实体及其属性、实体间的联系。-它是一张二维表,是所涉及属性的笛卡尔积的一个子集。关系模式:用来定义关系。Student(Sno,Sname,Ssex,Sage,Sdept)关系数据库:基于关系模型的数据库,利用…

关系数据库逻辑设计
针对一个具体问题,应如何构造一个适合于它的数据模式,即应该构造几个关系,每个关系由哪些属性组成等
数据库逻辑设计的工具——关系数据库的规范化理论

关系数据库设计理论
-数据依赖
-范式(1NF,2NF,3NF,BCNF)
-关系模式的规范化

关系:描述实体及其属性、实体间的联系。
     -它是一张二维表,是所涉及属性的笛卡尔积的一个子集。
关系模式:用来定义关系。 Student (Sno, Sname, Ssex, Sage,Sdept)
关系数据库:基于关系模型的数据库,利用关系来描述现实世界。
           -从形式上看,它由一组关系组成。
关系数据库的模式:定义这组关系的关系模式的全体。

关系模式由五部分组成,即:
R(U,D,DOM,F)
R:关系名
U:组成该关系的属性名集合
D:属性组U中属性所来自的域DOM:属性向域的映象集合
F:属性间数据的依赖关系集合

一般就用到R(U),R(U,F)

什么是数据依赖
完整性约束的表现形式:
限定属性取值范围:例如学生成绩必须在0-100之间
定义属性值间的相互关连(主要体现于值的相等与否)
,这就是数据依赖,它是数据库模式设计的关键

数据依赖
是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系
是现实世界属性间相互联系的抽象
是数据内在的性质
是语义的体现

数据依赖的主要类型
函数依赖(Functional Dependency,简记为FD)
多值依赖(Multivalued Dependency,简记为MVD)
连接依赖

关系模式的简化表示
关系模式R(U,D, DOM, F),简化为一个三元组:R(U, F)
当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系

关系模式中容易存在的问题
1.数据冗余太大
-浪费大量的存储空间
2.更新异常
-数据冗余,更新数据时,维护数据完整性代价大
3.插入异常
-该插的数据插不进去
4.删除异常
-不该删除的数据不得不删

规范化理论
规范化理论正是用来改造关系模式
通过分解关系模式来消除其中不合适的数据依赖
以解决插入异常、删除异常、更新异常和数据冗余问题

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

说明:
1.函数依赖是指R的所有关系实例均要满足的约束条件
2.函数依赖是语义范畴的概念
例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立
3.数据库设计者可以对现实世界作强制的规定
例如设计者可以强行规定不允许同名人出现,因而使函数依赖“姓名→年龄”成立
4.若X→Y,并且Y→X, 则记为X←→Y
5.若Y不函数依赖于X,则记为X→Y。

平凡函数依赖与非平凡函数依赖
在关系模式R(U)中,对于U的子集X和Y
如果X→Y,但Y不属于X,则称X→Y是非平凡的函数依赖
若X→Y,但Y∈X则称X→Y是平凡的函数依赖
对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,
因此若不特别声明,我们总是讨论非平凡函数依赖

完全函数依赖与部分函数依赖
在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’完成函数依赖于Y,则称Y完全函数依赖于X
若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X

传递函数依赖
在关系模式R(U)中
如果X→Y,Y→Z,且Y不属于X,Y不依赖X,则称Z传递函数依赖于X
如果Y→X,即X←→Y,则Z直接依赖于X


设K为关系模式R(U,F)中的属性或属性组合
若K完全依赖于U,则K称为R的一个侯选码(Candidate Key)
若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key>
候选码能够唯一地标别关系的元组,是关系模式中一组最重要的属性
主码又和外码一起提供了一个表示关系间联系的手段
 

这一部分的学习都是概念,看第一遍的时候没有完全搞明白,不过没事,多看几遍可以明白的,不要着急,慢慢来,一定要看看例题做一做,会理解的快一点

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38553.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注