数据库设计理论
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库的设计理论
第一节,关系模式的设计问题
一概念:
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)如果该属性或属性组能唯一标识元组,则它就是候选码。
根据对数据库的语义描述,确定其中候选码,同时还可以写出该关系模式的函数依赖集。