《数据库系统概论》课程学习(6)——第六章 关系数据理论

目的:为设计出一个好的数据库模式提供理念基础或思维方式。

问题:什么叫“好”?

例如,建立一个教务数据库,其中包括学生学号sno、学生所在系sdept、 学生宿舍sloc、系主任姓名mname、课程号cno和成绩grade。        

问题:我们应该建立一个什么样的数据库模式?

设计如下:student(sno, sdept, sloc, mname, cno, grade)

问题:该关系的码是什么?这个关系“好”吗?为什么?

分析关系模式好坏的角度

student(sno, sdept, sloc, mname, cno, grade)

关系存在的问题:

1、数据存储冗余大

2、当某系刚成立,也指定了系主任,但还没招生,则数据无法插入(称为“插入异常”)

3、当某个系的学生全部毕业而无学生存在时,但该系还存在,则系名、系主任姓名数据也随之被删除。(称为“删除异常”)

4、当某个学生转系了,则不但要修改该学生的所在系,同时还要修改系主任姓名;若学校规定一个系的学生只有住在同一栋宿舍楼,则还要修改该学生的学生宿舍数据。(称为“修改复杂”,一不小心可能会出错。)

规范化理论提供了设计一个“好”关系模式的指导。

数据依赖

数据依赖:是属性与属性之间的一种约束关系。一般是现实世界中属性间相互联系的抽象;或是数据内在的性质,是语义的体现。

注意:属性间的种种约束关系都是应用系统所涉及的现实世界的要求。

例如,以前所介绍的各种完整性约束就是一种数据依赖

问题:你认为属性之间还有别的什么约束关系吗?

考虑这种约束关系:        

  • 当属性sno被确定为某个具体值之后,那么该学号所对应的sname属性的 值是不是被唯一地确定了呢?        
  • 换句话说,当关系的任意两个元组的sno属性值相等,则sname属性值是 不是一定会相等?

若这种约束关系成立,则称之为属性之间的函数依赖

函数依赖

2NF

规范化

3NF

BCNF

这个问题是什么原因造成的?

多值依赖

4NF

规范化小结

Armstrong公理系统

判定F与G是否等价算法

求F的极小函数依赖集算法

模式分解的定义

分解的无损连接性判定

无损连接性与保持函数依赖

模式分解算法

发布了593 篇原创文章 · 获赞 34 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_34573534/article/details/105038209