9.1关系模式设计的问题
假设有描述学生选课及住宿情况的关系模式:
S-L-C(Sno,Sname,Ssex,Sdept,Sloc,Cno,Grade)
其中各属性分别为:学号,姓名,性别,学生守所在系,学生所住宿舍楼,课程号和考试成绩),设每个系的学生都住在同一宿舍楼中,该关系模式的主键为(Sno,Cno)。
9.1.1数据冗余问题
在这个关系中,学生所在系和其所住宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就至少要重复存储多少遍。学生基本信息(包括学生学号、姓名、性别和所在系)也有重复,一个学生修了多少门课,他的基本信息就重复多少遍。
9.1.2数据更新问题
如果某一学生从计算机系转到了信息管理系,那么不但要修改此学生的 Sdept 列的值,而且还要修改其 Sloc列的值,从而使修改复杂化。
9.1.3数据插入问题
虽然新成立了某个系,并且确定了该系学生的宿舍楼,即已经有了 Sdept 和 Sloc 信息却不能将这个信息插人到 S-L-C 表中,因为这个系还没有招生,其 Sno 和 Cno 列的值均为空,而 Sno 和 Cno 是这个表的主键,不能为空。
9.1.4数据删除问题
如果一名学生最初只选修了一门课,之后又放弃了,那么应该删除该学生选修此门课程的记录。但由于这个学生只选了一门课,因此,删除此学生选课记录的同时也就删除了此学生的其他基本信息。
9.2函数依赖
9.2.1 基本概念
例如:省=f(城市),只要给出一个具体的城市值,就会有唯一的省值与它对应,城市即为自变量X,省是因变量或函数值Y,一般把X函数决定Y,或Y函数依赖于X表示为:X—>Y
9.2.2一些术语和符号
完全依赖是指:X—>Y,Y不依赖X中的任意一个子集
部分依赖:Y只依赖X中的部分子集
候选键:
9.2.3 函数依赖的推理规则
1.Armstrong公理
(1)自反律
(2)增广律
(3)传递律
2.Armstrong公理推论
(1)合并规则
(2)分解规则
(3)伪传递规则
(4)复合规则