第2章关系数据库数学模型 本章导读: 关系数据库是建立在关系模型的基础上,是基于离散数学集合论中的两个 基本理论:集合和关系。关系数据库对数据的操作除了包括集合代数的 连接交关素换是题的灯象着果薏柔算:选择、投影 知识要点: 关系原理 关系代数 关系演算 2.1关系模型概述 22关系代数的原理 23关系代数 2.4关系演算 2.5关系的规范化
第2章 关系数据库数学模型 本章导读: 关系数据库是建立在关系模型的基础上,是基于离散数学集合论中的两个 基本理论:集合和关系。关系数据库对数据的操作除了包括集合代数的 并、交、差等运算之外,更定义了一组专门的关系运算:选择、投影、 连接。关系操作的特点是运算的对象和结果都是关系。 知识要点: ⚫ 关系原理 ⚫ 关系代数 ⚫ 关系演算 2.1 关系模型概述 2.2 关系代数的原理 2.3 关系代数 2.4 关系演算 2.5 关系的规范化
21关系模型概述 关系数据库系统是支持关系模型的数据库系统。 关系数据模型是由关系数据结构、关系操作 和完整性约東三部分组成 2.1.1关系模型的数据结构 2.1.2关系模型的数据操作 2.1.3关系模型的完整性约束
2.1 关系模型概述 关系数据库系统是支持关系模型的数据库系统。 关系数据模型是由关系数据结构、关系操作 和完整性约束三部分组成。 ⚫ 2.1.1 关系模型的数据结构 ⚫ 2.1.2 关系模型的数据操作 ⚫ 2.1.3 关系模型的完整性约束
21.1关系模型的数据结构 关系模型的数据结构非常简单,实体及实体之间的联系 均是单一的数据结构——关系。在用户看来,关系模 型的逻辑结构就是一张没有重复行和重复列的二维表 ( SQL Server系统中,表存储于数据库中)。表由行 和列组成,表中每一行称为元组,每一列称为属性, 关系也可以说是元组的集合,所以其元组又称为行或 记录,属性又称为列或字段。而在支持关系模型的物 理结构中,二维表可以是任何有效的存储结构,如顺 序文件、索引、哈希表、指针等。因此,表是对物理 结构存储数据的一种抽象表示——对很多存储细节的 抽象,如存储记录的位置、记录的顺序、数据值的表 示以及记录访问结构,如索引等,对用户来说都是不 可见的
2.1.1 关系模型的数据结构 关系模型的数据结构非常简单,实体及实体之间的联系 均是单一的数据结构——关系。在用户看来,关系模 型的逻辑结构就是一张没有重复行和重复列的二维表 (SQL Server系统中,表存储于数据库中)。表由行 和列组成,表中每一行称为元组,每一列称为属性, 关系也可以说是元组的集合,所以其元组又称为行或 记录,属性又称为列或字段。而在支持关系模型的物 理结构中,二维表可以是任何有效的存储结构,如顺 序文件、索引、哈希表、指针等。因此,表是对物理 结构存储数据的一种抽象表示——对很多存储细节的 抽象,如存储记录的位置、记录的顺序、数据值的表 示以及记录访问结构,如索引等,对用户来说都是不 可见的
21.2关系模型的数据操作 在关系模型中,操作对象和操作结果都是关系,操作关 系的行为定义为关系语宣,养系语意根据基所反映的 数学含义可分为两类:关系代数语言和关系演算语言 关系代数语言和关系演算语言均是抽象的语资,这些语 言与具体DBMS中实现的实际语言并不完 致,但 和标准,而实际的查询语言除了提供关累代数或关系 演算的功能外,还提供了许多附加的功能。 关系操作语言还提供了一种介于关系代数和关系演算之 间的语 SQ语言( Structure Query Language 结构化查询语言)。SQL语言集数据定义(DL)、 数据操纵(DML)、数据控制(DCL)为一体,是关 系数据库的标准语言。 关系语言是一种高度非过程化的语言,关系的三种语 在表达能力上是完全等价的
2.1.2 关系模型的数据操作 在关系模型中,操作对象和操作结果都是关系,操作关 系的行为定义为关系语言,关系语言根据其所反映的 数学含义可分为两类:关系代数语言和关系演算语言。 关系代数语言和关系演算语言均是抽象的语言,这些语 言与具体DBMS中实现的实际语言并不完全一致,但 它们能用作评估实际数据库系统查询语言能力的基础 和标准,而实际的查询语言除了提供关系代数或关系 演算的功能外,还提供了许多附加的功能。 关系操作语言还提供了一种介于关系代数和关系演算之 间的语言——SQL语言(Structure Query Language, 结构化查询语言)。SQL语言集数据定义(DDL)、 数据操纵(DML)、数据控制(DCL)为一体,是关 系数据库的标准语言。 关系语言是一种高度非过程化的语言,关系的三种语言 在表达能力上是完全等价的
21.3关系模型的完整性约束 为了防止合法用户使用数据时加入不合语义的数据,关系数据模型通过 完整性约束实现数据的正确性和相容性,其完整性约束包括:实体 完整性、参照完整性和用户定义完整性。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件, 被称作是关系的两个不变性,应该由关系数据库系统自动支持。 1.键及其相关概念 键(Key)是由一个或几个属性组成,在实际应用中,有下列几种键(关键字): (1)超键 也称超码,在一个关系中,若一个属性或属性组的值能够唯一标识关系的中的不同元组,则称该属性 或属性组为关系的超键。超键虽然能唯一确定元组,但是它所包含的属性可能有多余的。如学号 和性别组合一起可以唯一确定一个元组,是一个超键,但其中包含的属性“性别”则是多余的。 (2)候选键 也称候选码,如果一个属性或属性组的值能够唯一标识关系中的不同元组而不含有多余的 属性,则称该属性或属性组为关系的候选键( Candidate key)。换句话说,候选码事 是能唯一确定R中某一元组的最小属性集合。与超键的区别是:候选键既能唯一确定 元组,又不包含多余的属性,关系中至少含有一个候选键 (3)主键 简称主键,也称主码,一个关系中,候选关键字可有多个,而被选定作为标识元组唯一性 的那个候选键则称为主关键字( Primary key)。主关键字的各个分量均不能为空
2.1.3 关系模型的完整性约束 为了防止合法用户使用数据时加入不合语义的数据,关系数据模型通过 完整性约束实现数据的正确性和相容性,其完整性约束包括:实体 完整性、参照完整性和用户定义完整性。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件, 被称作是关系的两个不变性,应该由关系数据库系统自动支持。 1.键及其相关概念 键(Key)是由一个或几个属性组成,在实际应用中,有下列几种键(关键字): (1)超键 也称超码,在一个关系中,若一个属性或属性组的值能够唯一标识关系的中的不同元组,则称该属性 或属性组为关系的超键。超键虽然能唯一确定元组,但是它所包含的属性可能有多余的。如学号 和性别组合一起可以唯一确定一个元组,是一个超键,但其中包含的属性“性别”则是多余的。 (2)候选键 也称候选码,如果一个属性或属性组的值能够唯一标识关系中的不同元组而不含有多余的 属性,则称该属性或属性组为关系的候选键(Candidate key)。换句话说,候选码事 是能唯一确定R中某一元组的最小属性集合。与超键的区别是:候选键既能唯一确定 元组,又不包含多余的属性,关系中至少含有一个候选键。 (3)主键 简称主键,也称主码,一个关系中,候选关键字可有多个,而被选定作为标识元组唯一性 的那个候选键则称为主关键字(Primary key)。主关键字的各个分量均不能为空
21.3关系模型的完整性约束 (4)外键 也称外码,设F是基本关系R的一个或一组属性,但不是R的键(主键或候 选键),如果F与基本关系S的主键K相对应,则称F是R的外键 ( Foreign key),并称R为参照关系( Referencing relation),S为被 参照关系( Referenced relation)或目标关系( Target relation)。 可以这么理解:如果一个属性是其所在关系之外的另外一关系的主键,该 属性就是它所在当前关系的外键。外键实质就是外部关系的的主键。 (5)主属性和非主(码)属性 包含在任何一候选码中的属性称为主属性( Primary attribute),不包含在 任何候选码中的属性称为非码属性(Non- key attribute)。 (6)全码 式的所有属性组是这个关系模式的候选键,称为全码(N)。纔 在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关
(4)外键 也称外码,设F是基本关系R的一个或一组属性,但不是R的键(主键或候 选键),如果F与基本关系S的主键K相对应,则称F是R的外键 (Foreign key),并称R为参照关系(Referencing relation),S为被 参照关系(Referenced relation)或目标关系(Target relation)。 可以这么理解:如果一个属性是其所在关系之外的另外一关系的主键,该 属性就是它所在当前关系的外键。外键实质就是外部关系的的主键。 (5)主属性和非主(码)属性 包含在任何一候选码中的属性称为主属性(Primary attribute),不包含在 任何候选码中的属性称为非码属性(Non-key attribute)。 (6)全码 在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关系模 式的所有属性组是这个关系模式的候选键,称为全码(All-key)。 2.1.3 关系模型的完整性约束
213关系模型的完整性约束 2.完整性约束 (1)实体完整性( Entity Integrity) 【规则2.1】实体完整性规则:若属性组(或属性)K是基本关系R的 主码(主键),则所有元组K的取值唯一,并且K中属性不能全部或 部分取空值 对于实体完整性规则说明如下: ①实体完整性规则是针对基本关系而言的。一个基本表通常对应现实 世界的一个实体集。例如课程关系对应于所有课程实体的集合。 ②现实世界中实体是可区分的,即它们具有某种唯一性标识。相应地, 关系模型中以主码作为其唯一性标识。 ③主码中属性即主属性不能取空值,所谓空值就是“不知道”或“无 意义”的值。如果主属性取空值,就说明存在不可标识的实体,即 存在不可区分的实体,这与客观世界中实体要求唯一标识相矛盾, 因此这个规则不是人们强加的,而是现实世界客观的要求
2.1.3 关系模型的完整性约束 2.完整性约束 (1)实体完整性(Entity Integrity) 【规则2.1】 实体完整性规则:若属性组(或属性)K是基本关系R的 主码(主键),则所有元组K的取值唯一,并且K中属性不能全部或 部分取空值。 对于实体完整性规则说明如下: ①实体完整性规则是针对基本关系而言的。一个基本表通常对应现实 世界的一个实体集。例如课程关系对应于所有课程实体的集合。 ②现实世界中实体是可区分的,即它们具有某种唯一性标识。相应地, 关系模型中以主码作为其唯一性标识。 ③主码中属性即主属性不能取空值,所谓空值就是“不知道”或“无 意义”的值。如果主属性取空值,就说明存在不可标识的实体,即 存在不可区分的实体,这与客观世界中实体要求唯一标识相矛盾, 因此这个规则不是人们强加的,而是现实世界客观的要求
213关系模型的完整性约束 (2)参照完整性( Referential integrity) 现实世界中的实体之间往往存在某种联系的,在关系模型中实体及 实体之间的联系都是用关系来描述的,这样就自然存在着关系与 关系间的参照。 参照完整性规则就是定义外键与主键之间的引用规则。 【规则2.2】参照完整性规则:若属性(或属性组)F是基本关系R 的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能 是相同的关系),则对于R中每个元组在F上的值必须取空值(F 的每个属性值均为空值)或者等于S中某个元组的主码值。 外键并不一定与相应的主键同名,但在实际应用中,为了便于识别, 当外键与相应的主键属于不同关系时,往往取相同名字。当关系 R和S是相同的关系时,称之为自身参照
2.1.3 关系模型的完整性约束 (2)参照完整性(Referential integrity) 现实世界中的实体之间往往存在某种联系的,在关系模型中实体及 实体之间的联系都是用关系来描述的,这样就自然存在着关系与 关系间的参照。 参照完整性规则就是定义外键与主键之间的引用规则。 【规则2.2】 参照完整性规则:若属性(或属性组)F是基本关系R 的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能 是相同的关系),则对于R中每个元组在F上的值必须取空值(F 的每个属性值均为空值)或者等于S中某个元组的主码值。 外键并不一定与相应的主键同名,但在实际应用中,为了便于识别, 当外键与相应的主键属于不同关系时,往往取相同名字。当关系 R和S是相同的关系时,称之为自身参照
213关系模型的完整性约束 (3)用户定义的完整性(User- defined integrity) 用户定义的完整性是根据应用环境的要求和实际的需要,对关系中 的数据所定义的约束条件,它反映的是某一具体应用所涉及的 数据必须满足的语义要求。关系模型只提供定义并检验这类完 整性的机制,以便于系统用统一的方法来满足用户的需求,而 关系模型自身并不去定义任何这类完整性规则 用户定义完整性包括字段有效性(属性值域的约束)和记录有效性 两类,其中对属性值域的约束也称域完整性规则( Domain Integrity Rule),是指对关系中除主键和外键之外的其它属性 取值范围的约束定义,包括数据类型、精度、取值范围、是否 空值等 例如选课关系中成绩的取值范围是0~100,学生关系中性别的取值 范围为“男”或“女
2.1.3 关系模型的完整性约束 (3)用户定义的完整性(User-defined integrity) 用户定义的完整性是根据应用环境的要求和实际的需要,对关系中 的数据所定义的约束条件,它反映的是某一具体应用所涉及的 数据必须满足的语义要求。关系模型只提供定义并检验这类完 整性的机制,以便于系统用统一的方法来满足用户的需求,而 关系模型自身并不去定义任何这类完整性规则。 用户定义完整性包括字段有效性(属性值域的约束)和记录有效性 两类,其中对属性值域的约束也称域完整性规则(Domain Integrity Rule),是指对关系中除主键和外键之外的其它属性 取值范围的约束定义,包括数据类型、精度、取值范围、是否 空值等。 例如选课关系中成绩的取值范围是0~100,学生关系中性别的取值 范围为“男”或“女
22关系代数的原理 从关系的逻辑结构特征来看,直观上可以将关系 看作一个若干元组的集合,关系运算也可以转 换成集合的运算。事实上,关系模型的理论基 础是集合代数,下面就从集合论角度给出关系 数据结构的形式化定义 ●22.1关系的数学定义 2.2.2关系模式 ●223关系数据库
2.2 关系代数的原理 从关系的逻辑结构特征来看,直观上可以将关系 看作一个若干元组的集合,关系运算也可以转 换成集合的运算。事实上,关系模型的理论基 础是集合代数,下面就从集合论角度给出关系 数据结构的形式化定义。 ⚫ 2.2.1关系的数学定义 ⚫ 2.2.2 关系模式 ⚫ 2.2.3 关系数据库