资源描述
一.某些“不好的”关系模式可能会导致哪些问题?产生这些问题的根本原因是什么?
1. 数据冗余,也就是多次重复。比如,一个生产厂家会有多种产品去适应市场,同时一种商品也会在许多销售部门店中销售,这样会引起数据冗余,即生产厂家信息和商品名称都会重复多次,数据的冗余度很大,浪费了存储空间。
2. 插入异常。根据关系的实体完整性约束,主关系键的值不能为空,比如一个新产品已经开始生产,但尚未上市销售,我们无法将产品及其生产厂家登记下来,这种情况称为插入异常。同样,实体完整性约束还规定,主关系键的值不能部分为空,同样不能进行插入操作。
3. 删除异常。如果销售门店由于季节变化或者其他原因而暂时没有了某种商品,那么在删除商品信息的同时也会把这一商品的其他信息(生产厂家)同时删除掉,而这个系依然存在,在数据库中却无法找到该系的信息,这种情况称为删除异常。
4. 更新异常。当信息变化,如某个生产厂家变更名称时,由于该厂家生产许多商品,并在许多销售门店中销售,因此必须修改大量元组,如果只修改一条,则会造成数据不一致的情况,破坏了数据的完整性,这种情况称为更新异常。
造成上述问题的原因在于将各种有关联的数据集中在一个关系模式中,使得该模式中包含的语义信息过多。解决的办法就是利用关系数据库规范化理论对关系模式进行相应的分解,使得每一个关系模式表达单一的概念。
二.解释下列术语:函数依赖、平凡函数依赖、完全函数依赖、传递函数依赖、1NF、2NF、3NF、BCNF、4NF。
函数依赖:设有关系模式R(U),X,Y是U的子集, r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y], 则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。
平凡函数依赖:当属性集Y是属性集X的子集时,则必然存在着函数依赖X→Y, 即一组属性函数决定它的所有子集,这种类型的函数依赖称为平凡的函数依赖。
完全函数依赖:设X,Y是关系R的两个属性集合, 如果X→Y,并且对于X的任何一个真子集X′,都有X′!→Y,则称Y对X完全函数依赖。
传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值, 则称R是属于第一范式模式。如果某个数据库模式都是第一范式的,则称该数据库存模式属于第一范式的数据库模式。 第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合和组属性组成。
2NF:第二范式。如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键, 则称是第二范式模式;如果某个数据库模式中每个关系模式都是第二范式的,则称该数据库模式属于第二范式的数据库模式。
3NF:第三范式。如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键, 则称R是第三范式的模式。如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据库模式。
BCNF:BC范式。如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。
4NF:第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡多值依赖X→→Y时, X必是R的超键,那么称R是第四范式的模式。
三.设有关系模式R(A,B,C,D)及R上的函数依赖集F,F={AB->C, C->D, D->A}。
a) 推导出R上所有的非平凡函数依赖。
BC->A,BD->A,AB->D,BC->D,AB->C,BD->C,D->A,C->D
b) 求出R的所有候选码。
AB,BC,BD
四.设有关系模式R(A,B,C,D,E,H)及R上的函数依赖集F,F={A->D, E->D, D->B, BC->D, DC->H}。
a) 找出R的候选码。
ACE->DB->H
b) 将R分解为3NF。
候选码属于U,若存在部分依赖X->Y,分解方式:R(XY)和R(U-Y)
部分依赖:ACE->D,ACE-D>
传递依赖:ACE->B,ACD->D,ACE->H
3NF:(AD),(ED),(DB),(BCD),(DCH),(ACE)
c) 将R分解成BCNF。
BCNF:(AD),(ED),(BC),(DC),(DCH),(ACE)
五.何为多值依赖?何为4NF?试举出几个多值依赖的实例。
设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,并且Z=U-X-Y, 用x,y,z分别代表属性集X,Y,Z的值,只要r是R的关系,r中存在元组(x,y1,z1)和(x,y2,z2)时, 就也存在元组(x,y1,z2)和(x,y2,z1),那么称多值依赖X→→Y在关系模式R中成立。
4NF,第四范式。设R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡多值依赖X→→Y时, X必是R的超键,那么称R是第四范式的模式。
实例:本该两张表处理的模型却只给建了一张表,于是就发生了多值依赖。
六.试述关系模式规范化的过程。
规范化就是对原关系进行投影,消除决定属性不是候选键的任何函数依赖。具体可以分为以下几步:
1.对1NF关系进行投影,消除原关系中非主属性对键的部分函数依赖,将1NF关系转换成若干个2NF关系。
2.对2NF关系进行投影,消除原关系中非主属性对键的传递函数依赖,将2NF关系转换成若干个3NF关系。
3.对3NF关系进行投影,消除原关系中主属性对键的部分函数依赖和传递函数依赖,也就是说使决定因素都包含一个候选键。得到一组BCNF关系。
一般情况下,我们说没有异常弊病的数据库设计是好的数据库设计,一个不好的关系模式也总是可以通过分解转换成好的关系模式的集合。但是在分解时要全面衡量,综合考虑,视实际情况而定。对于那些只要求查询而不要求插入、删除等操作的系统,几种异常现象的存在并不影响数据库的操作。这时便不宜过度分解,否则当要对整体查询时,需要更多的多表连接操作,这有可能得不偿失。在实际应用中,最有价值的是3NF和BCNF,在进行关系模式的设计时,通常分解到3NF就足够了。
展开阅读全文