第6章 关系数据理论——复习笔记

简介: 第6章 关系数据理论——复习笔记

第2篇 设计与应用开发篇


第6章 关系数据理论


复习笔记


一、问题的提出


关系要符合一个最基本的条件:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。


01数据依赖


数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性间值是否相等体现出来的数据间的相关联系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。许多种类型的数据依赖中,最重要的是函数依赖(Functional DependencyFD)和多值依赖(Multivalued DependencyMVD)。


02关系模式存在的问题


1)数据冗余太大;

2)更新异常;

3)插入异常;

4)删除异常。

一个的模式应当不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。


二、规范化


01函数依赖


1)定义

RU)是属性集U上的关系模式,XYU的子集。若对于RU)的任意一个可能的关系rr中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定YY函数依赖于X,记作X→Y


2)完全依赖、部分依赖和传递依赖

完全依赖

RU)中,如果X→Y,并且对于X的任何一个真子集X',都有X'↛Y,则称YX完全函数依赖,记作:

28050461e78aa178f2ca4742358fc8de_640_wxfrom=5&wx_lazy=1&wx_co=1.png


部分依赖

X→Y,但Y不完全函数依赖于X,则称YX部分函数依赖,记作:

a71654f499afd7c231410f0f05626bc2_640_wxfrom=5&wx_lazy=1&wx_co=1.png


传递依赖

RU)中,如果

9bcfb03bf162d696e2bd89d372f983e5_640_wxfrom=5&wx_lazy=1&wx_co=1.png

则称ZX传递函数依赖。记为:

1197b2ae1682920daa0a8152e4c6077f_640_wxfrom=5&wx_lazy=1&wx_co=1.png


加上条件Y↛X,是因为如果Y→X,则X→Y,实际上是71f70114190b55ae11d7cca2fe92f22e_640_wxfrom=5&wx_lazy=1&wx_co=1.png,是直接函数依赖而不是传递函数依赖。


02


1)候选码

KR<UF>中的属性或属性组合,若3de0e7b1f14305c0ca753d828a56c2fd_640_wxfrom=5&wx_lazy=1&wx_co=1.png,则KR的候选码(candidate key)。


2)主码

若候选码多于一个,则选定其中的一个为主码(primary key)。包含在任何一个候选码中的属性称为主属性(prime attribute);不包含在任何候选码中的属性称为非主属性(nonprime attribute)或非码属性(non key attribute)


3)外码

关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称XR的外部码(foreign key),也称外码。


03范式


关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。满足最低要求的叫第一范式,简称1NF;在第一范式中满足进一步要求的为第二范式,其余以此类推。范式是指符合某一种级别的关系模式的集合,R 为第几范式可以写成 RxNF。各种范式之间的关系是:5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF,如图6-1所示。

a5b3d006b03e7d891e9a2f640fc49555_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

6-1 各种范式之间的天系


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


042NF


2NF的定义:

R1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R2NF

一个关系模式R不属于2NF,就会严生以下几个问题:

1)插入异常;

2)删除异常;

3)修改复杂。


053NF


定义:关系模式R<UF>中若不存在这样的码x,属性组y及非主属性z(zy),使得x→yy→z成立,yx,则称R<UF>3NF

R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。


06BCNF


1)定义

关系模式R<UF>1NF,若X→YYXX必含有码,则R<UF>BCNF

即关系模式R<UF>中,若每一个决定因素都包含码,则R<UF>BCNF

BCNF的定义可以得到结论,一个满足BCNF的关系模式有:

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

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

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


07多值依赖


1)定义

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


2)多值依赖的另一个等价的形式化的定义是

RU)的任一关系r中,如果存在元组ts使得t[X]=s[X],那么就必然存在元组wvrwv可以与st相同),使得w[X]=v[X]=t[X],而w[Y]=t[Y]w[Z]=s[Z]v[Z]=t[Z](即交换st元组的Y值所得的两个新元组必在r中),则Y多值依赖于X,记为X→→Y这里,XYU的子集,Z=U-X-Y


3)性质

对称性。

传递性。

函数依赖可以看作是多值依赖的特殊情况。

X→→YX→→Z,则X→→YZ

X→→YX→→ZX→YZ

X→→YX→→Z,则X→→Y-ZX→→Z-Y


4)多值依赖和函数依赖的区别

多值依赖的有效性与属性集的范围有关。若X→→YU上成立,则在WXYWU)上一定成立;反之则不然,即X→→YWWU)上成立,在U上并不一定成立。

若函数依赖X→YRU)上成立,则对于任何Y'Y均有X→Y',成立。而多值依赖X→→Y若在RU)上成立,却不能断言对于任何Y'YX→→Y'成立。


084NF


1)定义

关系模式R<UF>∈1NF,如果对于R的每个非平凡多值依赖X→→YYX,X都含有码,则称 R<UF>4NF


24NFBCNF

4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。如果一个关系模式是4NF,则必为BCNF。一个关系模式如果已达到了BCNF但不是4NF,这样的关系模式仍然具有不好的性质。可以用投影分解的方法消去非平凡且非函数依赖的多值依赖。


3)函数依赖和多值依赖

函数依赖和多值依赖是两种最重要的数据依赖。如果只考虑函数依赖,则属于 BCNF 的关系模式规范化程度已经是最高的了。如果考虑多值依赖,则属于4NF的关系模式规范化程度是最高的。


三、数据依赖的公理系统01Armstrong 公理系统


1)定义

对于满足一组函数依赖F的关系模式R<UF>,其任何一个关系r,若函数依赖X→Y,都成立(即r中任意两元组ts,若t[X]=s[X],则t[Y]=s[Y],则称F逻辑蕴涵X→Y.


2)推理规则

自反律

YXU,则X→YF所蕴涵。

增广律

X→YF所蕴涵,且ZU,则XZ→YZF所蕴涵。

传递律

X→YY→ZF所蕴涵,则X→ZF所蕴涵。


3)重要定义

在关系模式R<UF>中为F所逻辑蕴涵的函数依赖的全体叫作F的闭包(closure),记为F+。人们把自反律、传递律和增广律称为Armstrong公理系统。

F为属性集U上的一组函数依赖,XYUXF+={A}X→A能由F根据Armstrong公理导出}XF+称为属性集X关于函数依赖集F的闭包。

如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,亦称为最小依赖集或最小覆盖(minimal cover)

a.F中任一函数依赖的右部仅含有一个属性;

b.F中不存在这样的函数依赖X→A,使得FF-{X→A}等价;

c.F中不存在这样的函数依赖X→AX有真子集Z使得F-{X→A}{Z→A}F等价。


4)引理

X→A1A2…Ak成立的充分必要条件是X→Ai;成立(i=12k)。

F为属性集U上的一组函数依赖,XYUX→Y能由F根据Armstrong 公理导出的充分必要条件是Y XF+

F+=G+的充分必要条件是F+G+GF+


5)有效性和完备性

Armstrong公理系统是有效的、完备的。

有效性

有效性指的是由F出发根据Armstrong公理推导出来的每一个函数依赖一定在F+中。

完备性

完备性指的是F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来。


四、模式的分解


关系模式R<UF>的一个分解是指:ρ={R1<U1F1>R2<U2F2>Rn<UnFn>}

d84a1d3b2ed1866ace2bcd8259d15335_640_wxfrom=5&wx_lazy=1&wx_co=1.png


01模式分解的3个定义


对于一个模式的分解是多种多样的,但是分解后产生的模式应与原模式等价。

等价的概念有三种不同的定义:

1)分解具有无损连接性

2)分解要保持函数依赖

3)分解既要保持函数依赖,又要具有无损连接性

按照不同的分解准则,模式所能达到分离程度各不相同,各种范式就是对分离程度的测度。


02分解的无损连接性和保持函数依赖性


4f34b236e548e2ef326a24ce60a33c60_640_wxfrom=5&wx_lazy=1&wx_co=1.png


03模式分解的算法


关于模式分解的几个重要事实是:

1)若要求分解保持函数依赖,那么模式分离总可以达到3NF,但不一定能达到BCNF

2)若要求分解既保持函数依赖,又具有无损连接性,可以达到3NF,但不一定能达到BCNF

3)若要求分解具有无损连接性,那一定可达到4NF


相关文章
|
5月前
|
算法
计算机算法设计与分析(1-6章 复习笔记)
计算机算法设计与分析(1-6章 复习笔记)
|
6月前
|
算法 调度
【算法设计与分析】— —基础概念题(one)可作为日常联系或期末复习
【算法设计与分析】— —基础概念题(one)可作为日常联系或期末复习
|
6月前
|
算法
【软件设计师—基础精讲笔记9】第九章 算法设计与分析
【软件设计师—基础精讲笔记9】第九章 算法设计与分析
52 1
|
数据库
数据库系统概论第十章课后习题
数据库系统概论第十章课后习题
108 0
|
SQL 算法
数据库系统概论之第九章要点
数据库系统概论之第九章要点
|
调度 数据库
数据库系统概论第十一章习题
数据库系统概论第十一章习题
|
存储 数据库
数据库系统概论第六章(关系数据理论)知识点总结(3)—— 范式知识点总结
假定2014104学生只选修了3号课程这一门课,现在因身体不适,不选修3号课程了,要将课程号删除,但同时,由于课程号是主属性,此操作将导致该整个元组的删除。这样,2014104学生信息都被删除了
215 0
数据库系统概论第六章(关系数据理论)知识点总结(3)—— 范式知识点总结
数据库系统概论学习2:第二章学习
关系模式: 对关系的描述。 什么是关系:关系是一张表、一张二维表。
数据库系统概论学习2:第二章学习