1、概念
1)、主键
数据库表中对储存数据对象予以唯一和完整标识的数据列或属性组合,一个数据列只能有一个主键,且主键的值不能缺失,即不能为空值(NULL).
2)、超键
在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以作为一个超键,多个属性也可以作为一个超键。超键包含候选键和主键。
3)、候选键
是最小的超键,即没有冗余的超键。
4)、外键
在一个表中存在的另一个表的主键称此表的外键。
id | 班级 | 班级中的学号 | 姓名 | 性别 | 年龄 |
---|---|---|---|---|---|
001 | 1901 | 01 | 小明 | 男 | 22 |
002 | 1901 | 02 | 小红 | 女 | 21 |
003 | 1902 | 01 | 小李 | 男 | 24 |
004 | 1903 | 01 | 小王 | 男 | 23 |
005 | 1904 | 01 | 小明 | 男 | 22 |
id | student_id | score |
---|---|---|
001 | 001 | 100 |
002 | 004 | 99 |
003 | 005 | 95 |
候选键:
{id}、{班级、班级中的学号}
主键:
{id}或者{班级、班级中的学号}其中之一
超键:
{id、姓名}、{id、姓名、性别}、{班级、班级中的学号、姓名}、{id、姓名、性别、年龄}
注意:这些键并不一定是某一列,可以是多列
外键
student_id是表table_student_info的主键,是表table_student_score的外键。
2、数据库范式
1)、第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表中的每一列都是不可分割的基本数项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成