数据库第六章总结

  • Post author:
  • Post category:其他



第六章 关系数据理论



6.1问题提出

(1)提出问题

利用关系数据库的规范化理论,针对具体问题,构造数据模式。

(2)三元组:R<U,F>

由于二维表每个分量必须是不可分开的数据项,所以满足条件的关系模式就属于

第一范式(1NF)。


(3)数据依赖

是一个关系内部

属性与属性

之间的一种

约束

关系。

主要有:

函数依赖和多值依赖



(4)此种关系模式存在的问题:

***

数据冗余

:浪费大量的存储空间:每一个系主任的姓名重复出现

***

更新异常

:更新数据时,维护代价大:某系更换系主任后,须修改有关的每一个元组。

***

插入异常

:如果一个系刚成立,尚无学生,则无法把这个系及其系主任存入数据库。

***

删除异常

:如果某个系的学生全部毕业了, 则在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。

(5)结论

由于某些数据依赖引起的插入异常、删除异常和更新异常,数据冗余。

可以用规范化理论消除。

—–>简单说,就是’‘拆’



6.2规范化



6.2.1函数依赖

(1)函数依赖定义

设R(U)是一个属性集U上的关系模式,X和Y是U的子集。


函数依赖:

若对于R(U)的任意一个可能的关系r,r 中不可能存在:两个元组

在X上的属性值相等

,而

在Y上的属性值不等

, 则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。

【注】:

若X→Y,并且Y→X, 则记为X←→Y。

若Y不函数依赖于X, 则记为X→Y。

X→Y,但Y⊈X则称X→Y是非平凡的函数依赖。

X→Y,但Y⊆X 则称X→Y是平凡的函数依赖。

(2)

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

:在R(U)中,

如果X→Y,并且对于X的任何一个真子集X’, 都有 X’ ↛ Y, 则称Y对X完全函数依赖,记作X → Y。

若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X → Y

【例】

SC(Sno, Cno, Grade)中有:

(Sno, Cno) → Grade

(Sno, Cno)→Sno

(Sno, Cno) →Cno

(3)

传递函数依赖


在R(U)中,如果X→Y(Y⊈X),Y↛X,Y→Z,Z⊈Y, 则称Z对X传递函数依赖:X → Z。

【注】: 如果Y→X, 即X←→Y,则Z直接依赖于X,而不是传递函数依赖。



6.2.2码

1.

候选码,超码定义





X

F

Y

X \overset F \rightarrow Y






X






















F















Y






设K为R<U,F>中的属性或属性组合。若



K

F

U

K \overset F \rightarrow U






K






















F















U





,则K称为R的一个候选码

如果U部分函数依赖于K,即



K

P

U

K \overset P \rightarrow U






K






















P















U





,则K称为超码 。

【注】候选码是最小的超码,即K的任意真子集都不是候选码;

若关系模式R有多个候选码,则选定其中的一个做为主码。

包含在任何一个候选码中的属性 ,称为

主属性


不包含在任何码中的属性称为

非主属性



6.2.3范式

1.某一关系模式R为第n范式,可简记为R∈nNF

在这里插入图片描述

2.**规范化:**一个低一级范式的关系模式,通过

模式分解

可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。



6.2.4 2NF

1.若关系模式R∈1NF,并且

每一个非主属性



完全函数依赖



任何一个候选码

,则R∈2NF

2.一个关系模式不属于2NF:

插入异常

删除异常

修改复杂

可用投影分解将其分解。

【例】S-L-C(Sno,Sdept,Sloc,Cno,Grade), Sloc为学生的住处,并且每个系的学生住在同一个地方。S-L-C的码为(Sno,Cno)。

在这里插入图片描述

解决办法:

拆分


SC(Sno,Cno,Grade)

S-L(Sno,Sdept,Sloc)

在这里插入图片描述

在这里插入图片描述



6.2.5 3NF

1.设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (Y⊇ Z), 使得X→Y,Y→Z成立,Y ↛ X不成立,

则称R<U,F> ∈ 3NF。



6.2.6 BCNF

1.设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF。



每一个决定属性集都包含候选码

,则R∈BCNF。

可参考书上例题6.5~6.8



6.2.7 多值依赖

1.设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中

多值依赖X→→Y

成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。

【例】

Teaching(C, T, B)

Teaching∈BCNF ,对于C的每一个值,T有一组值与之对应,而不论B取何值。

所以T多值依赖于C,即C→→T。

2.若X→→Y,而Z=Ф,则称X→→Y为

平凡的多值依赖

,否则称X→→Y为非平凡的多值依赖。



6.2.8 4NF

关系模式R<U,F>∈1NF,如果对于R的每个

非平凡多值依赖X→→Y(Y ⊈ X)

,X都含有码,则R<U,F>∈4NF。



6.3候选码求解

1.闭包(记作X+ )就是由一个属性

直接或间接推导

出的所有属性的集合。

L类 仅出现在函数依赖左部的属性。

R 类 仅出现在函数依赖右部的属性。

N 类 在函数依赖左右两边均未出现的属性。

LR类 在函数依赖左右两边均出现的属性。

2.定理及其推论

对于给定的关系模式R及其函数依赖集F,

若X(X∈R)是L类属性,则X必为R的任一候选码的成员。

对于给定的关系模式R及其函数依赖集F,

若X(X∈R)是L类属性,且X+包含了R的全部属性;则X必为R的唯一候选码。


【例】设有关系模式R(A,B,C,D),其函数依赖集F={D→B,B →D,AD →B,AC →D},求R的所有候选码。

L类:A,C;且(AC)+=ABCD,故AC是R的唯一候选码。

3.定理

(1)对于给定的关系模式R及其函数依赖集F,

若X(X∈R)是R类属性,则X不在任何候选码中。


因为在右侧的不能推导出其他元素,可以由其他元素推导得到。

(2)对于给定的关系模式R及其函数依赖集F,

若X(X∈R)是N类属性,则X必包含在R的任一候选码中。


(3)对于给定的关系模式R及其函数依赖集F,


若X(X∈R)是L类和N类组成的属性集,且X+包含了R的全部属性;则X是R的唯一候选码。


【例】R<U,F>,U=(A,B,C,D,E,G),

F={AB→C,CD→E,E→A,A→G},求候选码。

解:(1) L=(B,D), R=(G), LR=(A,C,E ), N=NULL;

(2) L∪N=(B,D), (BD)+=BD;

所以可以得到候选码为:ABD,BCD,BDE。



还没搞懂的题

:设关系模式 U=(A , B , C , D , E , F ),函数依赖集F={A→BC , BC→A , BCD→EF , E→C}, 求 R 的候选码。


【答案】

(1) L=(D), R=(F), LR=(A , B , C , E ), N=空;

(2) L∪N=(D) , D+=D;

(3)因为 (DA)+=DABCEF=U, (DB)+=DB ,(DC)+=DC, (DE)+=DEC, 所以 DA 是候选码;

(4)因为 (DBC)+=DBCAEF=U, (DBE)+=DBECAF=U, (DCE)+=DCE, 所以DBC、DBE 是候选码;

(5) U 的候选码有 DA、DBC、DBE

比较特殊,候选码有三个,且如何推导得出DBE???

难道是因为E→C且C→E?如何得出?

4.应当确定一个合适的,能够反映现实世界的模式,而不是说规范化程度越高越好。


总结:对于范式概念理解方面以及题目练习还是不熟练。


完。



版权声明:本文为liyatjj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。