【数据库系统概论】-关系数据理论
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
关系模式的规范化过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为若干个高一级的关系模式。这种分解不是唯一的。
相关文章推荐
- 数据库系统概论-006: 关系数据理论
- 数据库系统原理教程 第五章 关系数据理论
- 数据库系统原理复习题(四)——关系数据理论
- 基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 【数据库系统概论】-关系数据库标准语言SQL(2)
- 数据库(四)关系数据理论
- 数据库系统基础教程二:关系数据库设计理论
- 【数据库系统概论】-关系数据库标准语言SQL(1)
- 数据库系统概论复习总结2 --- 第二章关系数据库
- 【数据库系统概论】-关系数据库标准语言SQL(4)
- 本文是笔者根据数据库编程经验,利用C++语言的模板、继承、授权、多态等面向对象特性,借鉴命令模式,实现了对象在关系数据中的存储,降低应用系统与数据库之间的耦合,提高开发效率。
- (原创)基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 数据库系统概论学习笔记---关系的俩个完整性
- 数据库系统概论学习笔记----讲3.关系代数
- 数据库系统原理(4)--数据依赖与关系模式规范化
- 【数据库系统概论】-关系查询处理和查询优化
- 【数据库系统概论】-关系数据库标准语言SQL(3)
- 关系代数是关系数据库系统查询语言的理论基础
- 数据库系统概论复习总结3 --- 第二章关系数据库标准语言SQL
- 关系数据库设计理论