第二章:关系模型
模型 SQL 文件
关系 表 文件
属性 列 字段
元组 行 记录
表:数据库是一个表或者多个表的集合体
列:每一列表示表的实体类型的特性
每一列有一个限制该列的允许值访问的域
(域domain:是一组约束,包括限制值的数据类型,长度,格式,范围,唯一性,特定值和可控性)
行:一行是一个实体中的唯一实例
每一行都由它的主键(primary key)来唯一标识
行和列是无序的
表具有较好的闭包特性,可确保A表完成任何运算可得到B表
列的改变会影响键、引用完整性、权限等,而行的改变不会影响
SQL标准定义了关系型数据库的结构层次:一个目录包含一个或多个模式(用于拥有的对象或数据的综合),一个模式包括一个或多个对象(基本表、视图、例程(函数、过程))
DBMS:实例(类似与目录)包括数据库,数据库包括模式,模式包括表、识图、权限、存储过程
主键:
行没有名称,需要主键(也称主码)的标识机制
在关系模型中,表被视为无序的行集合
只有一列的键称为简单主键(简单关键字),多列的键称为组合键(组合关键字)
外键:
关系模型使用外键(外码)的进制来使表关联(用于在表间定位)
包含外键的表是引用表或子表,另一个表是被引用表或父表
引用完整性:外键的值受限与父表的键值
自引用:外键引用自己表中的主键
联系:两个表公共列之间确定的关联
有三种:
1-1:一个表的主键同时还引入另一个表的外键
1-N:一个表的主键作为多个表的外键
N-N:联结表(将N-N分为两个独立的1-N)(其组合键是两表主键的组合,每一个组合键的单独列是一个外键)
规范化(normalization)
范式(normal form)
第一范式:
列仅包含原子值
没有重复的组
(原子值:也称标量值,是不能再细分的单一值)
第二范式:第一范式+非部分函数依赖
第三范式:第二范式+没有传递依赖
BCNF范式:更严格的第三范式
第四范式:BCNF+无多值依赖
(多值依赖:当一个表至少包含了列,一列有多行且其值与其他列中的一个行的值匹配时,发生多值依赖)
第五范式:第四范式+无联结依赖
(联结依赖:多值依赖的泛化)