关系模型
基本概念
关系模型的提出
IBM的研究员E.F.Codd博士
关系模型以关系代数理论为数学基础,将数据操作抽象为关系处理,其关系表结构简单,便于理解和访问。关系模型在当今几乎所有商业数据库中得到广泛应用。
实体与关系
实体(entity)——是指包含有数据特征的事物对象在概念模型世界中的抽象名称。
关系(relation)——是指具有关系特征、用于存放实体数据的二维表。关系也常被称为关系表。
在关系模型中,使用“关系”来存储“实体”中的数据。
关系特征
表中每行存储实体的一个实例数据
表中每列包含实体的一项属性数据
表中单元格只能存储单个值
不允许有重复的行
不允许有重复的列
列顺序可任意
行顺序可任意
关系的数学定义

关系的基本概念
键(复合、候选、主键、代理)
在关系中,可以用来唯一标识元组的属性列,称为键(Key),其它属性列都为非键列。
复合键(Compound Key)——是指关系中用来唯一标识元组的多列作为键。
候选键(Candidate Key)——关系中可能有多个列均适合作为键,将其中每个都称为候选键。
主键(Primary key)是关系表中最有代表性的一个候选键,每个关系表中只能定义一个主键。
主键作用:
唯一标识关系表的每行(元组)
与关联表的外键建立联系,实现关系表之间连接
数据库文件使用主键值来组织关系表的数据存储
数据库使用主键索引快速检索数据
代理键——采用DBMS自动生成的数字序列作为关系表的主键,可替代复合主键,以便获得更高性能的数据访问操作处理。
关系模式语句表述

关系模型原理
关系模型(Relation Model)——是一种基于二维表结构存储数据实体及实体间联系的数据模型。
数据结构(二维表)
数据操作
集合运算操作包括选择(select)、投影(project)、连接(join)、交(intersection)、并(union)、差(difference)等。
专门针对元组的关系操作包括数据行插入(Insert)、 修改(Update)、删除(Delete)操作。
数据关系约束
在关系模型中,数据关系约束是指关系表中实体数据完整性、关联表之间数据一致性等要求,一般由业务需求来确定。
在关系模型中,可定义关系表的数据约束如下:
属性列取值类型
属性列取值范围
属性列取值是否唯一
属性列是否允许空值
关联表的参照完整性约束
数据操作
关系模型数据操作采用基于关系代数的数据操作,包括传统的集合运算操作和专门的关系运算操作。
1.关系并运算∪的结果集是由属于R或属于S的所有元组组成,前提是关系R与关系S需有相同属性组成。
2.关系差运算-的结果集是由属于R,而不属于S的所有元组组成,前提是关系R与关系S需有相同属性组成。
3.关系交运算∩的结果集是由既属于R又属于S的所有元组组成,前提是关系R与关系S需有相同属性组成。
4.笛卡儿积运算的结果集是由所有属于R的元组与所有属于S的元组进行组合而成。
完整性约束
关系模型完整性约束
关系模型完整性是指在关系数据模型中对关系实施的完整性约束。
完整性约束作用:
消除关系表的元组重复存储
保持关联表的数据一致性
实现业务数据规则
实体完整性约束(主键应非空且唯一)
实体完整性是指在关系表中实施的主键取值约束,以保证关系表中的每个元组可以被唯一标识。
1.每个关系表中的主键属性列都不允许为空值(NULL),否则就不可能标识实体。
2.现实世界中的实体是靠主键来标识,主键取值应该唯一,并区分关系表中的每个元组。
参照完整性约束(主键与外键一致)
参照完整性是指关系表之间需要遵守的数据约束,以保证关系之间关联列的数据一致性。
若关系R中的外键F与关系S中的主键K相关联,则R中外键F值必须与S中主键K值一致。
外键(Foreign key)——在关联的两个关系中,它们具有一个或多个相同属性。若关联列在第一个关系中作为主键,则在第二个关系中作为外键。
用户自定义完整性约束
用户自定义完整性是指用户根据具体业务对数据处理规则要求所定义的数据约束。
1.定义列的数据类型与取值范围
2.定义列的缺省值
3.定义列是否允许取空值
4.定义列取值唯一性
5.定义列之间的数据依赖性