数据库重难点(无损连接和范式)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。