1 / 26
文档名称:

2021年数据库关系模式的设计标准规范化.doc

格式:doc   大小:168KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2021年数据库关系模式的设计标准规范化.doc

上传人:读书之乐 2021/12/8 文件大小:168 KB

下载得到文件列表

2021年数据库关系模式的设计标准规范化.doc

相关文档

文档介绍

文档介绍:关系数据库设计
目录
第1章 简介 1
第2章 函数依赖 1
函数依赖定义 1
关系键码 2
超键码 3
函数依赖规则 3
分解/合并规则 3
平凡依赖规则 3
传递规则 4
第3章 模式设计 4
问题提出 4
问题根源 5
完全依赖和某些依赖 5
传递依赖 6
解决途径 7
第1范式(1NF) 7
第2范式(2NF) 7
第3范式(3NF) 8
BC范式(BCNF) 8
分解原则 9
分解办法 12
模式分解两个原则 12
模式分解3种办法 13
把关系模式分解成BC范式办法总结 14
关系模式规范化小结 15
第4章 多值依赖 16
属性独立性带来冗余 16
多值依赖定义 17
第4范式 18
分解成第4范式 18
第5章 总结 19
简介
关系数据库是由一组关系构成,因此关系数据库设计归根究竟是如何构造关系,即如何把详细客观事物划分为几种关系,而每个关系又有哪些属性构成。在咱们构造关系时,经常会发现数据冗余和更新异常等现象,这是由于关系中个属性之间互相依赖性和独立性导致。
关系模型有严格数学理论基本,并形成了关系数据库规范化理论,这为咱们设计出合理数据库提供了有利工具。
函数依赖
函数依赖定义
为了便于理解函数依赖(functional dependency)概念,先看一种详细关系实例。
例:考虑学生关系Student,该关系中涉及属性涉及学生学号(Sno)、姓名(Sname)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)和成绩(Grade)。学生关系Student实例如表1所示。
表 1 学生关系Student实例
Sno
Sname
Sdept
Mname
Cname
Grade
刘丽
计算机
刘刚
数据库
98
刘丽
计算机
刘刚
操作系统
96
陈冲
计算机
刘刚
汇编原理
91
王艳
金融
金谦
金融理论
89
王勇
金融
金谦
经济分析
82
晓雪
自动化
李霞
自动化设计
91
王健
通信
周志光
信息概论
88
在这个实例中,咱们可以看到属性之间存在某些内在联系:
由于一种学号值相应一种学生,一种学生只在一种系,因而当“学号”拟定之后,姓名及所在系也就唯一拟定了。属性中这种依赖关系类似于数学中函数。因而说Sno函数决定Sname和Sdept,或者说Sname和Sdept函数依赖于Sno,记作Sno→Sname,Sno→Sdept。
下面给出函数依赖严格定义:如果关系R两个元组在属性A1,A2,…An上一致(也就是,两个元组在这些属性所相应各个分量具备相似值),则它们在另一种属性B上也一致。那么,咱们就说在关系R中属性B函数依赖于属性A1A2…An。这种依赖正式记作A1A2…An→B,也就是说“A1,A2,…An函数决定B”。其中,A1A2…An称为决定因素。
如果一组属性A1,A2,…An函数决定各种属性,例如说:
A1A2…An→B1
A1A2…An→B2

A1A2…An→Bm
则可以把这一组依赖关系简记为:
A1A2…An→B1B2…Bm
例:在上例中,咱们可以列举关于Student关系如下四个函数依赖:
Sno→Sname
Sno→Sdept
Sdept→Mname
Sno Cname→Grade
由于前面两个依赖左边完全相似,都是Sno,用简写形式可以把它们汇总在一行中:
Sno→Sname Sdept
依照函数依赖传递规则,从Sno→Sdept和Sdept→Mname可以导出Sno→Mname。这一点咱们从感性结识上也很容易理解,一种学号相应唯一学生,而一种学生只能有唯一系主任。
另一方面,Sno→Cname就是错误,它不是函数依赖,因素显而易见,如第1元组和第2元组,它们Sno分量相似,但Cname分量却不同。
关系键码
咱们已经理解了键码概念,下面从函数依赖角度给出定义。
如果一种或各种属性集合{A1,A2,…An}满足如下条件,则称该集合为关系R键码(key):
(1)这些属性函数决定该关系所有其她属性。也就是说,R中不也许有两个不同元组,它们在A1,A2,…An上取值是相似。
(2){A1,A2,…An}任何真子集都不能函数决定R所有其她属性,也就说