数据库手把手解题——1.判断无损连接

前言:这篇博客主要是直接教大家怎么做出来是不是无损分解,直接来看一道题~

首先,我们会看到一道这样的题:

下面我们开始解决第二问:

第一步:画出一个大表,每一行都是第二问给出的,列就是所有的属性;

第二步:在上面开始判断,每一行有什么属性,就在表里用a标注;没有的用b

第三步:最关键的一步,通过题目给的条件开始判断:

先看A→D,先看你做的表格里有没有AD同时是a的,有的话,注意啊,看其他行的A是不是a的形式,,这时候有两种情况:

如果是!那么这一行的D列也就可以变成a!

如果不是!这一行的D列全变成b14,就是和第一行的D列靠齐。

现在很明显是第二种情况,那么AE,AC行的D列全变为b14:

(可以把a理解为比b高一级的等级,如果能推出来a就推出来a,,不能的话就推出来最上面一行的b)

再看E→D:还是先判断E和D列有没有同时为a的,发现没有,那么就看E列为a的,把这一行对应的D列改成b14:

再看D→B,我们发现第一行的b14对应a2,那么下面几行的b14也可以!

看BC→D,第四行的BCD全都为a!!所以其他行有BC都为a的,也能推出来D为a!也就是第三行和第五行

DC→A,最后一行的DCA都是a!那么第三行和第四行的也能推!

第四步:这个过程结束后,咱们发现第三行已经全部为a啦!只要有一行能全部为a,那么这就是无损分解!!如果结束过后一行都没有满,那就不是无损分解。

猜你喜欢

转载自blog.csdn.net/dyyay521/article/details/111874768