超键、候选键、主键
超键
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
由超键的定义可知,在学生表中含有学号或者身份证号的任意组合都可以唯一标识一个学生,那么它们就是此表的超键。如:(学号)、(身份证号)、(学号,姓名)、(身份证号,性别)等。
候选键
候选键(candidate key):不含有多余属性的超键称为候选键。也就是关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选键。
候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。对于(学号、姓名)来说,去掉姓名后仍是一个超键,那么它就不是候选键。其中,学生表中的候选键为:(学号)、(身份证号),主属性就是学号、身份证号。
主属性:任何一个候选键中的属性称作主属性。(请记住这个概念)
主键
主键(primary key):用户从一个关系的多个候选键中,选定一个作为主键。
主键就是候选键里面的一个,用户可以选择,那么在这里我们选择(学号)作为学生表的主键。
第一范式、第二范式、第三范式、BCNF范式
1NF
定义:关系中每一分量不可再分。即不能以集合、序列等作为属性。(也就是不能表中套表,要保证数据的原子性。)
2NF
定义:在1NF基础上,消除非主属性对键的部分依赖,则称它符合2NF。
3NF
定义:在2NF基础上,消除非主属性对键的传递依赖,则称它符合3NF。
BCNF范式
是要在 3NF 的基础上消除主属性对于码的部分与传递函数依赖。