第六关系数据理论演示文稿_第1页
第六关系数据理论演示文稿_第2页
第六关系数据理论演示文稿_第3页
第六关系数据理论演示文稿_第4页
第六关系数据理论演示文稿_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六关系数据理论演示文稿目前一页\总数一百零六页\编于十八点(优选)第六关系数据理论目前二页\总数一百零六页\编于十八点

关系:描述实体、属性、实体间的联系。

--从形式上看,它是一张二维表关系模式:对关系的描述,用来定义关系。关系数据库:基于关系模型的数据库,利用关系来描述现实世界。

--从形式上看,它由一组关系组成。关系数据库的模式:定义这组关系的关系模式的全体。概念回顾目前三页\总数一百零六页\编于十八点

关系模式,记为R(U,D,DOM,F);其中:R为关系名,U为属性集,

D为U所对应的域的集合,

DOM为属性向域的映象集合,

F为属性间数据依赖关系的集合。

把关系模式看作一个三元组:

R(U,F)当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系目前四页\总数一百零六页\编于十八点

数据依赖是一个关系内部属性与属性之间的一种约束关系这种约束关系是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系是现实世界属性间相互联系的抽象是数据内在的性质是语义的体现1.什么是数据依赖目前五页\总数一百零六页\编于十八点数据依赖的类型函数依赖(FunctionalDependency,简记为FD)多值依赖(MultivaluedDependency,简记为MVD)其他目前六页\总数一百零六页\编于十八点2.关系模式的冗余和异常问题TNAMEADDRESSCnoCNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4例:有一个关系模式R(TNAME,ADDRESS,Cno,CNAME)目前七页\总数一百零六页\编于十八点出现的问题

数据冗余操作异常①修改异常②插入异常③删除异常结论:关系模式R的设计不是一个合适的设计解决的办法:用下面的两个关系模式R1和R2代替RR1(TNAME,ADDRESS)R2(TNAME,Cno,CNAME)目前八页\总数一百零六页\编于十八点TNAMEADDRESSTNAMECnoCNAMEt1a1t1c1n1t2a2t1c2n2t3a3t1c3n3

t2c4n4

t2c5n2

t3c6n4图关系模式分解的实例

(a)关系模式R1的实例

(b

)关系模式R2的实例

目前九页\总数一百零六页\编于十八点6.2规范化

规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。目前十页\总数一百零六页\编于十八点1、函数依赖定义6.1设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。对于关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应,或者说Y值由X值决定,因而这种依赖称为函数依赖。目前十一页\总数一百零六页\编于十八点例d4c4b1a3d3c3b2a2d2c2b1a1d1c1b1a1DCBAd4c4b2a3d3c3b2a2d2c2b2a1d1c1b1a1DCBA例设有关系模式R(A,B,C,D)。A—>B(a)(b)结论:当关系模式上存在函数依赖时,对其关系中的值将有严格的限制目前十二页\总数一百零六页\编于十八点Student(Sno,Sname,Ssex,Sage,Sdept)

假设不允许重名,则有:Sno→Sname,Sno→Ssex,Sno→Sage,Sno→Sdept,Sname→Sno,Sname→Ssex,Sname→SageSname→Sdept但Ssex→Sage若X→Y,并且Y→X,则记为X←→Y。若Y不函数依赖于X,则记为X→Y。若X→Y,则X称为这个函数依赖的决定属性组(决定因素)例:目前十三页\总数一百零六页\编于十八点说明:1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立3.数据库设计者可以对现实世界作强制的规定。目前十四页\总数一百零六页\编于十八点

实体内部各属性间的联系也分为1:1、1:n和m:n三类。例:职工(职工号,姓名,身份证号码,职称,部门)一对一关系(1:1)职工号与身份证号码之间就是一对一关系一对多关系(1:n)职称与职工号之间就是一对多的关系。多对多关系(m:n)职称与部门之间就是多对多的关系补充:属性间关系与函数依赖目前十五页\总数一百零六页\编于十八点

属性间的三种关系,并不是每种关系中都存在着函数依赖。如果X、Y间是1:1关系,则存在函数依赖:X←→Y

如果X、Y间是1:n关系,则存在函数依赖:Y→X(多方为决定因素)如果X、Y间是m:n关系,则不存在函数依赖。目前十六页\总数一百零六页\编于十八点2、平凡函数依赖与非平凡函数依赖在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但YX,则称X→Y是非平凡的函数依赖若X→Y,但YX,则称X→Y是平凡的函数依赖例:在关系SC(Sno,Cno,Grade)中,非平凡函数依赖:(Sno,Cno)→

Grade

平凡函数依赖:(Sno,Cno)→

Sno(Sno,Cno)→Cno目前十七页\总数一百零六页\编于十八点二、范式

满足一定条件的关系模式,称为范式(NormalForm)。范式的种类: 第一范式(1NF)

第二范式(2NF)

第三范式(3NF)

BC范式(BCNF)

第四范式(4NF)

第五范式(5NF)目前十八页\总数一百零六页\编于十八点各种范式之间存在联系:某一关系模式R为第n范式,可简记为R∈nNF。目前十九页\总数一百零六页\编于十八点1.第一范式(1NF)定义:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(firstnormalform,简记为1NF)的模式。

满足1NF的关系称为规范化的关系,否则称为非规范化的关系。关系数据库研究的关系都是规范化的关系。目前二十页\总数一百零六页\编于十八点

第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。但是满足第一范式的关系模式并不一定是一个好的关系模式。例关系模式R(NAME,ADDRESS,PHONE)(续)目前二十一页\总数一百零六页\编于十八点2.第二范式(2NF)局部依赖、完全依赖定义:对于FDX→Y,如果存在X1X有X1→Y成立,那么称X→Y是局部函数依赖(Y部分函数依赖于X);否则称X→Y是完全函数依赖。完全依赖也称为“左部不可约依赖”。完全函数依赖,记作:

X→Y局部函数依赖,记作:

X→Y∩PF目前二十二页\总数一百零六页\编于十八点候选码、主码定义:如果A是关系模式R的候选码中属性,那么称A是R的主属性;否则称A是R的非主属性。主属性、非主属性定义:设K为R<U,F>中的属性或属性组合,若K→U,则K为R的候选码。若关系模式R有多个候选码,则选定其中的一个做为主码(Primarykey)。目前二十三页\总数一百零六页\编于十八点第二范式(2NF)

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

如果数据库模式中每个关系模式都是2NF,则称数据库模式为2NF的数据库模式。目前二十四页\总数一百零六页\编于十八点

关系模式SLC(Sno,Sdept,Sloc,Cno,Grade)

Sloc为学生住处,假设每个系的学生住在同一个地方。码为(Sno,Cno)函数依赖包括:

(Sno,Cno)FGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc结论:不是2NF模式例:目前二十五页\总数一百零六页\编于十八点SLC不是一个好的关系模式(1)插入异常 (2)删除异常(3)数据冗余度大(4)修改复杂原因

Sdept、Sloc部分函数依赖于码。解决方法

SLC分解为两个关系模式,以消除这些部分函数依赖

SC(Sno,Cno,Grade)

SL(Sno,Sdept,Sloc)目前二十六页\总数一百零六页\编于十八点消除局部依赖的算法算法将关系模式R分解成2NF模式集。

设有关系模式R(U),主码是W,R上还存在FDX→Z,其中Z是非主属性和XW,则W→Z就是一个局部函数依赖。此时应把R分解成两个模式:

R1(XZ),主码是X;

R2(Y),其中Y=U-Z,主码仍是W,外码是X∩

如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中每一个关系模式都是2NF为止。目前二十七页\总数一百零六页\编于十八点说明:

将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。目前二十八页\总数一百零六页\编于十八点3.第三范式(3NF)定义:如果X→Y,Y→A,且Y→X和A∈Y,那么称X→A是传递函数依赖(A传递函数依赖于X)。传递函数依赖

定义:如果关系模式R是1NF,且每个非主属性都不传递依赖于R的码,那么称R是第三范式(3NF)的模式。第三范式(3NF)目前二十九页\总数一百零六页\编于十八点例:

SC(Sno,Cno,Grade)SL(Sno,Sdept,Sloc)例SC是2NF模式,而且也已是3NF模式SL是2NF模式,却不是3NF模式。分析:SL存在FDSno→Sdept,Sdept→Sloc,那么Sno→Sloc就是一个传递依赖。即SL中存在非主属性对码的传递函数依赖。目前三十页\总数一百零六页\编于十八点例把SL分解为两个关系模式,以消除传递函数依赖:SD(Sno,Sdept)

DL(Sdept,Sloc)目前三十一页\总数一百零六页\编于十八点消除非主属性对主码传递依赖的算法算法将关系模式R分解成3NF模式集设关系模式R(U),主码是W,R上还存在FDX→Z。并且Z是非主属性,ZX,X不是候选码,这样W→Z就是一个传递依赖。此时应把R分解成两个模式:

R1(XZ),主码是X;

R2(Y),其中Y=U-Z,主码仍是W,外码是X

如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中每一个关系模式都是3NF为止。目前三十二页\总数一百零六页\编于十八点定理

定理如果R是3NF模式,那么R也是2NF模式。证明:只要证明模式中局部函数依赖的存在蕴涵着传递函数依赖即可。K→A是个局部依赖,存在K’,K’K,有K’→A

又有K→K’因此,K→A是一个传递依赖∩目前三十三页\总数一百零六页\编于十八点违反3NF的传递依赖的三种情况码属性集X属性A码属性集X属性A码属性集X属性A(a)(b)(c)目前三十四页\总数一百零六页\编于十八点

如果R是3NF模式,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。如果R是3NF模式,那么R也是2NF模式。

将一个关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。但,并不能完全消除关系模式中的各种异常情况和数据冗余说明:目前三十五页\总数一百零六页\编于十八点4.BCNF(Boyce–CoddNF)

在3NF模式中,并未排除主属性对候选码的传递函数依赖。码属性A

属性集X码属性A属性集X(a)(b)目前三十六页\总数一百零六页\编于十八点定义:如果关系模式R是1NF,且每个属性都不传递依赖于R的候选码,那么称R是BCNF的模式。

BCNF定义

如果数据库模式中每个关系模式都是BCNF,则称为BCNF的数据库模式。目前三十七页\总数一百零六页\编于十八点定义设关系模式R<U,F>∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。若R∈BCNF每一个决定属性集(因素)都包含(候选)码R中的所有非主属性都完全函数依赖于码R中的所有主属性对每一个不包含它的候选码,也是完全函数依赖没有任何属性完全函数依赖于非码的任何一组属性R∈3NF目前三十八页\总数一百零六页\编于十八点例:在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称:

T→J

(S,J)→T

(S,T)→J目前三十九页\总数一百零六页\编于十八点分析(S,J)和(S,T)都可以作为候选码

S、T、J都是主属性STJ∈3NF

STJ不是BCNF原因:T→J,T是决定属性集,T不包含候选码目前四十页\总数一百零六页\编于十八点

解决方法:将STJ分解为二个关系模式:

SJ(S,J)∈BCNF,TJ(T,J)∈BCNF

没有任何属性对码的部分函数依赖和传递函数依赖SJSTTJTJ目前四十一页\总数一百零六页\编于十八点三、多值依赖例:学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教师可以讲授多门课程,每种参考书可以供多门课程使用。

课程C教员T参考书B

物理

数学

李勇王军

李勇张平

普通物理学光学原理物理习题集

数学分析微分方程高等代数

目前四十二页\总数一百零六页\编于十八点用二维表表示关系模式Teaching(C,T,B)普通物理学光学原理物理习题集普通物理学光学原理物理习题集数学分析微分方程高等代数数学分析微分方程高等代数…李勇李勇李勇王军王军王军李勇李勇李勇张平张平张平

…物理物理物理物理物理物理数学数学数学数学数学数学

…参考书B教员T课程C目前四十三页\总数一百零六页\编于十八点实例分析1)Teaching具有唯一候选码(C,T,B),即全码,Teaching是BCNF。2)模式Teaching的关系中存在着数据冗余,操作复杂。3)产生问题的原因:多值依赖

目前四十四页\总数一百零六页\编于十八点1、多值依赖定义设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且Z=U-X-Y,多值依赖X→→Y成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关。 例Teaching(C,T,B)

对于C的每一个值,T有一组值与之对应,而不论B取何值目前四十五页\总数一百零六页\编于十八点XiZi1Zi2…ZimYi1Yi2…Yin目前四十六页\总数一百零六页\编于十八点

物理普通物理学光学原理物理习题集李勇王军目前四十七页\总数一百零六页\编于十八点多值依赖(续)平凡多值依赖和非平凡的多值依赖

若X→→Y,而Z=φ,则称

X→→Y为平凡的多值依赖 否则称X→→Y为非平凡的多值依赖目前四十八页\总数一百零六页\编于十八点2.多值依赖的性质(1)多值依赖具有对称性若X→→Y,则X→→Z,其中Z=U-X-Y

多值依赖的对称性可以用完全二分图直观地表示出来。(2)多值依赖具有传递性

目前四十九页\总数一百零六页\编于十八点多值依赖的性质(续)(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。目前五十页\总数一百零六页\编于十八点四、第四范式(4NF)定义关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(YX),X都含有候选码,则R∈4NF。是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖如果R∈4NF,则R∈BCNF目前五十一页\总数一百零六页\编于十八点例:Teaching(C,T,B)∈4NF

存在非平凡的多值依赖C→→T,且C不是候选码把Teaching分解为如下两个关系模式:

CT(C,T)∈4NF CB(C,B)∈4NF

C→→T,C→→B是平凡多值依赖

目前五十二页\总数一百零六页\编于十八点五、规范化关系数据库的规范化理论是数据库逻辑设计的工具。一个关系只要其分量都是不可分的数据项,它就是规范化的关系,但这只是最基本的规范化。规范化程度可以有多个不同的级别目前五十三页\总数一百零六页\编于十八点规范化程度过低的关系不一定能够很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂、数据冗余等问题一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化目前五十四页\总数一百零六页\编于十八点关系模式规范化的基本步骤

1NF ↓消除非主属性对码的部分函数依赖

2NF↓消除非主属性对码的传递函数依赖

3NF ↓消除主属性对码的传递函数依赖

BCNF ↓消除非平凡且非函数依赖的多值依赖

4NF目前五十五页\总数一百零六页\编于十八点规范化的基本思想.消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”。即采用“一事一地”的模式设计原则让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去所谓规范化实质上是概念的单一化目前五十六页\总数一百零六页\编于十八点不能说规范化程度越高的关系模式就越好在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式上面的规范化步骤可以在其中任何一步终止目前五十七页\总数一百零六页\编于十八点6.3数据依赖的公理系统

数据依赖的公理系统,是模式分解算法的理论基础。函数依赖的一个有效而完备的公理系统-Armstrong公理系统。目前五十八页\总数一百零六页\编于十八点逻辑蕴含 定义对于满足一组函数依赖F的关系模式R<U,F>,其任何一个关系r,若函数依赖X→Y都成立,则称

F逻辑蕴含X→Y目前五十九页\总数一百零六页\编于十八点一、Armstrong公理系统一套推理规则,是模式分解算法的理论基础用途从一组函数依赖求得蕴含的函数依赖(例:已知函数依赖集F,要问X→Y是否为F所蕴含。从已知的一些FD,是否可以推导出另外一些FD

)求给定关系模式的码目前六十页\总数一百零六页\编于十八点1.Armstrong公理系统

设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的函数依赖集。FD的推理规则有以下三条:

Al.自反律(Reflexivity):若Y

X

U,则X→Y为F所蕴含。A2.增广律(Augmentation):若X→Y为F所蕴含,且Z

U,则XZ→YZ为F所蕴含。A3.传递律(Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。

注意:由自反律所得到的函数依赖均是平凡的函数依赖,自反律的使用并不依赖于F目前六十一页\总数一百零六页\编于十八点(l)A1(自反律,Reflexivity):若Y

X

U,则X→Y为F所蕴含。证:设Y

X

U

对R<U,F>

的任一关系r中的任意两个元组t,s:若t[X]=s[X],由于Y

X,有t[Y]=s[Y],所以X→Y成立.自反律得证证明(1)目前六十二页\总数一百零六页\编于十八点(2)A2(增广律,Augmentation):若X→Y为F所蕴含,且Z

U,则XZ→YZ为F所蕴含。证:设X→Y为F所蕴含,且Z

U。设R<U,F>

的任一关系r中任意的两个元组t,s;若t[XZ]=s[XZ],则有t[X]=s[X]和t[Z]=s[Z];由X→Y,于是有t[Y]=s[Y]所以有t[YZ]=s[YZ],所以XZ→YZ在R上成立.增广律得证。证明(2)目前六十三页\总数一百零六页\编于十八点(3)A3(传递律,Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。证:设X→Y及Y→Z为F所蕴含。对R<U,F>

的任一关系r中的任意两个元组t,s。若t[X]=s[X],由于X→Y,有t[Y]=s[Y];再由Y→Z,有t[Z]=s[Z],所以X→Z为F所蕴含.传递律得证。证明(3)目前六十四页\总数一百零六页\编于十八点2.导出规则

根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:合并规则:由X→Y,X→Z,有X→YZ。(A2,A3)伪传递规则:由X→Y,WY→Z,有XW→Z。(A2,A3)分解规则:由X→Y及ZY,有X→Z。(A1,A3)引理X→A1A2…Ak成立的充分必要条件是X→Ai成立(i=l,2,…,k)。目前六十五页\总数一百零六页\编于十八点3.函数依赖闭包定义在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫作F的闭包,记为F+。例已知关系模式R(ABC),F={A→B,B→C},求F+。据规则A1可推出A→φ(φ表示空属性集),A→A,…。据已知的A→B及规则A2可推出AC→BC,AB→B,A→AB,…。据已知条件及规则A3可推出A→C等。结论:F+计算是NP完全问题问题:能否从已知的FD集F,推导出FDX→Y?目前六十六页\总数一百零六页\编于十八点4.属性集的闭包定义设F为属性集U上的一组函数依赖,X

U,XF+称为属性集X关于函数依赖集F的闭包。

XF+={A|X→A能由F根据Armstrong公理导出},引理设F为属性集U上的一组函数依赖,X,Y

U,X→Y能由F根据Armstrong公理导出的充分必要条件是Y

XF+用途将判定X→Y是否能由F根据Armstrong公理导出的问题,就转化为求出XF+

,判定Y是否为XF+的子集的问题目前六十七页\总数一百零六页\编于十八点求属性集闭包的算法算法:求属性集X相对于FD集F的闭包X+设属性集X的闭包为closure,其计算算法如下:

closure=x;do{ifF中有某个FDU→V满足Uclosure

thenclosure=closure∪V;}while(closure有所改变)目前六十八页\总数一百零六页\编于十八点例例属性集U为ABCD,FD集为{A→B,B→C,D→B}。设X=A,求X+。计算步骤:·设X(0)=A·计算X(1):在F中找一个函数依赖,其左边为A,在F中有其函数依赖A→B。所以X(1)=AB=AB。·计算X(2):在F中找包含X(1)的函数依赖,有BC。所以X(2)=ABC=ABC。·计算X(3):在F中找包含X(2)的函数依赖,没有新的。

(A)+=ABC

目前六十九页\总数一百零六页\编于十八点5.Armstrong公理系统的有效性与完备性建立公理系统体系目的:从已知的

f

推导出未知的f明确:1.公理系统推导出来的f正确?2.F+中的每一个f都能推导出来?

/f不能由F导出,f∈F+

FF+f目前七十页\总数一百零六页\编于十八点Armstrong公理系统的有效性与完备性有效性:由F出发根据Armstrong公理推导出来的每一个函数依赖一定在F+中

/*Armstrong正确完备性:F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来

/*Armstrong公理够用,完全完备性:所有不能用Armstrong公理推导出来f,都不为真

f不能用Armstrong公理推导出来,

f∈F+目前七十一页\总数一百零六页\编于十八点Armstrong公理的完备性及有效性说明:“蕴含”==“导出”等价的概念

F+==由F出发借助Armstrong公理导出的函数依赖的集合目前七十二页\总数一百零六页\编于十八点6.FD集的最小依赖集定义如果关系模式R(U)上的两个函数依赖集F和G,有F+=G+,则称F和G是等价的函数依赖集目前七十三页\总数一百零六页\编于十八点定义设F是属性集U上的FD集。如果Fmin是F的一个最小依赖集,那么Fmin应满足下列四个条件: ⑴Fmin+=F+; ⑵每个FD的右边都是单属性; ⑶Fmin中没有冗余的FD(即Fmin中不存在这样的函数依赖X→Y,使得Fmin与Fmin-{X→Y}等价); ⑷每个FD的左边没有冗余的属性(即Fmin中不存在这样的函数依赖X→Y,X有真子集W使得Fmin-{X→Y}∪{W→Y}与Fmin等价)。定义目前七十四页\总数一百零六页\编于十八点算法算法计算函数依赖集F的最小依赖集Fmin。具体过程分三步:①据推理规则的分解性(A5),得到一个与F等价的FD集Fmin,Fmin中每个FD的右边均为单属性。逐一检查F中各函数依赖:X→Y,若Y=A1A2…Ak,k>1,则用{X→Aj|j=1,2,…,k}来取代X→Y。目前七十五页\总数一百零六页\编于十八点②在G中消除冗余的FD逐一检查F中各函数依赖:X→A,令G=F-{X→A},若AXG+,则从F中去掉此函数依赖。目前七十六页\总数一百零六页\编于十八点③在G中消除左边冗余的属性逐一取出F中各函数依赖:X→A,设X=B1B2…Bm,逐一考查Bi

(i=l,2,…,m),若A(X-Bi

)F+

,则以X-Bi

取代X。目前七十七页\总数一百零六页\编于十八点例例设F是关系模式R(ABC)的FD集,F={A→BC,B→C,A→B,AB→C},试求Fmin。①先把F中的FD写成右边是单属性形式:

F={A→B,A→C,B→C,A→B,AB→C}得F={A→B,A→C,B→C,AB→C}②F中A→C可从A→B和B→C推出,因此A→C是冗余的,可删去。得F={A→B,B→C,AB→C}③F中AB→C可从A→B和B→C推出,因此AB→C也可删去。最后得F={A→B,B→C},即所求的Fmin。目前七十八页\总数一百零六页\编于十八点6.4关系模式的分解特性定义设有关系模式R(U),属性集为U,R1、…、R

k都是U的子集,并且有R1∪R2∪…∪Rk=U。关系模式R1、…、R

k的集合用ρ表示,

ρ={R1,…,Rk}。用ρ代替R的过程称为关系模式的分解。这里ρ称为R的一个分解,也称为数据库模式。1.模式分解问题目前七十九页\总数一百零六页\编于十八点图4.5模式分解示意图

目前八十页\总数一百零六页\编于十八点模式分解两个问题①σ和r是否等价,即是否表示同样的数据。这个问题用“无损分解”特性表示。②在模式R上有一个FD集F,在ρ的每一个模式Ri上有一个FD集Fi,那么{F1,…,Fk}与F是否等价。这个问题用“保持依赖”特性表示目前八十一页\总数一百零六页\编于十八点2.无损分解r1AB1112(b)rABC111121(a)(c)r2A11C

例设有关系模式R(ABC),分解成ρ={AB,AC}r=r1⋈r2

在r投影、连接以后仍然能恢复成r,即未丢失信息。这种分解称为“无损分解”。目前八十二页\总数一百零六页\编于十八点(续)r2AC1413(c)1r1AB112(b)rABC114123(a)11(d)

r1⋈r2AB111212C4433

例设有关系模式R(ABC),分解成ρ={AB,AC}r≠r1⋈r2

在r投影、连接以后比原来r的元组还要多,但把原来的信息丢失了。这种分解称为“损失分解”。目前八十三页\总数一百零六页\编于十八点(续)定义设R是一个关系模式,F是R上的一个FD集。R分解成数据库模式ρ={R1,…,R

k

}。如果对R中满足F的每一个关系r,都有

r=πR1(r)⋈πR2(r)⋈…⋈πRk(r)

那么称分解ρ相对于F是“无损联接分解”(losslessjoindecomposition),简称为“无损分解”,否则称为“损失分解”(lossydecomposition)。目前八十四页\总数一百零六页\编于十八点(续)定理设ρ={R1,…,Rk

}是关系模式R的一个分解,r是R的任一关系,ri=πRi(r)(1≤i≤k),那么有下列性质:

rmρ(r);②若s=mρ(r),则πRi(s)=ri;

mρ(mρ(r))=mρ(r),这个性质称为幂等性(Idempotent)。R的投影连接表达式用符号mρ(r)来表示。目前八十五页\总数一百零六页\编于十八点Rrsππ图中:图4.8r的投影连接变换示意图

ρ={R1,…,Rk

}r1,…,rks1,…,sk⋈⋈ri=πRi(r)(1≤i≤k)si=πRi(s)(1≤i≤k)rmρ(r)si=ri(1≤i≤k)目前八十六页\总数一百零六页\编于十八点Rrsππ图4.9泛关系假设下的示意图

ρ={R1,…,Rk

}r1,…,rk⋈先决条件:即r是R的一个关系。也就是先存在r(泛关系)的情况下,再去谈论分解,这是关系数据库理论中著名的“泛关系假设”目前八十七页\总数一百零六页\编于十八点Rrs……π图4.10无泛关系假设时的示意图

ρ={R1,…,Rk

}r1,…,rks1,…,sk⋈⋈存在一个数据库实例σ<r1,…,rk>,再设s=r1⋈r2⋈…⋈rk那么π

Ri(s)未必与ri相等原因:ri

中可能有“悬挂”元组目前八十八页\总数一百零六页\编于十八点πBC

(r1⋈r2)≠r2。这里r2中元组(b2c2)就是一个悬挂元组,由于它的存在,使得r1和r2不存在泛关系r。r2BCb1c1b2c2(b)关系r2例例设关系模式R(ABC)分解成ρ={AB,BC}。r1ABa1b1(a)关系r11cbABCa11(c)r1⋈r2r1⋈r2目前八十九页\总数一百零六页\编于十八点3.无损分解的测试方法算法无损分解的测试输入:关系模式R=A1…An,F是R上成立的函数依赖集,ρ={R1,…,Rk

}是R的一个分解输出:判断ρ相对于F是否具有无损分解特性目前九十页\总数一百零六页\编于十八点方法:①构造一张k行n列的表格,每列对应一个属性Aj(1≤j≤n),每行对应一个模式Ri(1≤i≤k)。如果Aj在Ri中,那么在表格的第i行第j列处填上符号aj,否则填上bij。②把表格看成模式R的一个关系,反复检查F中每个FD在表格中是否成立,若不成立,则修改表格中的值。目前九十一页\总数一百零六页\编于十八点方法(续):修改方法如下: 对于F中一个FDX→Y,如果表格中有两行在X值上相等,在Y值上不相等,那么把这两行在Y值上也改成相等的值。如果Y值中有一个是aj,那么另一个也改成aj;如果没有aj,那么用其中一个bij替换另一个值(尽量把下标ij改成较小的数)。一直到表格不能修改为止。(这个过程称为chase过程)目前九十二页\总数一百零六页\编于十八点方法(续):③若修改的最后一张表格中有一行是全a,即a1a2…an,那么称ρ相对于F是无损分解,否则称损失分解。目前九十三页\总数一百零六页\编于十八点例例设关系模式R(ABCD),R分解成ρ={AB,BC,CD}。如果R上成立的函数依赖F1={B→A,C→D},那么ρ相对于F1是否为无损分解?a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBA目前九十四页\总数一百零六页\编于十八点例F1={B→A,C→D}a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBAa1a4结论:相对于F1,R分解成ρ是无损分解目前九十五页\总数一百零六页\编于十八点例F2={A→B,C→D}a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBA结论:相对于F2,R分解成ρ是损失分解a4目前九十六页\总数一百零六页\编于十八

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论