关系数据理论 Flashcards
关系
把关系模式看作是一个三元组:R。
当且仅当U上的一个关系r满足F时,r称为关系模式R的一个关系。
关系数据库逻辑设计问题
针对一个具体问题,应该如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关系由哪些属性组成等。
第一范式(1NF)
一个关系模式R的所有属性都是不可分割的基本数据项。
第一范式是对关系模式最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。
数据依赖(非形式的概念)
一个关系内部属性与属性之间的一种约束关系。通过属性间值的相等与否体现出来的数据间相关联系。是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。
最重要的数据依赖
函数依赖(FD),多值依赖(MVD)。
关系模式存在的问题
1。数据冗余太大。(系主任姓名重复出现)
2。更新异常。由于数据冗余,当更新数据库中的数据时,系统要付出很大的代价来维护数据库的完整性,否则会面临数据不一致的危险。(某系更换系主任后,必须修改与该系学生有关的每一个元组)
3。插入异常。(如果一个系刚成立,尚无学生,就无法把这个系及其系主任的信息存入数据库)
4。删除异常。(如果某个系的学生全部毕业了,在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了)
一个"好"的模式应当不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。
函数依赖
设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X->Y。
函数依赖是最基本的一种数据依赖,也是最为重要的一种数据依赖。
函数依赖是属性之间的一种联系,体现在属性值是否相等上。由定义可知,如果X->Y,则r中的任意两个元组若其在X上的属性值相同,那么在Y上的属性值也一定相同。
函数依赖和别的依赖一样是语义范畴的概念,反映(描述)了现实世界的一种语义。要从属性之间实际存在的语义来确定它们之间的函数依赖。
函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。函数依赖不是指关系模式R在某个时刻的关系(值)所满足的约束条件,而是指R在任何时刻的一切关系均要满足的约束条件。
非平凡的函数依赖
(在笔记本上)
平凡的函数依赖
(在笔记本上)
决定属性组(决定因素)
若X->Y,则X称为这个函数依赖的决定属性组,也称为决定因素。
不函数依赖
(在笔记本上)
完全函数依赖
(在笔记本上)
部分函数依赖
(在笔记本上)
传递函数依赖
(在笔记本上)
直接函数依赖
(在笔记本上)
候选码
(在笔记本上)
若关系中的某一属性值能唯一地标识一个元组,则称该属性组为候选码。
主码
若候选码多于一个,则选定其中的一个为主码。
主属性
包含在任何一个候选码中的属性。
非主属性(非码属性)
不包含在任何码中的属性。
全码
最简单的情况,单个属性是码。
最极端的情况,整个属性组是码,称为全码。
外码
关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码。
主码与外部码提供了一个表示关系间联系的手段。
范式
符合某一种级别的关系模式的集合。
关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。满足最低要求的叫第一范式,简称1NF。在第一范式中满足进一步要求的为第二范式,其余以此类推。
1971-1972 : E.F.Codd系统地提出了1NF、2NF、3NF的概念,讨论了规范化问题。
1974 : E.F.Codd和Boyce共同提出BCNF。
1976 : Fagin提出4NF。
后来又有人提出5NF。
各种范式之间的联系
(在笔记本上)
规范化
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
2NF
(在笔记本上)
一个关系模式R不属于2NF,就会产生以下几个问题
1。插入异常。(要插入一个学生,但该生还未选课。因为插入元组时必须给定码值,而这时码值的一部分为空,因而学生的固有信息无法插入)
2。删除异常。(删除主属性则整个元组都必须跟着删除。不应删除的信息也删除了)
3。修改复杂。
3NF
(在笔记本上)
BCNF
(在笔记本上)
一个满足BCNF的关系模式有
所有非主属性对每一个码都是完全函数依赖;
所有的主属性对每一个不包含它的码,也是完全函数依赖;
没有任何属性完全函数依赖于非码的任何一组属性。
3NF和BCNF是在函数依赖的条件下对模式分解所能达到的分离程度的测度
一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。3NF的"不彻底"性表现在可能存在主属性对码的部分依赖和传递依赖。
多值依赖
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X->->Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
在R(U)的任一关系r中,如果存在元组t, s使得t[X]=s[X],那么就必然存在元组w, v属于r,(w, v可以与s, t相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y], w[Z]=s[Z], v[Y]=s[Y], v[Z]=t[Z](即交换s, t元组的Y值所得的两个新元组必在r中),则Y多值依赖于X,记为X->->Y。
平凡的多值依赖
若X->->Y,而Z为空,则称X->->Y为平凡的多值依赖。
多值依赖的性质
1。对称性。若X->->Y,则X->->Z,其中Z=U-X-Y。 2。传递性。若X->->Y,Y->->Z,则X->->Z-Y。 3。函数依赖可以看作是多值依赖的特殊情况。即若X->Y,则X->->Y。因为当X->Y时,对X的每一个值x,Y有一个确定的值y与之对应,所以X->->Y。 4。若X->->Y,X->->Z,则X->->YZ。 5。若X->->Y,X->->Z,则X->->Y交Z。 6。若X->->Y,X->->Z,则X->->Y-Z,则X->->Z-Y。
多值依赖的另一种定义,证明其与原定义等价
(笔记本)