9.1 关系模式设计的问题
有以下四个问题:
1:数据冗余问题:一个系里面有很多学生,所以这个系里面的学生在同一个宿舍楼,学生的多种信息也有重复。
2:数据更新问题:如果某一个学生计算机系转到了信息管理系,那么不但要修改改学生的Sdept列的值,而且还要修改其Sloc列的值,从而使修改复杂化。
数据插入问题:虽然新成立了某个系,并且确定了该系学生的宿含楼,即已经有了Slepa 和ie信息却不能将这个信息插人到S-L-C表中,因为这个系还没有招生,其Sno和Coo列的值均为空,而Sno和Cno是这个表的主键,不能为空。
数据删除问题:
如果一名学生最初只选修了一 -门课, 之后又放弃了,那么应该删除该学生选修此门课程的记录。但由于这个学生只选了二门课,因此,删除此学生选课记录的同时也就删除了此学生的其他基本信息。
数据的增、删、改问题统称为操作异常。为什么会出现以上种种操作异常呢?是因为这个关系模式没有设计好,它的某些属性之间存在“不良”的函数依赖关系。如何改造这个关系模式并避免以上种种问题是关系规范化理论要解决的问题,也是我们讨论函数依赖的原因。
解决上述种种问题的方法就是进行模式分解,即把个关 系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良” 的丽数依赖,从而获得良好的关系模式。
9.2 函数依赖
9.2.2
(1)如果X→Y, 但Y不包含于X,则称X→Y是非平凡的函数依赖。如不做特别说明,我们讨论的都是非平凡的函数依赖。
(2)如果Y不函数依赖于X,则记作X/ Y
(3)如果X Y,则称X为决定因子。
(4)如果X→y,并且Y→X,则记作XY。
(5)如果X Y并且对于X的一个任意真子集x都有X‘
/ Y,则称Y完全函数依赖于X,记作x_→Y;如果X'→Y成立
(6)如果X→Y (非平凡函数依赖,并且Y/ X)、Y→Z,则称Z传递函数依赖于X。
(7) 设K为关系模式R的一个属性或属性组,若满足:
则称K为关系模式R的候选键( 或候选码)。称包含在候选键中的属性为主属性,不包含在任何候选码中的属性称为非主属性。
9.2.3
Armstrong:
自反律,增广律,转递律
Armstrong:
合并规律,分解规律,伪传递规律,复合规律