黑马程序员 数据库 函数依赖

原创 2013年12月04日 14:02:27
---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------



候选码就是唯一决定关系模式中某一记录的属性组;主码就是从候选码中挑选一个作为主码,主码的简称为码


1.数据依赖
在计算机科学中,数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态。其中最重要的是函数依赖和多值依赖。


2.函数依赖
设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X。(函数依赖简单点说就是:某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。函数依赖就是确定一(主键:主键=主码!=主属性)对一(非主键属性)的关系)


3.平凡函数依赖
当关系中属性集合Y是属性集合X的子集时(Y不包含于X),存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。


4.非平凡函数依赖
当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X→Y,则称这种函数依赖为非平凡函数依赖。


5.完全函数依赖
设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。


6.部分函数依赖
设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。


7.传递函数依赖
设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。


8.多值依赖
设R(U)是属性集U上的一个关系模式。X、Y、Z是U的子集,并且Z=U-X-Y。关系模式R中多值依赖X→→Y成立,当且仅当对于R的任一关系r,给定的一对(x,z)值,有一组y的值,这组值仅仅决定于x值而与z值无关。




范式


1NF
原始定义:关系模式的所有属性为不可在分的原子类型时,则关系为1NF


2NF
相当于在1NF的前提下消除部分函数依赖
原始定义:若关系模式R∈1NF,并且每个非主属性都完全函数依赖于R的码,则R∈2NF


3NF
相当于1NF的前提下消除部分函数依赖的同时,消除传递函数依赖
原始定义:如果关系模式R<U,F>不存在候选码X,属性组Y,以及非主属性Z(Z不包含于Y),使得X→Y,(X不函数依赖于Y),Y→Z成立,则R∈3NF


BCNF
相当于1NF的前提下消除部分函数依赖,消除传递函数依赖,消除主属性对码的部分依赖
设关系模式
原始定义:关系模式R<U,F>∈1NF,若X→Y且Y不包含于X时,X必含有码,则R<U,F>∈BCNF


4NF
相当于BCNF的前提下消除多值依赖


原始定义:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y不包含于X)X都含有码,则R∈4NF


解决办法:分解此关系模式为多个表,然后再确定关系




5NF(请百度)


个人总结:最好每个为要操作的对象创建一个基本表,然后他们之间只建立两两之间的多对多表,对于多于两个实体之间的关系,用两两实体间的关系建立间接关系。



---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员--数据库函数

------------------------------------Windows Phone 7手机开发、.Net培训、期待与您交流!------------------------------...

黑马程序员 数据库基础 基本函数

---------------------- android培训、java培训、期待与您交流! ---------------------- ①数字函数 Abs();--求绝对值 Abs(-10...

黑马程序员—数据库函数

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------数据库函数: 1)数字函数: ABS...

黑马程序员—数据库开发1

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 数据库概述: 用自定义文件...

【黑马程序员】连接数据库时的注入漏洞攻击

在使用ADO.Net连接数据库时,我们有时会要求从界面输入登录名和密码,然后把登录名和密码传入数据库进行验证,以确定用户是否可以登录。如下面就是一个简单的登录程序。 static void Main(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)