数据库中主键与外键的理解
来源:互联网 发布:中国软件外包印度差距 编辑:程序博客网 时间:2024/05/16 15:48
数据库中主键与外键的理解
在关系型数据库中,数据结构有逻辑结构和物理结构。物理结构指存储在物理介质上的数据文件的结构。逻辑结构即关系,也就是一张张的二维表。表中的一列即为一个字段(属性),代表的是实体的一个属性。表中的一行即为一条记录。
如:学生表中(学号,姓名,年龄,性别),在该表中有4个字段,代表学生实体的4个属性。表中的一行数据(001,张三,男,20),即一条记录,表示的是张三这个学生的信息。
在表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(主码),而主键包含的属性(字段)叫做主属性,其他的则为非主属性。
在这里说明一下,既然是“字段集”,那么主键就可能是一个字段或者多个字段。例如上面的学生表,学号就是能唯一标识一个学生的字段,学号字段就是该表的主键。由于学生的姓名重名是不可避免的,所以一般不用姓名来作为唯一标识一个学生的主键。
再举个例子说明一下多个字段作为主键。例如学生选课表(学号,课程号,成绩),在学生选课表中,主关键字是(学号,课程号)。原因显而易见,一个学生可以选择多门课程,一个课程可以被多个学生选择。如果单单是用学号或者课程号,都不足以唯一标识一条记录。
对于外键的理解,在这里我也举个例子。假设有两个表,学生表(学号,姓名,年龄,性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。学生表中主键是学号,专业信息表中主键是专业编号。学生表中的非主属性专业编号恰好是专业信息表中的主键。我们就称这个专业编号是学生表的外键。像这样,一个表的非主属性是另一个表的主属性,该非主属性就是外键。
数据库的约束有三种,实体完整性约束、参照完整性约束和用户自定义约束。
2.参照完整性约束,即外键的约束,某一外键的值必须在它引用的主键字段中存在。如,学生表中专业编号属性的值,必须都存于专业信息表中的专业编号属性中。想一想也就明白了,一个学生(大学生)怎么可能属于一个不存在的专业。
3.用户自定义完整性约束,指的是一些用户自己设定的约束,例如字段是否可以为空,字段值的取值范围(如:人的性别只能取男、女)。
0 0
- 数据库中主键与外键的理解
- 数据库中主键与外键的理解
- 快速理解MySQL中主键与外键的实例教程
- 结构化数据库中主键与外键的作用
- 数据库的主键与外键
- 数据库的主键与外键
- 数据库的主键与外键
- 数据库的主键与外键
- 数据库的主键与外键
- 数据库中主键与索引的区别
- 数据库中主键与外间的区别
- 数据库中主键与索引的区别
- 数据库中的主键和外键理解
- 【数据库】数据库中主键和外键的设计原则
- 关于数据库主键和外键的作用与区别
- 数据库中的主键与外键的关系,通俗易懂
- 数据库 主键与索引键的区别
- 数据库中主键和外键的设计原则
- 事件的取消
- MongoDB的一些特性
- 数据结构之二叉树(概念)
- 关于线程通信的通俗解释
- AndroidAnnotations前奏(部署)
- 数据库中主键与外键的理解
- UVA - 1664 Conquer a New Region
- php flush类输出缓冲剖析
- FZU 2150 Fire Game (暴力BFS)
- 22-UICollectionView
- Swift开发教程--如何去掉UITableViewController黑色线条
- #27 Remove Element
- 程序设计与分析之分治法(1)--超长整数计算
- 数据结构之二叉树(遍历、建立、深度)