关系模式规范化实例析解
- 格式:docx
- 大小:16.67 KB
- 文档页数:4
补充讲义一、范式举例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),所以,算法结束。
在《数据库系统》课程中实施案例式教学模式的探讨摘要:随着信息化的普及,数据库系统成为高校计算机专业的一门重要课程,以数据库中的规范化设计理论教学为例,引入“案例教学”教学方法,通过案例的提出和解决,引导学生自己主动去发现知识,掌握理论,取得了较好的教学效果。
关键词:教学模式;学生主体;案例教学;规范化设计中图分类号:g642 文献标识码:a文章编号:1009—0118(2012)10—0135—02一、引言高等院校中,《数据库系统》是计算机专业及信息管理专业的必修基础课。
牵涉到的理论概念比较抽象,如数据库的规范化设计理论这一章节是本课程的一个难点及重点,而这部分内容比较抽象、枯燥,如按照传统的教学方法,以教师讲授为主,先从概念入手,然后介绍相关理论知识,最后给出应用实例,学生一开始就面对如此复杂、枯燥的概念,很容易出现畏难情绪,所以,在讲完大量概念之后再着手介绍相关的规范化理论知识,可想而知,此时,大部分学生已经失去兴趣,学习积极性不高,当然达不到预期的教学效果了。
二、对策思路基于建构主义的教学法[1—2]提倡在教师指导下的、以学生为中心的学习,明确并坚持学生在学习中的主体地位、教师在教学中的引导作用;而案例教学,实质上就是一种基于建构主义的教学模式,首先通过对教学案例的选择和设计,让学生对案例进行充分的分析、讨论,充分表达自己的见解,最后教师归纳总结。
案例教学主要步骤可以归纳如下[3—4]:(一)选择与设计教学案例(二)课堂讨论(三)教师归纳总结(四)巩固加强下面针对数据库的规范化设计理这一章节的教学,本文进行了如下探讨。
三、教学中具体应用(一)回顾相关知识首先,为了达到承上启下的作用,教师按照教学大纲相关的知识点,请同学们先回顾相关概念:候选键、主键(码)、外键、主属性、非主属性。
选择教师适当引导、学生主动回答的教学方式。
让学生认识到关系模式规范化设计理论的重要性,在关系数据库设计中,数据合理存储和组织的核心是设计科学的关系模式,能准确反映现实世界实体间的联系,最大限度的减少冗余这就是关系模式规范化的问题[5]。
关系模式标记规则概述及解释说明1. 引言1.1 概述关系模式标记规则是一种用于标记和解释关系模式的规范和约定。
关系模式是指数据库中数据的逻辑结构,它描述了实体之间的属性和关系。
为了便于理解和操作数据库,人们提出了一种统一的方式来表示和解释关系模式,即通过一套固定的标记规则来标识不同类型的元素。
1.2 文章结构本文主要分为五个部分进行论述。
引言部分主要介绍关系模式标记规则的背景和目的,并对文章结构进行概述。
其余四个部分将从不同角度对关系模式标记规则进行定义、解释、优势与局限性分析以及未来展望进行详细讨论。
1.3 目的本文旨在全面而系统地介绍关系模式标记规则,包括其定义和原理、具体解释说明以及相关优势与局限性分析。
通过本文,读者可以全面认识到关系模式标记规则在数据库设计与操作中的重要作用,并对其应用具有清晰的认识。
此外,本文还将对未来研究方向提出展望与建议,为该领域的进一步发展提供指导和参考。
2. 关系模式标记规则的定义和原理2.1 关系模式的概念介绍关系模式是数据库中表(table)的结构化描述,也被称为数据表格。
每个关系模式都包含一定数量的列(column)和行(row),列代表属性(attribute),行代表具体实例。
关系模式通常用于表示实体及其之间的联系。
在关系型数据库管理系统(RDBMS)中,关系模式使用规范化的形式来确保数据的一致性和完整性。
因此,准确地标记和记录关系模式是非常重要和必要的。
2.2 标记规则的作用和意义标记规则是指对于一个给定的关系模式,在文档或代码中进行特殊注释或标记以描述其结构、属性、约束等各方面信息的规则和约定。
通过使用标记规则,开发人员或数据库管理员可以更容易地理解一个特定的关系模式,并能够快速查找有关该模式的详细信息。
这样可以提高工作效率,减少出错概率,并提升团队合作效果。
2.3 关系模式标记规则的发展历程随着数据库技术不断发展壮大,关系模式标记规则也在不断演变和完善。
2022年安徽医科大学信息管理与信息系统专业《数据库概论》科目期末试卷A(有答案)一、填空题1、在数据库系统封锁协议中,一级协议:“事务在修改数据A前必须先对其加X锁,直到事务结束才释放X锁”,该协议可以防止______;二级协议是在一级协议的基础上加上“事务T在读数据R之前必须先对其加S锁,读完后即可释放S锁”,该协议可以防止______;三级协议是在一级协议的基础上加上“事务T在读数据R之前必须先对其加S锁,直到事务结束后才释放S 锁”,该协议可以防止______。
2、“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的______阶段。
3、在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用____________语句,收回所授的权限使用____________语句。
4、对于非规范化的模式,经过转变为1NF,______,将1NF经过转变为2NF,______,将2NF 经过转变为3NF______。
5、设有关系模式R(A,B,C)和S(E,A,F),若R.A是R的主码,S.A是S的外码,则S.A的值或者等于R中某个元组的主码值,或者______取空值,这是规则,它是通过______和______约束来实现的。
6、若事务T对数据对象A加了S锁,则其他事务只能对数据A再加______,不能加______,直到事务T释放A上的锁。
7、采用关系模型的逻辑结构设计的任务是将E-R图转换成一组______,并进行______处理。
8、在RDBMS中,通过某种代价模型计算各种查询的执行代价。
在集中式数据库中,查询的执行开销主要包括______和______代价。
在多用户数据库中,还应考虑查询的内存代价开销。
9、数据库恢复是将数据库从______状态恢复到______的功能。
10、设某数据库中有作者表(作者号,城市)和出版商表(出版商号,城市),请补全如下查询语句,使该查询语句能查询作者和出版商所在的全部不重复的城市。
关系模式规范化实例析解
摘要:关系模式是关系数据库的重要组成部份,其规范化理论在整个模式设计中占有主导地位。
下面我们试图采用接近课堂教学的方式给出一个完整实例,希望对初学者有所帮助。
关键词:关系模式;规范化;函数依赖;范式
众所周知,关系模式是关系数据库的重要组成部份,其好坏直接影响关系数据库的性能。
而关系模式的设计必须满足一定的规范化要求,从而满足不同的范式级别。
[1](P.46-52,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](P.150)按照上面的三个条件进行最小化处理,我们可得到一个求最小函数依赖集方法:第一步,为满足条件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](P.148-150)
五、关系模式R最高已经达到第几范式为什么
很明显,关系模式R(A,B,C,D,E)中的所有属性值都是不可再分的原子项,所以该关系模式已满足第一范式。
[1](P.53)那么关系模式R(A,B,C,D,E)是否满足2NF
根据范式的相关定义我们得知:如果关系模式R(U,F)中的所有非主属性都完全函数依赖于任一候选关键字,则该关系是第二范式。
[1](P.54)从上面的分析我们知道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](P.55)
六、R已达3NF,是否已达BCNF 若不是BCNF,将其分解为BCNF模式集
由BC范式的定义得知:如果关系模式每个决定因素都包含关键字(而不是被关键字所包含),则R满足BC范式。
[1](P.56)分析:在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 }。