关系模型
关系模型三要素
- 数据结构
- 基本操作
- 基于集合的运算
- 基于逻辑的运算
- 完整性约束
关系数据库:支持关系模型的数据库系统
关系模型相关概念
数据库中关系定义为“表”,表的列表示为“域”,表的行表示为“元组”
域
域 Domain : 一组具有相同数据类型的值的集合
集合中元素的个数称为域的基数(Cardinality)
EG:
\[D_{1}= \{"男", "女"\}
\]
笛卡尔积
- 分量(
Component)- 笛卡尔积元素(\(d_{1},d_{2},...,d_{n}\)) 中的每个值\(d_i\) 叫做一个分量
- 基数(
Cardinal number)
给定一组域 \(D_{1}\), \(D_2\) , \(...\) \(D_n\) , 他们的笛卡尔积为集合:
\[D_{1}\times D_{2}\times D_{3}\times ... \times D_{n} = \{(d_{1},d_{2},...d_{n}) |d_{i} \in D_{i},i=1,...n\}
\]
元组:
- 笛卡尔积的每个元素\((d_1,d_2,...,d_n)\) 称作一个
n-元组
笛卡尔积的表示形式
- 笛卡尔积可表示为一个二维表
- 表中的每一行对应一个元组,每列对应一个域
关系
- 一组域的笛卡尔积的子集(某些具有意义的一些元组)
- 表示为:
\[R(D_{1},D_2,D_3,...D_N)
\]
其中R是关系名, N 是关系的目或度(Degree)
- 笛卡尔积不满足交换律
- 关系满足交换律
- 解决: 关系的列附加一个属性名以取消元组分量的有序性
属性(Attribute)
- 每个属性都有一个名字
- 属性的取值范围, 就是域,是属性所有可能的取值的集合
- 属性值通常要求是原子的
关系模式(Schema)
- 定义了属性后,关系可用\(R(A_1 :D_1 , A_2 :D_2 , …, A_n :D_n )\) 表示
- 可简记为\(R(A1 , A2 , …, An )\),称为关系模式
关系模式与关系
- 同一关系模式下,可有很多的关系
- 关系模式是关系的结构,关系是关系模式某一时刻的数据
- 关系模式是稳定的;而关系是某一时刻的值,可能变化
- 用 \(r(R)\) 表示基于关系模式
R的关系r
码(Key)
-
超码(Super key)
- 若关系中的某一属性组的值能唯一地标识一个元组,则 称该属性组为超码
- 如果一个属性组是超码,那么它的任意超集也是超码
EG:\[\]\[\]
-
候选码(Candidate key)
- 最小超码称为候选码,即它的任意真子集都不是超码
- 在最简单的情况下,候选码只包含一个属性。
- 在最极端的情况下,关系模式的所有属性是这个关系模 式的候选码,称为全码(All-key)
- eg
\(学生(S\#, Name, Age, Class, Mobile)\)
其中属性S#是候选码,属性Mobile也是候选码
\(学生选课(S\#, C\#)\)
属性组\((S\#, C\#)\)是全码
-
主码(Primary key)
- 若一个关系有多个候选码,则选定其中一个为主码 (Primary key)
- 主码的诸属性称为主属性(Prime attribute)。
- 不包含在任何侯选码中的属性称为非码属性(Non-key attribute)
eg属性S#是主属性,属性Mobile也是主属性
属性Name,Age,Class都是非码属性
关系的特性
- 列同质(Homogeneous)
- 每一列中的分量是同一类型的数据,来自同一个域
- 不同的列可出自同一个域
- 其中的每一列称为一个属性
- 不同的属性要给予不同的属性名
- 关系是无序的(Unordered)
- 属性不可再分
- 常用的关系操作
- 查询
- 选择、投影、连接、除、并、交、差
- 数据更新
- 插入、删除、修改
- 查询
- 关系操作的特点
- 集合操作方式,即操作的对象和结果都是集合。
关系模型的完整性约束
空值(NULL)
- 不知道或无意义的值;
实体完整性(Entity Integrity)
- 关系的主码中的属性值不能为空值;
- –意义:关系中的元组对应到现实世界相互之间可区分的个 个体,这些个体是通过主码来唯一标识的;若主码为空, 则出现不可标识的个体,这是不容许的
外码(Foreign Key)
- 设F是关系R的一个或一组属性,但不是关系R的码。如果F 与关系S的主码相对应,则称F是关系R的外码
- 关系R称为参照/引用关系(Referencing Relation)
- 关系S称为被参照/引用关系(Referenced Relation)
如下图左表专业号为外码 , 右表专业号为主码

参照完整性规则
- 若属性(或属性组)F是关系R参照关系S主码的外码,则R中 每个元组在F上的值必须为
NULL(F的每个属性值均为NULL)- 或者等于
S中某个元组的主码值。
模式图(Schema Diagram)

用户定义的完整性(User Defined Integrity)
- 用户针对具体的应用环境定义的完整性约束条件
- 如:学号要求是10位整数,其中前4位为年度,接着2 位表示学院编号,1位专业号,2位专业内编号....
Time waits for no one.

浙公网安备 33010602011771号