数据库的几个证明题

数据库的几个证明题

一:证明R∈ 3NF,则R 也∈ 2NF。

证明:采用反证法。设R不是2NF,则有非主属性(Z)对码(X)存在部分函数依赖,即存在Y包含于X,X→Y,Y→Z,也就是Z传递依赖于X。这与3NF范式的定义相矛盾,所以如果R∈ 3NF,则R 也∈ 2NF。

二:证明R ∈ BCNF ,则 R 也∈ 3NF。

证明:采用反证法。设 R 不是 3NF ,则必然存在这样的码 X ,属性组 Y 和非主属性 Z ( Z 不∈ Y ),使得 X→Y ( Y 不 ->X ), Y→Z ,这样 Y→Z 函数依赖的决定因素 Y 不包含码,这与 BCNF 范式的定义相矛盾,所以如果 R ∈ BCNF ,则 R 也是 3NF 。

三:证明R ∈ BCNF,则 R 也∈ 2NF。

证明:采用反证法。假设R不属于2NF,存在X对Y的部分函数依赖,存在X的真子集X’有X’ -> Y,又因为X’是码X的真子集,X’不能包含码,则X’->Y与R属于BCNF矛盾。

四:试由Armostrong公理系统推导出下面三条规则:

(1)合并规则:若X→Z,X→Y,有X→YZ

(2)伪传递规则:由X→Y,WY→Z,有XW→Z

(3)分解规则:X→Y,Z包含于Y,有X→Z

证明:

(1)已知X→Z,由增广律知XY→ZY,又因为X→Y,可得XX→XY→YZ,最后根据传递律得X→YZ。(因为XX等于X)

(2)已知X→Y,由增广律得XW→WY,又因为WY→Z,所以XW→WY→Z,通过传递律可知XW→Z。

(3)已知Z包含于Y,根据自反律得Y→Z,又因为X→Y,所以由传递律可知得X→Z。