关系数据库规划化理论

190 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情

1.关系规划化必要性

image.png

例如:

image.png

那么设计一个关系模式

SLC={Sno,Sname,Sdept,Mname,Cname,Score}

image.png

这样的模式存在问题:

比如数据冗余度大:浪费空间,参生数据不一致

插入异常

删除异常

更新异常

那么如何解决这个问题? 这就需要使用信息的某种程度分类,关系分解

原slc可以变成

S={Sno,Sname,Sdept} D={Sdept,Mname} SC={Sno,Cname,Score}

那么为什么会出现这些问题?? 这和数据间的依赖密切相关

如果分离度过高,那么查询效率低下, 如果分离的过低,就会参数上述四个问题

函数依赖

image.png

image.png

定义: 函数依赖是通过一个关系中属性值的相等与否提醒出来的相互关系,是现实世界属性间互相练习的抽象,是数据内在的性质,是语义的体现。

函数依赖

设R(U)是一个关系模式,U是R的属性集合。X,Y是U的子集 如果R(U)的关系r存在:对于每一个x,y都有唯一值和他对于,则称x函数决定于y,或者y依赖于x

记作x——>y.其中决定x叫属性集,y叫被决定属性值

image.png

例如:

image.png (1)根据学号可以确定姓名

(2)一个系若干学生,但是一个学生只能一个系

(3)一个系只有一名主任

(4)根据学生所在系可以确定学生住处

(5)一个学生可以选修多门课程,一个课程可以有多个学生选择

(6)每个学生的每个课程都有成绩

image.png

image.png

平凡的函数依赖和非平凡函数依赖

在关系秘书R(U,F)里面,对于u子集x,y。如果x->y,但是y不属于x就是非平凡依赖,反之就是平凡依赖

部分完全函数依赖

image.png

传递函数依赖

image.png

键的形式化定义

image.png

闭包

对于给定关系R(U,F),f闭包是由f所逻辑蕴含的所有函数依赖的集合,记作F+。

image.png

image.png

image.png

image.png

范式

nf:符合某一种级别的关系模式集合

1NF:所有属性不可再分

2NF满足第一范式,如果所有的非主属性都完全依赖于键,那么叫属于第二范式

3NF满足第二,并且他的任何一个非主属性都不传递依赖于键,那么叫第三范式

image.png