数据库无损分解,数据库判断无损分解的题目,用画表的方式
各位老铁们好,相信很多人对数据库无损分解都不是特别的了解,因此呢,今天就来为大家分享下关于数据库无损分解以及数据库判断无损分解的题目,用画表的方式的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
数据库模式分解的原则是什么
关系模式的分解准则
关系模式的规范化过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为若干个高一级的关系模式。这种分解不是唯一的。
规范化的方式是进行模式分解,模式分解的原则是与原模式等价,模式分解的标准是:
模式分解具有无损连接性
模式分解能够保持函数依赖
举例:关系规范化过程
第一范式(1NF):如果一关系模式,它的每一个分量是不可分的数据项,即其域为简单域,则此关系模式为第一范式。
例:将学生简历及选课等数据设计成一个关系模式STUDENT,其表示为:
STUDENT(SNO,SNAME,AGE,SEX,CLASS,DEPTNO,DEPTNAME,CNO,
CNAME,SCORE,CREDIT)
设该关系模式满足下列函数依赖:
F={SNO-->SNAME, SNO-->AGE, SNO-->SEX, SNO-->CLASS,CLASS-->DEPTNO, DEPTNO-->DEPTNAME, CNO-->CNAME,SNO.CNO-->SCORE, CNO-->CREDIT}
由于该关系模式的每一属性对应的域为简单域,即其域值不可再分,符合第一范式定义,所以STUDENT关系模式为第一范式。
第二范式(2NF):若关系模式R?1NF,且每个非主属性完全函数依赖于码,则称R?2NF。
分析一下关系模式STUDENT,它是不是2NF?
属性组(SNO,CNO)为关系STUDENT的码。
例如:SNAME非主属性,根据码的特性具有:SNO.CNO??SNAME
根据STUDENT关系模式已知函数依赖集,下列函数依赖成立:SNO??SNAME
所以SNO.CNO??SNAME, SNAME对码是部分函数依赖。同样方法可得到除SCORE属性外,其它非主属性对码也都是部分函数依赖。所以STUDENT关系模式不是2NF。
当关系模式R是1NF而不是2NF的模式时,对应的关系有何问题呢?我们分析STUDENT关系模式,会有下列问题:
存在大量的冗余数据:当一个学生在学习多门课程后,他的人事信息重复出现多次。
根据关系模型完整性规则,主码属性值不能取空值。那么新生刚入学,还未选修课程时,该元组就不能插入该关系中。这种情况称为插入异常。
同样还有删除异常,则会丢失信息
解决上述问题方法是将大的模式分解成多个小的模式,分解后的模式可满足更高级的范式的要求。
关系数据库设计为什么要实现无损分解
模式分解要满足:
无损连接是指分解后的关系通过自然连接可以恢复成原来的关系,即通过自然连接得到的关系与原来的关系相比,既不多出信息、又不丢失信息。
保持函数依赖分解是指在模式的分解过程中,函数依赖不能丢失的特性,即模式分解不能破坏原来的语义。
数据库判断无损分解的题目,用画表的方式
构造表的第一行看,AB,A处标a1(已知),B处标a2(已知),C处标b13(未知).
构造表的第二行看,BC,A处标b21(未知),B处标a2(已知),C处标a3(已知).
因为B→C,在第二行的C处已知,在第一行中C处将b13改为a3,变为已知。
之后就变为根据A→B进行处理后的表了。这里的根据A→B进行处理说的就是这个处理的过程。
这个判断题是错误的,很明显,第二个表中的第一行全是a行。前面的一行我称为第零行,为属性行。这分解是具有无损联结特性的。
数据库的无损连接判断
无损连接是指分解后的关系通过自然连接可以恢复成原来的关系,即通过自然连接得到的关系与原来的关系相比,既不多出信息、又不丢失信息。保持函数依赖分解是指在模式的分解过程中,函数依赖不能丢失的特性,即模式分解不能破坏原来的语义。
判断是否无损连接的方法:
若关系模式R(U,F)中,被分解为p={R1, R2}是R的一个分解,若R1∩R2→ R1- R2或者R1∩R2→ R2- R1,则为无损连接
下面来看个例题
设有关系模式R(U,V,W,X,Y,Z),其函数依赖集:F={U→V,W→z,Y→U,WY→X},现有下列分解:p={UVY,WXYZ}
判断分解p是否为无损连接
首先计算 R1∩R2为Y,R1-R2为UV因为 Y→U,U→V,因此Y→UV。
所以为无损连接
好了,关于数据库无损分解和数据库判断无损分解的题目,用画表的方式的问题到这里结束啦,希望可以解决您的问题哈!