一、 关系模式
(1) 通过E-R模型转化。
(2) 一个应用中所有属性构成的一个单独关系 (泛关系的设计)。
(3) 一些特殊关系设计的结果。
关系数据库中, 关系模式是型, 关系是值。 关系模式是对关系的描述, 它的一般表示为: 关系名 (属性1, 属性2, ……, 属性n)。
例13: 如图2.15所示图书数据库中的关系模式有:
图书 (图书编号, 书名, 作者, 出版社, 价格)
读者 (借书证号, 姓名, 性别, 职业, 地址)
由于关系模型有严格的数学理论基础, 常把关系模型作为关系数据库的规范化理论来讨论关系模式的冗余和异常问题。 如何评价关系模式的优良及将不好的关系模式转化成好的关系模式是模式分解的基础。
例14: 一个学生学习数据库的关系模式为:
S_C_G (学号, 姓名, 年龄, 专业, 课程号, 课程名, 主讲教师, 学分)
该模式存在的问题可通过表2.3所示实例说明。
表2.3 学生数据库表
存在的问题:
•冗余度大。
•操作异常。 即由于数据的冗余, 在对数据操作时会引起各种异常: 插入异常、 删除异常和修改异常。
二、 模式分解案例
例15: 采用分解的方法, 将例14的模式S_C_G分解成以下三个模式:
S (学号, 姓名, 年龄, 专业)
S_G (学号, 课程号, 学分)
C (课程号, 课程名, 主讲教师)
三个模式的物理存储如图2.18所示。
图2.18 学生数据库表分解图
一个关系分解成多个关系, 要求是分解后不丢失原来的信息, 且信息不仅包括数据本身, 还包括由函数依赖所表示的数据之间的相互制约。 进行分解的目标是达到减少数据冗余, 解决插入异常、 更新异常、 删除异常的目的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。