当前位置:文档之家› 数据库设计理论

数据库设计理论

数据库的设计理论第一节,关系模式的设计问题一概念:1. 关系模型:用二维表来表示实体集,用外键来表示实体间的联系,这样的数据模型,叫做关系数据模型。

关系模型包含内涵和外延两个方面:外延:就是关系或实例、或当前值。

它与时间有关,随时间的变化而变化。

(主要是由于元组的插入、删除、修改等操作引起的)内涵:内涵是与时间独立的,它包括关系属性、以及域的一些定义和说明。

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

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

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

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

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

2. 关系模式:是对一个关系的描述,二维表的表头那一行称为关系模式,又称为表的框架或记录类型。

关系模式的定义包括:模式名、属性名、值域名和模式的主键。

关系模式仅仅是对数据特征的描述。

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

U 是全部属性的集合。

D 是属性域的集合。

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

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

关系模式可以表示为:关系模式(属性名1,属性名2 ,……,属性名n )示例:学生(学号,姓名,年龄,性别,籍贯)。

当且仅当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)数据库设计理论:借助近代代数工具,把抽象的数据理论同实际问题结合起来。

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

二,关系模式及其评价。

1 . 关系数据库设计的核心:关系模式的设计。

2 . 关系模式的设计:按照一定的原则,从数量众多的而又互相关联的数据中构造出一组即能较好的反映现实世界,而又有良好的操作性能的关系模式。

3. 关系模式的优劣、评价、改进:冗余度高修改困难插入问题删除问题这些问题的产生原因是:属性间的约束关系太强,即数据间的依赖关系太强。

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

第二节函数依赖一,函数依赖Functional Dependency函数依赖是数据依赖的一种,反映属性或属性之间的依存、互相制约的关系,既反映现实世界的约束关系。

二,函数依赖的定义设R ( U ) 是属性U 上的一个关系模式,X 和Y 均为U = { A1,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)候选键:不含有多余属性的超键a X 是R 的超键。

b 且不存在X 的真子集Y ,使得Y →U ∈F+则称X 是R 的候选键(3)主键:用户选作元组标识的一个候选键。

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

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

(6)外键:如果关系R 的某一个属性组不是该关系本身的候选键,而是另一个关系的候选键,则称该属性组是R的外来关键码,或称为外键(外码)。

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

(2)如果有属性不在函数依赖集中任何函数依赖的右边出现,那么它必定包含在候选码中。

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

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

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

设X 和Y 都是U 的子集:1 X 和Y 的联系是1 :1 则X →Y , Y →X .2 X 和Y 的联系是M :1 ( M > 1 ) 则X →Y .3X 和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 部分函数依赖X 。

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 或称X →Y 可以由 F 推出,记作:例题:关系模式R = ( A, B, C ) ,函数依赖集 F = { A→B , B→C }则 F 逻辑蕴含A→C记作:二,F 闭包定义:若 F 为关系模式R ( U ) 的函数依赖集,我们把 F 以及所有被 F 逻辑蕴含的函数依赖的集合称为 F 的闭包,记作F+。

F+ = { X→Y | F ╠X→Y }三,Armstrong 公理F1 自反律:若Y 包含于X ,则X →Y (Y 是X 的子集)F2 增广律:若X→Y为F所蕴含,则XZ→YZ 在R上成立。

F3 传递律:若X→Y,Y→Z在R上成立,则X→Z 在R上成立。

F4 伪增律:Z是W的子集,X→Y为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的子集,X→Y为F所蕴含,则X→Z在R上成立。

四,属性集的闭包定义:若 F 为关系模式R ( U ) 的函数依赖集,X 是U 的子集,则由Armstrong 公理推导出来的所有X →Ai 所形成的属性集{ Ai | i=1,2,…,n } 称为X 关于 F 的闭包记为X +。

属性集闭包的举例:设:R = ABC , F = { A→B, B→C } 当X分别是 A , B , C ,时,求X+解:当X = A 时,X+ = ABC当X = B 时,X+ = BC当X = C 时,X+ = C定理:X →Y 能根据Armstrong 推理规则导出的充要条件是:只要Y 是X+的子集,则X →Y 。

只要X →Y ,则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的子集,对于任意的Z →W ∈ F , 若Z 是X 的子集,则X→XW2)算法的实现输入:关系模式R 上的子集X ,R 上的函数依赖 F输出:X 关于 F 的闭包X+3)算法:a.令X (0) = φ , X+ = X ;b. 如果 X(0) ≠ X+ ,置 X(0) = X+,否则,转到 d ;c.对于f 中的每个未被访问过的函数依赖Y →Z ,若Y 包含于X+ ,则令X+ = X+ ∪Z ,为被访问过的函数依赖设置访问标志,转 b ;d.输出X+结论判定函数依赖X →Y 是否能由 F 导出的问题,可以转化为求X+的闭包,并判定Y 是否是X+子集的问题。

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

判定给定函数依赖X →Y 是否蕴含与函数依赖集 F 算法实现:输入:函数依赖集 F ,函数依赖X →Y输出:若X →Y ∈F+,输出真,否则输出假。

四,函数依赖的等价和覆盖定义:设 F 和G 是关系模式R ( U ) 上的两个函数依赖集,如果F+ = G+ ,则称F 等价于G ,亦称 F 覆盖G 或者G 覆盖F ,记作:F ≡G定理1 , 设 F 和G 是关系模式R ( U ) 的两个函数依赖集,那么F+ = G+ 的充分必要条件是:定理2,设 F 和G 是关系模式R ( U ) 的两个函数依赖集,那么F+ = G+的充分必要条件是定理3 ,每个函数依赖集 F 都可以被一个右部只有单属性的函数依赖集G 所覆盖。

五,最小函数依赖集设 F 是函数依赖集,如果 F 满足(1)F中每个函数依赖X→Y的右边均为单个属性。

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

(3)F中的任何一个函数依赖X→A , Z为X的真子集,( F -{ X→A } ) ∪{ Z →A } 都与F 不等价。

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

(2)是消除右侧冗余。

(3)是消除左侧冗余。

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

相关主题