SqlServer------范式小结

说明:大多数初学者对于关系数据库中的范式很是头疼,我本人也是,所以今天又看了视频,总结了一下内容,尽量语言通俗易懂,少用专业术语以及概念。

 

首先要理解几个键值。

 

超键:在关系模式中,能唯一标识元组的属性集称为 super key。

 

候选键:关系模式中,能唯一标识元组并且不含多余属性的属性集称为候选键。值得注意的是,超键与候选键的区别,超键可能含有多余属性,而候选键不能。

 

主键:在一个关系的若干个候选键中随意指定一个作为关键字,此关键字就是主键。

 

外键:关系R1中的属性或属性组非R1的码,但它是其他关系的码,那么该属性集对于关系模式R1而言是外键。

 

主属性:候选码的所有属性称为主属性。

 

如何区分超键,候选键,主键?

         相同点:功能方面,用于唯一标识一个元组。

         不同点:超键有多余的属性,主键和候选键没有,它们中的属性是必要的。主键是候选键的一个,只是被数据库设计者选中而已。

         联想理解:候选人和候选键,主席与主键。(也就是说,候选键中的任何一个键都可以作为主键,只是设计者之选择了其中的一个。)

 

(例子是检验概念的唯一标准),大家看例子吧。

 

例1:学生(学号,姓名,性别,专业号,年龄)

(学号,姓名)是超键,而不是候选键,学号是候选键,同时也是主键。

 

例2:学生(学号,姓名,性别,专业号,年龄)主键:学号,外键:专业名

         专业(专业号,专业名)主键:专业号,外键:无

 

例3:成绩(学号,姓名,课程号,成绩)学生无同名。

 

         (学号)等价于(姓名)

 

         (学号,课程号)候选键

         (姓名,课程号)候选键

         所以主属性:学号,姓名,课程号

 

范式

1NF:通俗的说,就是所有的属性都是不可再分的,复合属性是不允许的。(这一点容易理解)

 

 

2FN:

先了解部分函数依赖的概念。

部分函数依赖:主码的部分只要有一部分就可以确定属性的值。

 

在第一范式的前提下,保证函数依赖关系是全部函数依赖,而非部分函数依赖。

 

 

 

第三范式:

         在第二范式的前提下,且没有函数传递依赖于码。

 

定理:如果某个关系模式,它的关键字是单个关键字,没有部分的函数依赖问题,那么它的肯定是2NF。(仔细理解这句话)

 

       

 

我有点笨,还是初学者,所以有什么不对的地方,还请大家多多指点。

posted @ 2014-10-11 22:01  [0]  阅读(296)  评论(0编辑  收藏  举报