求数据库高手,解决有关范式的问题,谢谢!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求数据库高手,解决有关范式的问题,谢谢!!相关的知识,希望对你有一定的参考价值。

15. 设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD=A→B,A→C,(C,D)→E,该关系只满足____1____范式,若要规范化第三范式,则将得到__3____个关系。
16. 设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD=A→B,A→C,(A,D)→E,该关系只满足____1___范式,若要规范化为高一级式,则将得到__2__个关系。
17. 设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD=A→B,A→C,C→D,C→E,该关系满足_2____范式,若要规范化为高一级的范式,则将得到__2__个关系。
18. 若一个关系的任何非主属性都不部分依赖于任何候选码,则称该关系达到____2____范式。
19. 若一个关系的任何非主属性都不部分依赖和传递依赖于任何候选码,则称该关系达到_____3___范式。
20. 若一个关系中只有一个候选码,并且该关系达到了第三范式,则表明它同时也达到了_____BC___范式,该关系中所有属性的__决定因素_____都是候选码。
横线上市答案,完全不知道为什么,得到的关系是哪几个?谢谢~~

参考技术A 判断属于第几范式,首先知道该范式的主码
15,主码,候选键是AD,因为A→B,A→C,(C,D)→E,所以AD+=ABCDE。因为A→B,A→C,所以存在非主属性对任意候选键的依赖,所以不符合第2范式。所以是第一范式。要规范化到第3范式,那么首先就要符合第2范式的要求,要求是不存在非主属性对任意候选键的依赖,那么,可以分为R1(A,B,C)和R2(C,D,E),可是在R1中有A→B,A→C的依赖集的集合,A是R1关键字,这存在非主属性对任意候选键的全部依赖,不是部分依赖,而且每一个决定因素都含有码,所以属于BC范式,因此,需要再分解,分为AB和AC就达到目的了。共有关系AB,AC,CDE 3个
18和19题就要搞清楚第一23BC各个范式的要求了,也是判断最高范式的方法,需要死记。
20题我在15题分析提及到,慢慢领会吧本回答被提问者采纳

C语言,宏定义和结构体指针问题,求高手解答啊,谢谢了!!

#define dps struct S*
typedef struct S* tps;
在上面的基础上求出下面两个表达式的等价表达式:
(1)dps p1,p2;
(2)tps p3,p4;

宏定义完全就是字符串替换,所以:
(1)等价于 struct S *p1, p2;
这里p1是个指针,而p2是个普通变量
(2)等价于 struct S *p3, *p4;
p3和p4都是指针。追问

第一组为什么p1是指针,而p2是普通变量
而第二组p3、p4都是指针啊,能详细解释下吗?
先谢谢了!!

追答

因为#define完全就是简单的字符串替换。
dps p1,p2;
因为dps是个宏,宏就是字符串替换,你把dps替换成struct S*,就变成了:
struct S* p1, p2;所以p1是指针,p2是对象。

而typedef是定义了一种新类型,不是字符串替换。

追问

额,谢谢,大概意思懂了,不过第二句的typedef struct S* tps;
这句里面的S* tps是作为一个整体,来当做结构体名吗?那么tps又代表什么?第二句看不太懂?
能详细介绍下吗??谢谢啦!!

追答

关于typedef,在谭浩强那本C语言里就有详细讲怎么做类型替换的。

简单理解, struct S*是作为一个整体,tps是一种新的类型。
第二种形式,也不必研究得太细。这种形式以后见多了就习惯了。

追问

也就是说第二种形式中typedef struct S* tps中struct S*相当于S型结构体指针的修饰符,后面加上tps来定义一个S型结构体指针,是这个意思吗?

追答

你说的这个意思,我也糊涂了,我也从来没想过这个问题。
这个问题,不用想这么清楚吧。
就像:
typedef int INT;就相当于给int起了另一个名字INT
然后你用INT a,就完全等价于int a;

typedef int * P_INT; 那么用P_INT a的时候,就等价于int *a。
这个别想那么复杂,见得多了,就习惯了。

另外,真正的项目里,是不会用define 定义新类型的。所以实际上这个问题也不用搞那么清楚。

追问

呵呵,谢谢!!有些问题确实深究一下就会越弄越糊涂,不深究的话心里又不舒服!哎!

参考技术A typedef struct S* tps;
这句话定义了用 tps 代表 struct S* 这个指针类型,就像 typedef int NUM;
以后NUM就代表 int,比如 NUM a,b; 相当于 int a,b; a,b,就是 NUM那个类型的变量;
所以p3,p4 为 struct S* 类型的指针变量;而宏定义是#define dps struct S* 是在你写完代码编译时编译器自动将代码中的dps 替换为你定义的 struct S*这几个字符,所以当你执行时dps p1,p2;这句话就相当与 struct S*p1,p2; p1为指针类型,p2 为结构体变量。相当于int *p1,p2;
p1为指针p2为整形变量
希望可以帮到你

以上是关于求数据库高手,解决有关范式的问题,谢谢!!的主要内容,如果未能解决你的问题,请参考以下文章

有关 java 重写equals 方法, 判断两个点是不是相同,求高手详细解答,谢谢!!!!!

关于PHP中的位逻辑运算符的问题,求高手详细解答...

问题在下?希望高手解答

tomcat启动报这个错误怎么解决,求高手,谢谢,万分感谢

WinForm的问题,求高手帮忙~

MYSQL语句,union生成一个表无法update,求高手帮忙,谢谢