3关系数据理论.doc
文本预览下载声明
第三章
PAGE 2
研究的问题
从数据库逻辑设计角度考虑如何构造一个好的数据库模式,研究关系规范化理论研究的实际背景。
讨论各种范式及可能存在的插入、删除等毛病,并直观地描述解决办法。
讨论关系数据理论
讨论函数依赖的推理规则
研究模式等价的不同定义及模式分解算法
问题的提出
针对一个具体的问题,应该如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关系由哪些属性组成?
这是数据库设计的问题,确切地讲是关系数据库逻辑设计问题。
关系,作为一个二维表,对它有一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式。
数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。
它是现实世界属性间相互关系的抽象,是数据内在的性质,是语义的体现。
现在人们已经研究出了很多类型的数据依赖,其中最重要的是 函数依赖和多值依赖
建立一个数据库
学生(用学号SNO来描述)
系(用系名SDEPT描述)
系负责人(用其姓名MN描述)
课程(用课程名CNAME描述)
成绩(G)
于是得到一组属性
U={SNO,SDEPT,MN,CNAME,G}
一个系有若干学生,但一个学生只属于一个系
一个系只有一名(正职)负责人
一个学生可以选修多门课程,每门课程有若干学生选修
每个学生学习每一门课程有一个成绩
由上可知得到属性组U上的一组函数依赖:
F={SNOàSDEPT,SDEPTàMN,(SNO,CNAME)àG}
由上可知得到属性组U上的一组函数依赖:F={SNOàSDEPT,SDEPTàMN, (SNO,CNAME)àG }
SNO
SNO
CNAME
SDEPT
MN
G
四个“毛病”
插入异常
删除异常
冗余太大
更新异常
解决之道:分解! 分解!! 再分解!!!
S
S(SNO,SDEPT,SNO?SDEPT)
SG(SNO,CNAME,G,(SNO,CNAME)?G)
DEPT(SDEPT,MN,SDEPT?MN)
DEPT
S
SG
规 范 化
为了使数据库设计的方法走向完备,人们研究了规范化理论。
1971年,E.F.Codd就提出了这一理论。
函数依赖
定义1 设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系R,R中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X?Y
X?Y,但YíX,则称X?Y是平凡的函数依赖
student(sno,sname )? sno
student(sno,sname )? sname
X?Y,但Y不包含于X,则称X?Y非平凡的函数依赖
snoàsname,snoàsdept,snoàsage
(sno,cno) à grade
X?Y,则X叫做决定因素(Determinant)。
若X?Y,Y?X,则记作X Y
若Y不函数依赖于X,则记作X ?Y
在R(U)中,如果X?Y,并且对于X的任何一个真子集X/,都有 X/ ?Y,则称Y对X完全函数依赖。记作X Y,
在SC(SNO,CNO,GRADE)中(SNO,CNO)à GRADE
若X?Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:X Y
码
在R(U)中,如果X?Y,(Y不包含于X),Y?X, Y ?Z,则称Z对X传递函数依赖。
设K为R(U,F)中的属性或属性组合,若K U则K为R的侯选码。若侯选码多于一个,则选定其中的一个为主码。
包含在任何一个侯选码中的属性,叫做主属性。
不包含在任何码中的属性称为非主属性或非码属性。
最简单的情况,单个属性是码。
整个属性组是码,称为全码(ALL-KEY)。
S(SNO,SDEPT,SAGE)中SNO是码,而在关系模式SC(SNO,CNO,G)中属性组合(SNO,CNO)是码。
全码的例子:关系模式R(P,W,A),属性P表示演奏者,W表示作品,A表示听众。
此关系的码为(P,W,A)
外码
关系模式R中的属性或属性组X并非R的码,但X是另外一个关系模式的码,则称X是R的外部码,也称外码。
SC(SNO,CNO,G)
码为(SNO,CNO )
SNO为student中的码,CNO为course中的码
范式
范式是对关系的不同数据依赖程度的要求。
通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化(概念的纯粹化)。(图为P174. 图6.2)
1范式
满足最
显示全部