
1设关系模式R(ABCD),在R上的FD为F={A→BC,C→AD},在其上的分解为ρ={ABC,AD},回答下列问题: (1)判断是否为无损分解并说明理由。(2)是否保持FD集并说明理由。2关系模
第6章 关系模式的规范化理论
关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。规范化设计理论对关系数据库结构的设计起着重要的作用。
关系模型有严格的数学理论基础,因此人们就以关系模型为作为讨论对象,形成了数据库逻辑设计的一个有力工具――关系数据库的规范化理论。
本章内容
(1)关系模式的冗余和异常问题。
(2)FD的定义、逻辑蕴涵、闭包、推理规则、与关键码的联系;平凡的FD;属性集的闭包;推理规则的正确性和完备性;FD集的等价;最小依赖集。
(3)无损分解的定义、性质、测试;保持依赖集的分解。
(4)关系模式的范式:1NF,2NF,3NF,BCNF。分解成2NF、3NF模式集的算法。
(5)MVD、4NF、5NF的定义。
一,关系模式设计中的问题
什么是好的数据库
构建好的,合适的数据库模式,是数据库设计的基本问题
a) 体现客观世界的信息
b) 无过度的冗余
c) 无插入异常
d) 无删除异常
e) 无更新复杂
如书上的S_C_G关系。
假设需要设计一个学生学习情况数据库StuDB。
下面我们以模式S_C_G(Sno,Sname,Dname,Age,Cno,Cname,Score,Pre_cno)为例来说明该模式存在的问题。下表是其一个实例。
冗余度大:每选一门课,他本人信息和有关课程信息都要重复一次。
插入异常:插入一门课,若没学生选修,则不能把该课程插入表中。
删除异常:如S11号学生的删除,有一门只有他选,会造成课程的丢失。
更新复杂:更新一个人的信息,则要同时更新很多条记录。还有更新选修课时也存在这样的情况。
异常的原因:
数据信赖的约束
解决方法:
数据库设计的规范化:分解,每个相对的独立,依赖关系比较单纯,如分解为3NF
我们采用分解的方法,将上述S_C_G分解成以下三个模式:
S(Sno,Sname,age,Dname)
C(Cno,Cname,Pre_cno)
S_C(Sno,Cno,Score)
规范化设计理论包括三个内容:
i> 数据信赖 ---- 核心,研究数据之间的联系
ii> 范式 ---- 关系模式的标准
iii> 模式设计方法 ---- 自动化设计的基础
二, 函数依赖 ( Functional Dependency,FD)
1 函数依赖的定义:(还有非函数的依赖?,什么是函数? 给出一个值能唯一确定另外一个值?映射:一对一,多对一,一对多)
定义:函数依赖是指一个或一组属性可以(唯一)决定其它属性的值。
数学的语言:
设有关系模式R(U),其中U={A1,A2,…,An}是关系的属性全集,X、Y是U的属性子集,设t和u是关系R上的任意两个元组,如果t和u在X的投影t[X]=u[X]推出t[Y]=u[Y],即:t[X]=u[X] => t[Y]=u[Y],
则称X函数决定Y,或Y函数依赖于X。记为X→Y。
在上述的关系模式S(Sno,Sname,age,Dname)中,存在以下函数依赖:
Sno→age
Sno→Dname
(Sno,Cno)→Score
2 几种类型的函数依赖
定义62(非平凡函数依赖、平凡函数依赖):一个函数依赖X→Y如果满足Y⊈X,则称此函数依赖为非平凡函数依赖,否则称之为平凡函数依赖。
例如X→Φ, X→X , XZ→X等都是平凡函数依赖。
定义63(完全函数依赖、部分函数依赖):设X、Y是关系R的不同属性集,若X→Y (Y函数依赖于X),且不存在X’ ⊂X ,使X’→Y,则称Y完全函数依赖于X,记为;(即不存在真子集仍然是函数依赖关系的函数依赖是完全函数依赖)。
否则则称Y部分函数依赖于X,记为 。
例如,在上例关系S中, 是完全函数依赖;
、 是部分函数依赖。
在属性Y与X之间,除了完全函数依赖和部分函数依赖关系等直接函数依赖,还存在间接函数依赖关系。如果在关系S中增加系的电话号码Dtel,从而有Sno→Dname, Dname→Dtel,于是Sno→Dtel。在这个函数依赖中,Dtel并不直接依赖于Sno,是通过中间属性Dname间接依赖于Sno。这就是传递函数依赖。
定义64(传递函数依赖):设X、Y、Z是关系模式R (U)中的不同的属性集,如果X→Y,Y→X,Y→Z,则称Z传递依赖于X。否则,称为非传递函数依赖。
举例说明:
定义65 关键字(Key,候选键):在关系模式R(U)中,若K⊆U,且满足,则称K为R的关键字。
一个包含了关键字的属性集合也能够函数决定(但不是完全函数决定,而是部分决定)属性全集,我们把这种包含了关键字的属性集合称为超关键字(Super Key)。
例如,在上例的S(Sno,Sname,Dname,Age)、C(Cno,Cname,Pre_cno)、S_C(Sno,Cno,Score)三个关系模式中,存在以下关键字:
所以,Sno、Cno和(Sno,Cno)分别是关系模式S、C和S_C的关键字 。
所以,(Sno,Sname)和(Sno,Dname)都不是关键字,而是超关键字。
3 函数依赖的公理系统
(1) 函数依赖的逻辑蕴涵
例如 在上述的传递函数依赖中,由X→Y,Y→Z,推导出X→Z,这可以表示为:
{X→Y,Y→Z}⊨ X→Z 其中: ⊨表示逻辑蕴涵。
一般地,函数依赖的逻辑蕴涵定义如下:
定义66(逻辑蕴涵):设F是由关系模式R(U)满足的一个函数依赖集,X→Y是R的一个函数依赖,且不包含在F,如果满足F中所有函数依赖的任一具体关系r,也满足X→Y,则称函数依赖集F逻辑地蕴涵函数依赖X→Y,或称X→Y可从F推出。可表示为: F⊨X→Y
例:Sno→Dname, Dname→Dtel, 则: Sno→Dtel
F X→Y
函数依赖集F的闭包F+
定义67:函数依赖集F所逻辑蕴涵的函数依赖的全体称为为F的闭包(Closure),记为F+,即F+={X→Y|F⊨X→Y}
例如,有关系R(X,Y,Z),它的函数依赖集F={X→Y,Y→Z},则其闭包F+为:
(2) Armstrong公理系统
1)独立推理规则
即下面给出的Armstrong公理的三条推理规则是彼此独立的。
A1:自反律(Reflexivity)
如果Y⊆X,则X→Y成立,这是一个平凡函数依赖。
根据A1可以推出X→Ф、U→X等平凡函数依赖(因为Ф⊆X⊆U)、XY→X。
A2:增广律(Augmentation)
如果X→Y,且Z⊆W,则XW→YZ成立。
根据A2可以推出XW→Y、XZ→YZ或XW→YW、X→XY、XY→X等。
A3:传递律(Transitivity)
如果X→Y且Y→Z,则X→Z成立
其他推理规则
推论1:合并规则(The Union Rule)
{X→Y,X→Z}⊨ X→YZ
推论2:分解规则(The Decomposition Rule)
如果X→Y,Z ⊆ Y,则X→Z成立; (X→YZ),X→Y,X→Z
推论3:伪传递规则(The Pseudo Transitivity Rule)
{X→Y,WY→Z}⊨ XW→Z
证:(1)X→Y⊨ X→XY(A2增广律)
X→Z⊨ XY→YZ (A2增广律)
由上可得X→YZ(A3传递律)
(2)Z⊆Y⊨ Y→Z (A1自反律)
X→Y (给定条件)
由上可得X→Z (A3传递律)
(3)X→Y⊨WX→WY (A2增广律)
WY→Z (给定条件)
由上可得XW→Z(A3传递律)
例62:设有关系模式R(A,B,C,D,E)及其上的函数依赖集F={AB→CD,A→B,D→E},求证F必蕴涵A→E。
证明:∵ A→B (给定条件)
∴ A→AB (A2增广律)
∵ AB→CD (给定条件)
∴ A→CD (A3传递律)
∴ A→C,A→D (分解规则)
∵ D→E (给定条件)
∴ A→E (A3传递律)
证毕。
一个重要定理
定理61:若Ai(i=1,2,…,n)是关系模式R的属性,
则X→(A1,A2,…,An)成立的充分必要条件是X→Ai均成立
证明由分解和合并规则容易得到。
推论61 X是候选键的充分必要条件是X→每个属性Ai。
例:
1 现有如下关系模式:R(A#,B#,C,D,E) ,R上存在的FD有A#B#→E,B#→C,C→D ,求R的一个候选键。
解:
A#B#→E, 得 A#B#→A#B#E
又B#→C, 得 A#B#→A#B#CE
又C→D, 得 A#B#→A#B#CDE
因此A#B#是候选键。
也可以这样做:
先由B#→C 出发,得B#→B#CD, 还少一个A#, 再加一个A#即可,得
A#B#→A#B#CDE
2 设有关系模式R (A,B,C,D),F是R上成立的FD集,F = {D→A,D→B},试写出关系模式R的候选键,并说明理由。
方法一
因为:
D→A,D→B (已知)得 D→AB
D→D,得D→ABD, 但 D!→C
而CD→C(A1自反律),
我们有,CD→ABCD, 即 CD→U
因此,CD为候选键。
也可以这样做:
方法二
D→A,D→B (已知)
D→D, 但 D!→C
而CD→C(A1自反律),
我们有,CD→A, CD→B, CD→C, CD→D, 由合并规则知:CD→ABCD
因此,CD为候选键。
3 关系模式R(A,B,C,D)的函数依赖集为F={AC→B},求R的候选键
解:
因为 AC→B
所以 AC→ACB
所以 ACD→ABCD
所以R的候选码是ACD
4 有关系模式R(A,B,C,D,E,F)其函数依赖集为F={E→D,C→B,CE→F,B→A},判断CE为候选键。
解
CE→D (A2 增广律)
CE→B
CE→C (A1 自反律)
CE→E
CE→F (给定条件)
CE→C, C→B, 则 CE→B, 又 B→A, 所以有:CE→A
由合并规则,即CE→U, 为候选键
按方法一
由E→D知:E→DE
由C→B知:C→BC, 又B→A, 知:C→ABC
由合并规则知:
CE→ABCDE, 为候选键
5 设关系R={A,B,C,D,E,F},其函数依赖集F={A→B, C→D, D→E, E→F, F→C},求R的所有候选键。
解:
C→D, C→E, C→E , C→C, C! →A, 把A加上,则有
AC→A, AC→B, … AC→U
因此AC为候选键。
又因为:
D→E, D→F, D→C, D→D, 同理:AD为候选键。
同理可得:AE, AF 也为候选键。
综上所述,R的候选码为:AC,AD,AE,AF。
关系模式R(A,B,C,D)的函数依赖集为F={AC→B},则R的候选键为( )。
6 关系模式R(U,F),其中U={W,X,Y,Z},F={WX→Y,W→X, X→Z,Y→W}。关系模式R的候选建是什么?
解法:从函数依赖集出发,把所有属性分为4类
1、L类:全部出现在函数依赖的左半部
2、R: 全部出现在函数依赖的右半部
3、LR: 出现在函数依赖的左右两边
4、N: 不出现在函数依赖中
可能成为候选键的有L类,LR类和N类
对于L类,求出它的闭包,若包含所有属性,则说明其为候选键,且为唯一候选键。
对于LR类,求出其闭包,若包含所有属性,则为候选键,若不包含,在找出其中一个属性结合。
对于N类,直接加至候选键即可。
L:无
R: Z
LR: W,X,Y
N:无
先排除Z
在LR中,W的闭包为{W,Y,Z,X}
X的闭包为{X,Z}
Y闭包为{Y,W}
WX的闭包为{W,X,Y,Z}
WY的闭包为{W,Y}
XY的闭包为{X,Y,Z,W}
WXY的闭包为{X,Z,Y,W}
由此可见,可能的键为{W,WZ,XY,XYW},去掉多余的属性,得:W,XY为候选键。
F+很大,一般不去求它。在我们求候选键时,主要用到的是属性集的闭包。
属性集闭包
定义68(属性集闭包): 设有关系模式R(U), U={ A1,A2,…,An}, X是U的子集, F是U上的一个函数依赖集,则属性集X关于函数依赖集F的闭包 定义为:
={Ai|Ai∈U,且X→Ai可用阿氏公理从F推出}
即:属性(集)闭包是 那些由X用阿氏公理从F推出的属性组成的集合。
例:设关系模式R(A,B,C)的函数依赖集为F={A→B,B→C},分别求A、B、C的闭包。
解:若X=A,
∵ A→B,B→C(给定条件)
∴ A→C (A2传递律)
∵ A→A (A1自反律)
∴ ={A,B,C} (据定义)
若X=B
∵ B→B (A1自反律)
B→C (给定条件)
∴ ={B,C} (据定义)
若X=C,
C→C (自反律)
∴ ={C} (据定义)
定理62: 设F是关系模式R(U)上的函数依赖集,U是属性全集,X,Y⊆U,则函数依赖X→Y是用阿氏公理从F推出的,充分必要条件是Y⊆ ;
反之,能用阿氏公理从F推出的所有X→Y的Y都在 中。
证明:略
这个定理告诉我们,只要Y⊆ ,则必有X→Y。于是,一个函数依赖X→Y能否用阿氏公理从F推出的问题,就变成判断Y是否为 子集的问题。
属性集的闭包计算
算法61:求属性集X(X⊆ U)关于U上的函数依赖集F的闭包 。
输入:属性全集U, U上的函数依赖集F, 以及属性集X⊆ U。
输出:X关于F的闭包 。
方法:根据下列步骤计算一系列属性集合X(0),X(1),…
(1) 令X(0)=X,i=0;
(2) 求属性集
/在F中寻找满足条件V ⊆ X(i)的所有函数依赖V→W,并记属性W的并集为B/
(3) X(i+1)=X(i) ∪B
(4)判断X(i+1)= X(i)吗?
(4)若X(i+1) ≠ X(i),则用i+1取代i,返回(2);
(5)若X(i+1) = X(i),则 =X(i),结束。
定理63 Armstrong 公理是正确的,完备的。
完备性:F所蕴涵的每个函数依赖都可由Armstrong 公理从F可推出。
3 函数依赖集的等价和覆盖
定义69(函数依赖集的等价、覆盖):设F和G是关系R(U)上的两个依赖集,若F+=G+,则称F与G等价,记为F=G。也可以称F覆盖G,或G覆盖F;也可说F与G相互覆盖。
检查两个函数依赖集F和G是否等价的方法是:
第一步:检查F中的每个函数依赖是否属于G+,若全部满足,则F⊆G+。如若有X→Y∈F,则计算 ,如果Y ⊆ , 则X→Y∈G+;
第二步:同第一步,检查是否G⊆F+;
第三步:如果F ⊆ G+,且G⊆F+,则F与G等价。
由此可见,F和G等价的充分必要条件是:F⊆G+,且G⊆F+。
引理61:设G是一个函数依赖集,且其中所有依赖的右部都只有一个属性,则G覆盖任一左部与G(左部)相同的函数依赖集。
证明:构造G={X→A|X→Y∈F且A∈Y}
由A∈Y,X→Y∈F根据分解规则导出,从而等到G ⊆ F+。
反之,如果Y=A1A2…An,而且X→A1,X→A2,…X→An在G中可根据合并律等到F⊆ G +。
由此可见,F与G等价,即F被G覆盖。
一个函数依赖集F可能有若干个与其等价的函数依赖集,我们可以从中选择一个较好以便应用的函数依赖集。标准至少是:
所有函数依赖均独立,即该函数依赖集中不存在这样的函数依赖,它可由这个集合中的别的函数依赖推导出来。
表示最简单,即每个函数依赖的右部为单个属性,左部最简单。
定义610(最小函数依赖集):函数依赖集F如果满足下列条件,则称F为最小函数覆盖,记为Fmin:
(1) F中每一个函数依赖的右部都是单个属性。
(2) 对F中任一函数依赖X→A,F-{X→A}都不与F等价。
(3) 对于F中的任一函数依赖X→A, {F-{X→A}}∪{Z→A}都不与F等价,其中Z为X的任一子集。
求函数依赖集F的最小覆盖的方法是:
(1) 检查F中的每个函数依赖X→A,若A= A1,A2,…,Ak,则根据分解规则,用X→Ai(i=1,2,…,k)取代X→A。
(2) 检查F中的每个函数依赖X→A,令G=F-{X→A},
若有 A∈ ,则从F中去掉此函数依赖。
(3) 检查F中各函数依赖X→A,设X= B1,B2,…,Bm,检查Bi ,
当A∈ 时,即以X-Bi替换X。
例65:求下列函数依赖集的最小覆盖:
F={AH→C,C→A,EH→C,CH→D,D→EG,CG→DH,CE→AG,ACD→H }。
解:(1)用分解规则将F中的所有依赖的右部变成单个属性,可以得到以下11个函数依赖:
AH→C,C→A,CH→D,ACD→H (给定)
C→E,C→G(由C→EG分解得到)
EH→C(给定)
CG→H,CG→D (由CG→DH分解得到)
CE→A,CE→G (由CE→AG分解得到)
(2) 根据阿氏公理去掉F中的冗余依赖
由于从C→A可推出CE→A,从C→A、CG→D、ACD→H推出CG→H,因此CE→A和CG→H是冗余,可从F删除 。
(3) 用所含属性较少的依赖代替所含属性较多的依赖。
由于C→A, ACD→H中A是冗余属性,因此,可用CD→H代替ACD→H,故删除ACD→H。
最后得到F的最小覆盖为:
F={AH→C,C→A,CH→D,CD→H,C→E,C→G,EH→C,CG→D,CE→G}
65 关系模式的规范化
一.什么是范式(Normal Forms)
构造数据库必须遵循一定的规则,满足特定规则的模式称为范式。
R(U|F)
一个关系满足某个范式所规定的一系列条件时,它就属于该范式。
可以用规范化要求来设计数据库。
也可验证设计结果的合理性,用其来指导优化数据库设计过程。
关系规范化条件可分为几级,每级称为一个范式,记为第xNF (Normal Forms)
1NF 2NF3NF BCNF, 4NF 5NF
级别越高,条件越严格
5NF(4NF(BCNF(3NF(2NF(1NF
范式是衡量模式优劣的标准,范式表达了模式中数据依赖之间应满足的联系。如果关系模式R是3NF,那么R上成立的非平凡FD都应该左边是超键或右边是非主属性。如果关系模式R是BCNF,那么R上成立的非平凡的FD都应该左边是超键。范式的级别越高,其数据冗余和 *** 作异常现象就越少
二,第1范式(1NF)
1 如果一个关系模式R的每个属性的域都只包含单纯值,而不是一些值的集合或元组,则称关系是第1范式,记为R∈1NF
或: 如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式
(理解:每个元组的每个属性只含有一个单纯值,即要求属性是原子的。)
这是关系模式的基本要求,条件是最松的,只要你不硬把两个属性塞到一个字段中去。如果不满足1NF,就不是关系数据库。
字段1 字段2 字段3
属性1 属性2
把一个非规范化的模式变为1NF有两种方法:
把不含单纯值的属性分解为多个属性,使它们仅含有单纯值。
例:通讯方式:电话、手机,邮编,地址等。
通讯方式分开:电话,邮编,通讯地址。
例:NameFirst Name, Last Name
2) 把关系模式分解,并使每个关系都符合1NF
学生(学生信息)
3 原子属性:
列的:每个字段不再分割成多个属性。
行的:每个元组在表可只出现一次。
4 第一范式中一般情况下都会存在着数据的冗余和异常现象,因此关系模式需要进一步的规范化。
三,第2范式 (2NF)
它是在1NF的基础上建立起来的。
如果关系模式R∈1NF,且它的任一非主属性都完全函数依赖于任一候选关键字,则称R满足第2范式,记为R∈2NF
(理解:不存在非主属性对关键字的部分函数依赖)
例:学生(sno, cno, score, credit)是否属于2NF?
(sno,cno) -f Score
但 (sno,cno)-p credit
因此,学生∈1NF。
例:S(sno,sname,age,dname,dtel)
因为每个非主属性对关键字S都是完全函数依赖的,S∈2NF
由上例,2NF依然可有过多冗余(dtel)。继续分解,提高条件。
四,第3范式(3 NF)
如果R∈2NF,且每一个非主属性不传递依赖于任一候选关键字,则称R∈3NF
(理解:任一属性不依赖于其它非主属性)
例:S(sno,sname,age,dname,dtel)
因为dtel属性对关键字sno是传递函数依赖的,S!∈3NF
分解:
S(sno,sname,age,dname)
D(dname,dtel)
注:一个R∈3NF它个每个非主属性既不部分依赖也不传递依赖于候选关键字。
例:S_C_G(U)是第几范式? 2NF
五,BCNF(Boyce-Codd)
在第3范式的基础上,设有R,及其函数依赖集F,X和A是R的属性集合,且A!(X,如果只要R满足XA,X就包含R的一个候选关键字,则称R满足BCNF,记为:
理解:表可不存在任何字段(主属性和非主属性)对任一候选关键字的完全函数依赖则符合BCNF
(1) 所有非主属性A对键都是完全函数依赖的(R∈2NF)。
(2) 没有属性完全函数依赖于非键的任何属性组(R∈3NF)。
(3) 所有主属性对不包含它的键是完全函数依赖的(新增加条件)。
例,模式S (NAME,SEX,BIRTH,ADDR,DNAME)的主属性为:NAME,SEX,BIRTH和ADDR,候选关键字为:(NAME,SEX)、(NAME,BIRTH)以及(NAME,ADDR)。
定义中的A为(ADDR,DNAME)。显然有:
例613:关系模式STC(SNO,TNO,CNO),SNO表示学号,TNO表示教师编号,CNO表示课程号。每一个教师只教一门课,每门课有若干教师,某一个学生选定某门课,就对应一个固定教师。试判断ST的最高范式。
解 由语义可得到如下的函数依赖:
(SNO,CNO)→TNO,(SNO,TNO)→CNO,TNO→CNO
这里(SNO,CNO),(SNO,TNO)都是侯选关键字。
因为没有任何非主属性对侯选关键字部分依赖,所以STC∈2NF。
没有任何非主属性对侯选关键字传递依赖,所以STC∈3NF。
但在F中有TNO→CNO,而TNO不包含侯选关键字,所以STC不是BCNF关系
这里我们可以将STC(SNO,TNO,CNO)分解成ST(SNO,TNO)和TC(TNO,CNO),它们都是BCNF。
范式之间的关系
例:
1 现有如下关系模式: R(A#,B#,C,D,E) 其中:A#B#组合为码 R上存在的函数依赖有A#B#→E,B#→C,C→D
(1)该关系模式满足2NF吗为什么
(2)如果将关系模式R分解为:
R1(A#,B#,E)
R2(B#,C,D) 指出关系模式R2的码,说明其最高满足第几范式 (在1NF~BCNF之内)。
(3)将关系模式R分解到BCNF。
∵(BE)+=ABCDE,,B+=BC不属于ABCDE,E+=E不属于ABCDE。
∴BE为R的关键字。
考虑A→C,不包含关键字。
∴将R分解为R11(AC)R12(ABDE)F11的函数依赖为{A→C},F12的函数依赖为(AD)。
∵F11∈BCNF,F12不属于BCNF,继续分解。
将的R12分解为R21(AD),R22(ABE)。
F21的函数依赖为{A→D},F22的函数依赖为{BE→A}。
∵R21∈BCNF,R22∈BCNF。
∴R的一组BCNF模式分解为R11(AC),R21(AD),R22(ABE)。
注:分解的结果可能不唯一。
扩展资料:
推导:
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意两个可能的关系r1、r2,若r1[x]=r2[x],则r1[y]=r2[y],或者若r1[y]不等于r2[y],则r1[x]不等于r2[x],称X决定Y,或者Y依赖X。
上面一段话是某些教材上的话,比较不好理解。比如在设计学生表时,一个学生的学号能决定学生的姓名,也可称姓名属性依赖于学号,对于现实来说,就是如果知道一个学生的学号,就一定能知道学生的姓名。
这种情况就是姓名依赖于学号,这就是函数依赖,函数依赖又分为非平凡依赖,平凡依赖;从性质上还可以分为完全函数依赖、部分函数依赖和传递函数依赖。
Y=f(x)
1、数据依赖
在计算机科学中,数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态。其中最重要的是函数依赖和多值依赖。
2、函数依赖
设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X。
3、平凡函数依赖
当关系中属性集合Y是属性集合X的子集时(Y⊆X),存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。
参考资料来源:百度百科--函数依赖
参考资料来源:百度百科--无损分解
修改异常造成数据不一致性。如果学号位0111的张三从教师岗位换到管理岗位,在维护BORROWBOOK表时不够小心的话,可能会使他在某些元组中的ReaderType的值改成其他,而在另一组元组中的ReaderType仍为教师,这就出现一个学生有多个系的情况,显然与实际语义不符。
以上就是关于计算机数据库原理问题全部的内容,包括:计算机数据库原理问题、有FD头像。空间的素材传点给我、如何将一个关系模式分解成无损连接的BCNF等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)