关系模式分解
- 格式:ppt
- 大小:1.39 MB
- 文档页数:99
2.保持FD (函数依赖)的分解定义1:设F 是属性集U 上的FD 集,Z 是U 的子集,F 在Z 上的投影用πZ (F)表示,定义为πZ (F)={X →Y|X →Y ∈F +,且XY ⊆Z}定义2. 设},...{1K R R =ρ 是R 的一个分解,F 是R 上的FD 集,如果有)(1F R i ki π=Y ╞ F ,那么称分解ρ保持函数依赖集F 。
根据定义1,测试一个分解是否保持FD ,比较可行的方法是逐步验证F 中的每个FD 是否被)(1F R i ki π=Y 逻辑蕴涵。
如果F 的投影不蕴涵F ,而我们又用},...{1K R R =ρ表达R ,很可能会找到一个数据库实例σ 满足投影后的依赖,但不满足F 。
对σ的更新也有可能使r 违反FD 。
案例1:R (T#,TITLE ,SALARY )。
如果规定每个教师只有一个职称,并且每个职称只有 一个工资数目,那么R 上的FD 有T#→TITLE 和TITLE →SALARY 。
如果R 分解成ρ={R 1,R 2},其中R 1={T#,TITLE},R 2={T#,SALARY }。
则该分解具有无损连接性,但未保持函数依赖,丢失了依赖TITLE →SALARY 。
习题1:设关系模式R (ABC ),ρ={AB ,AC}是R 的一个分解。
试分析分别在F 1={A →B};F 2={A →C ,B →C},F 3={B →A},F 4={C→B,B→A}情况下, 是否具有无损分解和保持FD的分解特性。
算法1:分解成2NF模式集的算法设关系模式R(U),主码是W,R上还存在FD X→Z,并且Z是非主属性和X⊂W,那么W→Z就是非主属性对码的部分依赖。
此时,应把R分解成两个关系模式:R1(XZ),主码是X;R2(Y),其中Y=U-Z,主码仍为W,外码是X(参照R1)利用外码和主码的连接可以从R1和R2重新得到R。
如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中的每个关系模式都是2NF为止。
1.什么是数据?什么数据管理?数据是用于承载信息的物理符号,是信息的具体表现形式。
数据的定义包括两个方面:一是其内容是信息;二是其表现形式是符号。
数据管理是指对数据的收集、整理、组织、存储、维护、检索、传输等操作,这些是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。
数据管理技术的优劣直接影响到数据处理的效率。
2.什么是数据库管理系统?它的主要功能是什么?(必)是用来建立、管理和维护数据库的大型系统软件,位于应用软件和操作系统之间。
它对数据库进行统一管理和控制,并使数据库能够为多个用户共享,同时保持数据的安全性、可靠性、完整性、一致性以及高独立性。
(1)数据定义功能(2)数据操纵功能(3)数据库运行管理功能(4)数据库的建立和维护功能(5)数据库的传输功能3.数据库系统包括哪几个主要组成部分?各部分的功能是什么?画出整个数据库系统的层次结构图。
数据库、数据库用户、计算机软件系统、计算机硬件系统等几部分组成。
功能:数据库:为用户共享。
用户:对数据库进行存储、维护和检索等操作;软件系统:软件系统主要包括数据库管理系统及其开发工具、操作系统和应用系统等。
在计算机硬件层之上,由操作系统统一管理计算机资源,这样数据库管理系统可借助操作系统完成对硬件的访问,并能对数据库的数据进行存取、维护和管理。
另外数据库管理系统的给类人员、应用程序等对数据库的各种操作请求,都必须通过数据库管理系统完成。
硬件系统:存储和运行数据库系统的硬件设备。
4.试述数据库系统的三级模式结构及每级模式结构的作用数据库系统采用"三级模式和两级映射"保证了数据库中的数据具有较高的逻辑独立性和物理独立性。
其优点是当数据的逻辑结构变了,用户程序可以不变。
当数据的物理结构改变了,应用程序也可以不变5.DBA指的是什么?它的主要职责是什么?数据管理员,是负责设计、建立、管理和维护数据库以及协调用户对数据库要求的个人或工作团队。
一:大部分是对一个关系模式分解成两个模式的考察,分解为三个以上模式时无损分解和保持依赖的判断比较复杂,考的可能性不大,因此我们只对“一个关系模式分解成两个模式”这种类型的题的相关判断做一个总结。
以下的论述都基于这样一个前提:R是具有函数依赖集F的关系模式,(R1 ,R2)是R的一个分解。
首先我们给出一个看似无关却非常重要的概念:属性集的闭包。
令α为一属性集。
我们称在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包,记为α+ 。
下面给出一个计算α+的算法,该算法的输入是函数依赖集F和属性集α,输出存储在变量result中。
算法一:result:=α;while(result发生变化)dofor each 函数依赖β→γ in F dobeginif β∈result then result:=result∪γ;end属性集闭包的计算有以下两个常用用途:·判断α是否为超码,通过计算α+(α在F下的闭包),看α+ 是否包含了R中的所有属性。
若是,则α为R的超码。
·通过检验是否β∈α+,来验证函数依赖是否成立。
也就是说,用属性闭包计算α+,看它是否包含β。
(请原谅我用∈符号来表示两个集合之间的包含关系,那个表示包含的符号我找不到,大家知道是什么意思就行了。
)看一个例子吧,2005年11月系分上午37题:● 给定关系R(A1,A2,A3,A4)上的函数依赖集F={A1→A2,A3→A2,A2→A3,A2→A4},R的候选关键字为________。
(37)A. A1 B. A1A3 C. A1A3A4 D. A1A2A3首先我们按照上面的算法计算A1+ 。
result=A1,由于A1→A2,A1∈result,所以resul t=result∪A2=A1A2由于A2→A3,A2∈result,所以result=result∪A3=A1A2A3由于A2→A4,A2∈result,所以result=result∪A3=A1A2A3A4由于A3→A2,A3∈result,所以result=result∪A2=A1A2A3A4通过计算我们看到,A1+ =result={A1A2A3A4},所以A1是R的超码,理所当然是R的候选关键字。
关系模式无损分解方法在数据库设计中,无损分解是指将一个关系模式( 关系表)分解成若干个关系模式,而不丢失任何原始关系的信息。
常见的无损分解方法包括:1.合成依赖法(Synthesis Dependency):该方法主要使用合成依赖来检查是否存在冗余属性。
如果存在合成依赖,可以通过分解来消除。
合成依赖是指通过其他属性可以合成出来的属性。
例如,如果有A →B 和A →C,那么可以通过合成依赖A →BC 来检查是否存在冗余。
2.多值依赖法(Multivalued Dependency):多值依赖是指在一个关系中,一个属性集合的值决定另一个属性集合的值。
通过多值依赖的分析,可以识别是否存在非平凡的函数依赖,从而进行分解。
3.BCNF 分解法 Boyce-Codd Normal Form):BCNF 是关系模式的一种正规化形式,它要求每个非平凡的函数依赖都是一个超码。
如果关系模式不满足BCNF,就需要进行分解,将其转化为BCNF。
这个分解过程通常涉及到将违反BCNF 的属性拆分到新的关系中。
4.第三范式分解法 3NF):第三范式是关系模式的另一种正规化形式,要求关系中的所有属性都是直接依赖于主键。
如果关系不满足第三范式,也需要进行分解。
5.属性闭包法:属性闭包是指在给定关系模式中,通过一组依赖关系,可以推导出其他属性的集合。
通过属性闭包的分析,可以识别出非平凡的函数依赖,从而进行分解。
在进行无损分解时,目标是将关系模式分解成不同的关系,使得每个关系都满足某种范式( 如BCNF 或3NF),同时保留原始关系的信息。
需要注意的是,无损分解并不一定是唯一的,可能存在多种合理的分解方案。
选择适当的分解方案通常取决于具体的应用需求和性能考虑。
关系模式的分解举例例1:社交媒体的关系模式分解社交媒体是一个复杂的概念,可以通过关系模式来分解。
首先,我们可以将社交媒体的基本功能分解为发布信息、分享和互动。
其次,我们可以将社交媒体的用户分解为个人用户和商业用户,并进一步将个人用户分解为普通用户和名人用户。
然后,我们可以将社交媒体的内容分解为文本、图片和视频等不同的媒体形式。
此外,我们还可以将社交媒体的盈利模式分解为广告、付费会员和电子商务等不同的方式。
通过这样的分解,我们可以更好地理解社交媒体的各个方面,并进行深入的分析和讨论。
例2:餐厅的关系模式分解餐厅是一个复杂的系统,可以通过关系模式来分解。
首先,我们可以将餐厅的基本组成部分分解为前厅和后厨。
前厅包括接待和服务顾客的活动,后厨则涉及食品的准备和烹饪。
然后,我们可以将餐厅的顾客分解为堂食和外卖两类。
再次,我们可以将餐厅的菜单分解为早餐、午餐和晚餐等不同的时段,并进一步将菜单分解为主菜、配菜和饮料等不同的种类。
此外,我们还可以将餐厅的销售渠道分解为线下和线上两个方面。
通过这样的分解,我们可以更好地理解餐厅的运作方式,并进行优化和改进。
例3:电子商务的关系模式分解电子商务是一个复杂的概念,可以通过关系模式来分解。
首先,我们可以将电子商务的基本活动分解为线上购物、支付和配送等不同的步骤。
其次,我们可以将电子商务的参与者分解为买家、卖家和平台。
买家是指网上购物的消费者,卖家是指网上销售商品的商家,平台是指提供交易平台的电商平台。
然后,我们可以将电子商务的产品分解为实物商品和虚拟商品两类。
我们还可以将电子商务的支付方式分解为在线支付、货到付款和分期付款等不同的方式。
通过这样的分解,我们可以更好地理解电子商务的各个方面,并进行更有针对性的研究和改善。
总结起来,关系模式的分解是一种将复杂问题或概念分解为更小、更易于理解的部分的方法。
通过关系模式的分解,我们可以更好地理解问题的各个方面,并进行深入的分析和讨论,从而找到更好的解决方案。
第4章关系数据库设计理论、选择题1、C2、B3、C4、C5、A9、D 10、B二、填空题1、数据依赖主要包括—函数_依赖、—多值—依赖和连接依赖。
2、一个不好的关系模式会存在_插入异常_、_删除异常_和—修改复杂_等弊端。
3、设X T Y为R上的一个函数依赖,若_对任意X的真子集X '均无XY存在__, 则称Y完全函数依赖于X.4、设关系模式R上有函数依赖X T Y和Y T Z成立若_Y不包含于X_且_Y T X不成立_,则称Z传递函数依赖于X。
5、设关系模式R的属性集为U, K为U的子集,若_K T U为完全函数依赖_,则称K 为R的候选键。
6、包含R中全部属性的候选键称_主属性_。
不在任何候选键中的属性称—非主属性7、Armstrong公理系统是—有效__的和—完备__的.8、第三范式是基于_函数_依赖的范式,第四范式是基于_多值_依赖的范式。
9、关系数据库中的关系模式至少应属于_第一_范式。
10、规范化过程,是通过投影分解,把_一个范式级别较低的_的关系模式“分解”为_若干个范式级别较高__的关系模式。
三、简答题1、解释下列术语的含义:函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、 完全函数依赖、传递函数依赖、范式、无损连接性、依赖保持性。
解:函数依赖:设关系模式R ( U ,F), U 是属性全集,F 是U 上的函数依赖集,X 和丫是U 的子集,如果对于R(U)的任意一个可能的关系 r ,对于X 的每一个具体值,Y 都有唯一的具 体的值与之对应,则称X 函数决定Y,或Y 函数依赖于X ,记X T Y 。
我们称X 为决定因素, Y 为依赖因素。
当Y 不函数依赖于 X 时,记作:©Y 。
当X T Y 且Y T X 时,则记作:X Y 。
平凡函数依赖:当属性集Y 是属性集X 的子集时,则必然存在着函数依赖X T Y ,这种类型的函数依赖称为平凡的函数依赖。
非平凡函数依赖: 如果Y 不是X 子集,则称X T Y 为非平凡的函数依赖。
简述关系模式分解的两大准则
关系模式分解是数据库设计中的重要步骤之一,它通过将一个大型关系模式分解成多个较小的、相关的关系模式,来提高数据库的性能和可维护性。
关系模式分解需要遵循以下两大准则:
第一,无损连接(Lossless Join)准则。
即分解后所得到的关系模式能够保持对原始关系模式中所有可能连接的支持,即能够无损地连接起来。
这意味着分解后的关系模式能够通过连接操作得到与原始关系模式相同的结果,不会因为分解而引入额外的元组或导致遗失某些元组。
无损连接准则确保了数据的完整性和一致性。
第二,函数依赖(Functional Dependency)准则。
即分解后的关系模式要能够保持原始关系模式中的所有函数依赖。
对于给定的关系模式R,如果存在函数依赖A → B,那么在分解后的关系模式中,A和B仍然在同一个关系模式中,并且该函数依赖仍然有效。
这意味着分解后的关系模式要能够保持数据的一致性和完整性。
通过遵循无损连接和函数依赖准则,关系模式分解能够确保分解结果的数据完整性和一致性,提高数据库的性能和可维护性。