关系模式设计有哪些可能出现的问题?
首先,我们通过例子来说明。
假设有描述学生选课及住宿情况的关系模式:
S—L—C (Sno,Sname,Ssex,Sdept,Sloe,Cno,Grade)
其中各属性分别为:学号、姓名、性别、学生所在系、学生所在宿舍楼、课程号和考试成绩。设每个系的学生都住在同一宿舍楼中,该关系模式存在什么问题?
由这个表可以发现如下问题:
数据冗余问题
在这个关系中,学生所在系和其所住宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就至少要重复存储多少遍。学生基本信息(包括学生学号、姓名、性别和所在系)也有重复,一个学生修了多少门课,他的基本信息就重复多少遍。
数据更新问题
如果某一学生从计算机系转到了信息管理系,那么不但要修改此学生的 Sdept 列的值
而且还要修改其Sloc列的值,从而使修改复杂化。
数据插人问题
虽然新成立了某个系,并且确定了该系学生的宿舍楼,即已经有了 Sdept 和 Sloc 信息却不能将这个信息插人到 S-L-C 表中,因为这个系还没有招生,其 Sno