外键:通常使用主键作为外键,也可以使用唯一标记行的多个列作为外键;
外键约束:为了维护表数据的完整(正确)性:
ALTER TABLE Student
ADD CONSTRAINT FK_Teacher_Id --添加约束及约束名
FOREIGN KEY (TeacherId) --约束类型:外键,外键列为TeacherId
REFERENCES Teacher(Id) --外键表为Teacher,外键列为Teacher上的Id
外键约束包括:
1,在主表上添加/修改数据时,不能使用从表上不存在的外键值;
2,在从表上更改/删除外键值时,确保该值未被主表外键引用;
主表上的外键可以为null,可以重复;
当两张表建立主/从关系,要注意操作数据的顺序:
1,增:先从表,再主表
2,删:先改主表外键,再删从表
3,改:没有顺序,但主/从表要一致
三大范式:
目的:减少冗余,保证数据库的一致性;
1,关系中的每个属性都不可再分
2,一行数据,所有非主键列都只有对主键完全依赖
3,在第二式基础上消除传递依赖
ER模型:
在关系型数据库上实现的,分为:
实体:由属性组成,通常就是一行数据;
属性:实体的特征,表现成列;
关系:实体与实体之间的关联;
所有关系被抽象为三类:
一对一(一个学生,有且仅有一个详细地址);
一对多(一个学生,有年龄,性别,身高,体重等);
多对多(一个学生有多个老师,一个老师有多个学生);