超键、候选键和主键

转自http://blog.csdn.net/cjr15233661143/article/details/12970323

1.定义

  •       超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
  •       候选键(candidate key):不含有多余属性的超键称为候选键
  •       主键(primary key):用户选作元组标识的一个候选键程序主键

 

2.关系图

                                                       

3.举例

人(身份证 姓名 性别 年龄)

假设没有重名现象

解析:

  •        身份证唯一,所以是一个超键
  •        姓名唯一,所以是一个超键
  •      (姓名,性别)唯一,所以是一个超键
  •      (姓名,年龄)唯一,所以是一个超键
  •      (姓名,性别,年龄)唯一,所以是一个超键

--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的

  •  身份证唯一,而且没有多余属性,所以是一个候选键
  • 姓名唯一,而且没有多余属性,所以是一个候选键
  • 虽然(姓名,性别)唯一,但是单独姓名一个属性就能确定这个人是谁,所以性别这个属性就是多余属性,所以(姓名,性别)不是候选键
  • 姓名,年龄),(姓名,性别,年龄)同上,也不是候选键

--这里可以看出,候选键是没有多余属性的超键

 

  •     考虑输入查询方便性,可以选择 身份证 为主键
  •     也可以 考虑习惯选择 姓名 为主键

--主键是选中的一个候选键


多值依赖的定义:

      设R(U)是一个属性集合U上的一个关系模式,X, Y, 和Z是U的子集,并且Z=U-X-Y,多值依赖X->->Y成立当且仅当对R的任一个关系r,r在(X,Z)上的每个值对应一Y的值,这组值仅仅决定于X值而与Z值无关。

      若X->->Y,而Z=空集,则称X->->Y为平凡的多值依赖。否则,称X->->Y为非平凡的多值依赖。

可以看出,如果把上面的一改为一,那么多值依赖就变成了函数依赖。当然一个值组成的组也是组,所以说,函数依赖是多值依赖的特殊情况。

如下表:

                     课程C                                   教师T                              参考书B

                    数学                                      邓军                                数学分析

                    数学                                      邓军                                高等代数

                    数学                                      邓军                                微分方程

表中,U = C+T+B,(C,T)确定一组B,但是这组B其实与T无关,仅由C确定,所以(C,T)->->B。又因为T不是空集,所以(C,T)->->B为非平凡多值依赖。

要想消除多只依赖,可以分解为:(C,T), (C,B)及

表1:

                  课程C                  教师T

                  数学                     邓军

表2:

                课程C                    参考书B

                数学                      数学分析

                数学                      高等代数

                数学                      微分方程

对于R中的每个非平凡多值依赖X->->Y(Y不属于X),X都含有候选码,则R属于4NF。

分析:对于每一个非平凡多值依赖X->->Y,X若含有候选码,也就是X->Y,所以4NF所允许的非平凡多值依赖是函数依赖。

"

.

百度知道

"

函数依赖是唯一确定的关系,例如在一个表  授课(课程号,课程名,课程学分,教师号,教师姓名,参考书号,参考书名)。当然这个表的主键是(课程号,教师号,参考书号)

课程名和课程学分函数依赖课程号,也就是说课程号唯一确定名字和学分;

同理,教师姓名函数依赖教师号;参考书名函数依赖参考书号。

但是,教师号可能多值依赖课程号,因为给定一个(课程号,参考书号)的组合,可能有对应多个教师号。这是因为多个老师可以使用相同或不同的参考书上同一门课。

简单点讲,函数就是唯一确定的关系;多值依赖却不能唯一确定。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值