数据库重难点(无损连接和范式)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模式分解的几个重要事实:

若只要求分解具有“无损连接性”,一定可以达到4NF;

若要求分解要“保持函数依赖”,可以达到3NF,但不一定能达到BCNF;

若要求分解既要“保持函数依赖”,又要具有“无损连接性”,可以达到3NF,但不一定能达到BCNF;

试分析下列分解是否具有无损联接和保持函数依赖的特点:

设R(ABC),F1={A→B} 在R上成立,ρ1={AB,AC}。

首先,检查是否具有无损联接特点:

第1种解法--算法4.2:

A B C AB a1 a2 b13 AC a1 b22 a3 A B C a1 a2 b13 a1 a2 a3

(1) 构造表(2)根据A→B进行处理

结果第二行全是a行,因此分解是无损联接分解。

第2种解法:(定理4.8)

R1(AB)∩R2(AC)=A

R2- R1=B

∵A→B,∴该分解是无损联接分解。

然后,检查分解是否保持函数依赖

πR1(F1)={A→B,以及按自反率推出的一些函数依赖}

πR2(F1)={按自反率推出的一些函数依赖}

F1被πR1(F1)所蕴涵,∴所以该分解保持函数依赖。

范式

当查询涉及到针对“否定”特征含义的查询要求,如“不”、“没有”等字眼,一般要用差运算表示。

针对“全部”特征含义的查询要求,如“全部”、“至少”、“包含”等字眼,一般要用除法运算。?

1NF :R(A,B,C,D)依赖集(ab>c a->d) 因为d部分依赖于ab 所以属于1NF 不属于2NF 2NF :R(A,B,C,D)依赖集(ab>c c—>d) 因为d传递依赖与AB 但是不存在部分依赖所以属于2N 不属3NF

3NF : R(A,B,C,D)依赖集(ab>c ab—>d,d->a) 因为即不存在部分依赖也不存在传递依赖所以属于3NF 但是因为d->a因为d是非主属性所以不属于BCNF

1、第一范式(1NF):一个关系模式R的所有属性都是不可分的基本数据项。

2、第二范式(2NF):关系模式R属于第一范式,且每个非主属性都完全函数依赖于键码。

3、第三范式(3NF):关系模式R属于第一范式,且每个非主属性都不传递递依赖于键码。

4、BC范式(BCNF):关系模式R属于第一范式,且每个属性都不传递依赖于键码。

**码的快速求解:

1、【L类、N类至少有一种】

根据定理,L、N类必为侯选码之一,如果L+包含全部R,则L为唯一侯选。R类不在任何侯选码中。L+N类且(L+N)+包含所有R,则L+N为唯一侯选。

2、【只有LR类】

将F右部单一化后,取左边出现频率最多的属性X,求X+,若包含R中所有属

性,则X为侯选码。找能决定X的属性Y,求Y+。单个完后找两两结合,依次类推。(侯选码不参与结合)?

eg:

如设有关系模式R(A,B,C,D,E),其上的函数依赖集F={A→BC,CD→E,B→D,E→A},求出R的所有候选码。?根据上述方法,具体求解步骤如下:把F右部单一化后F={?A→B,A→C,CD→E,B→D,E→A?};根据判断,A作为确定因素在左部出现的频率最高,求A+=ABCDE,又有E→A,求E+=ABCDE而CD→E,求(CD)+=ABCDE,可以得出属性A,E,CD为候选码;除去A,E,CD 外,根据一般求解法求两个属性组合的闭包,可以得到(BC)+=ABCDE,最后可以算出R的候选码为:A,E,CD,BC。

相关文档
最新文档