这个就要自己去想了
比如学生的唯一标识为学号,那么他有哪些属性呢,姓名、性别、年级编号、
年级的唯一标识是年级编号
那么年级有哪些属性呢,
年级名称
你不可能说年级名称属于学生,这个是看你自己是怎么想的
主要有4种范式,1NF,2NF,3NF,BCNF,按从左至右的顺序一种比一种要求更严格。
要符合某一种范式必须也满足它前边的所有范式。
一般项目的数据库设计达到3NF就可以了,而且可根据具体情况适当增加冗余,不必教条地遵守所谓规范。
其实你不必限定为数据库中的函数依赖,函数依赖只是数学上的函数关系的一种特殊应用。
函数:X → Y;表示:当 X 取值 “确定” 时,Y 的取值也是 “确定” 的;
蕴含:P => Q;表示:当 P 取值 “为真” 时,Q 的取值也是 “为真” 的;
(1)函数所讨论的是 “任意变量”;蕴含只讨论 “命题变量”;
(2)函数和蕴含都表达了两个变量之间的一种关系:前一个变量的取值(至少是某些取值) “决定” 了后一个变量的取值;但是:
(3)函数中的 “决定”,是对前一个变量(自变量)在一定论域(定义域)内的所有取值均适用的;
而在蕴含中,只有在前一个变量(条件)为真时,另一个变量(结论)才有确定的取值——真。仅此一条,就足以说明:蕴含不是函数。
(4)利用函数自变量和因变量的取值,可以构造出命题变量,然后就可以建立蕴含关系了:对任意函数:Y = F(X);其任意的自变量 x0,可以构造两个命题:
P:X = x0;
Q:Y = F(x0);
显然:P => Q;
即对任意函数的任意一个自变量及其函数值,都可以构造一个蕴含关系。这也算是函数与蕴含之间的一种联系吧!
候选键是a或b。
a->c,
a->b,
a->bc,
bc->d,
a->d
所以a是key
b->a,所以b也是key
--------------------------------------------
是第一范式,因为满足每一个分量不可再分;
是第二范式,因为非主属性c
、d完全依赖于key;
是第三范式,因为非主属性c
、d对主属性a、b不存在传递函数依赖;
是bc范式,因为每一个决定因素必含有a或b;
是第四范式,因为不存在非平凡且非函数依赖的多值依赖。
(两个多值依赖,都含有主属性)
因此,最高是第四范式。
强烈不同意楼上@micro0369的答案,此题答案应是BCNF。
具体原因如下:
《数据库系统概论》(王珊萨师煊版)P181页,明确提出,X→Y(X推出Y),且Y推不出X,Y→Z,此时才叫传递依赖。若X→Y且Y→X(即X←→Y),Y→Z,此时X→Z为直接依赖关系。
先明确:本题的候选码为A,(B,C),所以判定ABC为主属性,D为非主属性。
A→B,A→C,可写成A→(B,C)的形式,反过来(B,C)→A,A→D,此时(B,C)→D为直接依赖关系此处大部分考生均容易出错,非主属性D对码(A或者(B,C))只存在完全函数依赖关系,所以至少是3NF。
继续,3NF的基础上,主属性对码只有完全函数依赖关系,即不存在(消除)主属性对码的传递和部分依赖,所以进一步确定是BCNF。
此题为大连理工大学软件学院的考研题原题,答案由“大连理工大学软件学院在读研究生考研辅导团”给出,如有异议欢迎留言讨论。
以上就是关于SQL数据库如何判断同一个表中的属性之间的依赖关系 全部的内容,包括:SQL数据库如何判断同一个表中的属性之间的依赖关系 、数据库原理中,指出下列关系模式中属性间的依赖关系,分析其所属的范式~~在线等~~、数据库 逻辑蕴含跟函数依赖有什么关系呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)