数据库设计理论_第1页
数据库设计理论_第2页
数据库设计理论_第3页
数据库设计理论_第4页
数据库设计理论_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

数据库的设计理论

第一节,关系模式的设计问题

一概念:

1.关系模型:用二维表来表达实体集,用外键来表达实体间的联系,这样的

数据模型,叫做关系数据模型。

关系模型包含内涵和外延两个方面:

外延:就是关系或实例、或当前值。它与时间有关,随时间的变化而变化。(重

要是由于元组的插入、删除、修改等操作引起的)

内涵:内涵是与时间独立的,它涉及关系属性、以及域的一些定义和说明。

尚有数据的各种完整性约束。

数据的完整性约束分为静态约束和动态约束。

静态约束涉及数据之间的联系(称为数据依赖),主键的设计和各种限制。

动态约束重要定义如插入、删除和修改等操作的影响。

通常我们称内涵为关系模式。

2.关系模式:是对一个关系的描述,二维表的表头那一行称为关系模式,又

称为表的框架或记录类型。

关系模式的定义涉及:模式名、属性名、值域名和模式的主键。关系模式仅

仅是对数据特性的描述。

关系模式的一般形式为R(U,D,DOM,F)

R是关系名。

U是所有属性的集合。

D是属性域的集合。

DOM是U和D之间的映射关系,关系运算的安全限制。

F是属性间的各种约束关系,也称为数据依赖。

关系模式可以表达为:

关系模式(属性名1,属性名2,……,属性名n)

示例:学生(学号,姓名,年龄,性别,籍贯)o

当且仅当U上的一个关系r满足F时,r就称为关系模式R(U,F)上的

一个关系,R是关系的型,r是关系的值,每个值称为R的一个关系。

关系数据库模式:

一个数据库是由多个关系构成的。

一个关系数据库相应多个不同的关系模式,关系数据库模式是一个数据库中

所有的关系模式的集合。七规定了数据库的全局逻辑结构。

关系数据库模式可以表达为:

S={Ri<Ui,Di,DOM,Fi>|i=1,2,...,n}

3.关系子模式

关系子模式是用户所用到的那部分数据的描述。

外模式是关系子模式的集合。

4.存储模式

存储模式及内模式。

关系数据库理论的重要内容:

(1)数据依赖。数据依赖起着核心的作用。

(2)范式。

(3)模式的设计方法。

如何设计一个合理的数据库模式:

(1)与实际问题相结合。

泛关系模式:把现实问题的所有属性组成一个关系模式

泛关系:泛关系模式的实例称为泛关系。

泛关系模式中存在的问题:

a数据冗余b更新异常,c插入异常d删除异常。

(2)数据库设计理论:

借助近代代数工具,把抽象的数据理论同实际问题结合起来。

理论基础:数据依颇(数据的相关性)。

二,关系模式及其评价。

..关系数据库设计的核…关系模式的设计。

..关系模式的设计:

按照一定的原则,从数量众多的而又互相关联的数据中构造出一组即能

较好的反映现实世界,而乂有良好的操作性能的关系模式。

3.关系模式的优劣、评价、改善:

冗余度高

修改困难

插入问题

删除问题

这些问题的产生因素是:属性间的约束关系太强,即数据间的依赖关系太

强。

解决的方法:将关系模式分解为一组较抱负的关系模式。

第二节函数依赖

一,函数依赖FunctionalDependency

函数依赖是数据依赖的一种,反映属性或属性之恒的依存、互相制约的关系,

既反映现实世界的约束关系。

二,函数依赖的定义

设R(U)是属性U上的一个关系模式,X和Y均为U={AI,A2,…An}

的子集,r为R的任一关系,假如对于r中的任意两个元组u和v,只要有

U[X]=V[X],就有U[Y]=V[Y],则称X函数决定Y,或称Y函数依赖于X,

记作:

X-Y。

三,函数依赖的语义范畴:

1.语义:数据所反映的现实世界事务本质的联系。

2.根据语义来拟定函数依赖型的存在与否。

3.函数依赖反映属性之间的一般规律,必须在关系模式F的任何一个关系

r都满足约束条件。

回顾概念

键:由一个或多个属性组成。

设R(U)为一个关系模式,F为R的函数依赖集,X为属性集U的子

集。

(1)超键;能唯一标记元组的属性集。

假如X-*U£F,则X是R的超键,

(2)候选键:不具有多余属性的超键

aX是R的超键。

h且不存在X的真子集Y,使得Y-U已F+

则称X是R的候选键

(3)主键:用户选作元组标记的一个候选键。

(4)主属性:包含任何一个候选键的属性。

(5)非主属性:不包含任何一个候选键的属性。

(6)外键:假如关系R的某一个属性组不是该关系自身的候诜键,而是另

一个关系的候选键,则称该属性组是R的外来关键码,或称为外键(外码)。

如何拟定候选码?

(1)假如有属性不在函数依赖集中出现,那么它必然包含在候选码中。

(2)假如有属性不在函数依赖集中任何函数依赖的右边出现,那么它必然包

含在候选碍中。

(3)假如该属性或属性组能唯一标记元组,则它就是候选码。

根据对数据库的语义描述,拟定其中候选码,同时还可以写出该关系模式的

函数依赖集。

四,函数依赖的关系

属性间的关系决定函数依赖关系。

设X和Y都是U的子集:

1X和Y的联系是1:1则X-Y,Y-X.

2X和Y的联系是M:1(M>1)则X-Y.

X和Y的联系是M:N(M,N>1)贝山X、Y之间不存在函数依赖。

五函数依赖图:FD图。

六完全函数依赖和部分函数依赖

在R(U)中,假如X-Y,并且对于X的任何真子集X',都不存在

X'-Y,则称Y完全依赖于X,记作

X-Y(箭头上加个F表达FULL完全函数依赖)

否则,假如X-Y,且X中存在一个真子集X',使得X'-Y,则Y

部分函数依赖XO

X-Y(箭头上面加一个P.表达PART.部分函数依赖)

七平凡函数依赖和非平凡函数依赖

设X,Y均为某关系的属性集,并且X-Y,

若Y包含于X,则称X-Y为平凡函数依赖(Y是X的子集)。

若Y不包含于X,则称X-Y为非平凡函数依赖(Y不是X的子集)

第三节函数依赖的蕴涵与公理体系

一,函数依赖的逻辑蕴含

定义:设有关系模式R(U),及其函数依赖集F,假如对于R的任何一个

满足F的关系r,函数依赖X-Y都成立,则称F逻辑蕴含X-Y或称

XfY可以由F推出,记作:

F|=X—>Y

例题:关系模式R=(A,B,C),函数依赖集F={A-B,B-C)

则F逻辑蕴含A-C

记作:

Ff=A—>C

二,F闭包

定义:若F为关系模式R(U)的函数依赖集,我们把F以及所有被F

逻辑蕴含的函数依赖的集合称为F的闭包,记作F+。

F+=(X-Y|F卜X-Y)

Armstrong公理

Fl自反律:若Y包含于X,则XfY(Y是X的子集)

F2增广律:若X-Y为F所蕴含,则XZ-YZ在R上成立。

F3传递律:若XfY,YfZ在R上成立,则XfZ在R上成立。

F4伪增律:Z是W的子集,XfY为F所蕴含,则XW-YZ在R上成立。

F5伪传律:若X-Y,YW-Z为F所蕴含,则XW-Z在R上成立。

F6合并律:若X-Y,X-Z为F所蕴含,则X-YZ在R上成立。

F7分解律:若Z是Y的子集,XfY为F所蕴含,则XfZ在R上成立。

四,属性集的闭包

定义:若V为关系模式R(U)的函数依赖集,X足U的子集,则由

Armstrong公理推导出来的所有X-Ai所形成的属性集{Ai|i=l,2,-,n}称

为X关于F的闭包记为X+。

属性集闭包的举例:

设:R=ABC,F={AfB,BfC)当X分别是A,B,C,时,求X+

解:当X=AfFt,X+=ABC

当X=B时,X+=BC

当X=C时,X+=C

定理:XY能根据Armstrong推理规则导出的充要条件是:

Y£X+

只要Y是X+的子集,则X-Y。

只要XfY,则Y一定是X+的子集。

定理:Armstrong公理的完备性定理

函数依赖推理规则系统(自反律、增广律、传递律)是完备的。

函数依赖公理体系

Armstrong公理体系

由于Armstrong公理的完备性,Armstrong公理及其推论构成了一个完备的逻

辑推理体系,称为Armstrong公理体系:

A,•套形式推理规则。

B,运用这些推理规则可以求出给定关系模式的关键字。

C,并且可以从关系模式的一组已知函数依赖出发,求得它蕴含的所有函数

依赖。

D,或者对于给定的F和X-Y,判断X-Y是否在F+中。

E,是关系规范化理论的依据。

计算x+的算法

1)依据:

若F为关系模式R(U)的函数依赖集,X.Z,W是U的子集,对于任

意的ZfW£F,若Z是X的子集,则X-XW

2)算法的实现

输入:关系模式R上的子集X,R上的函数依赖F

输出:X关于F的闭包X+

3)算法:

a.令X(0)=",X+二X;

.b.假.X(0..X.,.X(0..X.,否则,转

c.对于f中的每个未被访问过的函数依赖

Y-Z,若Y包含于X+,则令

X+=X+UZ,为被访问过的函数依赖设立访问标志,转b;

d.输出X+

结论

鉴定函数依赖X-Y是否能由F导出的问题,可以转化为求X+的闭包,

并鉴定Y是否是X+子集的问题。

即求闭包的问题可以转化为求属性集的问题。

鉴定给定函数依赖X-Y是否蕴含与函数依赖集F算法实现:

输入:函数依赖集F,函数依赖X-Y

输出:若X-YEF+,输出直,否则输出假。

四,函数依赖的等价和覆盖

定义:设F和G是关系模式R(U)上的两个函数依赖集,假如F+=G+,

则称F等价于G,亦称F覆盖G或者G覆盖F,记作:

F=G

定理1,设F和G是关系模式R(U)的两个函数依赖集,那么F+=G+

的充足必要条件是:

G三F+且F£G+

定理2,设F和G是关系模式R(U)的两个函数依赖集,那么F+=

G+的充足必要条件是

G=F+且F£G+

定理3,每个函数依赖集F都可以被一个右部只有单属性的函数依赖集G

所覆盖。

五,最小函数依赖集

(1)设F是函数依赖集,假如F满足

(2)F中每个函数依赖X-Y的右边均为单个属性。

(3)F中的任何一个函数依赖XfA,其F—(X-A)都与F不等价。

F中的任何一个函数依赖X-A,Z为X的真子集,

(F-(X-*A))U{Z-A}都与F不等价。

则称,F为最小函数依赖集。

(2)是消除右侧冗余。

(3)是消除左侧冗余。

由于(2),(3)没有先后顺序,所以,最小函数依赖不是唯一的。

第四节关系模式的分解

一,关系模式分解的衡量标准

(1)仅具有无损连接性。(不增减信息)

(2)仅保持函数的依赖集。(不破坏属性间存在的依赖关系)

(3)即具有无损连接性,又保持函数依赖集。

二,分解的无损连接性:

1.定义:设F是关系模式R的函数依赖集

o={RI(UI,F1),R2(U2,F2),Rk(Uk,Fk)}

是R的一个分解,

D10={JTui(r)xiJlu2(r)••…(r)}

JIUK

或者

mo二义iHui(r)

1=1

假如R满足F的任何一个关系均有

r=m(J(r)

则分解具有无损连接性。

定理:设。=(RI<U1,F1>,R2<U2,F2>,-,Rk<Uk,Fk>)

为关系模式的一个分解,r为R的任何一个关系

ri=Jiui(r)则:

⑴r三mo(r)

(2)假如S=mo(r)则冗ui(S)=ri

(3)mo(mo(r))=ma(r)

结论:

分解后的关系作自然联结必包含分解前的关系。即分解不会丢失信息,但也

许增长信息。只有r=ma(r)时,分解才具有无损连接性。

为什么要进行关系分解?

一个关系分解后,可以存放本来不能存放的信息(通常称为“悬挂”的元组),

这是实际所需要的,正是分解的优点。

在做自然联结时,这类“悬挂”元组自然丢失了,但不是信息的丢失,而是合

理的。

检查分解无损联结的算法

设关系模式R(A1,A2,...,An)

F是他的函数依赖集,

。={RI,R2,R3,Rk}为R的一个分解。

算法

(1)构造初始表

构造一个k行n列的初始表,其中每列相应于R的一个属性,每行用于表

达分解后的一个模式组成°假如属性Aj属于关系模式Ri,则在表的第i行第j

列置符号aj,否则,置符号bij.

(2)根据F中的函数依赖修改表的内容

考察F中的每一个函数依赖X-Y,在属性组X所在的那些列上寻

找具有相同符号的行,假如找到这样的两行或更多行,则修改这些行,使这些行.上

的属性组Y所在的列上的元素相同。

修改规则:假如Y所在的要修改的行中有一个为aj,则这些元素均变

为aj,否则,改动为bmj,其中m为这些行的最小行号。

注意:若某个bij被改动,则该列中凡是与bij相同的符号均作相同的改

动。

循环的对F中的函数依赖进行逐个解决,直到发现表中有一行变为:

al,a2,a3,…,an或者不能再被修改为止。

(3)断分解是否无损联结

假如通过修改,发现表中有一行变为al,a2,…,an,则分解是无损联

结的,否则,分解不具有无损联结性。

定理:检查分解无损联结的算法,可以对的鉴定一个分解是否具有无损联结性。

定理:设。=(RI,R2)是模式R的一个分解,F是R的函数依

赖集,那么,。是R(关于F的)的无损分解的充要条件是:

(RInR2)fRI-R2£F

或者

(RIClR2)R2-RlGF

保持函数依赖的分解

定义:设F是关系模式R在所有属性集U上的函数依赖集,Z是U的

子集,F在Z上的一个投影用nz(F)表达,定义为:

nz(F)={X->Y|X->YWF+且XY是Z的子集}

设关系模式R的一个分解。:{RI,R2,…,Rk}

假如Pi=nRi的并集

(FlUF2U…Fk)*=F+

则,分解保持函数依颈集F

关系模式满足的拟定条件称为范式。根据满足的约束条件不同,范式可以分

为INF、2NF、3NF、BCNF、4NF、5NF等。

不同的范式,性质不同。

关系模式规范化:把一个低一级的关系模式分解为高一级的关系模式的过

程。

回顾概念

1.超键:能唯一标记元组的属性集。

候选键:不具有多余属性的超键

a..…的超键。

.b..且不存在X的真子集Y,使.Y-.RF+

则称X是R的候选键

2.主键:用户选作元组标记的一个候选键。

3.主属性:包含在任何一个候选键中的属性。

非主属性:不包含在任何一个候选键中的属性。

外键:假如关系R的某一个属性组,不是该关系自身的候选关键字,而是

另一关系的候选关键字,则称该属性组是R的外来关键字或外部关键

字。

完全函数依赖和部分函数依赖

在R(U)中,假如X-Y,并且对于X的任意真子集X',都不存在

X'一Y,则称Y完全依赖于X,否则,假如X-Y,且存在X的真子集

X’,使得X'-Y成立,则Y部分函数依赖于Y。

完全函数依赖X雪Y部分函数依赖X旦Y

如何拟定关系模式中的候选码?

(1)假如有属性不在函数依赖集中出现,那么它必须包含在候选码中。

(2)假如有属性不在函数依赖集中任何函数依赖的右边出现,那么它必然包

含在候选码中。

(3)假如该属性或属性组能唯一的标记元组,则它就是候选码.

未给出关系模式的函数依赖集,如何拟定其中的候选码?

根据对数据库的语义描述,拟定其中的候选码,同时还可以写出该关系模式

上的函数依赖集。

第一范式:INF

关系模式的所有域为简朴域,其元素不可再分,是数据项而不是数据组,这

样的关系模式称为第一范式:1NF

存在的问题:数据冗余,插入异常,删除异常,修改异常。

第二范式:2NF

给定关系模式R及其上的函数依赖集F,假如R上的任何一个非主属

性都完全依赖于他的每一个候选关键字,则称R是第二范式:2NF

若关系模型H包含的每个关系模式都是2NF的,则称该关系模型是

2NF的。

存在的问题:也许存在数据冗余,插入异常,删除异常,修改异常。

结论:若R£1NF,且R中所有的候选码为单一属性,则Re2NF。

传递函数依赖

在R(U)中,假如XfY,Y-Z,并且Z不是Y的子集,那么称

X-Z传递函数依赖,即Z传递函数依赖于X>

第三范式

给定关系模式R及其上的函数依赖F,假如R的任何一个非主属性都不

传递函数依赖于他的任何一个候选码,则称R是第三范式3NFo

若关系模型H包含的每一个关系模式都是3NF的,则称该关系模式是

3NF的。

定理:一个3NF的关系模式必然是3NF的。

BCNF(改善了的3NF)

给定关系模式R及其上的函数依赖集F,假如F中每一个非平凡函数依

赖XfY的左部(决定因素)X中必具有候选码,则称R是Boyde/Codd

范式,简称BCNFo

ReINF若X-Y且Y不是X的子集,X中必具有候选码。则

ReBCNF

BCNF的内涵

(1)非主属性对候选码完全函数依赖。

(2)主属性对不含他的候选码完全函数依赖。

(3)没有属性完全函数依赖于一组非主属性。

(4)主属性不传递函数依赖于任何一个候选码。

(5)主属性不传递函数依赖于任何一个候选码。

定理:BCNF满足3NFo

重叠的候选码

一个模式有两个非单属性的候选码,且两者的交莫非空,则称这两个候选码

是重叠的。

若模式中没有重叠的候选码时,则2NF一定是BCNF。

只有当模式中有重叠的候选码时,3NF不一定是BCNF。

总结:

INF

消除了非主属性对候选码的部分函数依赖。

2NF

I消除了非主属性对候选码的传递函数依赖。

3NF

I消除了主属性对候选码的部分和传递函数依赖。

BCNF

规范化的基本思想

逐步消除不合适的函数依赖,使数据库的各个关系模式达成某种限度上的分

离。

模式分解的算法

模式分解的基本规定:

(1)分解后的关系模式与分解前的关系模式等,即分解必须

(2)具有无损联结性,

(3)保持函数依赖。

逐步分解的定理:

设F是关系模式R的函数依赖集

P={RI,R2,…,Rk}是R关于F的一个无损连接分解。

1.若P1={SI,S2,Sm}是Ri关于Fi的一个无损连接分解,

其中Fi=JiRi(F),则P2={Rl/-Ri-I,Sl,—,Sm,Ri+l,-,Rk)是R关于F

的无损分解。

2.设P3={RI,…,Rk,Rk+l,…,Rn}是R的一个分解,其中P是P3的

子集,,则P3也是关于F的无损联结分解。

面向BCNF且具有无损联结的分解

算法1:输入:关系模式R,函数依赖集F,

输出:R的一个无损联结的分解,其中每一个子模式都满足F

在其上投影的BCNF.

算法实现:

反复运用逐步分解定理,逐步分解关系模式R使得每次分解都具有

无损联结性。并且每次分解出来的子关系模式都至少有一个具有BCNF范

式。

(1)置初值P={R),

(2)检查P中的关系模式,假如均属BCNF则转到第4步。

(3)在P中找出不属于BCNF的关系模式S,那么S中必能找出一

个函数依赖X-AeF(A不包含于X)且X不是S的候选码。因此,XA

必然不包含S的所有属性。

把S分解为{SI,S2},设SI=XA,S2=S-A,并以{SI,S2}

代替R中的S,返回(2)。

(4)终止分解,输出P.

(1)算法出现的问题:

(2)分解结果不是唯一的。

(3)分解不保证保持函数依赖。

面向3NF且保持函数依赖的分解

算法2输入:关系模式R及其上的最小函数依赖集F.

输出:R的保持函数依赖的分解,其中每个关系模式是关于F在其上投影

的3NF。

算法实现:

(1)假如R中存在一些不在F中出现的属性,则将他们单独构成一个关

系模式,并从关系模式R中消去。

(2)假如F中有一个函数依赖X-A,且XA二R,则R不用分解,算

法终止。

(3)对F中的每人函数依赖X-A,构造一个关系模式XAo假如

X-*Al,X-*A2,…,X—An均属于F,则构造一个关系模式XA1A2-

Ano

本算法注意,必须是最小函数依赖集F,否则犯错。

面向3NF既有无损联结性,又保持函数依赖分解

算法:输入:关系模式R及其上的最小函数依赖集Fo

输出:R的具有无损联结性及保持函数依赖的分解。

算法实现:

(1)按算法2对关系模式R进行分解,设结果为P

P={RI,R2,Rk}

(2)X是R的候选码t=Pu{x}是R的一个分解。

(3)求t的最小集合。(当Ri是Rj的子集et时,消去Ri)

定理算法的对的性。

设X是R的候选码,则t=Pu{x}是R的一个分解,且所有的关系都

满足3NF,同时具有无损联结性,和保持函数依赖性<

由于P中所有模式均为3NF,X中属性之间不存在传递和部分函数依赖,

即X也是RNF的,分解t也具有无损联结性△由于X是R的候选码,验证

表中模式X所相应的行,经修改后所有由a组成。

模式设计的原则

关系模式R相对于函数依赖F分解成数据库模式

P={RI,R2,Rk)一般具有下面4个特性。

(1)P中的每个关系模式Ri上应具有某种范式的性质。

(如3NF,BCNF)

(2)无损联结性。

(3)保持函数依赖集。

(4)最小性,即P中模式个数应最少,且模式中属性息数应最少。

一个好的模式设计方法应符合下了三条原则。

(1)表达性。

(2)分理性。

(3)最小冗余性。

多值依赖

函数依赖有效的表达了属性之间的多对一联系.但不能表达属性之间的一对

多联系,更不能

温馨提示

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

评论

0/150

提交评论