• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

数据库原理 第6章总结

互联网 diligentman 2周前 (04-29) 7次浏览

目录

 

1.回顾

第一范式(1NF)

2.数据依赖

2.1 函数依赖

定义

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

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

传递函数依赖

3.码

候选码

超码

主码

主属性 非主属性

全码

外部码 (外码)

4.范式

不同范式之间的关系

 

规范化

2NF

3NF

BCNF

多值依赖

平凡多值依赖和非平凡多值依赖

4NF

5.规范化过程

 6.候选码的求解理论和算法

闭包

小结


1.回顾

关系模式 :由五部分组成,是一个五元组

            R(U, D, DOM, F)

R是符号化的元组语义

U为一组属性

D为属性组U中的属性所来自的域

DOM为属性到域的映射

           F为属性组U上的一组数据依赖

DDOM与模式设计关系不大 这里只用到三元组:R<U,F>

二维表每个分量必须是不可分开的数据项。

满足了这个条件的关系模式就属于:

第一范式(1NF

 

2.数据依赖

是一个关系内部属性与属性之间的一种约束关系

  • 通过属性间值的相等与否体现出来的数据间相互联系

  • 是现实世界属性间相互联系的抽象

  • 是数据内在的性质

  • 是语义的体现

 

数据库原理 第6章总结

 

2.1 函数依赖

函数依赖普遍存在于现实生活中:

例如:描述一个学生关系,可以有学号(Sno)、姓名(Sname)、系名(Dept)等属性。

一个学号只对应一个学生,一个学生只在一个系中学习

学号确定后,学生姓名及所在系的值就被唯一确定。

数据库原理 第6章总结

   数据库原理 第6章总结

注意:一个的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少。应使用规范化理论改造关系模式来消除其中不合适的数据依赖

定义

R(U)是一个属性集U上的关系模式,XYU的子集。

对于R(U)的任意一个可能的关系rr 中不可能存在:

两个元组在X上的属性值相等,而在Y上的属性值不等

称“X函数确定Y或“Y函数依赖于X,记作XY。(X为这个函数依赖的决定因素

 

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

XY,但YX则称XY非平凡的函数依赖

XY,但YX 则称XY平凡的函数依赖

注意:

平凡函数依赖都是必然成立的 不反应新的语义 若不特别声明,我们总是讨论非平凡函数依赖

XYYX,则记作X←→Y

Y不函数依赖于X,则记作X数据库原理 第6章总结Y

 

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

R(U)中,

如果XY,并且对于X的任何一个真子集X’, 都有 X’ 数据库原理 第6章总结 Y, YX完全函数依赖,记作数据库原理 第6章总结

XY,但Y不完全函数依赖于XYX部分函数依赖,记作数据库原理 第6章总结

 

传递函数依赖

R(U)中,如果XY(YX)Y数据库原理 第6章总结XYZZY, 则称ZX传递函数依赖(transitive functional dependency)。记为:数据库原理 第6章总结

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

 

3.码

候选码

定义:设KR<U,F>中的属性或属性组合。

数据库原理 第6章总结K称为R的一个候选码(Candidate Key)

超码

定义:如果U部分函数依赖于K,即KU,K称为超码

注意:候选码是最小的超码,即K的任意真子集都不是候选码。

主码

定义:若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)

主属性 非主属性

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

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

全码

整个属性组是码,称为全码All-key

[例6.3]

R(P,W,A)
 P:演奏者     W:作品    A:听众

  一个演奏者可以演奏多个作品

  某一作品可被多个演奏者演奏

  听众可以欣赏不同演奏者的不同作品

    码为(P,W,A),即All-Key

外部码 (外码)

定义:

关系模式 R中属性或属性组X 并非 R的码

X 是另一个关系模式的码,

则称 X R 外部码Foreign key)也称外码

例:

SC(Sno,Cno,Grade)中,Sno不是码

SnoS(Sno,Sdept,Sage)的码,则SnoSC的外码

主码与外码一起提供了表示关系间联系的手段

 

4.范式

数据库原理 第6章总结

不同范式之间的关系

各种范式之间存在联系:数据库原理 第6章总结

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

 

规范化

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

 

2NF

定义:若关系模式R∈1NF,并且每一个非主属性完全函数依赖于任何一个候选码,R2NF

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

  函数依赖有

数据库原理 第6章总结
数据库原理 第6章总结

 

数据库原理 第6章总结

 

非主属性
Sdept

Sloc
并不
完全依赖于码
关系模式
S-L-C
不属于
2NF

 

一个关系模式不属于2NF,会产生插入异常、删除异常、修改复杂

解决方法
用投影分解把关系模式S-L-C分解成两个关系模式
SC(Sno,Cno,Grade)
S-L(Sno,Sdept,Sloc)

3NF

定义6.7】  设关系模式R<U,F>∈1NF,R中不存在这样的码X、属性组Y及非主属性Z YZ, 使得XYYZ成立,YX不成立,R<U,F> ∈ 3NF

没有传递依赖

例如:

1.SC没有传递依赖,因此SC ∈ 3NF

2.S-L中Sno →Sdept( Sdept ↛ Sno), Sdept→Sloc,可得Sno → Sloc。
解决的办法是将S-L分解成
S-D(Sno,Sdept)∈ 3NF
D-L(Sdept,Sloc)∈ 3NF

 

BCNF

通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。

【定义6.8  设关系模式R<U,F>∈1NFXYYXX必含有码,R<U,F>∈BCNF

换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF

[例6.6] 关系模式S(Sno,Sname,Sdept,Sage)

假定Sname具有唯一性

1.
S
有两个候选码:
Sno

Sname
,非主属性:
Sdept

Sage
2.
非主属性不存在对码的传递依赖和部分依赖,所以
S∈3NF
3.
S

决定因素
Sno

Sname
包含码,所以
S
也属于
BCNF

例 :关系模式SJP(S,J,P)中,S是学生,J表示 课程,P表示名次。每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一
个学生(即没有并列名次)。

由语义可得到函数依赖: (S,J)→P;(J,P)→S
1.候选码:(S,J),(J,P)。没有非主属性。
2.没有非主属性对码传递依赖或部分依赖,所SJP∈3NF。
3.除(S,J)与(J,P)以外没有其他决定因素,所以SJP∈BCNF。

例 关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。每一教师只教一门课。每门课有若干教师,某一学生选定某门课,就对应一个固定的教师。
由语义可得到函数依赖:(S,J)→T;(S,T)→J;T→J
候选码:(S,J),(S,T);没有非主属性
因为没有非主属性对码传递依赖或部分依赖,STJ ∈ 3NF。
因为T是决定因素,而T不包含码,所以STJ ∈ BCNF。

多值依赖

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

例:

【例】  TeachingC, T, B

Teaching具有唯一候选码(C,T,B), 即全码。Teaching∈BCNF  

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

因此T多值依赖于C,即C→→T

联想这个图

数据库原理 第6章总结

比如 参考书《普通物理学》不论是哪个教员来教学 都是属于课程物理

平凡多值依赖和非平凡多值依赖

  若X→→Y,而ZФ则称X→→Y平凡的多值依赖

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

4NF

定义: 关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→YY X),X都含有码,则R<U,F>∈4NF

如果一个关系模式是4NF, 则必为BCNF

例 在WSC中,W →→S, W→→C,他们都是非平凡多值依赖。而W不是码,关系模式WSC的码是(W,S,C),即All-key,因此WSC ∈ 4NF。
可以把WSC分解成WS(W,S),WC(W,C), WS∈4NF,WC∈4NF。

 

5.规范化过程

 

 数据库原理 第6章总结

 6.候选码的求解理论和算法

闭包

闭包(记作X就是由一个属性直接或间接推导出的所有属性的集合。

例如:

f={a->bb->ca->de->f}

a可直接得到bd,间接得到c

a的闭包就是{abcd}

 

对于给定的关系RA1A2…An)和函数依赖集F,可将其属性分为4类:

  •  L类     仅出现在函数依赖左部的属性。
  •  R 类   仅出现在函数依赖右部的属性。
  •  N 类   在函数依赖左右两边均未出现的属性。
  •  LR类  在函数依赖左右两边均出现的属性。

定理

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

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

推论:

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

XX∈R)是L类属性,且X+包含了R的全部属性;

X必为R的唯一候选码。

 

例:

设有关系模式RABCD),

其函数依赖集F={D→BB →DAD →BAC →D}

R的所有候选码。

 

解:

考察F发现,AC两属性是L类属性,

所以AC必是R的候选码成员,

又因为(AC+=ABCD,所以ACR的唯一候选码。

 

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

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

 

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

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

 

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

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

1】

设关系模式 U=(A , B , C , D ),

函数依赖集

F={D→ B , B → D , AD → B , AC → D},

U 的候 选码。

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

(2) LN=(A , C), 因为(AC) + = ACBD = U,  

     AC 是唯一候选码

还有这个有争议的题

我认为 是利用了闭包中L类和LR类中依次结合 因为BC和A是等价的  所以可以在LR类中也替换下BE试试

3】

设关系模式 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) LN=(D) , D+=D;

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

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

(5) U 的候选码有 DADBCDBE

 

小结

不能说规范化程度越高的关系模式就越好。

          必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式。上面的规范化步骤可以在其中任何一步终止。

 

 

 

 

 

 

 


程序员灯塔
转载请注明原文链接:数据库原理 第6章总结
喜欢 (0)