数据库学习笔记——关系数据理论

数据库学习笔记——关系数据理论

规范化

定义6.1 设R(U)是属性集U上的关系模式,X,Y为U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作\(X\rightarrow Y\)

例如X为人名,Y为该人的性别

定义6.2 在R(U)中,如果\(X\rightarrow Y\),并且对X的任何一个真子集X',都有\(X'\not\rightarrow Y\),则称Y对X完全依赖,记作\(X\stackrel{F}{\rightarrow}Y\).

\(X\rightarrow Y\),但Y不完全依赖于X,则称Y对X部分函数依赖,记作\(X\stackrel{P}{\rightarrow}Y\).

例如:\((Sno,Cno)\stackrel{F}{\rightarrow} Grade\),\((Sno,Cno)\stackrel{P}{\rightarrow}Sdept\).

定义6.3 在R(U)中,如果\(X\rightarrow Y(Y\nsubseteq X),Y\not\rightarrow Y,Y\rightarrow Z,Z\nsubseteq Y\)则称为Z对X的传递函数依赖 。记为\(X\stackrel{传递}{\rightarrow}Z\).

例如:\(Sno\rightarrow Sdept,Sdept\rightarrow Mname, Sno\rightarrow Mname\)

定义6.4 设K是R<U,F>中的属性或者属性组合,若\(K\stackrel{F}{\rightarrow}U\),则称为K为R的候选码(candidate key)。

定义6.5 关系模式R中的属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(foreign key),也成外码。

范式

关系数据库中的关系是要满足一定要求的,满足不同程度的要求的为不同的范式。

一个低一级的范式的关系模式通过模式分解(schema decomposition)可以转化为若干个高一级的范式的关系模式的集合,这个过程叫做规范化。

2NF

定义6.6 若\(R\in 1NF\),且每一个非主属性完全函数依赖于任意一个候选码,则\(R\in 2NF\).

3NF

定义6.7 设关系模式\(R<U,F>\in 1NF\),若R中不存在这样的码X,属性组Y及非主属性Z(\(Z\nsupseteq Y\))使得\(X\rightarrow Y,Y\rightarrow Z\)成立,\(Y\not\rightarrow X\),则称\(R<U,F>\in 3NF\).

即不存在传递依赖和部分依赖

BNF

定义6.8 关系模式\(R<U,F>\in 1NF\),若\(X\rightarrow Y\)\(Y\nsubseteq X\)时X比含有码,则\(R<U,F>\in BNF\).

多值依赖

定义6.9 设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖\(X\rightarrow\rightarrow Y\)成立,当且仅当对R(U)的任一关系r,给定一堆(x,z)值,有一组Y值,这组值仅仅决定于x值而与z值无关。

4NF

定义6.10 关系模式\(R<U,F>\in 1NF\),如果对于R的每个平凡多值依赖\(X\rightarrow\rightarrow Y(Y\nsubseteq X)\),X都有码,则称\(R<U,F>\in 4NF\).

4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。

规范化小结

graph TD
1NF--消除非主属性对码的部分函数依赖--> 2NF
2NF--消除非主属性对码的传递函数依赖--> 3NF
3NF--消除主属性对码的部分和传递函数依赖--> BCNF
BCNF--消除非平凡且非函数的多值依赖-->4NF

数据依赖的公理系统

数据依赖的公理系统是模式分解算法的理论基础

定义6.11 对于满足一组函数依赖F的关系模式R<U,F>,其中任何一个关系r,若函数依赖\(X\rightarrow Y\)都成立(即r中任意两元组t、s,若t[X]=s[X],则t[Y]=s[Y]),则称F逻辑蕴含\(X\rightarrow Y\).

P190-204 暂缺。