数据库范式

1. 概念:

关系模式R<U,F>:U表示属性集合,F表示依赖集合,F主要有两种依赖:函数依赖和多值依赖MVD,【关系模式】理解为数据表,而【关系】可以理解为表中一条记录。

函数依赖:X,Y是是属性集合U的子集,关系模式R中的任意关系r1,r2,都不存在r1,r2中X相同,而Y不同的情况则认为“Y函数依赖于X”或者说“X确定Y”,,符号说明:X->Y。

非平凡函数依赖:X->Y且Y不是X子集。

平凡函数依赖:X->Y且Y是X子集。平凡函数依赖必然成立,因此一般考虑的都是非平凡函数依赖。

若X->Y,Y->X,则符号表示为:X <- -> Y。

完全函数依赖:z是符号说明:X -f-> Y。

部分函数依赖:符号说明:X -p-> Y。

候选码:K是U的一个子集,如果K -f-> U ,则K为关系模式R的候选码。候选码可能有多个,从中选择一个作为主码。候选码中的属性称为主属性,其它为非主属性

主码:某个候选码。

外码:K是U的一个子集,但是不是R的主码,却是另一个关系模式R'的主码,则K是关系模式R的外码。

 

2. 范式:

1NF:关系模式R<U,F>中的所有属性都不可再分割,则满足1NF。

2NF:R<U,F>属于1NF,且非主属性完全依赖于码,则满足2NF。

举例:Sno,学号;Sdept,部门;Sloc,宿舍;Grade,成绩。

如下图所示,图a满足第一范式,但是因为存在非主属性部分依赖于码,因此2NF,而将图a.进行拆分形成图b.图c.,则图b.图c.满足2NF。

3NF:R<U,F>属于2NF,且非主属性不存在传递依赖于码,则满足3NF。

如上图c.所示因为存在Sloc传递依赖于Sno,因此图c.不满足3NF,按照如下分解图c.则满足3NF。

S-D(Sno,Sdept)

D-L(Sdept,Sloc)

 

posted @ 2016-07-12 17:16  wrencai  阅读(489)  评论(0编辑  收藏  举报