函数依赖(Functional Dependency,FD)
定义:若表中两个元组在属性X上值相等,则在属性Y上值也必然相等,则称X函数决定Y,记作 X → Y。
完全函数依赖:X → Y,且X的任何真子集都不能决定Y。
部分函数依赖:X → Y,且存在X的真子集也能决定Y(通常出现在复合主键中)。
传递函数依赖:X → Y,Y → Z,且Y不→ X,则X → Z为传递依赖。
属性闭包
给定关系模式R(U,F)和属性集X,闭包X⁺ = 所有能被X函数决定的属性集合。
算法:反复将能推导出的属性加入,直到不再扩大。
候选键
定义:能够唯一标识元组的最小属性集合(即能决定所有属性,且去掉任一属性后不能)。
求法:
仅出现在FD右边的属性一定不是候选键成员(可排除)。
仅出现在FD左边的属性一定是候选键成员(必选)。
从必选集合开始,尝试添加其他属性,计算闭包,若等于U则得到候选键。
候选键:所有能唯一标识一行且没有多余属性的“候选”集合(可以有好几个)。
主键:从候选键中挑选一个作为主要标识(一张表只能有一个)