关系模式规范化实例析解

合集下载

DBS第四章

DBS第四章
X→Y∧W→Z X∪(W-Y)→YZ
第四章 关系数据库的规范化设计 4.2 函数依赖
例1:设有关系模式R(A,B,C,D,E),其上的 函
数依赖集F={AB→CD, A→B, D→E}. 求证F必蕴涵A→E。
证明:∵A→B (已知) ∴A→AB (扩展律) ∵AB→CD (已知) ∴A→CD (传递律) ∴A→C,A→D (分解规则) ∵D→E (已知) ∴A→E (传递律)
X→Ai(i=1,2,…,n)中Ai的集合为X的属性闭包
记为
X
+ F
,即:
X
+ F
={Ai|AiU,且X→Ai在F+中}
第四章 关系数据库的规范化设计 4.2 函数依赖
定理4.4: 函数依赖X→Y能从F推出的充分必要条件是
YX+F ; (能用推理规则从F推出的所有X→Y的Y都在X +F中。
第四章 关系数据库的规范化设计 4.2 函数依赖
3
0003 C107
4
第四章 关系数据库的规范化设计 4.1 关系模式的设计问题
分析: (1)出现冗余和各种异常的原因
事物及事物的各个属性之间有一定的联系、约束 关系模式应尽量准确地反映这种内在的语义 不应把关系不密切或具有“排它”性的属性集中 (2)数据之间的联系→数据依赖→函数依赖(多对一)√
S#,
G
F={(S#, , C,#→T#} T#→TD C#
C#)→G
T#
T D
第四章 关系数据库的规范化设计
4.2 函数依赖
例2:设关系模式R(ABCD),在R的关系中,属性 值
间具有联系:
B→A
A值与B值有一对多联系; C值与D值有一对一联系;

泛关系模式的规范化处理及其实例研究

泛关系模式的规范化处理及其实例研究
W ANG o qn Gu — ig
(l tn Ee r i I o ao ni en eatet P tnU i rt, ua 5 10 C i ) c o c& n r tnE g er gDpr n, ua n esy P tn3 10 ,hn fm i n i m i v i i a
 ̄ : h sp p rd s u s s n v ra lt n l o c ps ie otm- p a po c o d tb s e i ae i u ies lrlt n l T i a e i s e ie s l eai a n e t ,sr sab t c u r o c o u p r a hfr aa aed sg b s d Ol n v ra eai a n o d c mp s in t r v n ep si l c ur r eo p ae a o l s a d rd c e o o io p e e t h o s e 0 c r l f d t n ma e n u e t o t b ec u i e
维普资讯
20 第 6期 06年
计 算 删 椰

与 现 代 化 Y U ⅪA D Ⅲ I N A y A
总 第 10期 3
文章 编号 :062 7 (0 60 - 5 -3 11 - 520 )60 8 3 4 0 0
泛 关 系模 式 的规 范 化处 理 及其 实例 研 究
的基本思想是逐步消除数据依赖 中不合适的部分 , 消 除各类操作异常, 减少数据的冗余。
定义 3 1 设 R u 是一个属性集 u上 的关 系模 式 , . () X是
u的一个子集 。如果 ) u在 R上 成立 , 那么 称 X是 R的一 个超键 。如果 ) u在 R上 成立 , 但对 于 X的任一 真子 集 X1 都有 x 一u不成立 , 1 那么称 X是 R上的一个候选键 。

关系模型规范化

关系模型规范化

规范化的必要性
❖ 关系模式的简化定义 ❖ 数据依赖 ❖ 数据依赖对关系模式影响
关系模式的简化定义
关系模式由五部分组成,即它是一个五元组:
R(U, D, DOM, F)
R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映象集合 F: 属性间数据的依赖关系集合
第三范式 (3NF)
➢ 采用投影分解法将一个2NF的关系分解为多个3NF的 关系,可以在一定程度上解决原2NF关系中存在的插入异 常、删除异常、数据冗余度大、修改复杂等问题。
➢ 将一个2NF关系分解为多个3NF的关系后,仍然不能 完全消除关系模式中的各种异常情况和数据冗余。
关系模式的规范化
1. 规范化的必要性 2. 规范化 3. 小结
数据依赖对关系模式的影响
把这个单一模式分成3个关系模式: S(Sno,Sdept,Sno → Sdept) SC(Sno,Cno,Grade,(Sno,Cno) → Grade) DEPT(Sdept,Mname,Sdept→ Mname)
关系模式的规范化
1. 规范化的必要性 2. 规范化 3. 小结
➢ 分解后的关系模式S-D与D-L中不再存在传递依赖
第三范式(3NF)
S-D的码为Sno, D-L的码为Sdept
S-D
D-L
Sno
Sdept
Sdept
Sloc
S-L(Sno , Sdept , Sloc) ∈ 2NF
S-L(Sno , Sdept , Sloc) ∈ 3NF S-D(Sno ,Sdept) ∈ 3NF D-L(Sdept , Sloc)∈ 3NF
关系模式的简化表示
➢ 关系模式R(U, D, DOM, F)

浅析关系数据库的规范化设计

浅析关系数据库的规范化设计

现实世界随着时间的变化 , 不同时刻构成数据的关 系
世界 , 再将信息世界转化 为计算机世界?实现在信息管理 系统开发中所 需的数据 库呢?在把现实 世界抽象 为信息 世界的过 程中 , 实际上是抽象 出现实世界 中有应用价值 的 元素及其关联 , 在这一 描述与转换 过程 中, 一种 简单实 用 的方法是采用实体 一 联系模型分析方法( E—R分 析图 即 表示 法) 运用 E—R分 析工具 所形成 的分析结 果就 是 E ,
方 鹏
( 湖北工业大学 , 湖北武 汉, 304) 4 07

[ 摘
要】 数据库分析设计是 数据库应用 系统开发过程 中最重要 的环 节, 数据库设计 的好坏将直接影响整 个应 用 系统
的性 能, 本文围绕关 系数据库设计 中关系规范化 的理论与 实践 , 剖析 了范式规 范化 的一般原 理、 法与 步骤 , 方 以供数据 库
关系数据库规范化设计 的基础理论与技术 , 这种理论就是 范式理论 , 这种技术就是为满足 决策 支持及特殊数据存储
式构架 , 是对现实世界中各种事物或实体特征的数字化模 拟和抽象 , 用以表示 现实世界中的实体及实体间的联系使
的需要而涉及 到的数据仓库技术 , 本文 主要针对范式规范
化 加 以阐 述 。
2 1 年 5月 01
湖北成人教育学 院学报
J un l fHu e d l E u ainI s tt o ra B iA ut d c t n tue o o i
Ma y,2 0 1 1
第1 7卷
第 3期
V0 .1 N O 3 1 7 .
浅 析 关 系数 据 库 的 规 范 化 设 计
间 的联系为 5 F N ?B N ?3 F N ?1 F 1 F的 N ?4 F C F N ?2 F N 。N 概念为 : 若有一个关系 R, 其所有 的属性 都 是基本 的原子

数据库范式与关系模式示例

数据库范式与关系模式示例

补充讲义一、范式举例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),所以,算法结束。

关系规范化理论及反规范化设计在数据库中的运用

关系规范化理论及反规范化设计在数据库中的运用
维普资讯
科技信息
0计算机 与信 息技术 O
SIN E&T C N L G N O M TO CE C E H O O YIF R A IN
20 07年
第 2 期 l
关系规范化理论及反规范化设计在数据库中的运用
李 荣 芳 ( 陕西 邮 电职 业技术 学 院计算 机 系 陕西
D S S O,N, E T)S 关 系模 式 的角 度 来 看 , 有满 足 第 三 范 式 或 B N 只 C F的 表结 构 是 最 容 易 取 出 来 ,把 表 分 解 为 S和 S 两 张 关 系 , 即 : (N S D P ,D D P MN) 两 张关 系 通 过 S的外 键 D P , E T来 联 接 。 维护 的, 而且 可 以基 本 满 足 实 际 应 用 的 要 求 。对 关 系 的规 范 化 处 理 具 ( E T, C, N 但 有 很 多 优 点 : 低 数 据 冗 余 , 免 了数 据 库 的修 改 异 常 , 入 异 常 和 删 分析 S 虽满足 3 F, 仍存在以下问题 : 降 避 插 除 异 常 ; 且 也 加 快 了单 表 查 询 的速 度 。 而
关 键 词 : 据 库 设 计 ; 范化 ; 规 范化 数 规 反
1引 言 .
在 关 系 数 据 库 设 计 中 , 范 化 是 一 个 很 重 要 的概 念 。 数 据 库 的 设 规
S O一 >S DEPI > ’ M 一
23第 三范式(N ) 若某关系模式 满足 2 F. , 3F N 且关系 中每一 个非 则 N。 计是 否 合 理 . 接 影 响 到 数 据 库 的 性 能 。 自 2 直 0世 纪 7 O年 代 首 次 提 出 主 属 性 都 直 接 函 数 依 赖 于侯 选 关 键 字 , 称 该 关 系 满 足 3 F 要 使 S NF 只要 去掉 S中的传递函数依赖 即可 , 将传递 函数依赖单 独 关 系 规 范化 理 论 以 来 , 系 规 范 从 第 一 范 式 提 高 到 第 五 范 式 , 是 从 满足 3 , 关 但

关系的范式习题(含答案解析)

关系范式习题
第4章 关系数据库的规范化理论
1
[例]假设某商业集团数据库中有一关系模式R如下: R(商店编号、商品编号、商品库存数量、部门编号、部门负 责人) 如果规定: 每个商店的每种商品只在该商店的一个部门销售。 每个商店的每个部门只有一个部分负责人 每个商店的每种商品只有一个库存数量。 请回答以下问题: (1) 根据上述规定,写出关系模式R的基本函数依赖。 (2) 找出关系模式R的候选码。 (3) 关系模式R最高已经达到第几范式?为什么? (4) 如果R不属于3NF,请将R分解成3NF。
第4章 关系数据库的规范化理论
2
[解答] (1) R(商店编号,商品编号,商品库存数量,部门编号, 部门负责人) 每个商店的每种商品只在该商店的一个部门销售 (商店编号,商品编号)部门编号 每个商店的每个部门只有一个部门负责人 (商店编号,部门编号)部门负责人 每个商店的每种商品只有一个库存数量 (商店编号,商店编号)商品库存数量
第 关系数据库的规范化理论
9
(3)分解为两个关系,使之达到3NF; 职工(职工号,职工名,年龄,性别,部门号) 部门(部门号,部门名称) (4)分解后的关系可以避免上述操作异常问题。 当增加一个新部门,而该部门还没有员工时,仍然 可以向部门关系中加入该部门信息,从而解决了 插入异常问题。 当某部门只有一名员工,删除该员工时,直接删除 职工关系中的该行信息即可。 不再会把该部门的 信息也删除,从而解决了删除异常的问题。
第4章 关系数据库的规范化理论
6
[例]设有如下所示的关系R 职工号 E1 E2 E3 职工名 年龄 万千里 20 于得水 25 余乐 38 性别 女 男 男 部门号 部门名 D3 D1 D3 开发部 财务部 开发部
E4

数据库原理第五章关系数据库的规范化设计

在以上三个关系模式中,实现了信息的某种程度的 分离: T中存储教师基本信息,与所选课程及系主任无关; D中存储系的有关信息,与教师无关; TC中存储教师讲授课程的信息,而与教师及系的信 息无关。
12
模式分解是关系规范化的 主要方法(二)
与TDC相比,分解为三个关系模式后,数据的冗余度明显 降低。 当新插入一个系时,只要在关系D中添加一条记录。 当某个教师尚未讲课,只要在关系T中添加一条教师记录, 而与TC授课关系无关,这就避免了插入异常。 当某个系的教师不再讲课时,只需在TC中删除该教师的 全部授课记录,而关系D中有关该系的信息仍然保留,从 而不会引起删除异常。 同时,由于数据冗余度的降低,数据没有重复存储,也不 会引起更新异常。
24
2.2 完全函数依赖和部分函数依赖
例如:学生成绩表中
姓名 王一 王二 王三 王一
学号 1 2 3 4
年龄 16 15 16 16
籍贯 河北 山东 北京 天津
姓名不能推出年龄,学号也不能推出年龄,但是 姓名 + 学号能推出年龄,故完全依赖;
学号能直接推出籍贯,故是部分依赖
25
2.3 传递函数依赖
当关系中的元组增加、删除或更新后都不能被破 坏这种函数依赖。因此,必须根据语义来确定属 性之间的函数依赖,而不能单凭某一时刻关系中 的实际数据值来判断。
20
函数依赖的定义和性质(六)
函数依赖可以保证关系分解的无损连接性
设R(X,Y,Z),X,Y,Z为不相交的属性集合,如果X Y或X Z,则有R(X,Y,Z)=R[X,Y]*R[X,Z],其中,R[X,Y]表示关 系R在属性(X,Y)上的投影,即 R等于其投影在X上的自然连 接,这样便保证了关系R分解后不会丢失原有的信息,称为 关系分解的无损连接性

《关系模式的规范化》课件

由于减少了数据冗余,数据的维护工作量也相应减少,从而提高数 据维护的效率。
THANKS
THANK YOU FOR YOUR WATCHING
关系模式的规范化主要基于函数依赖和范式的理论,通过逐 步消除冗余属性、处理数据依赖冲突,最终达到一定的规范 化程度,如第三范式(3NF)或更高范式。
关系模式规范化的重要性
减少数据冗余
规范化可以消除数据冗余,减少存储 空间的浪费,并降低数据维护成本。
保证数据一致性
通过规范化,可以确保数据的一致性 和完整性,避免因数据更新、删除操 作而产生的错误和异常。
从3NF到BCNF的转化
将关系模式分解为多个关系模式,使得每个 关系模式都满足3NF和BCNF。
07
关系模式规范化的应用场景
数据库设计
数据结构合理化
通过规范化,确保数据库中的关 系模式满足一定的范式要求,从 而使数据结构更加合理、清晰, 降低数据冗余和操作异常的风险 。
提高数据一致性
规范化有助于保证数据的一致性 ,避免数据在不同表中重复存储 ,从而降低数据不一致的问题。
BCNF范式消除了传递依赖,从而减 少了数据冗余和更新异常的可能性。
VS
BCNF范式是相对较弱的范式,它允 许有部分函数依赖,但不允许有完全 函数依赖。
如何达到BCNF
识别关系模式中的函数依赖, 并确定哪些是传递依赖。
通过分解关系模式或引入新 的候选键来消除传递依赖,
从而满足BCNF的要求。
在分解过程中,需要确保分解 后的关系模式仍然满足BCNF 的要求,并且能够保持数据的
03
通过规范化,可以降低因修改操作导致的数据完整性破坏的风
险,确保数据的准确性和一致性。
数据冗余消除

第4章 关系规范化理论

f f f
t
4.3
范式和规范化方法
4.3
范式和规范化方法
范式(Normal Forms,NF)的概念是E.F.Codd在
1971年提出的。1971—1972年,E.F.Codd提出了1NF、
2NF与3NF。1974年,Codd与Boyce又共同提出了 BCNF。1976年,Fagin提出了4NF,后来又有人提出了 5NF。在这些范式中,最重要的是3NF和BCNF,它们是 进行规范化的主要目标,基本保证了防止冗余问题和异常
【例4-7】 分析关系模式T(Tno, Tname, Tsex)中,各属性 分别代表教师号、教师姓名、性别。
解:T只有一个主键Tno,没有任何属性对Tno部分依赖或
传递依赖,所以T↔3NF。同时Tno是T中唯一的决定因素, 所以T↔BCNF。
4.3.4 BCNF
【例4-8】 分析关系模式STC(S, T, C)中,S表示学生,T表 示教师,C表示课程。每一教师只教一门课。
【例4-5】 分解例4-4中的关系S1,使其满足3NF的要求。
解:在关系S1中,院长(Dean)传递函数依赖于学号(Sno),即Sno Dean,所以S1不属于3NF。
将关系S1(Sno, Sname, Ssex, Sdept, Dean)进一步分解,消除传递依赖。 分解步骤如下:
(1)对于不是候选键的每个决定因素,从关系中删除依赖它的所有属性。 在关系S1中,学院(Sdept)不是候选键,但却是决定因素,从关系S1 中删除依赖它的属性院长(Dean),得到新的关系S11(Sno, Sname, Ssex, Sdept)。 (2)新建一个关系,该关系中包含原关系中不是候选键的决定因素以及 所有依赖该决定因素的属性,并将决定因素作为该关系的主键。对于关系 S1,新建的关系为S12(Sdept, Dean),主键为Sdept。 关系S1分解后消除了传递函数依赖,因此S11和S12都满足3NF。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关系模式规范化实例析解
摘要:关系模式是关系数据库的重要组成部份,其规范化理论在整个模式设计中占有主导地位。

下面我们试图采用接近课堂教学的方式给出一个完整实例,希望对初学者有所帮助。

关键词:关系模式;规范化;函数依赖;范式
众所周知,关系模式是关系数据库的重要组成部份,其好坏直接影响关系数据库的性能。

而关系模式的设计必须满足一定的规范化要求,从而满足不同的范式级别。

[1],57)在指导关系模式的设计中,规范化理论占有着主导地位,其基本思想是:消除数据依赖中不合理的部份,使各关系模式达到某种程度的分离,使一个关系仅描述一个实体或者实体间的一种联系。

[2]关系模式及其规范化的理论是我们设计和优化关系模式的指南。

作为一种优秀而成熟的理论,学习和实践会有一定的难度,但在因特网和相关书籍中难得有比较全面的实例,给我们学习和实践造成不便。

下面,我们试图采用接近课堂教学的方式给出一个完整的析解实例,以期对初学者有所帮助。

一、实例
假设某商业集团数据库中有一关系模式R(商店编号,商品编号,数量,部门编号,负责人),如果规定:
(1)每个商店的每种商品只在一个部门销售;
(2)每个商店的每个部门只有一个负责人;
(3)每个商店的每种商品只有一个库存数量。

试回答下列问题:
(1)根据上述规定,写出关系模式R的基本函数依赖;
(2)找出关系模式R的候选关键字;
(3)试问关系模式R最高已经达到第几范式为什么
(4)如果R已达3NF,是否已达BCNF 若不是BCNF,将其分解为BCNF模式集。

二、预处理
为了方便,我们用代号代表每个属性:
A—商店编号 B—商品编号
C—部门编号 D—数量
E—负责人
这样,有关系模式:R(U,F) U={A,B,C,D,E}
三、根据上述规定,写出关系模式R的基本函数依赖
为了消除关系模式在操作上的异常问题,优化数据模式,我们需要对关系模式进行规范化处理。

而首先需要做的就是函数依赖,以便能确切地反映实体内部各属性间的联系。

[2](P.经过对数据语义的分析我们得出下面的依赖关系:
1.语义:每个商店的每种商品只在一个部门销售,即已知商店和商品名称可以决定销售部门
例:东店——海尔洗衣机———定在家电部销售
所以得出函数依赖:AB→C
2.语义:每个商店的每个部门只有一个负责人,即已知商店和部门名称可以决定负责人
例:东店——家电部——部门经理一定是张三
所以得出函数依赖是:AC→E
3.每个商店的每种商品只有一个库存数量,即已知商店和商品名称可以决定库存数量
例:东店——海尔洗衣机——库存10台
所以得出函数依赖是:AB→D
这样:在关系模式R(U,F)中,基本函数依赖集是:F={ AB→C ,AC→E,AB→D }。

四、找出关系模式R的候选关键字
根据函数依赖和关键字的基本定义,我们可以说:只有在最小函数依赖集中才能科学、正确地寻找候选关键字。

那么何为最小函数依赖集又怎么求出F的最小函数依赖集呢根据函数依赖的相关定理我们得知:给定函数依赖集F,如果F中每一函数依赖X->Y∈F满足:(1)X->Y的右边Y为单个属性(F为右规约的);(2)F为左规约(即F中任一函数依赖X→Y∈F的左边都不含多余属性);(3)F为非冗余的(即如果存在F的真子集F’,使得F’≡F,则称F是冗余的,否则称F是非冗余的);则称F为最小函数依赖集,或称F是正则的。

每一个函数依赖都等价于一个最小函数依赖集。

[3]按照上面的三个条件进行最小化处理,我们可得到一个求最小函数依赖集方法:第一步,为满足条件1,根据分解性把右侧是属性组的函数依赖分解为单属性的多个函数;第二步,为满足条件2,逐一考察最新F中的函数依赖,消除左侧冗余属性;为满足条件3,逐一考察最新F中函数依赖X->Y,检查X->Y是否被F-{X->Y}所蕴涵,如果是,则X->Y是冗余的,可以删除。

[4]所以,F的所谓最小函数依赖集就是去掉了多余依赖的F。

按上面提供的算法依据具体计算如下:
1.根据分解性先分解所有依赖的右边为单属性:
可以看出:F={ AB→C ,AC→E,AB→D }中所有依赖的右边已为单属性。

2.对所有依赖的左边为多属性的情况,消除左侧冗余属性:
下面计算判断AB→C中有无无关属性:
(1)设A→C,在F={ AB→C ,AC→E,AB→D }中计算A的闭包A+ :
首先,初始化A+ = {A};经观察,在F={ AB→C ,AC→E,AB→D }中,属性A不能“带进”任何属性。

即A的闭包A+ 就是{A},也就是A+ = {A},所以AB→C中B不是无关属性。

(2)设B→C,在F={ AB→C ,AC→E,AB→D }中计算B的闭包B+:
首先,初始化B+ = {B};经观察,在F={ AB→C ,AC→E,AB→D }中,属性B不能“带进”任何属性。

即B的闭包B+就是{B},也就是B+ = {B},所以AB→C中A不是无关属性。

(3)同理,AC→E和AB→D中左边亦无无关属性。

3、下面计算在F={ AB→C ,AC→E,AB→D }中有无冗余依赖:
我们去掉AB→C,依赖集变为F={ AC→E,AB→D }。

首先,初始化{AB}+ = {A,B} ;在F={ AC→E,AB→D }中,有AB→D,即AB可以“带进”D 属性,这时{AB}+ = {A,B,D};经观察已不能再“带进”其它属性。

即{AB}的闭包{AB}+ 就是{A,B,D},也就是{AB}+ = {A,B,D}。

因为{A,B,D}中不包含C,所以我们说AB→C不是冗余依赖。

同理计算,AC→E和AB→D亦不是冗余依赖。

到此,才能肯定F={ AB→C ,AC→E,AB→D }已是最小函数依赖集。

4、寻找候选关键字也需要一定的计算,下面计算R的候选关键字:
在F={ AB→C ,AC→E,AB→D }中,我们对所有属性进行归类如下:
L类属性,即仅在依赖左边出现的属性:A,B
R类属性,即仅在依赖左边出现的属性:E,D
LR类属性,即既在依赖左边又在依赖右边出现的属性:C
N类属性,即既不在依赖左边又不在依赖右边出现的属性:无
我们知道,L类属性和N类属性一定在候选关键字中,R类属性一定不在候选关键字中。

所以,A,B一定在候选关键字中,E,D一定不在候选关键字中。

这是定性的结果。

具体的候选关键字是什么呢
首先,计算L类属性AB的闭包:{A,B}+ ={A,B,D,C,E},因为AB的闭包{A,B,D,C,E}已经包含了所有R的属性,所以,{A,B}是唯一候选关键字。

对于LR类属性参与候选关键字的相关计算稍嫌复杂,但这里已经找出了关系模式R{A,B,C,D,E}的唯一候选关键字。

[3]
五、关系模式R最高已经达到第几范式为什么
很明显,关系模式R(A,B,C,D,E)中的所有属性值都是不可再分的原子项,所以该关系模式已满足第一范式。

[1]那么关系模式R(A,B,C,D,E)是否满足2NF
根据范式的相关定义我们得知:如果关系模式R(U,F)中的所有非主属性都完全函数依赖于任一候选关键字,则该关系是第二范式。

[1]从上面的分析我们知道R(A,B,C,D,E)的唯一候选关键字是{A,B};非主属性是:C、D、E ;函数依赖集是{ AB→C ,AC→E,AB→D }。

所以:
AB→C
例:东店——海尔洗衣机———定在家电部销售
AB→D
例:东店——海尔洗衣机(——只在家电部销售)——库存10台
AB→E
例:东店——海尔洗衣机(——卖海尔洗衣机的部门——家电部)——部门经理是张三
关系模式R(A,B,C,D,E)已满足2NF。

进一步分析:非主属性C、D、E之间不存在相互依赖,即关系模式R(A,B,C,D,E)不存在非主属性对候选关键字的传递依赖,根据第三范式的定义,关系模式R(A,B,C,D,E)已满足3NF。

[1]
六、R已达3NF,是否已达BCNF 若不是BCNF,将其分解为BCNF模式集
由BC范式的定义得知:如果关系模式每个决定因素都包含关键字(而不是被关键字所包含),则R满足BC范式。

[1]分析:在F={ AB→C ,AC→E,AB→D }中,有依赖AC→E的左边{A,C}
不包含候选关键字{A,B},即AC→E是BCNF的违例。

所以,关系模式R(A,B,C,D,E)不满足BCNF。

1、下面分解关系模式R(A,B,C,D,E):
分解3NF,有一定的规则。

从BCNF违例AC→E入手,我们得到两个新关系模式:R1(A,C,E)和R2(A,C,B,D)
R1由违例的所有属性组成,R2由违例的决定因素和R的其余属性组成。

即:R1(商店编号,部门编号,负责人),实际上描述了“负责人”这一件事。

R2(商店编号,商品编号,部门编号,数量),实际上描述了“商品库存”这一件事。

已经做到了“一事一地”的原则了,应该能符合更高的范式,但还得经过计算和判断。

2、下面我们判断R1是否满足BCNF:
对于一个新关系,不知道它的依赖集,不知道它的候选关键字,我们需要借助原R(A,B,C,D,E)的依赖集F={ AB→C ,AC→E,AB→D }。

相关文档
最新文档