您的当前位置:首页正文

关系规范化(数据库)

来源:帮我找美食网
关系规范化(数据库)

由于⽹络上关于关系规范化的内容⼀般都是关于范式的,函数依赖和码的概念提及的⽐较少,所以就写了这篇⽂章前提:学习完第⼆章关系数据库

前提

⾸先举个 栗⼦ 例⼦

[例1]建⽴⼀个描述是学校教务的数据库,该数据库涉及的对象包括学⽣的学号(Sno)、所在系(Sdept)、系主任名称(Mname)、课程号(Cno)和成绩(Grade)。

假设⽤⼀个单⼀的关系模式Student来表⽰,则该关系模式的属性集合为 U={Sno,Sdept,Mname,Cno,Grade}现实世界的已知事实(语义)告诉我们:

①⼀个系有若⼲个学⽣,但⼀个学⽣只属于⼀个系。②⼀个系只有⼀名负责⼈。

③⼀个学⽣可以选修多门课程,每门课程有若⼲学⽣选修。④每个学⽣学习每⼀门课程有⼀个成绩。

谈论函数依赖之前先提⼀下数据依赖的概念,

数据依赖是⼀个关系内部属性与属性之间的⼀种约束关系。这种约束关系是通过属性间值的相等与否体现数据间相关联系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现数据依赖中最重要的是函数依赖和多值依赖

函数依赖

定义:设R(U)是属性集U上的关系模式,X,Y是U的⼦集。若对于R(U)的任意⼀个可能的关系r,r中不可能存在两个元组在X上的属性值相等,⽽在Y上的属性值不等,

则称X函数确定Y或Y函数依赖于X,记作X->Y。⽤例1来解释这段定义:

在学校教务数据库中,⼀个学⽣的学号只对应⼀个系。故当“学号”值确定时,学⽣所在系的属性值也就确定了。属性之间的这种关系类似于数学中的 y = f (x) ⾃变量x确定了,对应的函数值y也就唯⼀的确定了Sno = f(Sdept),即Sdept函数决定Sno或者说Sdept函数依赖于Sno,记作Sno->Sdept下⾯介绍⼀些术语和记号

X->Y,但y不属于X,则称X->Y是⾮平凡的函数依赖X->Y,但y属于X,则称X->Y是平凡的函数依赖

若X->Y,则称X为这个函数依赖的决定属性组,也称为决定因素若X->Y,Y->X,则记作X<-->Y

因篇幅问题不能全部显示,请点此查看更多更全内容

Top