数据库之函数依赖公理体系共34页文档
数据库函数依赖的Armstrong公理ppt课件
R4大家课后自己证明,P136的通用一致性规则A8略去。
精选编辑ppt
5
R1)并规则:若XY, XZ, 则XYZ成立。 R2)伪传递规则:若XY, WYZ, 则WXZ成立。 R3)分解规则:若XY, 且Z Y, 则XZ成立。 证明: Z Y A1 YZ A3 XZ
XY
精选编辑ppt
4
函数依赖的Armstrong公理
Armstrong公理: 给定关系模式R(U)和FD集F, 可以推出哪 些FD?怎样推导?包括下列公理:
证明: XY A2 WXWY A3 WXZ WYZ
精选编辑ppt
3
函数依赖的Armstrong公理
Armstrong公理: 给定关系模式R(U)和FD集F, 可以推出哪 些FD?怎样推导?包括下列公理:
A1)自反律:若Y XU, 则XY成立。平凡依赖 A2)增广律:若ZU且XY, 则X Z Y Z成立。 A3)传递律:若XY, YZ, 则XZ成立。 根据以上三条公理,可证明以下推导规则:
精选编辑ppt
1
函数依赖的Armstrong公理
Armstrong公理: 给定关系模式R(U)和FD集F, 可以推出哪 些FD?怎样推导?包括下列公理:
A1)自反律:若Y XU, 则XY成立。平凡依赖 A2)增广律:若ZU且XY, 则X Z Y Z成立。 A3)传递律:若XY, YZ, 则XZ成立。 根据以上三条公理,可证明以下推导规则: R1)并规则:若XY, XZ, 则XYZ成立。
函数依赖的Armstrong公理
Armstrong公理: 给定关系模式R(U)和FD集F, 可以推出哪 些FD?怎样推导?包括下列公理:
A1)自反律:若Y XU, 则XY成立。平凡依赖 A2)增广律:若ZU且XY, 则X Z Y Z成立。 A3)传递律:若XY, YZ, 则XZ成立。 注意和传递依赖的定义进行区分: 传递律对X、Y、Z、XY、YZ没有限制
5-关系数据库理论-2
5.3 数据依赖的公理系统
已知关系模式R<U,F>,其中 , ,其中U={A, B, C, D, E,G}, 已知关系模式 , F= {AB→C, C→A, ACD→B, D→EG, BE→C,CG →BD, CE →AG },求 (BD)F+。 , 。 设X(0)=BD; ; 计算X(1):逐一扫描 集合中各个函数依赖,找左部为 、B 逐一扫描F集合中各个函数依赖 计算 逐一扫描 集合中各个函数依赖,找左部为D、 的函数依赖, 或BD的函数依赖,有D→EG,于是 的函数依赖 ,于是X(1)=AB∪EG=BDEG。 ∪ 。 因为X(1)≠X(0); 因为 ; 计算X(2):再找出左部为 再找出左部为BDEG子集的那些函数依赖,又得 子集的那些函数依赖, 计算 再找出左部为 子集的那些函数依赖 到BE→C,于是 ,于是X(2)= X(1)∪C=BDEGC, X(2)≠X(1) ; ∪ 计算X(3): X(3)= X(2)∪ABDG=BDEGCA; 计算 ∪ ; X(3)=U,算法终止, (BD)F+ =ABCDEG。 ,算法终止, 。 思考: 是否为关系模式 的候选码? 是否为关系模式R的候选码 思考:BD是否为关系模式 的候选码?
有效性:由F出发根据Armstrong公理推导出来的每一个函数依赖一定在F+中 /* Armstrong正确 完备性:F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出 来 /* Armstrong公理够用,完全 所有不能用Armstrong公理推导出来f, 都不为真 若 f 不能用Armstrong公理推导出来, f不属于 F+
5.3 数据依赖的公理系统
Armstrong公理系统还可以得到以下三条推理规则:
数据库之函数依赖公理体系
DE,DG,BEC,CGB , CGD,CEA,CEG
① F1=
ABC,CA,BCD,ACDB, DE,DG,BEC,CGB , CGD,CEA,CEG
② F21=
ABC,CA,BCD,ACDB, DE , DG , BEC , CGD , CEA,CEG
③ 对F中的任何FD:XA和X的任何真子集Z,
(F-{XA})∪{ZA}不等价于F。
每个FD左端无多余 的属性
F没有 多余的
FD
求解方法
(1)用分解规则将F中的所有函数依赖分解成右 端为单个属性的函数依赖;
Armstrong公理的推论 分解规则:若XY,且ZY,则XZ
(2)去掉F中冗余的函数依赖
(1)若X是L类属性,则X必为R的某一候选键的成 员;
(2)若X是L类属性,且X+包含了R的全部属性, 则X必为R的唯一候选键;
(3)若X是R类属性,则X不是任一候选键的成员; (4)若X是N类属性,则X必包含在R的某一候选键
中; (5)若X是R的N类属性和L类属性组成的属性集,
且X+包含了R的全部属性,则X是R的唯一候选键。
CGB,CEG
四、候选键的求解方法
1、属性分类 对于给定的关系R(U)和函数依赖集F,可将
其属性分为4类: ① L类:仅出现在F的函数依赖左部的属性; ② R类:仅出现在F的函数依赖右部的属性; ③ N类:在F的FD左右两边均未出现的属性; ④ LR类:在F的FD左右两边均出现的属性。
2、快速求解候选键的一个充分条件
对于F中任一FD:XY
① G = F-{XY};
② 求X关于G的闭包XG+; ③ 看XG+是否包含Y。如果XG+包含Y,则在G 中逻辑蕴涵XY,说明XY是多余的函数依赖, 所以F=G;如果X+不包含Y,则保留XY。
函数依赖公理体系
属性,…,将其记为集合B,并求(XB)F+ :若(XB)F+包含了R的全部属性,且自身 不包含已求出的候选键,则XB为R的一个 候选键; • ⑦ 重复⑥,直到Y中的属性按⑥的组合依 次取完为止; • ⑧ 输出候选键,算法结束。
2020/6/3
2020/6/3
1、函数依赖集的等价与覆盖
• 定义5.5 • 设F和G是两个函数依赖集,如果F+=
G+,则称F和G等价。如果F和G等价,则 称F覆盖G,同时也称G覆盖F。
2020/6/3
定理
• 定理5.7 F+=G+的充要条件是FG+和 GF+。
所 有
F
F+= G+
X→Y G+
X→Y能否Y由GX根G据+ ?公理导出?
2020/6/3
三、最小函数依赖集
• 一个函数依赖集F的闭包F+通常包含 很多函数依赖,有些函数依赖是无意义的 ,如平凡的函数依赖,还有一些是可以推 导出的,即无关的函数依赖。如果将每一 个函数依赖看作是对关系的一个约束,要 检查F+中的每一个函数依赖对应的约束, 显然是一件很繁重的任务。如果能找出一 个与F等价的、包含较少数目函数依赖的 函数依赖集G,则可以简化此工作。最小 函数依赖集的概念由此而提出。
② F22=
ABC , CA , BCD , ACDB , DE , DG , BEC , CGD,CEG
③ F3=
2020/6/3
ABC , CA , BCD, CDB , DE , DG , BEC , CGD , CEG
3、举例(续四)
• 例5.5:求函数依赖集F的最小函数依赖集
• 法2:
① F1=
第3-4讲函数依赖和公理
定义(传递FD):设关系模式R,X、Y、Z是R的属性子集, 若FD X→Y,Y → X,Y→Z,则有FD X→Z,称FD X→Z为 传递函数依赖。
函数依赖、完全依赖、传递依赖等基本概念是第四章关系 数据库范式的基础。
18
算法3.2.3
判定F是否蕴涵X→Y的成员测试算法
输入:函数依赖集F和FD X→Y。
输出:若F蕴涵X→Y输出为true,否则为false MEMBER(F, X→Y) begin if Y CLOSURE(X,F) then return(true) eles return(false) end.
={AB→E,E→G, BE→I, GI→H}
13
定义(函数依赖集F的闭包 F +)
设F是关系r(R)上的函数依赖集,F所蕴含的所有FD的集
合称为F的闭包,记作F +。 F
+
= { X→Y
|
所有F |= X→Y }
例:设F={AB→C,C→B}。 求F+
14
设F={AB→C,C→B}。 F+ 为: F+ = {A→A, AB→A, AC→A, ABC→A, B→B, AB→B, BC→B,ABC→B,C→C,AC→C,BC→C,ABC→C,AB→AB, ABC→AB,AC→AC,ABC→AC,BC→BC, ABC→BC, ABC→ABC, AB→C, AB→AC, AB→BC, AB→ABC,C→B,
(3)并比较两种方法更好用语言来实现。
21
(1)设F ={AB→C,B→D,CD→E,CE→GH,G→A},
函数依赖的公理系统资料
定义4.15 最小覆盖. 满足下列条件的函数依赖集F称为最小覆盖(最 小依赖集, 极小依赖集),记作Fmin:
(1) 单属性:F中任一函数依赖 XA,A必是单属 性。 (2) 无冗余性:F中不存在这样的函数依赖X A, 使得 F与 F {X A}等价。 (3) 既约性:F中不存在这样的函数依赖 X A, X是多属性,在X中有真子集 Z,使得 F 与 F {X A} {Z A}等价。
2
函数依赖集的闭包F+
定义 4.12 在关系模式 R<U,F> 中,被 F 所 逻辑蕴涵的函数依赖的全体所构成的集合称 作F的闭包,记作 F+ = {XY | F├ XY} + 显然,F F 。 F+的计算很麻烦,F不大,其F+也可能很大。 例如: 设 R<U, F>, U={X, Y, Z}, F = {XY, YZ} F+ = { XX, XY,X Z, YY, YZ, Z Z, XYX,XYY,XYXY, XZ→X, ……}
函数依赖的公理系统
建立函数依赖推理系统的目的:
(1) 求关系模式的候选码 (2) 判断关系模式的范式级别 (3) 给定一组函数依赖,需要导出另外一些函数依赖, 或判断另外的函数依赖是否成立。例如: FD={A B,B C},判断 A C是否成立?
本节内容:
1. 逻辑蕴涵; 2. Armstrong函数依赖公理系统; 3. 函数依赖集的闭包; 4. 属性集闭包; 5. 函数依赖集的等价和覆盖; 6. 最小函数依赖集。
XY
t[XZ] = s[XZ]
t[Y] = s[Y] t[Z] = s[Z]
t[YZ] = s[YZ]
函数依赖及范式
函数依赖及范式函数依赖基本概念:•函数依赖:FD(function dependency),设有关系模式R(U),X,Y是U的子集,r 是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y], 则称X 函数决定Y,或Y函数依赖于X,记为X→Y。
X→Y为模式R的一个函数依赖。
•部分函数依赖:即局部依赖,对于一个函数依赖W→A,如果存在X W(X包含于W)有X→A成立,那么称W→A是局部依赖,否则称W→A为完全函数依赖。
•传递依赖:在关系模式中,如果Y→X,X→A,且X Y(X不决定Y),A X(A不属于X),那么称Y→A是传递依赖。
•函数依赖集F的闭包F+: 被逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包(clo sure),记为F+。
•最小依赖集:如果函数集合F满足以下三个条件(1)F中每个函数依赖的右部都是单属性;(2) F中的任一函数依赖X→A,其F-{X→A}与F是不等价的;(3)F中的任一函数依赖X→A,Z为X的子集,(F-{X→A})∪{Z→A}与F不等价。
则称F为最小函数依赖集合,记为Fmin。
函数依赖的公理系统:设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:•自反律:如果Y X U,则X→Y在R上成立。
•增广律:如果X→Y为F所蕴涵,Z U,则XZ→YZ在R上成立。
(XZ表示X∪Z,下同) •传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。
以上三条为Armstrong公理系统•合并律:如果X→Y和X→Z成立,那么X→YZ成立。
•伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。
•分解律:如果X→Y和Z Y成立,那么X→Z成立。
这三条为引理注意:•函数依赖推理规则系统(自反律、增广律和传递律)是完备的。
•由自反律所得到的函数依赖均是平凡的函数依赖。
四种范式的含义:•如果某个数据库模式都是第一范式的,则称该数据库模式是属于第一范式的数据库模式。
第3章关系数据模型之函数依赖
返回
17
3.函数依赖与属性之间的联系类型有关。
(1)在一个关系模式中,如果属性X与Y有1:1联系时,则存在 函数依赖X→Y,Y→X,即X Y。
例如,当学生无重名时,SNO SN。
(2)如果属性X与Y有1:m的联系时,则只存在函数依赖X→Y。 例 如 , SNO 与 AGE , DEPT 之 间 均 为 1:m 联 系 , 所 以 有
➢ 本节讲述关系数据库规范化理论,这是数据库逻辑设 计的理论依据。
➢ 要求了解规范化理论的研究动机及其在数据库设计中的作用,
➢ 掌握函数依赖的有关概念,
➢ 第一范式、第二范式、第三范式的定义,
➢ 重点掌握并能够灵活运用关系模式规范化的方法和关系模式 分解的方法,这也是本章的难点。
返回
2
4.1 规范化问题的提出
返回
18
4.函数依赖关系的存在与时间无关。
➢ 因为函数依赖是指关系中的所有元组应该满足的约 束条件,而不是指关系中某个或某些元组所满足的 约束条件。
➢ 当关系中的元组增加、删除或更新后都不能破坏这 种函数依赖。
➢ 因此,必须根据语义来确定属性之间的函数依赖, 而不能单凭某一时刻关系中的实际数据值来判断。
➢ S中存储学生基本信息,与所选课程及系主任无关;
➢ D中存储系的有关信息,与学生无关;
➢ SC中存储学生选课的信息,而与所学生及系的有关信息无关。
➢ 与SCD相比,分解为三个关系模式后,数据的冗余度明 显降低。
➢ 当新插入一个系时,只要在关系D中添加一条记录。
➢ 当某个学生尚未选课,只要在关系S中添加一条学生记录,而 与选课关系无关,这就避免了插入异常。
➢ 当一个系的学生全部毕业时,只需在S中删除该系的全部学生 记录,而关系D中有关该系的信息仍然保留,从而不会引起删 除异常。
数据库函数依赖和范式总结
数据库函数依赖和范式总结1 函数依赖1.1 定义:一个集合R(U,F),U为属性全集,F为函数依赖集合。
F中存在着{Xi->Yi...};对于每个X都存在着一个Y与之唯一对应。
意思就是相当于X为主键,Y由主键决定。
比如一个学生他的学号相当于X,而他的姓名与年龄这些其他信息相当于Y。
但是X有时候并不是一个值,比如一个学生他的成绩需要有两个属性才能知道他的成绩,学号+课程号->成绩1.2 平凡函数依赖与非平凡函数依赖平时我们主要讨论的是非平凡函数依赖。
平凡函数依赖概念:Y集合属性属于X集合属性的子集非平凡函数则相反1.3 逻辑蕴涵(为后面求闭包做好基础)X,Y为属性集合U的子集,且X->Y不存在于F中。
即我们需要通过F中的函数依赖推出X->Y称为函数依赖。
而所有函数依赖的集合则称为闭包1.4 函数依赖的推理规则(就是求函数依赖的逻辑蕴涵)1.4.1 几个公理1.4.1.1 公理一(自反律):Y属于X的子集,则X->Y 数学公式描述 Y?X?U1.4.1.2 公理二(增广律):X->Y成立,Z?U也成立,则 XZ?YZ1.4.1.3 公理三(传递律):X->Y成立,Y->Z成立,则 X->Z1.4.2 公理的推广1.4.2.1 推广一(合并律):X->Y,X->Z,则X->YZ1.4.2.2 推广二(伪传递律):X->Y,YW->Z,则XW->Z(证明只需要在XY两边*W)1.4.2.3 推广三(分解律):X->Y成立,Z?Y,则 X->Z1.4.2.4 推广四(复合律):X->Y,W->Z,则XW->YZ1.5 完全函数依赖与部分函数依赖(范式中基础知识)X->Y的集合中,若X的任一真子集x都能 x->Y则为部分函数依赖,若不能则的完全函数依赖,如果X没有真子集则也称为完全函数依赖。
数据库设计之函数依赖-PPT精品文档
问题的提出 函数依赖 码 第一范式 第二范式 第三范式
问题的提出
上表(关系模式)存在的缺陷:
1、数据重复、冗余。 2、新增学生或课程,若未选课,则无法插入记录,因为(学号,课程号)为主键。 3、如果有学生退学,则需将相关信息全部删除,导致课程信息可能丢失。
改进的关系模式
依赖的分类(1)
非平凡函数依赖
如果 X → Y,但 Y 不为 X 的子集,则称 X → Y 是非平凡的函数 依赖 例:在关系SC(Sno, Cno, Grade)中,(Sno, Cno) → Grade
平凡依赖
若 X → Y,但 Y 为 X 的子集, 则称 X → Y 是平凡的函数依赖 例:(Sno, Cno) → Sno ,(Sno, Cno) → Cno
函数依赖
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。 若对于R(U)的任意一个可能的关系r,r中不可能存在 两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。 X称为这个函数依赖的决定属性集(Determinant)。
Y=f(x)
依赖的分类(3)
传递函数依赖
若x → y并且y → z,而y -\→ x,则有x → z,称这种函数依赖 为传递函数依赖。 例:关系S1(学号,系名,系主任),学号 → 系名,系名 → 系 主任,并且 系名 -\→ 学号,所以 学号 → 系主任 为传递函数 依赖
码
设K为R(U)中的属性或属性组合,若K →U, 则K为R的候选码(或关键字),选择其中一 个作为主码。
依赖的分类(2)
部分函数依赖
6.3(简 讲课)--数据依赖公理系统与函数依赖闭包
第6.3 数据依赖的公理系统与函数依赖闭包一、函数依赖的逻辑蕴涵定义:设有关系模式R(U)及其函数依赖集F,如果对于R的任一个满足F的关系r 函数依赖X→Y(X→Y不属于F集)都成立,则称F逻辑蕴涵X→Y,或称X→Y可以由F 推出。
例:关系模式 R=(A,B,C),函数依赖集F={A→B,B→C}, F逻辑蕴涵A→C。
证:设u,v为r中任意两个元组:若A→C不成立,则有u[A]=v[A],而u[C]≠v[C]由A→B, B→C,知u[A]=v[A], u[B]=v[B], u[C]=v[C],即若u[A]=v[A]则u[C]=v[C],和假设矛盾。
故F逻辑蕴涵A→C。
本例A→C不属于F集,但A→C可由F依赖集{A→B,B→C}推断而出,且F依赖集中的所有元组都满足函数依赖A→C,故F逻辑蕴涵A→C。
该特性称为函数依赖的可传递性二、Armstrong公理1、定理6.1:若U为关系模式R的属性全集,F为U上的一组函数依赖,设X、Y、Z、W均为U的子集,对R(U,F)有:F1(自反性):若X⊇Y(表示X包含Y),则X→Y为F所蕴涵;(F1':X→X)F2(增广性): 若X→Y为F所蕴涵,则XZ→YZ为F所蕴涵;YZ》Y(F2':XZ→Y)F3(传递性): 若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵;F4(伪增性):若X→Y,W⊇Z(表W包含Z)为F所蕴涵,则XW→YZ为F所蕴涵;F5(伪传性): 若X→Y,YW→Z为F所蕴涵, 则XW→Z为F所蕴涵;F6(合成性): 若X→Y,X→Z为F所蕴涵,则X→YZ为F所蕴涵;F7(分解性): 若X→Y,Z⊆Y (表示Z属于Y)为F所蕴涵,则X→Z为F所蕴涵。
函数依赖推理规则F1∽F7都是正确的。
2、Armstrong公理:推理规则F1、F2、F3合称Armstrong公理;F4 ∽ F7可由F1、F2、F3推得,是Armstrong公理的推论部分。
关系数据模型之函数依赖
函数依赖的重要性
保持数据完整性
通过函数依赖,可以确保数据库中的数 据满足一定的约束条件,从而保持数据
的完整性。
提高查询效率
在数据库查询过程中,可以利用函数 依赖优化查询计划,提高查询效率。
简化数据库设计
通过合理地利用函数依赖,可以简化 数据库设计,减少冗余数据和数据不 一致的情况。
关系数据模型之函数依赖
contents
目录
• 引言 • 函数依赖的定义与分类 • 函数依赖的推理规则 • 函数依赖在关系数据库设计中的应用 • 关系数据模型中的其他概念 • 关系数据模型的实际应用案例
01 引言
什么是函数依赖?
函数依赖是关系数据模型中的一个基本概念,它表示一个或多个属性的值决定另一个属性的值的关系 。
部分函数依赖
要点一
定义
如果一个属性集合Y中的所有属性决定了一个属性集合X中 的部分属性,则称X部分函数依赖于Y。
要点二
举例
在关系模式"学生(学号,姓名,年龄,性别)"中,性别只依赖于 学号,因此学号→性别。
传递函数依赖
定义
如果Y→X,且X不决定Y,则称X传递依赖于Y。
举例
在关系模式"学生(学号,姓名,年龄,性别)"中,学号→姓名,性别→年龄,因此姓名传递依赖于学号,年龄传递依赖 于性别。
数据完整性维护案例
案例二:银行账户管理系统 账户表:账户号、客户号、余额等字段。 交易表:交易号、账户号、交易金额等字段。
设计一个银行账户管理系统,包括账户、客户、交易等 表。
客户表:客户号、姓名、身份证号等字段。
函数依赖的公理系统
子集的闭包是否包含R的所有属性。若不存在任何这样的属 性子集,则X是R的候选码。
第十八页,讲稿共三十页哦
候选码的判断
设有关系R({A1,A2,…,An},F),F为R的函数依赖集,X为R的 属性组,若X满足: 1 X→ A1,A2,…,An,即X+={A1,A2,…,An} 2 不存在X的真子集Y,Y → A1,A2,…,An。
(4)X(3)= X(2),所以(EC)+ =ECBD
第十六页,讲稿共三十页哦
属性集闭包计算举例
练习 已知R<U,F>, U= (A, B, C, G, H, I),F={AB, AC, CGH, CGI, BH}, 计算(AG)+。
– 算法第一次循环的执行步骤:
步骤 FD
closure
1. 初值
数依赖X→Y都成立, 则称F 逻辑蕴含X →Y
第二页,讲稿共三十页哦
Armstrong公理系统
从已知函数依赖集F要问X →Y是否为F逻辑蕴含,就要一套推
理规则,由Armstrong在1974年提出。
这套推理规则,是模式分解算法的理论基础。
用途
– 从一组函数依赖求得蕴含的函数依赖。
– 求给定关系模式的码。
第三页,讲稿共三十页哦
1. Armstrong公理系统
关系模式R <U,F >来说有以下的推理规则:
– Al.自反律(Reflexivity): 若Y X U,则X →Y为F所蕴含。
– A2.增广律(Augmentation):若X→Y为F所蕴含,且Z U,则XZ→YZ为F所蕴含。
数据库系统基础讲义第14讲函数依赖及其公理定理
Research Center on Intelligent Computing for Enterprises & Services, Harbin Institute of Technology
本讲学习什么?
如何避免数据库的一致性问题—数据库的规范性设计
战德臣 教授
数据库的规范性设计需要分析数据库Table中的属性在取值方面有什么依存 关系?数据库设计过程中应遵循什么样的原则 数据库设计理论 数据依赖理论 关系范式理论 模式分解理论
练习:分析下列模式的传递函数依赖
商店(商店,商品,商品经营部,经营部经理)
学生(学号,姓名,班级,班主任,课号,课程名,成绩,教师,教师职务)
员工(员工码,姓名,部门,部门经理)
图书(书号,书名,出版日期,出版社,书架号,房间号,管理员) 客户(客户号,客户名称,类别,联系电话,产品编码,产品名称,数量, 要货日期)
战德臣 教授
函数依赖 (2)函数依赖的示例 示例:下表就是问题领域, 则存在的函数依赖有哪些呢? 下表存在的函数依赖有: A→B, B→C
战德臣 教授
下表存在的函数依赖有: A→C, D→B
函数依赖 (3)函数依赖的特性
战德臣 教授
函数依赖的特性
(1)对XY,但Y X, 则称XY为非平凡的函数依赖; (2)若XY,则任意两个元组,若X上值相等,则Y上值必然相等,则称X为决 定因素; (3)若XY ,YX, 则记作XY; (4)若Y不函数依赖于X,则记作X Y; (5)XY,有基于模式R的,则要求对任意的关系r成立;有基于具体关系r 的,则要求对某一关系r成立; (6)如一关系r的某属性集X, r中根本没有X上相等的两个元组存在,则XY 恒成立;
数据库原理--函数依赖和范式
数据库原理--函数依赖和范式关系数据库设计范式介绍 .1 第⼀范式(1NF)⽆重复的列 所谓第⼀范式(1NF)是指数据库表的每⼀列都是不可分割的基本数据项,同⼀列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
如果出现重复的属性,就可能需要定义⼀个新的实体,新的实体由重复的属性构成,新实体与原实体之间为⼀对多关系。
在第⼀范式(1NF)中表的每⼀⾏只包含⼀个实例的信息。
简⽽⾔之,第⼀范式就是⽆重复的列。
说明:在任何⼀个关系数据库中,第⼀范式(1NF)是对关系模式的基本要求,不满⾜第⼀范式(1NF)的数据库就不是关系数据库。
1.2 第⼆范式(2NF)属性完全依赖于主键[消除部分⼦函数依赖] 第⼆范式(2NF)是在第⼀范式(1NF)的基础上建⽴起来的,即满⾜第⼆范式(2NF)必须先满⾜第⼀范式(1NF)。
第⼆范式(2NF)要求数据库表中的每个实例或⾏必须可以被唯⼀地区分。
为实现区分通常需要为表加上⼀个列,以存储各个实例的唯⼀标识。
例如员⼯信息表中加上了员⼯编号(emp_id)列,因为每个员⼯的员⼯编号是唯⼀的,因此每个员⼯可以被唯⼀区分。
这个唯⼀属性列被称为主关键字或主键、主码。
第⼆范式(2NF)要求实体的属性完全依赖于主关键字。
所谓完全依赖是指不能存在仅依赖主关键字⼀部分的属性,如果存在,那么这个属性和主关键字的这⼀部分应该分离出来形成⼀个新的实体,新实体与原实体之间是⼀对多的关系。
为实现区分通常需要为表加上⼀个列,以存储各个实例的唯⼀标识。
简⽽⾔之,第⼆范式就是属性完全依赖于主键。
1.3 第三范式(3NF)属性不依赖于其它⾮主属性[消除传递依赖] 满⾜第三范式(3NF)必须先满⾜第⼆范式(2NF)。
简⽽⾔之,第三范式(3NF)要求⼀个数据库表中不包含已在其它表中已包含的⾮主关键字信息。
例如,存在⼀个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。
数据库函数依赖
解:X+=BDEGCA
结论:(BD)+=ABCDEG,BD→AC可由F导出,即BD→AC属于F+
例:已知关系模式R中
U={A,B,C,E, H, P, G},
F={AC→PE, PG→A, B→CE, A→P, GA→B,GC→A, PAB→G, AE→GB, ABCP→H},
(学生ID,所修课程ID)→学生姓名
六、平凡函数依赖和非平凡函数依赖
设X,Y均为某关系上的属性集,且X→Y
1)若Y包含于X,则称X→Y为:平凡函数依赖;
2)若Y不包含于X,则称X→Y为:非平凡函数依赖。
Y包含于X内,W于X相交,与Y无直接交集。
则:X→Y为平凡函数依赖
X→W, W→Y为非平凡函数依赖
A→ABC,AB→ABC,AC→ABC,ABC→A,BC→BC}
例:已知关系模式R中
U={A,B,C,D, E, G},
F={AB→C, C→A, BC→D, ACD→B, D→EG, BE→C, CG→BD, CE→AG},判断BD→AC是否属于F+
解:由D→EG知D→E,BD→BE…①
又知BE→C,C→A所以BE→A, BE→AC…②
解:当X=A时,X+=ABC
当X=B时,X+=BC
当X=C时,X+=C
* X代表的属性集可以决定的属性集(包括本身)
2、定理:当且仅当Y属于X+时,X→Y能根据Armstron公理由F导出。
证:设Y=A1,A2,…,An
①充分条件:当Y属于X+时,对于每个i,Xห้องสมุดไป่ตู้Ai可由公理导出。
数据依赖的公理系统
(X
,则以( X Bi)取代X。 Bi) F
示例一 F = {AB,BA,AC,BC},求Fm。 1、单属性化:F已经是单属性了。 2、无冗余化: 检查AB,G1=F{AB}={BA,AC,BC} (A)G+={A,C},B{A,C},所以AB不冗余。 检查AC,G1=F{AC}={AB,BA,BC} (A)G1+ ={A,B,C},C{A,B,C}, AC冗余, 所以从F中删除AC。 检查G1中的BC,G2= G1{BC}={AB,BA} (A)G2+ ={B},C {B}, BC不冗余。 3、既约化:左部已经无多余属性。 Fm = {AB,BA,BC} 或者 Fm = {AB,BA,AC} 注:正确答案的不止一个,考察依赖的顺序不同,答案也不同。
示例二
F = {CA,AG,CGB,BA},求Fm。
单属性化、无冗余化略。 判断CGB,
(CG C) ( G ) = F1 F 1 = {G}
B (CG C) F1
(CG G)
F1
(C) =
F1
= {C,A,G,B}
B (CG G) F 1 ,以C代替CG
B = {f | 被F所逻辑蕴涵的函数依赖f}
有效性:用Armstrong公理从F中导出的函数依赖必 为F所蕴涵。 AB
完备性:F所蕴涵的函数依赖都能用Armstrong公理 从F中导出。 BA
6.4.2.3 Armstrong公理的有效性证明 按函数依赖定义r是R<U, F>上的任一关系,t,s r
示例1
R< U, F >, U = (A, B, C, G, H, I), F = {AB, AC, CGH, CGI, BH},计算 ( AG) 。 F 所用依赖 AB AC CGH CGI
第3章关系数据模型之函数依赖
一个SNO有多个 SCORE的值与其对应,因此 SCORE不能唯 一 地 确 定 , 即 SCORE 不 能 函 数 依 赖 于 SNO , 所 以 有 : SNO SCORE。 但是SCORE可以被(SNO,CNO)唯一地确定。所以可表 示为:(SNO,CNO)→SCORE。 返回
当新插入一个系时,只要在关系D中添加一条记录。 当某个学生尚未选课,只要在关系S中添加一条学生记录,而 与选课关系无关,这就避免了插入异常。 当一个系的学生全部毕业时,只需在S中删除该系的全部学生 记录,而关系D中有关该系的信息仍然保留,从而不会引起删 除异常。 同时,由于数据冗余度的降低,数据没有重复存储,也不会 引起更新异常。
要求了解规范化理论的研究动机及其在数据库设计中的作用, 掌握函数依赖的有关概念, 第一范式、第二范式、第三范式的定义, 重点掌握并能够灵活运用关系模式规范化的方法和关系模式 分解的方法,这也是本章的难点。
返回
2
4.1
规范化问题的提出
4.1.1 规范化理论的主要内容
关系数据库的规范化理论最早是由关系数据库 的创始人E.F.Codd提出的, 后经许多专家学者对关系数据库理论作了深入 的研究和发展,形成了一整套有关关系数据库 设计的理论。 在该理论出现以前,层次和网状数据库的设计 只是遵循其模型本身固有的原则,而无具体的 理论依据可言,因而带有盲目性,可能在以后 的运行和使用中发生许多预想不到的问题。
返回
12
经过上述分析,我们说分解后的关系模 式是一个好的关系数据库模式。 从而得出结论,一个好的关系模式应该 具备以下四个条件: