四级数据库工程师笔记

发布时间 : 星期日 文章四级数据库工程师笔记更新完毕开始阅读

[3] 按属性名引用时属性左右无序; [4] 所有属性值都是原子项(不可再分);

(8) 总结:关系是一张二维表,表中的一行被称为一个元组,一列称为属性,由一组域值组

成。关系是元组的集合,关系中的每个元组在数学上被定义为这个关系所涉及的全部域值中笛卡儿积的一个元素。

5.2.2 关系数据库

1、 关系数据库是按照二维表组织和存储的相互关联的关系的集合,关系数据库模式是关系模式的集

合;

5.2.3 关系的完整性

1、 关系的完整性(完整性约束):是对关系的某种约束规则和关系满足的定义。通常这组约束规则

用来限定和检查数据库所含实例的合法性和正确性;

2、 完整性约束分静态和动态两种,静态完整性约束是基于关系模式的,主要有主码、外码约束和域

约束组成;动态完整性约束是基于企业的业务规则的。 3、 静态完整性约束规则:

(1) 主码约束:主码必须满足:

(A) 惟一性:在一个关系中不存在两个元组,它们具有相同的主码值;

(B) 最小性:不存在从组成主码的属性集中去掉一个属性,还仍能保持数据的惟一性; (2) 外码约束:

(3) 用户定义的完整性:

5.3 关系数据库设计理论

5.3.1 问题的提出

究竟一个关系数据库包含哪些属性是合理的,如何评价一个关系模式设计的优劣? 5.3.2 函数依赖

函数依理论利用一个关系中属性之间的依赖关系评价和优化关系模式,以保证存储到数据库中的关系具有较好特性; 1、 函数依赖:

(1) 设R(U)为一关系模式,X和Y为属性全集U的子集,若对于R(U)的任意一个可能的

关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数决定Y”或“Y函数依赖于X”,并记作X?Y,其中X称为决定因素,因为根据函数依赖定义,给定一个X,就能惟一决定一个Y。

(2) 这里讨论的函数关系与数学上的不同,是不能计算的,是一个关系中属性之间存在的依

- 21 -

赖关系;它是一种语义范畴的概念,只能根据两个属性之间的语义来确定一个函数依赖是否存在。

2、 完全与部分函数依赖:

(1) 在关系模式R(U)中,如果X?Y成立,并且对X的任何真子集X’不能函数决定Y,则

称Y对X是完全函数依赖,被记作X---f---?Y。

(2) 若X?Y,但Y不完全函数依赖于X,则称Y对X是部分函数依赖,记作X--p?Y; 3、 传递函数依赖:

在关系R(U)模式中,如果X决定Y,(Y不属于X),Y不决定X,Y决定Z,则称Z对X传递函数依赖。

4、 平凡与非平凡函数依赖:

(1) 若X决定Y,但Y属于X,则称X?Y是平凡函数依赖,否则称非平凡函数依赖; (2) 即平凡函数依赖,仅当其右边的属性集是左边属性集的子集时成立;

(3) 非平凡函数依赖,仅当其右边的属性集至少有一个属性不属于左边有集合时成立; (4) 完全非平凡函数依赖:仅当其右边的属性集中属性都不在左边的集合时成立; 5、 码:

(1) 在关系模式R(U)中,K为R的属性或属性组,若K函数决定A1.A2?.An,则K为关系

模式R的候选码,包含在候选码中的属性称为主属性,否则为非主属性;

(2) 若一个关系的候选码不止一个,则选定其中一个作为关系R的主码;

(3) 关系的码属性除了必须完全函数决定关系的所有其他属性外,还必须满足最小化规则,

即在关系模式R(U)中,不存在一个K的真子集能够函数决定R的其他属性。

6、 函数依赖的推理规则:

(1) 自反律:若Y(包含于)X(包含于)U,则X?Y成立; (2) 增广律:若X?Y,且Z(包含于)U,则XZ?YZ成立; (3) 传递律:若X?Y,Y?Z,则X?Z成立; (4) 合并规则:若X?Y,X?Z成立,则X?YZ;

(5) 分解规则:若X?Y和Z(包含于)Y成立,则X?Z也成立; (6) 伪传递规则:若X?Y,YW?Z,则XW?Z成立; 7、 属性集闭包:

(1) 设F是属性集U上的函数依赖集,X为U的一个子集,那么对于F,属性集X关于F的闭

包(用X+表示)为:X+={A|X?A}

(2) 由属性集团包的定义可知,若想判断函数依赖X?Y是否成立,只要计算X关于函数依赖

- 22 -

集F的闭包,若Y是X闭包中的一个元素则X?Y成立;

8、 确定关系的码:

(1) 利用迭代算法计算X+,步骤如下:

(A) 选X作为闭包X+的初值X(0);

(B) 由X(i)计算X(i+1)时,它是由X(0)并上属性集合A所组成,其中A满足下

列条件:Y(包含于)X(i),且F中存在函数依赖Y?Z,而A(包含于)Z。因为U是有穷的,所以会得到X(i)=X(i+1),此时X(i)为所求的X+。

5.3.3 规范化设计方法 1、 第一范式:

(1) 定义:设关系模式R(F,U),如果R的每一个属性都是不可分的数据项,则此关系模式

为第一范式;

(2) 一个给定关系和第一范式(1NF)的区别:

(A) 一个关系中的数据按照行和列的形式组织,每个元组具有相同数目的属性个数,且

每一个元组的属性值具有统一的数据类型和长度;元组或属性的排列与顺序无关,每个元组必须通过一个属性或属性组惟一识别;

(B) 第一范式实际上对关系增加了一个约束,即关系中元组的每个属性都只取一个值,

第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。

2、 第二范式:

(1) 定义:若关系模式R(F,U)是1NF,且每个非主属性完全函数依赖于码,则称R为第二

范式,即在2NF中不存在非主属性对码的部分依赖;

(2) 仅满足第一范式关系会存在种种问题,要消除必须用更高级的范式标准来设计,称为标

准化;

(3) 具体做法是将大的关系分解成多个小的关系,使分解后的关系满足更高级范式的要求。 (4) 第二范式实际上对关系增加了一个约束,就是关系中的每一个属性必须完全依赖于主码,

即在第一范式的基础上,消除非主属性对主码的部分函数依赖可达到2NF;

3、 第三范式:

(1) 定义:若关系R(U,F)为第一范式,且不存在非主属性对主码的传递函数依赖,则称R

为第三范式;

(2) 第三范式是在第二范式的基础上对关系又增加了一个约束,就是关系中的每一个非主属

性必须只依赖于主码。即2NF的基础上,消除非主属性对主码的传递函数依赖可达到3NF。

4、 改进的第三范式:

- 23 -

(1) 定义:如果关系模式R是1NF,且每个属性(包括主属性)既不存在部分函数依赖也不存

在传递函数依赖于候选码,则称R是改进的第三范式(BCNF)。

5、 多值依赖与4NF:

(1) 多值依赖:表示关系中属性(如A、B、C)之间的依赖,对于A的每个值,都存在一个B

或C的值的集合,而且B和C的值相互独立,记为:A??B、A??C

(2) 第四范式:如果关系模式R属于1NF,对于R的每个非平凡的多值依赖X?Y(Y不属于X),

X含有候选码,则R是第四范式。即是从BCNF范式中消除主码内的独立依赖集(非平凡多值依赖)可达4NF;

6、 连接依赖与5NF

(1) 连锁依赖:设关系模式R,R的属性子集为R1、R2、R3、R4、R5、R6、R7?.,当且仅当

R的每个合法值等于R1、R2、R3、R4、R5、R6、R7?的投影连接时,称R满足连接依赖;

(2) 第五范式:设R是一个满足5NF的关系模式,当且仅当R的每一个非平凡连接依赖都被

R的候选码所蕴含,即从4NF中消除非候选码所蕴含的连接依赖为5NF;

7、 总结:

(1) 范式表达了关系模式满足的条件,也是衡量关系模式设计优劣的标准;

(2) 利用范式进行规范化设计的目的是消除数据冗余,避免出现异常,使结构更合理; (3) 规范化设计的基本过程是对关系进行的分解,消除属性间不合理的数据依赖,用一组等

价的子关系代替原有的关系;

(4) 数据库规范化的程序越高,其关系表就越多,从而增加了表之间连接运算的代价,影响

了数据库的执行速度和性能。所以通常关系模式规范化工作仅做到3NF,这样既使关系中不合理的属性基本消除,规范化程度也不太高,保证数据库有较好的性能。

5.4 数据库模式设计

5.4.1 初始关系模式的设计 1、 把ER图转换成关系模式:

(1) 把ER模型中的每个实体集转换成一个同名的关系,实体集的属性就是关系的属性,实体

集的码就是关系的码;

(2) 把ER模型中的每个联系转换成一个关系,与该联系相连的各实体集的码以及联系的属性

转换成为关系的属性。

(A) 若联系为1:1,则每个实体集的码均是该关系的候选码; (B) 若联系为1:n,则关系的码为n端实体集的码;

- 24 -

联系合同范文客服:xxxxx#qq.com(#替换为@)