下载此文档

数据依赖和关系模式的规范化.ppt


文档分类:IT计算机 | 页数:约65页 举报非法文档有奖
1/65
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/65 下载此文档
文档列表 文档介绍
该【数据依赖和关系模式的规范化 】是由【utuhlwwue61571】上传分享,文档一共【65】页,该文档可以免费在线阅读,需要了解更多关于【数据依赖和关系模式的规范化 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第10章 数据依赖和关系模式的规范化
CLICK HERE TO ADD A TITLE
单击此处添加文本具体内容
演讲人姓名
1 关系模式设计中的一些数据语义问题
数据的语义不但表现为完整性约束,对数据库的状态或状态的转换施加一定的限制,而且对关系模式的设计也提出一定的要求。
属性间往往存在一定的依赖关系,而最基本的依赖关系是函数依赖。所谓函数依赖是指一个或一组属性的值可以决定其他属性的值。
1
2
01
一般地讲,设X,Y是关系的两个不同的属性组,如果Y函数依赖于X,或X函数决定Y,则其依赖关系可表示为X→Y。
02
设有一关系R,具有下列属性:学号(S#)、课程号(C#)、成绩(G)、任课教师姓名(TN)、教师所在系名(D)。这些数据具有下列语义:
01
学号是一个学生的标识,课程号是一门课程的标识,这些标识与其代表的学生和课程分别一一对应;
02
一位学生所修的每门课程都有一个成绩;
03
每门课程(注意:不是每种课程!同一种课,如数学课,可以开好多门,每门课有一个课程号)只有一位任课教师,但一位教师可以教多门课;
04
教师中没有重名,每位教师只属于一个系。
根据上述语义,可以确认下面函数依赖的集合:
F={{S#,C#}→G,C#→TN,TN→D}
从图10-1可以看出,属性集{S#,C#}可以
决定其他所有属性的值,而{S#,C#}的任何子集
则不能,故{S#,C#}是这个关系的主键。这样的
关系用来查询是很方便的。
计算机系通知教师准备给学生补考,可以“查询图10-1
函数依赖计算机系所开课程的不及格学生的学号、不及
格课程号以及任课教师的姓名” .查询仅涉及R一个关
系,是一元查询,不须做连接运算,可以用下面的SQL语
句来表达:
SELECT S#,C#,TN FROM R
WHERE D=CS′AND G=F′;
但是这样的关系也有问题,首先数据冗余太多,如一门课程的教师名须对选这门课的所有学生重复一次;一个系名须对选该系所开课程的所有学生重复一次。除冗余外,在进行增、删、改操作时,还会发生所谓更新异常现象:
01
由于冗余,在修改时往往会导致数据的不一致。例如,改变一门课程的任课教师,或一门课改由另一个系开出,则需要修改多个元组。如果部分修改,部分不修改,则会导致数据的不一致。这叫修改异常。
02

由于主属性不能为空值,如某系有位教师不教课,则这位教师的姓名及所属的系名就不能插入;同样,如果一位教师所开的课暂时无人选,或是列入计划而目前不开,则也无法插入。这叫插入异常。

如果所有学生都退选一门课,则有关这门课的其他数据(任课教师名及所属系名)也将被删除。如果一位教师因病暂时停开他所开的课,则有关这位教师的其他信息(所属系、可开课程)都将被删去。这叫删除异常。
01
在上例的关系中,包含了三方面的信息:学生各门课程
02
的成绩,各门课程开课的教师以及各个教师所属的系。
03
上例中,所有这三方面的数据都集中在一个关系中,此
04
关系的主键为属性集{S#,C#}。
05
(C#,TN)和(TN,D)本来可以作为独立的关系而存
06
在,而今却不得不依附于其他关系。这就是说,必须对应
07
一个主键{S#,C#}的值,才能插入或存在一个(C#,
08
TN)或(TN,D)的值。这是关系结构带来的限制,不是现
09
实世界的真实反映。
SCG(S#,C#,G)
CTN(C#,TN)
TND(TN,D)
解决这个问题的途径是把关系分解,也就是进行所谓关系规范化。例如,把上例的关系分解为下列三个关系:

数据依赖和关系模式的规范化 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数65
  • 收藏数0 收藏
  • 顶次数0
  • 上传人utuhlwwue61571
  • 文件大小5.50 MB
  • 时间2025-01-28
最近更新