第9章 关系规范化理论

9.1 关系模式设计的问题

表9-1 S-L-C模式的分布数据示例
SnoSnameSsexSdeptSdeptCnoGrade
0811101李勇计算机系2公寓C00196
0811101李勇计算机系2公寓C00280
0811101李勇计算机系2公寓C00384
0811101李勇计算机系2公寓C00562
0811102刘晨计算机系2公寓C00192
0811102刘晨计算机系2公寓C00290
0811102刘晨计算机系2公寓C00484
0821102吴宾信息管理系1公寓C00176
0821102吴宾

   女

信息管理系1公寓C00485
0821102吴宾信息管理系1公寓C00573
0821102吴宾信息管理系1公寓C007
0821103张海信息管理系1公寓C00150
0821103张海信息管理系1公寓C00480
0831103张珊珊机电系1公寓C00478
0831103张珊珊机电系1公寓C00565
0831103张珊珊机电系1公寓C007

        

 其中个属性分别为:学号、姓名、性别、学生所在系、学生所住宿舍楼、课程号和考试成绩。

9.1.1 数据冗余问题

        在这个关系中,学生所在系和其所住宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就至少要重复存储多少遍。学生基本信息(包括学生学号,姓名,性别和所在系)也有重复一个学生修了多少门课,他的基本信息就重复多少遍。

9.1.2 数据更新问题

        如果某一学生从计算机系转到信息管理系,那么不但要修改此学生的sdept列的值,而且还要修改其Sloc列的值,从而使修改复杂化。

9.1.3 数据插入问题

        虽然新成立了某个系,并且确定了该系学生的宿舍楼,且已经有了Sdept和Sloc信息,却不能将这个信息插入到Sloc表中,因为这个系还没有招生,其Sno和Cno列的值均为空,而Sno和Cno是这个表的主键,不能为空。

9.1.4 数据删除问题

        数据的增删改问题统称为操作异常,为什么会出现以上种种操作异常呢?是因为这个关系模式没有设计好,他的某些属性之间存在“不良”的函数依赖关系。如何改造这个关系模式并避免以上种种问题,是关系规范化理论要解决的问题,也是我们讨论函数依赖的原因。

        解决上述种种问题的方法就是进行模式分解,即把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值