数据库 完全函数依赖 部分函数依赖 传递函数依赖

专题 专栏收录该内容
9 篇文章 0 订阅
 

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。

函数依赖 
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。 
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。 
X称为这个函数依赖的决定属性集(Determinant)。 
Y=f(x) 
说明: 
1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 
2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 
例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立 
3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。 
例: Student(Sno, Sname, Ssex, Sage, Sdept) 
假设不允许重名,则有: 
Sno → Ssex, Sno → Sage , Sno → Sdept, 
Sno ←→ Sname, Sname → Ssex, Sname → Sage 
Sname → Sdept 
但Ssex -\→Sage 
若X→Y,并且Y→X, 则记为X←→Y。 
若Y不函数依赖于X, 则记为X-\→Y。 
在关系模式R(U)中,对于U的子集X和Y, 
如果X→Y,但Y 不为 X的子集,则称X→Y是非平凡的函数依赖 
若X→Y,但Y 为 X的子集, 则称X→Y是平凡的函数依赖 
例:在关系SC(Sno, Cno, Grade)中, 
非平凡函数依赖: (Sno, Cno) → Grade 
平凡函数依赖: (Sno, Cno) → Sno 
(Sno, Cno) → Cno 
部分函数依赖: 若x->y 并且,存在X的真子集x1,使得x1->y,则 y部分依赖于 x。 
完全函数依赖:若x->y并且,对于x的任何一个真子集x1,都不存在x1->y 则称y完全依赖于x。 


逻辑蕴含 举个例子: 
y=f(x) 
省=f(城市) 
只要给出一个具体的城市值,就会有唯一一个省值和它对应,如"武汉市"在"湖北省".这里的"城市"是自变量x,"省"是因变量或函数值y.把x函数决定y,或y函数依赖于x表示为:x→y 
设有关系模型R(A1,A2,...An),X和Y均为{A1,A2,..An}的子集,r是R的任一具体关系,t1,t2是r中的任意两个元祖.如果由t1[X]=t2[X]可以推导出t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y.

你所问的码是说主码与候选码么?

主码 
我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。当然,其它字段可以辅助我们在执行这些操作时消除共享冲突,不过就不在这里讨论了。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。所以数据库在设计时,主键起到了很重要的作用。 
常见的数据库主键选取方式有: 
自动增长字段 
手动增长字段 
UniqueIdentifier 
“COMB”类型
候选码:除了主码,全码里面剩下的码!

  • 1
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值