请登录
四川成人和教育管理有限公司 - 笔记串讲 - 工学类 - 4735数据库系统原理 - 浏览文章

自考4735数据库系统原理考试复习资料3

2016/5/30 17:14:090人浏览0评论

要求、目标:

       了解关系数据库规范化理论及其在数据库设计中的作用,重点是函数依赖和范式,要求掌握这些概念并能运用它们来进行模式分解。

一、关系模式的设计准则

1.数据冗余:同一个数据在系统中多次重复出现。

2.关系模式设计不当引起的异常问题:数据冗余、操作异常(包括修改异常、插入异常和删除异常)

3.关系模式的非形式化设计准则

       1)关系模式的设计应尽可能只包含有直接联系的属性,不要包含有间接联系的属性。也就是,每个关系模式应只对应于一个实体类型或一个联系类型。

       2)关系模式的设计应尽可能使得相应关系中不出现插入异常、删除和修改等操作异常现象。

       3)关系模式的设计应尽可能使得相应关系中避免放置经常为空值的属性。

       4)关系模式的设计应尽可能使得关系的等值连接在主键和外键的属性上进行,并且保证以后不会生成额外的元组。

4.习惯使用的一些符号:

1)英文字母表首部的大写字母“ABC”表示单个的属性。

2)英文字母表尾部的大写字母“UVWXYZ”表示属性集。

3)大写字母R表示关系模式,小写字母r表示其关系。

4)关系模式的简化表示方法:RABC)或RABC…

5)属性集XY的并集简写为XY

二、函数依赖

1.函数依赖(FD)的定义:设有关系模式RU),XY是属性集U的子集,函数依赖是形成XY的一个命题,只要rR的当前关系,对r中任意两个元组ts,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FD  XY在关系模式RU)中成立。

说明:  1t[X]表示元组t在属性集X上的值,其余类同。

            2XY读作“X函数决定Y”或“Y函数依赖于X”。

               3FD是对关系模式R的一切可能的关系r定义的。对于当前关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应,或者说Y值由X值决定。

例:设关系模式RABCD),在R的关系中,属性值间有这样的联系:A值与B值有一对多联系;C值与D值之间有一对一联系。试根据这些规则写出相应的函数依赖。

              BA   CD  DC

2.如果XYYX同时成立,则可记为:X?Y

3FD的逻辑蕴涵:设F是在关系模式R上成立的函数依赖的集合,XY是一个函数依赖。如果对于R的每个满足F的关系r也满足XY,那么称F逻辑蕴涵XY,记为F|=XY

4.设F是函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F的闭包,记为F+。即F+={XY   |   F|=XY }

5FD的推理规则(Armstrong公理)

U是关系模式R的属性集,FR上成立的只涉及到U中属性的函数依赖集。

1)自反性:若YíXíU,则XYR上成立。

2)增广性:若XYR上成立,且ZíU,则XZYZR上成立。

3)传递性:若XYYZR上成立,则XZR上成立。

6FD的其他五条推理规则:

                     1)合并性:{XYXZ}  |=  XYZ

                     2)分解性:{XYZíY }  |=  XZ

                     3)伪传递性:{XYWYZ }  |=  WXZ

       4)复合性:{XYWZ }  |=  WXYZ

                     5{XYWZ }  |=  X∪(W-Y)→YZ

7.对于FD XY,如果YíX,那么称XY是一个“平凡的FD”,否则称为“非平凡的FD”。通常研究非平凡FD

例:XXXφ, φφ,XYX都是平凡函数依赖;XXY则是非平凡函数依赖。

8.函数依赖是关键码概念的推广。

设关系模式R的属性集是UXU的一个子集。如果XUR上成立,那么称XR的一个超键。如果XUR上成立,但对于R的任一真子集X1都有X1U不成立,那么称XR的一个候选键。在关系模式设计理论中,键通常是指候选键。

9.属性集的闭包

10.设F是属性集U上的FD集,XU的子集,那么(相对于)属性集X的闭包用X+表示,它是一个从F集使用FD推理规则推出的所有满足XA的属性A的集合:X+={属性A  |  F|=XA}

11XY能用FD推理规则推出的充分必要条件是Yí X+,从而避开求F+,使问题得到简化。

12.求属性集X相对于FDF的闭包X+的算法:

    X+=X

    do {oldX+:=X+

        for F中每个FD YZ do

            if Yí X+  then  X+=X+Z

              }while(X+=oldX+)

例:属性集U为ABCD,FD集为{ABBCDB}。求A+、(AD+

BD+

A+=ABC

AD+=ABCD

BD+=BCD

13.如果关系模式RU)上的两个函数依赖集FG,有F+=G+,则称FG是等价的函数依赖集。

三、关系模式的分解特性

1.关系模式的分解:

设有关系模式RU),属性集为U,而R1R2Rk都是U的子集,并且有R1R2Rk=U。关系模式R1R2Rk的集合用ρ表示,ρ={R1R2Rk}。用ρ代替R的过程称为关系模式的分解。这里ρ称为R的一个分解,也称为数据库模式。

一般把上述的R称为泛关系模式,R对应的当前值称为泛关系。数据库模式ρ对应的当前值称为数据库实例,它由数据库模式中的每一个关系模式的当前值组成。我们用σ=<r1r2rk>表示。

因此,在计算机中数据并不是存储在泛关系r中,而是存储在数据库σ中。

2.σ和r是否等价,即是否表示同样的数据。这个问题用“无损分解”特性表示。

在模式R上有一个FDF,在ρ的每一个模式Ri上有一个FDFi,那么{F1F2Fk}F是否等价。这个问题用“保持依赖”特性表示。

四、范式

1.范式:衡量关系模式好坏的标准。

2.数据库设计中最常用的是3NFBCNF

3.第一范式(1NF):如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式。满足1NF的关系称为规范化的关系,否则称为非规范化的关系。1NF是关系模式应具备的最起码的条件。

4.局部依赖和完全依赖:对于FD  WA,如果存在XìWXA成立,那么称WA是局部依赖(A局部依赖于W);否则称WA是完全依赖。

5.主属性和非主属性:如果A是关系模式R的候选键中的属性,那么称AR的主属性;否则称AR的非主属性。

6.第二范式(2NF):如果关系模式是1NF,且每个非主属性完全函数依赖于候选键,那么称R是第二范式(2NF)的模式。

7.分解成2NF模式集的算法:

设关系模式RU),主键是WR上还存在FD XZ,并且Z是非主属性和X

ìW,那么WZ就是一个局部依赖。此时应把R分解成两个模式:

R1XZ),主键是X

R2Y),其中Y=U-Z,主键仍是W,外键是X(参照R1)。

如果R1R2还不是2NF,则重复上述过程,一直到数据库模式中的每一个关系模式都是2NF为止。

8.如果XYYA,且YXAíY,那么称XA是传递依赖(A传递依赖于X)。

9.第三范式(3NF):如果关系模式R2NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。

10.分解成3NF模式集的算法:

设关系模式RU),主键是WR上还存在FD  XZ。并且Z是非主属性,ZíX,X不是候选键,这样WZ就是一个传递依赖。此时应把R分解成两个模式:

R1XZ),主键是X

R2Y),其中Y=U-Z,主键仍是W,外键是X(参照R1)。

如果R1R2还不是3NF,则重复上述过程,一直到数据库模式中的每一个关系模式都是3NF为止。

11.如果R3NF模式,那么R也是2NF模式。如果R2NF模式,那么R也是1NF模式。

12BC范式(BCNF):如果关系模式R1NF,且每个属性都不传递依赖于R的候选键,那么称RBCNF的模式。

13.如果RBCNF模式,那么R也是3NF模式。

14.分解成BCNF模式集的算法能保持无损分解,但不一定能保持FD集。而分解成3NF模式集的算法既能保持无损分解,又能保持FD集。

15.关系模式由1NF分解为2NF,消除了非主属性对键的局部函数依赖;由2NF分解为3NF,消除了非主属性对键的传递函数依赖;而BCNF则消除了每一属性对键的传递函数依赖。

16.关系模式设计理论主要用于数据库的逻辑设计过程中。


关键字:
网友评论