超键、主键、候选键
2016-02-16 10:47
4279 查看
1、定义
超键:在关系模式中,能够唯一标识元组的属性集称为超键(super key)。候选键:在关系模式中,能唯一标识元组并且不包含多余属性的属性集称为候选键。值得注意的是,超键与候选键是有区别的,超键可能含有多余的属性,而候选键不能。
主键:在一个关系的若干个候选键中随意的指定一个作为唯一标识元组的关键字,则此关键字称为主键。
三者之间的关系:
2、举例
例如关系模式学生:对于学生,(学号、姓名、性别)可以是一个超键,但是不能够是一个候选键,因为学号就能够唯一标识一个学生。
假定姓名没有重名的话,那么(学号)、(姓名)都可以是候选键,如果我们选定学号为唯一标识元组的键,那么学号就是主键。
3、主属性和非主属性
主属性:所有候选键中的所有属性都称为主属性。非主属性:不包含在任何候选键中的属性称为非主属性。
例如:
4、如何区分超键、候选键和主键
超键中可能包含有无关的属性,我们可以将“超”解释成“多余,赘余“的意思;而主键和候选键中属性都是必要的,缺少任何一属性都不能唯一标识一个元组。主键它也是候选键的一员,和候选键的区别在于主键是被数据库设计者选定作为标识元组的键。
附:外键
如果关系模式R1中的某属性集不是R1的候选键,而是关系模式R2的候选键,则这个属性集对模式R1而言是外键(forergn key),注意不是对于R2而言的。
相关文章推荐
- 滥用图片博客做 C&C 配置
- JavaScript基础知识<三>
- Oracle 启动监听命令
- MongoDB一般安装
- iOS开发中“此证书的签发者无效”的解决方案
- 搜索引擎指令介绍
- 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
- RedHat安装g++
- 数据结构(陈越)-网易云课堂 第一周编程题
- 35 个 Java 代码性能优化总结
- K 近邻算法
- 关于Jsoup解析https网页的问题
- Ubuntu下安装RabbitMQ
- Activity和Fragment的生命周期
- HTML5开发移动web应用——SAP UI5篇(6)
- 数据库链接的增操作举例
- scrum 执行文档
- 新年刚来上班一上传APP就出现Missing iOS Distribution signing indetity错误
- Android中ResultReceiver使用
- linux环境下Python的自动补全