第一题
Y(X1,X2,X3,X4)
(X1,X2)→X3
X2→X4
Q1;求出侯选码
Q2;属于第几范式
Q1;
候选码:(X1,X2);非主属性:X3,X4。
在求范式的时候一般我们都要先求候选码,我个人对求候选码的操作是从头开始比较,也就是说从一个候选码扩展到有n个(我说的是长度不是数量),比如说我们可以这样
- X1不是,因为求不出其他的
- X2不是,只能求出X4;
- …
- (X1,X2) 是候选码,因为根据条件(X1,X2)可以求出X3,X2可以求出X4
- (X1,X3)不是,因为无法求出其他两个
- …
这里需要强调的是如果我们找出了长度为1 的有候选码,比如X1是,那么我们就不用再去找长度为2的候选码了。因为如果长度为1的有符合的那么长度为2的肯定也有符合的,属于超码。
Q2:
因为(X1,X2)→X4, X2→X4,存在非主属性X4对候选码(X1,X2)的部分函数依赖;
所以不属于2NF。
结论:候选码(X1,X2),属于第一范式。
值得一说的是我们都知道范式之间是一个嵌套的关系也就是说我们比较最好是层层递进(大佬除外hh)。
还有的就是我们说第二范式就是需要非主属性要对主属性是完全依赖。比如说我们取一种极端情况也就是没有非主属性那么肯定就是满足的。
再有就是我们看这个题虽然我们在分析的时候直接找到(x1,x2)的组合是候选码,但是我们在分析的时候看到我们在分析部分依赖的时候需要把内部的拆开来分析(就是部分函数的比较定义)
第二题
R(A,B,C,D)
F={AB→D,AC→BD,B→C}(相当于(a,b)→d…)
Q1;求侯选码
Q2;最高属于第几范式
Q1;
候选码:(A,B),(A,C)
非主属性:D
- A 不满足,因为单个A什么也求不出来
- 同理对B,C,D分析都不符合。
- 第一维分析完以后我们对第二维进行分析
- a,b符合,因为a,b组合可以求出d,然后b单独可以求出c
- …
- 二维分析完毕就可以结束了,因为不需要分析超码。
需要说的是我们看到只有D是非主属性,这里我们就是要说一下,假如(a,c)是主属性那么 a和c也算主属性。这和主属性的定义有关(候选码)。
Q2;
属于3NF
- 首先我们分析第二范式,因为任意拿出a,b,c都无法求出d来所以肯定满足第二范式。
- 我们比较一下第三范式,也就是如果存在候选码可以推到非主属性码就不符合,中间的转换可以是候选码也可以是非候选码。 从这里我们可以看到无论是(a,b)还是(b,c) 都不存在一个到d 的转换过程。所以符合第三范式。
- 分析BCNF,前面我们已经知道他属于第三范式,然后我们再来看决定条件,我们发现有一个b->c的条件,但是问题是我们的候选码只有(a,b),所以b不在候选码中。所以不属于BCNF。
看到③我们可以和前面的非主属性的选择来做一个对比,对于属性的选择来说,只要出现了就是,也就是说集合的子集我们也算主属性,但是对于BCNF的比较就不能,必须是完整的个体
第三题
R(X,Y,Z,W)
F={Y←→W,XY→Z}
Q1:求侯选码
Q2:最高属于第几范式
Q1:
候选码:(x,y),(w,x)。
非主属性码;Z
额照着前面的步骤来分析就行,一维的情况肯定不满足就不再写了,我写一个二维满足的情况和一个二维不满足的情况。
- 对于(x,y)我们可以看到y→w,xy→z,那么四个元素就集齐了,肯定满足
- 对于(x,z) 没有y,对于我们来说什么也求不出。
需要注意的是我们看到有个(x,w)的候选码,也就是说我们通过x,w求得的条件是可以用来推其他问题的。
Q2:
3NF
- 对于第二范式我们可以看到任意取出一个元素都无法确定Z,所以满足第二范式。
- 对于第三范式我们可以直接看出对于两个候选码我们没有存在传递关系
- 对于BCNF我们看到Y←→W,其中Y,W 都不属于候选码,所以不符合
博客中大小写可能有时候不统一还请见谅
hhh,写完才发现。
另外还有markdown - Unicode - LaTeX大家可以学习数据依赖 使用的符号 markdown - Unicode - LaTeX
我先把博客给粘出来,后续再继续学习吧,下课了~。