一、函数依赖
数据以来是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系和约束的抽象,是数据内在的性质,是语义的体现。函数依赖则是一种最重要、最基本的数据依赖。
(1)函数依赖:设R(U)是属性集U上的关系模式,X和Y是U的子集。若对R(U)的任何一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记作X→Y。
(2)非平凡的函数依赖:如果X→Y,但 Y ∉ X ,则称X→Y是非平凡的函数依赖。
(3)平凡的函数依赖:如果X→Y,但是Y∈X,则称X→Y是平凡的函数依赖。
(4)完全函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’不能决定Y,则称Y对X完全函数依X f >Y。
(5)部分函数依赖:如果X→Y,但Y不完全函数依赖X,则称Y对X部分函数依赖,记作X p >Y。部分函数依赖也称局部函数依赖。
(6)传递依赖:在R(U,F)中,如果X→Y,X不包含Y,Y不能函数决定X,Y→Z,则称Z对X传递函数依赖。
(7)码:设K为R(U,F)中的属性的组合,若K→U,且对于K的任何一个真子集K’,都有K’不能觉得U,则K是R的候选码,若有多个候选码,则选一个作为主码。候选码通常也称候选码关键字。
(8)主属性和非主属性:包含在任何一个候选码中的属性叫做主属性,否则叫做非主属性。
(9)外码:若R(U)中的属性或属性组X非R的码,但X是另一个关系的码,则称X为外码。