《数据库设计与实践》综合习题及答案(2)
1. 如果对函数依赖XY的定义加以扩充,X和Y可以为空属性集,用ø表示空集,那么X ø, øY, øø 的含义是什么?
答: Xø的含义是:属性集X无论为ø还是非空属性集,它都能函数地决定空属性集。
øY的含义是:空属性集如果能函数地决定Y属性集,那么Y一定为空属性集。
øø的含义是:空属性集可以函数地决定空属性集。
2. 关系模式规范化的目的是什么?
答:在关系数据库设计中,要考虑怎样合理地设计关系模式, 如设计多少个关系模式、一个关系模式要由哪些属性组成等, 这些问题需要利用关系规范化理论去解决。通常, 关系模式必须满足第一范式, 但有些关系模式还存在插入异常、删除异常、修改异常以及数据冗余等各种异常现象。为了解决这些问题,就必须使关系模式满足更强的约束条件,即规范化为更高范式, 以改善数据的完整性、一致性和存储效率。
3.下面的说法正确么?为什么?
(1) 任何一个二目关系都是3NF的。
(2) 任何一个二目关系都是BCNF的。
(3) 当且仅当函数依赖AB在R上成立, R(ABC)等于其投影R1(AB)和R2(AC)的连接。
(4) 若AB, BC,则AC成立。
(5) 若AB, AC,则ABC成立。
(6) 若BCA, 则BA,CA成立。
答: (1)正确。因为在任何一个二目关系中, 属性只有两个,不会产生非主属性对候选键的部分函数依赖和传递函数依赖, 所以是3NF的。
(2)正确。因为在任何一个二目关系中,属性只有两个, 不会产生主属性或非主属性对候选键的部分函数依赖和传递函数依赖, 所以是BCNF的。
(3)不正确。因为当AC时, R(ABC)也等于R1(AB)和R2(AC)的连接。
(4)正确。(根据Armstrong推理规则的传递律)
(5)正确。(根据Armstrong推理规则的合并规则)
(6)不正确。Armstrong推理规则的分解规则是对函数依赖右部的属性进行分解。
4.设有关系模式R(U,F),其中 U={BSPQID},F={SD,IB,ISQ,BP)
(1)IS是关系模式R的一个候选键么?为什么?
(2)IDQ是关系模式R的一个候选键么?为什么?
(3)关系模式R属于第几范式?为什么?
(4)分解关系模式R至3NF模式集。
答:(1)已知IB,BP,根据传递规则,有IP; 由扩展律得ISPS, 由分解规则得ISP;
已知IB, 由扩展律得ISBS, 由分解规则得ISB,
已知SD, 由扩展律得ISID, 由分解规则得ISD,
已知ISQ,且由上面得到的ISP,ISB,ISD,
根据合并规则,有ISBPDQ。因为IS能够决定关系模式中的所有其他属性,所以,IS是关系模式R的一个候选键。
(2) IDQ不是候选键,因为根据公理不能推出它能决定关系中的所有属性。
(3) 因为候选键为IS,所以主属性是IS,而BPQD为非主属性 ,由于F中存在非主属性对候选键的部分依赖。例如,IB,SD,I和S都是IS的子集,所以R属于1NF。
(4) 根据3NF的分解算法,对关系模式R中的函数依赖集F进行“最小化”处理,处理后的函数依赖集为Fmin,Fmin={SD,IB,ISQ,BP} 。
根据3NF的分解算法,上述四个函数依赖分别对应于以下四个关系模式:
R1=SD R2=IB R3=ISQ R4=BP
关系模式R1中有函数依赖SD,候选键是S,不存在非主属性对候选键的部分函数依赖和传递函数依赖,R1属于3NF。
关系模式R2中存在函数依赖IB,候选键是I,不存在非主属性对候选键的部分函数依赖和传递函数依赖,R2属于3NF。
关系模式R3中存在函数依赖ISQ,候选键是IS,不存在非主属性对候选键的部分函数依赖和传递函数依赖,R3属于3NF。
关系模式R4中存在函数依赖BP,候选键是B,不存在非主属性对候选键的部分函数依赖和传递函数依赖,R4属于3NF。
所以,R分解为{R1,R2,R3,R4}是3NF的模式集。
5. 试分析下列分解是否具有无损分解和保持函数依赖的特点:
(1) 设R(ABC),Fl={AB,BC }在R上成立,1={AC,BC}
(2) 设R(ABC),F2={AC,AB }在R上成立,2={AC,AB}
(3) 设R(ABC),F3={AC,BC }在R上成立,3={AC,BC}
解:(1) R1=AC , R2=BC
R1R2=C ,R1-R2=A , R2-R1=B
R1R2A, 或 R1 R2B, 不满足F1中的AB,BC,所以1不是无损联接分解。
下面考察1分解的保持依赖性:
Fl在R1上的投影为空;
F1在R2上的投影为BC;
F1中的函数依赖AB由于分解被丢失,所以分解1不具有保持依赖的特点。
(2) R1=AC,R2=AB
R1R2,ACAB=A
R1-R2=AC-AB=C
所以Rl R2R1-R2 满足F1中AC, 2的分解是具有无损联接性的。
下面考察2分解的保持依赖性:
F2在Rl上的投影为:AC
F2在R2上的投影为:AB
F2中的函数依赖在分解中全部保持,所以分解2具有保持依赖的特点。
(3) R1=AC,R2=BC
R1R2 = ACBC = C
R1-R2 = AC-BC=A
R2-R1= BC-AC = B
具有依赖保持的特点。所以R1R2R1-R2和RlR2R1-R2在F3中都不成立,所以3的分解是不具有无损联接性的。
下面考察3分解的保持依赖性:
F3在R1上的投影为:AC
F3在R2上的投影为:BC
F3中的函数依赖在分解中全部保持,所以分解3具有保持依赖的特点。
第二部分
1.设计数据库之前,为什么要先进行需求分析?
答:数据库设计的最终目标是要设计出一组能够满足用户需求的所有数据表,以便存放用户所需要的各种数据。为了达到这个目的,设计数据库之前必须先进行需求分析。需求分析的主要目标是确定用户的需求,收集用来设计数据库的数据集,为数据库设计阶段的工作打下基础。
2.用户的业务需求包括哪些内容?
答:业务需求包括业务的流程、组成业务的数据、对数据的处理以及一些规则。
3.数据流图的作用是什么?为什么需要一套分层的数据流图?
答:数据流图从“数据”和“数据经受的加工”两个相互补充的方面来表达一个数据处理系统。
从数据的角度描述它们作为输入进入系统,经受某个加工,再经受某个加工……,或者合并,或者分解,或者存贮,最后成为输出离开系统的整个过程。
对数据处理系统来说,从数据角度观察问题一般能够较好地抓住问题的本质。
采用一套分层数据流图描述系统,可以将一个复杂的系统通过自顶向下、逐步细化的方式使我们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这有助于理解问题。
上一篇:文学英语赏析-1. Figures of Speech 修辞格
下一篇:暂无