关系模式分解
- 格式: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的候选关键字。