其他分享
首页 > 其他分享> > 数据依赖(决定)

数据依赖(决定)

作者:互联网

思维导图

image-20200618094335434

image-20200701001722011

形式化定义

函数依赖形式化定义

image-20200630235640050

非平凡函数依赖与平凡函数依赖

image-20200701000241176

完全函数依赖和部分函数依赖

image-20200701001227771

传递函数依赖

image-20200701001357116

关系模式中的函数依赖

  1. 假设有如下学生选课关系模式:R(学号,姓名,课程号,课程名,成绩,院系号,院系名), 其中(学号,课程号)为主码,则存在如下函数依赖:
    • (学号)→(姓名) 非平凡函数依赖
    • (学号,姓名)→(姓名) 平凡函数依赖
    • (学号,课程号)→(成绩) 完全函数依赖
    • (学号,课程号)→(课程名) 部分函数依赖,课程名只依赖于课程号
    • (学号)→(院系名) 传递函数依赖,(学号)→(院系号),(院系号)→(院系名)

函数依赖对关系模式的影响

  1. 假设有如下学生关系模式:R(学号,姓名,课程号,课程名,成绩),其中(学号,课程号 )为主码。(学号,课程号)→(成绩),(学号)→(姓名),(课程号)→(课程名)。这个关 系模式有部分函数依赖,存在4个问题:
    • 数据冗余太大: 每一个学生姓名重复出现,重复次数与该学生所选课程数相同;每一门课程 名重复出现,重复次数与选修该课程的学生数相同,这将消耗不必要的存储空间。
    • 更新异常: 学生修改姓名或课程修改课程名后,必须修改系统中所有选课有关的元组,如果 某一个元组没有被修改,将会导致数据不一致。
    • 插入异常: 如果新开一门课程,还没有学生选,就无法把这个课程的信息存入数据库。
    • 删除异常: 如果学生全部毕业了,在删除学生信息的同时,把课程信息也丢掉了。
  2. 解决方案:规范化,将上面的关系模式分解为R1(学号,姓名)、R2(课程号,课程名), R3(学号,课程号, 成绩)
  3. 结论:含有部分函数依赖,传递函数依赖的关系模式不是一个好 的关系模式。规范化理论正是用来改造关系模式,通过分解关系 模式来消除其中不合适的数据依赖,以解决插入异常、删除异常 、更新异常和数据冗余问题。

范式

思维导图

未命名文件 (1)

第一范式

image-20200701002210725

第二范式

image-20200701002934840

第三范式

image-20200701003215543

BC范式

image-20200701003448865

image-20200701003418480

规范化与反规范化

规范化的步骤

反规范化

标签:关系,决定,依赖,范式,模式,课程,数据,院系
来源: https://www.cnblogs.com/dongxuelove/p/14154759.html