求候选码的方法
数据库系统概论候选码的求解方法

3 ST,ZIP +包含CSZ的所有属性,所以 ST,ZIP 是一个 候选 码,
4 ST,CITY +也包含CSZ的所有属性,所以 ST,CITY 是一个 候选码,
例:设有关系模式R A,B,C,D,E ,其函数依赖集 F=A→BC,CD→E,B→D,E→A,求R的所有候选码, 解: 1 Fm=A→B, A→C,CD→E,B→D,E→A 2 A,B,C,D,E五个属性在F中各个函数依赖的右边和左边都出现 了,所以候选码中可能包含A,B,C,D,E,
候选码为:SI,SB,SQ,SO
Add the author and the accompanying title
生活
图标元素
商务
图标元素
商务
图标元素
商务
图标元素
商务
图标元素
3 在F2中去掉多余的依赖, 对于CD→B,在剩下的函数依赖中,由于 CD +=CDAEGB,所以CD→B是多余 的,则Fm=AB→C,C→A,BC→D,D→E, D→G,BE→C, CG→B ,CG→D,CE→G 或者对于CG→B,由于 CG +=ABCDEG,所以CG→B是多余的,则 Fm=AB→C,C→A,BC→D,CD→B,D→E, D→G,BE→C,CG→D,CE→G
例:设有关系模式R A,B,C,D,E,P ,其函数依赖集 F=A→D,E→D,D→B,BC→D ,DC→A,求R的所有候选码,
解:考察F发现,C、E两属性是L类属性,由上面定理1可知,C、E 必是R的候选码的成员;
P是N类属性,由上面的定理3可知,P也是R的候选码的成员,
又因为 CEP +=ABCDEP,所以CEP必是R的唯一候选码,
候选码的求解方法

候选码的求解方法姓名:xxx 学号:xxxxxxx 班级:xxxxxx在我们学习数据库原理与应用时,经常会遇到求解关系模型的一些相关问题,要看懂一个关系模型,我们必须知道这个关系模型中的候选码才能更好求解关系模型的问题,那么我该如何快速确定关系模型中的候选码呢?为此我查找相关资料得出以下一些方法,希望对我们的学习有所帮助。
一、根据候选码的相关定理和推论求解候选码定理1 对于给定的关系模式R 及其函数依赖集F,若X(X∈R)是L 类属性,则X 必为R 的任一候选码的成员。
推论l 对于给定的关系模式R 及其函数依赖集F,若X(X∈R)是L 类属性,且X+包含了R 的全部属性,则X 必为R 的唯一候选码。
定理2 对于给定的关系模式R 及其函数依赖集F,若X(X∈R)是R 类属性,则X 不在任何候选码中。
定理3 设有关系模式R 及其函数依赖集F,如果X 是R 的N 类属性,则X 必包含在R 的任一候选码中。
推论2 对于给定的关系模式R 及其函数依赖集F,如果X 是R 的N 类和L 类组成的属性集,且X+包含了R 的有属性,则X 是R 的唯一候选码。
二、利用属性闭包进行候选码求解的算法1、属性分类相关定义对于给定的关系模式R(U,F),其属性分为4 类:L 类(仅出现在F 的函数依赖左部的属性);R 类(仅出现在F 的函数依赖右部的属性);N 类(在F 的函数依赖左部和右部均未出现的属性);LR 类(在F 的函数依赖左部和右部两部均出现的属性)。
2、算法描述(1)将R 的所有属性分为L、R、LR 和N 四类,并令X 代表L、N 类,Y 代表LR 类。
(2)求X+。
若X+包含了R 的全部属性,则即为R 的唯一候选码,转(5);否则,转(3)。
(3)在Y 中取一属性A,求(XA)+ ,若它包含了R 的全部属性,则是候选码,转(4);否则,调换一属性反复进行这一过程,直到试完所有Y 中的属性。
(4)如果已找出所有候选码,则转(5);否则在Y 中依次取2 个、3 个、…,求它们的属性闭包,若其闭包包含R 的全部属性,则是候选码。
求候选码的方法范文

求候选码的方法范文候选码(Candidate Code)是一种计算机程序设计中使用的一种方法,它可以用来生成或者到所有可能的解决方案。
候选码有许多不同的应用,比如密码破译、组合优化问题、遗传算法等等。
以下是几种常见的候选码生成和方法:1. 穷举法(Exhaustive Search):穷举法是最简单的一种方法,它会遍历所有的可能性并检查是否满足条件。
例如,对于一个由n个元素组成的集合,可以通过从集合中选择不同的元素来生成不同的候选解。
穷举法的优点是简单易懂,但缺点是随着问题规模增大,空间会呈指数增长,计算复杂度非常高。
2. 递归法(Recursive Search):递归法是一种通过递归调用自身的方式来生成候选码的方法。
它可以将一个大问题分解成一个个更小的子问题,并通过递归的方式来解决。
例如,可以通过递归方法生成给定长度的二进制序列,其中每个位置上的数字可以是0或1、递归法的优点是可以有效地利用计算机的内存,但是同样存在空间随问题规模增大而指数增长的问题。
3. 回溯法(Backtracking):回溯法是一种通过回溯的方式来生成候选解的方法,它可以避免不必要的。
回溯法通常用于求解组合优化问题,例如八皇后问题、0-1背包问题等。
回溯法的基本思想是逐步构建候选解,如果当前构建的候选解无法满足问题的约束条件,就回溯到上一个状态,重新选择其他的候选项。
回溯法的优点是能够快速剪枝,减少不必要的,但是缺点是仍然需要遍历所有的可能性。
4. 动态规划(Dynamic Programming):动态规划是一种将大问题分解成子问题,并使用已经解决的子问题的解来构建候选解的方法。
动态规划的核心思想是将问题分解成重叠子问题,并使用一个表格或者数组来存储已经计算过的解,从而避免重复计算。
动态规划法的优点是可以显著降低计算复杂度,但是需要事先确定问题的状态转移方程。
5. 遗传算法(Genetic Algorithm):遗传算法是一种模拟自然界遗传进化过程的算法,它通过一系列的遗传操作(如选择、交叉、变异)来生成下一代的候选解,并使用一定的评价函数来评估候选解的质量。
数据库范式与关系模式示例

补充讲义一、范式举例BCNF.如:课程号与学号)例4:R(X,Y,Z),F={XY->Z},R为几范式?BCNF。
例5:R(X,Y,Z),F={Y->Z,XZ->Y},R为几范式?3NF。
R的候选码为{XZ,XY},(R中所有属性都是主属性,无传递依赖)二、求闭包数据库设计人员在对实际应用问题调查中,得到的结论往往是零散的、不规范的(直观问题好办,复杂问题难办了),所以,这对分析数据模型,达到规范化设计要求,还有差距,为此,从规范数据依赖集合的角度入手,找到正确分析数据模型的方法,以确定关系模式的规范化程度。
例1.已知关系模式R(U、F),其中,U={A,B,C,D,E}; F={AB→ C, B→ D, EC → B , AC→B} ,求(AB)+F.解:设X(0)=AB○1计算X(1),在F中找出左边为AB子集的FD,其结果是:AB→C,B→D∴X(1)=X(0)UB=ABUCD=ABCD 显然,X(1)≠X(0)○2计算X(2),在F中找出左边为ABCD子集的FD,其结果是:C→E,AC→B∴X(2)=X(1)UB=ABCDUBE=ABCDE 显然,X(2)=U所以,(AB)+ F=ABCDE.(等于U,所以AB是唯一候选关键字)例2.设有关系模式R(U、F),其中U={A,B,C,D,E,I};F={A→D,AB→E,B→E,CD→I,E→C},计算(AE)+解:令X={AE},X(0)=AE○1在F中找出左边是AE子集的FD,其结果是:A→D,E→C∴X(1)=X(0)UB=X(0)UDC=ACDE 显然,X(1)≠X(0)○2在F中找出左边是ACDE子集的FD,其结果是:CD→I∴X(2)=X(1)UI=ACDEI显然,X(2)≠X(1),但F中未用过的函数依赖的左边属性已含有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI.因为,X(3)=X(2),所以,算法结束。
唯一候选数法

唯一候选数法
嘿,朋友们!今天咱来唠唠唯一候选数法,这可是数独世界里的一个超级厉害的小妙招呢!
你想想看,数独就像是一个神秘的数字迷宫,有时候那些空格就像调皮的小精灵,让你找不着北。
但唯一候选数法就像是一把神奇的钥匙,能帮你打开那扇困住你的门。
比如说吧,在一个九宫格里,某个数字在一行里其他格子都出现过了,就剩下一个格子空着,那这个空格里不就只能填这个数字了嘛!这就好像是一场数字的捉迷藏游戏,而我们用这个方法一下就把它给找到了。
再比如,在一列中,其他位置都有了某个数字,那剩下的那个空位不就是它的专属啦!是不是很有趣呀?这就像是给数字们找到了它们的专属座位。
还有啊,在一个小九宫里也是一样的道理呀。
当其他八个位置都被数字占满了,那个唯一的空位不就只能是那个没出现过的数字嘛!就好像是给数字们分房子,其他房子都有主了,剩下那间肯定就是它的啦。
哎呀,你说这唯一候选数法是不是特别神奇?就像你在黑暗中突然找到了那一丝亮光。
有时候我们面对那些密密麻麻的数字会觉得头疼,但是只要掌握了这个方法,就感觉像是有了一双慧眼,能一下子看穿那些数字的小秘密。
而且哦,用这个方法解数独就像是一步步解开一个谜团,每找到一个唯一候选数,就有一种小小的成就感。
就像你找到了拼图中的一块关键部分,让整个画面慢慢清晰起来。
你可别小瞧这小小的唯一候选数法,它能让你的数独之旅变得轻松又有趣。
它不是那种高深莫测的大技巧,而是实实在在能让你用上的好办法。
所以啊,朋友们,下次再玩数独的时候,可别忘了用用这唯一候选数法哦!相信我,你一定会对数独更加着迷的!这就是我想说的啦,怎么样,是不是觉得很有意思呢?。
怎么求候选关键字

关于候选关键字的求解理论与算法2010-09-29 10:09:31| 分类:系统分析|字号订阅转自/s/blog_491ebafb01000605.html前奏:对于给定的关系R(A1,A2,……,An)和其上的函数依赖集F,可将其属性分为如下四类:●L类:仅出现在F的函数依赖左侧的属性●R类:仅出现在F的函数依赖右侧的属性●N类:在F的函数依赖左右两侧均未出现的属性●LR类:在F的函数依赖左右两侧均出现的属性§1快速求解候选关键字的一个充分条件(无独立回路时)【定理一】:对于给定的关系模式R(U,F),若X(X属于U)是L类属性,则X必为R的任一候选码的成员(组成部分)。
【例-1】设有关系模式R(A,B,C,D),其函数依赖集F={D→B,B→D,AD→B,AC→D},求R的所有候选关键字。
【解】:显然A、C为L属性,据定理一知,AC必须为R的候选码的成员。
又∵(AC)+F=ABCD=U∴AC是R的唯一候选码。
【推论一】:已知R(U,F),若X(X属于U)是L属性,且X+F包含了R的全部属性U,则X必为R 的唯一候选码。
【定理二】:给定R(U,F),若X(X属于U)是R类属性,则X不在任何候选码中。
【定理三】:给定R(U,F),若X是R的N类属性,则X必包含在R的任一候选码中。
【例-2】已知R(U,F),其中U={A,B,C,D,E,P}F={A→D,E→D,D→B,BC→D,DC→A}求R的所有候选码。
【解】:显见:L类属性:C,E——故CE必在R的候选码中N类属性:P——故P也必在R的候选码中又∵(CEP)+F =ABCDEP=U∴CEP是R的唯一候选码。
【推论二】:已知R(U,F),若X是R的N类和L类属性组成的属性集,且X+F包含了R的全部属性U,则X是R的唯一候选码。
§2左边为单属性的函数依赖集的候选关键字成员的图论判定方法【定义一】:一个函数依赖图G是一个有序二元组(U,F),记作G=(U,F),简称为依赖图。
数据库课程中基于图的关系候选码分析方法
年 轶 林 琳
22 1) 10 3
( 苏 大 学 计 算 机 科 学 与 通 信 工 程学 院 , 苏 镇 江 江 江 摘 要 : 数 据 库 课 程 教 学 中 , 析 关 系的 候 选 码 是 认 在 分 识 关 系的 第一 步 。 是 进 一 步 学 习关 系数据 理论 的基 础 。 文 也 本 从 关 系候 选 码 的 定 义 出发 . 分析 数 据 依 赖 的 基 础 上 , 出 一 在 提 种 基 于 图形 方式 的 关 系候 选 码 分 析 方 法 ,并 通 过 举 例 说 明 该 方 法在 实 际 中的 运 用 。实践 证 明 , 方 法 在 数 据 库课 程教 学 过 本
12 断 是 否 满 足 K U .判 —
即设 K为 关 系 R( F 中 的属 性 或 属 性 组 合 , K U, K R U, > 若 — 则 为 的候 选 码 。其 中 , 为 关 系 名 , R U为关 系R的 一 组 属 性 , 为 属 性 F
F
组 U 的一 组 数 据 依 赖 , — U 示 U K 全 函数 依 赖 。 所 谓 上 K 表 对 完 数 据 依 赖 就 是 通过 一个 关 系 中 属 性 间 值 的 相 等 与 否 体 现 出 来 的数 据 间 的 相 互关 系 。 现 在 已 经 提 出 的数 据 依 赖 的 类 型 H 』 有 : 丰要 函数 依 赖 ( u c o a D p n e c , 称 F ; F n t nl ee dny 简 i D) 多 值 依 赖 ( h v le e e d n y 简称 MV ; Mu i u dD p n e c , a D) 联 接 依 赖 ( i e ed ny 简 称J 。 J n p n ec , o D D) 本 文 主 要 讨 论 的 是 函 数 依 赖 。 函数 依 赖 的 定 义 l : R 设 3 l 是 ( 是 属性 集U 的关 系 模 式 , Y是U的子 集 , 对 于 R( 的 U) 上 X、 若 U) 任 意 一 个 可 能 的 关 系 rr ,中不 可 能存 在 两 个 元 组 在 X上 的 属 性 值 相 等 , 在Y上 的属 性 值 不 等 , 称 X函 数 确 定 Y或Y函 数 依 而 则 赖 于X, 作X Y。完 全 函数 依 赖 是 指 在 R U) , 果 X Y, 记 — ( 中 如 —
候选码名词解释
候选码名词解释
一、定义
在关系数据库中,候选码(Candidate Key)是能唯一标识关系中的元组(行)的属性或属性组。
二、理解要点
1. 唯一性
- 对于关系中的任意两个不同元组,候选码的值都不相同。
例如,在一个学生信息表中,如果学号是候选码,那么每个学生的学号都是唯一的,不会有两个学生具有相同的学号。
2. 最小性
- 候选码是满足唯一性要求的属性组中最小的属性集合。
也就是说,如果从候选码中去掉任何一个属性,它就不再能唯一标识元组了。
例如,在一个包含学生学号、姓名、年龄、班级的表中,如果学号能单独唯一标识学生,那么学号就是候选码,而{学号,姓名}虽然也能唯一标识,但不是最小的,因为去掉姓名后,学号依然能完成唯一标识的任务。
3. 与主码的关系
- 一个关系可能有多个候选码,但在实际应用中,通常从候选码中选择一个作为主码(Primary Key)。
主码是被选中用来在关系中唯一标识元组的候选码。
例
如,在员工信息表中,员工编号和身份证号可能都能唯一标识员工,它们都是候选码,但可能根据实际情况选择员工编号作为主码。
候选码的求解方法
候选码的求解方法姓名:xxx 学号:xxxxxxx 班级:xxxxxx在我们学习数据库原理与应用时,经常会遇到求解关系模型的一些相关问题,要看懂一个关系模型,我们必须知道这个关系模型中的候选码才能更好求解关系模型的问题,那么我该如何快速确定关系模型中的候选码呢?为此我查找相关资料得出以下一些方法,希望对我们的学习有所帮助。
一、根据候选码的相关定理和推论求解候选码定理1 对于给定的关系模式R 及其函数依赖集F,若X(X∈R)是L 类属性,则X 必为R 的任一候选码的成员。
推论l 对于给定的关系模式R 及其函数依赖集F,若X(X∈R)是L 类属性,且X+包含了R 的全部属性,则X 必为R 的唯一候选码。
定理2 对于给定的关系模式R 及其函数依赖集F,若X(X∈R)是R 类属性,则X 不在任何候选码中。
定理3 设有关系模式R 及其函数依赖集F,如果X 是R 的N 类属性,则X 必包含在R 的任一候选码中。
推论2 对于给定的关系模式R 及其函数依赖集F,如果X 是R 的N 类和L 类组成的属性集,且X+包含了R 的有属性,则X 是R 的唯一候选码。
二、利用属性闭包进行候选码求解的算法1、属性分类相关定义对于给定的关系模式R(U,F),其属性分为4 类:L 类(仅出现在F 的函数依赖左部的属性);R 类(仅出现在F 的函数依赖右部的属性);N 类(在F 的函数依赖左部和右部均未出现的属性);LR 类(在F 的函数依赖左部和右部两部均出现的属性)。
2、算法描述(1)将R 的所有属性分为L、R、LR 和N 四类,并令X 代表L、N 类,Y 代表LR 类。
(2)求X+。
若X+包含了R 的全部属性,则即为R 的唯一候选码,转(5);否则,转(3)。
(3)在Y 中取一属性A,求(XA)+ ,若它包含了R 的全部属性,则是候选码,转(4);否则,调换一属性反复进行这一过程,直到试完所有Y 中的属性。
(4)如果已找出所有候选码,则转(5);否则在Y 中依次取2 个、3 个、…,求它们的属性闭包,若其闭包包含R 的全部属性,则是候选码。
求候选码
1.设有关系模式R(U,F),其中U={A,B,C,D,E},F={AD, ED, DB, BCD, CDA}。
求出R(U,F)的所有关键字(候选码)。
2.设有关系模式R(U,F),其中U={A,B,C,D,E,P},F={AB, CP, EA, CED},求出R(U,有函数依赖的右部未出现的属性一定是候选码的成员,所以C、E必定是候选码中的成员,又因为(CE)+=ABCDE,C+=C,E+=BDE,所以CE是R惟一候选码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5. 除FD和MVD外,还有其他数据依赖,如连接依赖, 在连接依赖的概念上还可以定义5NF的范式级别。
18
范式之间的关系
消除决 定因素 非码的 非平凡 的FD
消除非 平凡且 非FD的 MVD
1NF 2NF 3NF BCNF 4NF
消除非主属性对码的 部分函数依赖
消除非主属性对码的 传递函数依赖 消除主属性对码的部 分和传递函数依赖 消除非平凡且非函数 依赖的多值依赖
因为(SB)+=SBDOQI,所以SB也是一个候选码;
因为(SO)+=SODQIB,所以SO也是一个候选码; 因为(SQ)+=SQDIBO,所以SQ也是一个候选码。
26
第5章 补充作业题
1. 设关系模式 R<U, F>, U={A, B, C, D, E, H}, F={ AD→BC, BE→C, C→H } 求出R的所有候选码。 2.判断下面的函数依赖集是否最小。 F={ AD→BC, BE→C, C→H } 3. 设关系模式 R<U, F>, U={A, B, C, D}, F={A→C, C→A, B→AC, D→AC, BD→A} (1) 求R的所有候选码; (2) 确定R的范式级别; (3) 求Fmin; (4) 将R分解为3NF的模式集。 4 . 判 断 下 面 分 解 的 无 损 连 接 性 : R(A, B, C, D), F={ AB→C, C→A, CD },ρ={ ACD, BC }。
第五章 关系 数据理论
《数据库系统概论》
6.2.2 码(参见P173.)
定义5.4 设K为关系模式R<U, F>的属性(组), f 若K U,则称K为R的候选码。
主码:若R<U , F>有多个候选码,则可以从中选定一个作为R 的主码。 主属性:包含在任一个候选码中的属性,称作主属性。 非主属性:不包含在任一个候选码中的属性,称作非主属性(或 非码属性)。 全码:关系模式的码由全部属性构成。
12
范式:综合例
设有关系模式 R<U, F> U={ A , B , C , D , E } F={AB→C, B→D, C→E, EC→B, AC→B } 要讨论范式,首先确定码。R的候选码: AB, AC; 主属性: A, B, C; 非主属性: D, E。 R BCNF ∵ EC → B的决定因素EC不包含码。 R 3NF ∵存在非主属性E对码AB的传递依赖: ABC , CAB , CE, E C R 2NF P ∵存在非主属性D对码AB的部分依赖 AB → D。 R 1NF
23
候选码的求解:例1
设关系模式R(A, B, C, D), 其函数依赖集: F={D→B, B→D, AD→B, AC→D} 求R的所有候选码。 解: L类: A, C R 类: N类: LR类: B, D + 因为(AC)F =ACDB,所以AC是R的唯一候选 码。
24
候选码的求解:例2
规范化程度高, 可解决更新异常和冗余大的问题, 但 会失去检索查询方便快速的优点 , 增加( 自然 ) 连接 运算的开销。 必须结合应用环境和具体情况合理选择DB模式, 经 常用于检索查询的系统, 宁肯规范化程度低些。
21
补充:候选码的求解算法
设关系模式R<U, F> (1) 将R的所有属性分为 L、 R、N和 LR四类, 并令X代表L、N两类,Y代表LR类。
∵AB→C(已知), 而AB→AB(自反), ∴AB → ABC(合并) ∵B→D(已知), ∴AB→AD(增广), ∴AB → ABCD(合并) ∵C→E(已知), AB→C(已知), ∴AB → E(传递)
于是 AB → ABCDE(合并)
4
码的确定: 例(续)
验证AB是否码?
前面已得到 AB → ABCDE,
19
5.2.9 规范化小结
1. 规范化的目的 有些关系模式存在“插入异常, 更新异常, 删 除异常, 数据冗余大”的问题 --- 不好的模式
寻求解决这些问题的方法 --- 规范化的目的 概念的单一化 逐步消除数据依赖中不合适的部分, 使关系模式达 到某种程度的分离, 即“一事一地”的模式设计原 则 1NF 2NF 3NF BCNF 4NF
13
范式:综合例(续)
关系模式 R<U, F> U={ A , B , C , D , E }
F={AB→C, B→D, C→E, EC→B, AC→B } R的候选码: AB, AC。
R 1NF。
将 R规范化(分解)为 BCNF 模式集: R1(A, B, C; AB → C, AC → B) BCNF R2(B, D; B → D) BCNF R3(B, C, E; C → E, EC → B) BCNF
3. 码只由一个属性组成的关系模式属于2NF。
4. 二目关系模式属于2NF。
ห้องสมุดไป่ตู้
码或是一个属性,或是全码 例如, 关系模式 S(S#, SN, SD, DEAN, C#, G)
7
5. 若R属于1NF,但R不一定属于2NF。
关于3NF的结论
1. 不存在非主属性的关系模式属于3NF。
没有非主属性 没有非主属性 不会存在传递依赖 可证明,反证
2. 4NF是BCNF的推广, 适用于具有多值依赖的关系 模式。 3. 4NF的定义就是限制关系模式的属性之间不允许 有非平凡且非函数依赖的多值依赖的存在。
15
4NF定义的说明
4. 由定义可知, 若XY 是平凡的多值依赖, 则不 要求X包含码。 5. 由定义可知, 若R 4NF, 则必有R BCNF; 反之 不成立(因为函数依赖是多值依赖的特例)。
11
关于BCNF的结论
1. 全码关系模式属于BCNF。
没有以非码属性作为决定因素的函数依赖
如果有函数依赖, 则其左部一定含码 没有函数依赖
2. 二目关系模式属于BCNF。
3. 不存在函数依赖的关系模式属于BCNF。
4. 若R属于BCNF,那么R也属于3NF。 5. 若R属于3NF,但R不一定属于BCNF。
(3) 否则, 在Y中取一属性A,求属性集闭包 (XA)+,若(XA)+包含了R的全部属性,则转(4); 否则,调换一属性反复进行这一过程,直到 试完所有Y中的属性。 (4) 如果已找出了所有的候选码,则转(5);否 则在Y中依次取2个、3个、…属性,求X与它 们的属性集闭包,直到其闭包包含R的全部属 性。 (5) 停止,输出结果。
2
码: 例
关系模式 S(S# , SN , SD , DEAN , C# , G)
f 主码(S#,C#),因为(S#,C#) 所有属性
码的确定
(1) 首先根据实际背景数据约束的语义确定关 系模式R<U, F>。 (2) 然后应用函数依赖的公理系统,验证F中 每一个函数依赖的决定因素或其组合K,是 f U。 否有: K
20
2. 规范化的基本思想
3. 各种范式及规范化的过程
规范化小结(续)
4. 关系模式的规范化过程是通过对关系模式的投影分 解来实现的, 把低一级的关系模式分解为若干高一级 的关系模式, 分解不是唯一的。后面还介绍分解算法。 5. 规范化理论为数据库模式设计提供了理论指南和工 具, 但仅仅是指南和工具。并不是规范化程度越高越 好。
思考:
1. 任何一个二目关系模式R(A, B)属于4NF吗? 是
2. 全码关系模式属于4NF吗? 否,如 WSC关系
16
非4NF转为4NF
例 2 的关系模式 WSC,有 WS,WC,码为 (W, S, C), 所以 WSC4NF, 但 WSC BCNF。
如果仓库Wi有n个保管员,存放m件商品,则关系 中分量为 Wi的元组共有m×n个,每个保管员重复 存储 m次 ,每种商品重复存储 n 次, 数据冗余非常大。 增删也不便, 增加商品, 取消保管员都必须增删若干 元组。 分解后的关系模式都属于4NF,因为只有平凡的多 值依赖WS和WC,满足4NF的定义。
9
由BCNF的定义得到的结论
由BCNF的定义,非平凡的FD: X → Y
含码K,或X即码
非主属性 主属性
可以证明下述结论, 一个满足BCNF的关系模式有: 1. 所有非主属性对每一个码都是完全函数依赖, 即, 若RBCNF, 则R2NF。 2. 所有的主属性对每一个不包含它的码也是完全 函数依赖。 3. 没有任何属性完全函数依赖于非码的任何一组 属性。 4. 若RBCNF, 则必有R3NF; 反之不一定成立。
BCNF:例1
关系模式SCO(S#, C#, ORDER),表示学生 (S#)选修课程(C#)的名次(ORDER)。 每一个学生选修每门课程的成绩有一定的名 次,每门课程中每一名次只有一个学生,于 是有函数依赖: (S#,C#) ORDER (C#,ORDER) S# 思考: 关系模式SCO的码是? 属于BCNF吗?属于3NF吗? 为什么?
设关系模式R(A, B, C, D, E, P), 其函数依赖集:
F={A→D, E→D, D→B, BC→D, DC→A}
求R的所有候选码。
解: L类: C, E
LR类: A, B, D
R 类:
N类 : P
因为(CEP)F+=CEPDBA,所以CEP是R的唯一 候选码。