您的位置:首页 > 数据库

【数据库系统概论】-关系数据理论

2015-01-11 16:27 507 查看

问题的提出

针对一个具体的问题,应该如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关系由那些属性组成等。这是数据库设计的问题,确切地将是关系数据库逻辑设计问题。

由于关系模型由严格的数学理论基础,并且可以向别的数据模型转换,因此,人们就以关系模型为背景来讨论这个问题,形成了数据库逻辑设计的一个有力的工具——关系数据库的规范化理论。规范化理论虽然是以关系模型为背景,但是它对于一般的数据库逻辑设计同样具有理论上的意义。

当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系。

关系,作为一张二维表,对它的一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式称为第一范式(1NF)

数据依赖是一个关系内部属性与属性之间的一种约束关系。其中最重要的是函数依赖多值依赖

规范化

函数依赖

定义:设R(U)是属性集U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不相等,则称X函数确定Y或Y函数依赖于X,记作X→Y

函数依赖和别的数据依赖一样是语义范畴概念。设计者也可以对现实世界做强制的规定。

X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖。

X→Y,但Y包含于X,则称X→Y是平凡的函数依赖。

定义:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有Y不函数依赖于[b][b]X’[/b],则称Y对X完全函数依赖。否则称Y对X部分函数依赖。[/b]

定义:在R(U)中,如果X→Y,(非平凡函数依赖)X不函数依赖于Y,Y→Z,Z∉Y,则称Z对X传递函数依赖。

定义:设K为R<U,F>中的属性或属性组合,若K→U,则K为R的候选码。若候选码多于一个,则选定其中一个为主码。

包含在任何一个候选码中的属性,称为主属性。不包含在任何码中的属性称为非主属性非码属性

定义:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,称X是R的外部码,也称外码。

范式

关系数据库中的关系是要满足一定要求的,满足不同程度的要求的为不同范式。

一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式组合。这种过程就叫做规范化。

2NF(消除非主属性对码部分函数依赖)

定义:R∈1NF,且每个非主属性完全函数依赖于码,则R∈2NF。

3NF(消除非主属性对码的传递传递依赖)

定义:关系模式R<U,F>中若不存在这样的码X,属性组Y以及非主属性Z(Z不包含于Y)使得X→Y,Y→Z成立,Y不函数确定X,则称R<U,F>∈3NF。

BCNF(消除主属性对码的部分和传递函数依赖)

定义:关系模式R<U,F>∈1NF,若X→Y且Y不属于X时,X必含有码,则R<U,F>∈BCNF

也就是说,关系模式R中,若每个决定因素都包含码则R为BCNF

一个满足BCNF的关系模式有:

1)所有非主属性对每一个码是完全函数依赖。

2)所有的主属性对每一个不包含它的码,也是完全函数依赖。

3)没有任何属性完全函数依赖于非码的任何一组属性。

3NF的”不彻底“性表现在可能存在主属性对码的部分依赖和传递依赖。

多值依赖

定义:设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当R(U)的任一关系r,给定一对(x,z)值,有一组Y值,这组值仅仅决定于x值而与z值无关。

若x→→Y而Z=∅,则成为X→→Y为平凡多值依赖。

多值依赖具有以下性质:

(1)多值依赖具有对称性。即若X→→Y则X→→Z,其中Z=U-X-Y。

(2)多值依赖具有传递性。即若X→→Y,Y→→Z,则X→→Z-Y。

(3)函数依赖可以看做是多值依赖的特殊情况。即若X→Y,则X→→Y。

(4)若X→→Y,X→→Z,则有X→→YZ。

(5)若X→→Y,X→→Z,则有X→→Y∩Z。

(6)若X→→Y,X→→Z,则有X→→Y-Z,X→→Z-Y

多值依赖于函数依赖相比,具有两个基本的区别

(1)多值依赖的有效性与属性集的范围有关。

(2)若函数依赖X→Y在R(U)上成立,则对于任何Y'包含于Y,均由X→Y‘成立。而多值依赖X→→Y若在R(U)上成立,却不能断言对于任何Y‘包含于Y有X→→Y’成立。

4NF(消除非平凡且飞函数依赖的多值依赖)

定义:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y不属于X),X都含有码,则称R<U,F>∈4NF。

规范化小结

规范化的基本思想是逐步消除数据依赖中不合适的部分。使模式中的各个关系模式达到某种程度的”分离“,即”一事一地“的模式设计原则。让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它”分离“出去。因此,所谓规范化实质上就是概念的单一化。

1NF→(消除非主属性对码的部分函数依赖)→2NF→(消除非主属性对码的传递函数依赖)→3NF→(消除主属性对码的部分与传递函数依赖)→BCNF→(消除非平凡且非函数依赖的多值依赖)→4NF

关系模式的规范化过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为若干个高一级的关系模式。这种分解不是唯一的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐