一些基本概念:
(1)码:数据库中唯一能标识一个记录值得内部记录标识符。
(2)候选码:可以标识一个元组的最少的属性集合(候选码中所有的属性都是必须的,缺少了任何一个属性都不能唯一标识一个元组)。
例:(id)可以作为码,(id,name)可以作为码,但(id)可以作为候选码(最少的属性集合)。
(3)主码:若候选码多于一个,则选定其中之一为主码。
(4)外码:一个关系中的属性是另一个关系中的码,这种属性被称为外码。
(5)主属性:一个表可以有多个候选码,对于某个属性来说,如果这个属性存在于所有的候选码之中,则称之为主属性。
范式说明:
1NF:数据表中的每一列都是不可分割的基本数据项(无重复列)。
2NF:R属于1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R属于2NF。
3NF:每一个非主属性既不传递依赖于码,也不部分依赖于码,则R属于3NF。
BCNF:所有非主属性对每一个码都是完全函数依赖。
所有主属性对每一个不包含它的码也是完全函数依赖。
没有任何属性完全函数依赖于非码的任何一组属性。