截止到现在,本门课程——数据库系统概论的第一篇—基础篇,就学习完成了,首先为我自己鼓掌👏👏👏。我坚持下来了😜
所以,从今天开始就将开始对第二篇—设计与应用开发篇 的学习。今天要开始的是第一部分,也就是第六章:关系数据理论,好了,话不多说,开始。
关系模式由五部分组成,是一个五元组:
R(U,D,DOM,F)
R是符号化的元组语义
U为一组属性
D为属性组U中的属性所来自的域
DOM为属性到域的映射
F为属性组U上的一组数据依赖
二维表每个分量必须是不可分开的数据项,满足这个条件的关系模式就属于:第一范式(1NF),比如之前做实验用过的Student表,Course表,SC表。
数据依赖是一个关系内部属性与属性之间的一种约束关系。主要类型有:函数依赖(FD),多值依赖(MVD)
函数依赖
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在:两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作 X → Y X\rightarrow Y X→Y
X
→
Y
X\rightarrow Y
X→Y,但
Y
⊈
X
Y\nsubseteq X
Y⊈X则称
X
→
Y
X\rightarrow Y
X→Y是非平凡的函数依赖。
X
→
Y
X\rightarrow Y
X→Y,但
Y
⊆
X
Y\subseteq X
Y⊆X则称
X
→
Y
X\rightarrow Y
X→Y是平凡的函数依赖。
平凡函数依赖必然成立,因此我们着重讨论非平凡函数依赖。
若
X
→
Y
X\rightarrow Y
X→Y,则X称为这个函数依赖的决定因素。
若
X
→
Y
X\rightarrow Y
X→Y,
Y
→
X
Y\rightarrow X
Y→X,则记作
X
←
→
Y
X\leftarrow \rightarrow Y
X←→Y。
若Y不函数依赖于X,则记作
X
↛
Y
X\nrightarrow Y
X↛Y
在R(U)中,如果
X
→
Y
X\rightarrow Y
X→Y,并且对于X的任何一个真子集X’,都有
X
’
↛
Y
X’\nrightarrow Y
X’↛Y,则称Y对X完全函数依赖,记作
X
F
→
Y
X\,\underrightarrow{F}\, Y
XFY.
若
X
→
Y
X\rightarrow Y
X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作
X
P
→
Y
X\,\underrightarrow{P}\, Y
XPY。
在R(U)中,如果 X → Y X\rightarrow Y X→Y( Y ⊈ X Y\nsubseteq X Y⊈X), Y ↛ X Y\nrightarrow X Y↛X, Y → Z Y\rightarrow Z Y→Z, Z ↛ Y Z\nrightarrow Y Z↛Y,则称Z对X传递函数依赖。记为: X 传 递 → Y X\,\underrightarrow{传递}\, Y X传递Y。
码
设K为R<U,F>中的属性或属性组合。若
K
F
→
U
K\,\underrightarrow{F}\, U
KFU,则K称为R的一个候选码。
包含在任何一个候选码中的属性,成为主属性
不包含在任何码中的属性称为非主属性。
整个属性组是码,称为全码。
关系模式 R中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码,也称外码。
范式
范式是符合某一种级别的关系模式的集合。
种类:
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- BC范式(BCNF)
- 第四范式(4NF)
- 第五范式(5NF)
2NF:若关系模式 R ∈ 1 N F R\in 1NF R∈1NF ,并且每一个非属性都完全函数依赖于任何一个候选码,则 R ∈ 2 N F R\in 2NF R∈2NF
3NF:设关系模式 R < U , F > ∈ 1 N F R<U,F>\in 1NF R<U,F>∈1NF ,若R中不存在这样的码X、属性组Y及非主属性Z( Z ⊉ Y Z\nsupseteq Y Z⊉Y ),使得 X → Y X\rightarrow Y X→Y, Y ↛ Z Y\nrightarrow Z Y↛Z成立, Y ↛ X Y\nrightarrow X Y↛X不成立,则称 R < U , F > ∈ 3 N F R<U,F>\in 3NF R<U,F>∈3NF .
BCNF:设关系模式
R
<
U
,
F
>
∈
1
N
F
R<U,F>\in 1NF
R<U,F>∈1NF ,若
X
→
Y
X\rightarrow Y
X→Y且
Y
⊈
X
Y\nsubseteq X
Y⊈X时X必含有码,则
R
<
U
,
F
>
∈
B
C
N
F
R<U,F>\in BCNF
R<U,F>∈BCNF 。
换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则
R
∈
B
C
N
F
R\in BCNF
R∈BCNF
多值依赖:设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖 X → → Y X\rightarrow\rightarrow Y X→→Y成立,当且仅当对R(U)的任意关系r,给定的一对(r,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
若
X
→
→
Y
X\rightarrow\rightarrow Y
X→→Y,而
Z
=
∅
Z=\emptyset
Z=∅,则称
X
→
→
Y
X\rightarrow\rightarrow Y
X→→Y为平凡的多值依赖。
否则称
X
→
→
Y
X\rightarrow\rightarrow Y
X→→Y为非平凡的多值依赖。
关系模式 R < U , F > ∈ 1 N F R<U,F>\in 1NF R<U,F>∈1NF ,如果对于R的每个平凡多值依赖 X → → Y X\rightarrow\rightarrow Y X→→Y( Y ⊈ X Y\nsubseteq X Y⊈X),X都含有码,则 R < U , F > ∈ 4 N F R<U,F>\in 4NF R<U,F>∈4NF。
如果一个关系模式是4NF,则必为BCNF。
好了,主要内容大概就是这些了。接下来就来看一些练习题吧。
附加题
一.
Y(X1,X2,X3,X4)
(X1,X2)→X3
X2→X4
- 侯选码?
- 属于第几范式?
1) 候选码:(X1,X2)
2) 属于第一范式
二.
R(A,B,C,D)
F={AB→D,AC→BD,B→C}
- 侯选码?
- 最高属于第几范式?
三.
R(X,Y,Z,W)
F={Y←→W,XY→Z}
- 侯选码?
- 最高属于第几范式?
四.
R(A,B,C,D,E) F={A→B,CE→A,E→D}
- 求候选码。
- 最高属于第几范式,为什么?
- 分解到3NF。
五.
R(商店编号,商品编号,数量,部门编号,负责人)
每个商店的每种商品只在一个部门销售,
每个商店的每个部门只有一个负责人,
每个商店的每种商品只有一个库存数量。
- 求候选码。
- R已达第几范式?为什么?
- 若不属于3NF,分解成3NF。
六.
R(A,B,C,D,E,F) F={A→C,AB→D,C→E,D→BF}
- 写出关键字。
- 分解到2NF。
- 分解到3NF。
- 分解到4NF。
终于算是写完了,知识掌握的还是有点问题,有些地方不太会,还是看了看同学的作业才有的思路,还得继续练习啊。
PS:本来想的是好久没有真正手写了,得练一下,要不到时候考试犯难,于是手写了一次作业。But。。。我发誓,我以后一定好好练字,绝不偷懒!!!
这次的手写作业真是。。。不忍直视😅