关系数据库理论基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2018/11/29 周口师范学院计算机科学系 1
周口师范学院计算机科学系02级教育专业
本书第2、3、4、5、6章将集中讨论 关系数据库的有关问题。其中,第2章 介绍关系模型的基本概念,即关系模 型的数据结构、关系操作和关系的完 整性;第3、4章介绍关系数据库的标 准语言SQL;第5章介绍关系系统查询优 化;第6章关系规范化。这是关系数据 库的理论基础,也是关系数据库系统 逻辑设计的工具。
2018/11/29
周口师范学院计算机科学系02级教育专业
关系语言是一种高度非过程化的语言, 用户不必请求DBA为其建立特殊的存取 路径,存取路径的选择由DBMS的优化 机制来完成,此外,用户不必求助于循环结构就可 以完成数据操作。 另外还有一种介于关系代数和关系演算之间的语 言SQL (Structured Query Language)。SQL不仅具有 丰富的查询功能,而且具有数据定义和数据控制功 能,是集查询、 DDL、DML和DCL于一体的关系 数据语言。它充分体现了关系数据语言的特点和优 点,是关系数据库的标准语言。
2018/11/29 周口师范学院计算机科学系 7
周口师范学院计算机科学系02级教育专业
因此,关系数据语言可以分为三类: 关系代数语言 元组关系演算语言 关系数据语言 关系演算语言 域关系演算语言 具有关系代数和关系演算双重特点的语言 这些关系数据语言的共同特点是,语言具有完备的表 达能力,是非过程化的集合操作语言,功能强,能够嵌入 高级语言中使用。
2018/11/29
周口师范学院计算机科学系
2
周口师范学院计算机科学系02级教育专业
2.1 关系模型概述
关系数据库系统是支持关系模型的数据 库系统。 关系模型有关系数据结构、关系操作集 合和关系完整性约束三部分组成。
2018/11/29
周口师范学院计算机科学系
3
周口师范学院计算机科学系02级教育专业
2018/11/29 周口师范学院计算机科学系 5
周口师范学院计算机科学系02级教育专业
早期的关系操作能力通常用代数方式或逻 辑方式来表达,分别称为关系代数和关系演算。 关系代数是用对关系的运算来表达查询的方式。 关系演算是用谓词来表达查询要求的方式。关 系演算又可按谓词变元的基本对象是元组变量还是域变 量分为元组关系演算和域关系演算。关系代数、元组关 系演算和域关系演算三种语言在表达能力上是完全等价 的。 关系代数、元组关系演算和域关系演算均是抽象的 查询语言,这些抽象的语言与具体的DBMS中实现的实 际语言并不完全一样。单它们能用作评估实际系统中查 询语言能力的标准或基础。实际的查询语言除了提供关 系代数或关系演算的功能外,还提供了许多附加功能, 例如集函数、关系赋值、算术运算等。 6 周口师范学院计算机科学系
2018/11/29
周口师范学院计算机科学系
9
周口师范学院计算机科学系02级教育专业
2.2 关系数据模型的数据结构
2.2.1 关系的数学定义 1.域(Domain) 域:是一组具有相同数据类型的值集合。例如: {自然数},{男,女},{0,1}等都可以是域。 基数:域中数据的个数称为域的基数。 域被命名后用如下方法表示: D1 = {白亚春,陈韬,王雪莲},表示姓名的集合, 基数是3; D2 = {计算机系,电子系}
2018/11/29 周口师范学院计算机科学系 8
周口师范学院计算机科学系02级教育专业
三、关系的三类完整性约束
关系模型允许定义三类完整性约束:实体 完整性、参照完整性和用户定义的完整性。 其中实体完整性和参照完整性是关系模型必须满足的 完整性约束条件,应该由关系系统自动支持。用户定 义的完整性是应用领域需要遵循的约束条件,体现了 具体领域中的语义约束。 下面将分别介绍关系模型的三个方面。
周口师范学院计算机科学系02级教育专业
第2章 关系数据库理论基础
关系数据库应用数学方法来处理数据库中的 数据。最早将这类方法用于数据处理的是1962年 CODASYL发表的“信息代数”,之后有1968年David Child在7090机上实现的集合论数据结构,但系统地、严 格地提出关系模型的是美国IBM公司的E.F.Codd. 30多年来,关系数据库系统的研究取得了辉煌的成就。 关系方法从实验室走向了社会,涌现出许多性能良好的 商品化关系数据库管理系统(RDBMS),如著名的 DB2,Oracle,Ingres,Sybase,Informix等。数据库的应用领域 迅速扩大。
一、单一的数据结构——关系 关系模型的数据结构非常单一。在关 系模型中,现实世界的实体以及实体 之间的各种联系均用关系来表示。在ห้องสมุดไป่ตู้用户看来,关系模型中数据的逻辑结 构是一张二维表。
2018/11/29
周口师范学院计算机科学系
4
周口师范学院计算机科学系02级教育专业
二、关系操作 关系模型给出了关系操作的能力,但不对 RDBMS语言给出具体的语法要求。 关系模型中常用的关系操作包括:选择(Select)、 投影(Project)、连接(Join)、除(Divide)、并(Union)、交 (Intersection)、差(Difference)等查询(Query)操作和增加 (Insert)、删除(Delete)、修改(Update)等更新操作两大部 分。查询的表达能力是其中最主要的部分。 关系操作的特点是集合操作方式,即操作的对象和操作 的结果都是集合。这种操作方式也称为一次一集合(setat-a-time)的方式。相应地,非关系数据模型的数据操 作方式则为一次一记录(record-at-a-time)的方式。
2018/11/29 周口师范学院计算机科学系 10
周口师范学院计算机科学系02级教育专业
2.笛卡尔积(Cartesian Product) 给定一组域D1,D2,…,Di,…,Dn(可以 有相同的域),则笛卡尔积定义为: D1×D2×… ×Di×… × Dn = {(d1,d2,…,di,…,dn) ∣di∈Di,i = 1,2,…,n} D1× D2 = { (陈韬,计算机系),(陈韬,电子系), (王雪莲,计算机系),(王雪莲,电子系),(白亚 春,计算机系),(白亚春,电子系)} 其中每个(d1,d2,…,di,…,dn)叫做元组,元组中的 每一个值di叫做分量,di必须是Di中的一个值。 显然,笛卡尔积的基数就是构成该积所有域的基数累乘积, 若Di(i = 1,2,…,n)为有限集合,其基数为mi(i = 1, 2,…,n),则D1 × D2 × … × Di × … × Dn笛卡尔积的 基数M为:
周口师范学院计算机科学系02级教育专业
本书第2、3、4、5、6章将集中讨论 关系数据库的有关问题。其中,第2章 介绍关系模型的基本概念,即关系模 型的数据结构、关系操作和关系的完 整性;第3、4章介绍关系数据库的标 准语言SQL;第5章介绍关系系统查询优 化;第6章关系规范化。这是关系数据 库的理论基础,也是关系数据库系统 逻辑设计的工具。
2018/11/29
周口师范学院计算机科学系02级教育专业
关系语言是一种高度非过程化的语言, 用户不必请求DBA为其建立特殊的存取 路径,存取路径的选择由DBMS的优化 机制来完成,此外,用户不必求助于循环结构就可 以完成数据操作。 另外还有一种介于关系代数和关系演算之间的语 言SQL (Structured Query Language)。SQL不仅具有 丰富的查询功能,而且具有数据定义和数据控制功 能,是集查询、 DDL、DML和DCL于一体的关系 数据语言。它充分体现了关系数据语言的特点和优 点,是关系数据库的标准语言。
2018/11/29 周口师范学院计算机科学系 7
周口师范学院计算机科学系02级教育专业
因此,关系数据语言可以分为三类: 关系代数语言 元组关系演算语言 关系数据语言 关系演算语言 域关系演算语言 具有关系代数和关系演算双重特点的语言 这些关系数据语言的共同特点是,语言具有完备的表 达能力,是非过程化的集合操作语言,功能强,能够嵌入 高级语言中使用。
2018/11/29
周口师范学院计算机科学系
2
周口师范学院计算机科学系02级教育专业
2.1 关系模型概述
关系数据库系统是支持关系模型的数据 库系统。 关系模型有关系数据结构、关系操作集 合和关系完整性约束三部分组成。
2018/11/29
周口师范学院计算机科学系
3
周口师范学院计算机科学系02级教育专业
2018/11/29 周口师范学院计算机科学系 5
周口师范学院计算机科学系02级教育专业
早期的关系操作能力通常用代数方式或逻 辑方式来表达,分别称为关系代数和关系演算。 关系代数是用对关系的运算来表达查询的方式。 关系演算是用谓词来表达查询要求的方式。关 系演算又可按谓词变元的基本对象是元组变量还是域变 量分为元组关系演算和域关系演算。关系代数、元组关 系演算和域关系演算三种语言在表达能力上是完全等价 的。 关系代数、元组关系演算和域关系演算均是抽象的 查询语言,这些抽象的语言与具体的DBMS中实现的实 际语言并不完全一样。单它们能用作评估实际系统中查 询语言能力的标准或基础。实际的查询语言除了提供关 系代数或关系演算的功能外,还提供了许多附加功能, 例如集函数、关系赋值、算术运算等。 6 周口师范学院计算机科学系
2018/11/29
周口师范学院计算机科学系
9
周口师范学院计算机科学系02级教育专业
2.2 关系数据模型的数据结构
2.2.1 关系的数学定义 1.域(Domain) 域:是一组具有相同数据类型的值集合。例如: {自然数},{男,女},{0,1}等都可以是域。 基数:域中数据的个数称为域的基数。 域被命名后用如下方法表示: D1 = {白亚春,陈韬,王雪莲},表示姓名的集合, 基数是3; D2 = {计算机系,电子系}
2018/11/29 周口师范学院计算机科学系 8
周口师范学院计算机科学系02级教育专业
三、关系的三类完整性约束
关系模型允许定义三类完整性约束:实体 完整性、参照完整性和用户定义的完整性。 其中实体完整性和参照完整性是关系模型必须满足的 完整性约束条件,应该由关系系统自动支持。用户定 义的完整性是应用领域需要遵循的约束条件,体现了 具体领域中的语义约束。 下面将分别介绍关系模型的三个方面。
周口师范学院计算机科学系02级教育专业
第2章 关系数据库理论基础
关系数据库应用数学方法来处理数据库中的 数据。最早将这类方法用于数据处理的是1962年 CODASYL发表的“信息代数”,之后有1968年David Child在7090机上实现的集合论数据结构,但系统地、严 格地提出关系模型的是美国IBM公司的E.F.Codd. 30多年来,关系数据库系统的研究取得了辉煌的成就。 关系方法从实验室走向了社会,涌现出许多性能良好的 商品化关系数据库管理系统(RDBMS),如著名的 DB2,Oracle,Ingres,Sybase,Informix等。数据库的应用领域 迅速扩大。
一、单一的数据结构——关系 关系模型的数据结构非常单一。在关 系模型中,现实世界的实体以及实体 之间的各种联系均用关系来表示。在ห้องสมุดไป่ตู้用户看来,关系模型中数据的逻辑结 构是一张二维表。
2018/11/29
周口师范学院计算机科学系
4
周口师范学院计算机科学系02级教育专业
二、关系操作 关系模型给出了关系操作的能力,但不对 RDBMS语言给出具体的语法要求。 关系模型中常用的关系操作包括:选择(Select)、 投影(Project)、连接(Join)、除(Divide)、并(Union)、交 (Intersection)、差(Difference)等查询(Query)操作和增加 (Insert)、删除(Delete)、修改(Update)等更新操作两大部 分。查询的表达能力是其中最主要的部分。 关系操作的特点是集合操作方式,即操作的对象和操作 的结果都是集合。这种操作方式也称为一次一集合(setat-a-time)的方式。相应地,非关系数据模型的数据操 作方式则为一次一记录(record-at-a-time)的方式。
2018/11/29 周口师范学院计算机科学系 10
周口师范学院计算机科学系02级教育专业
2.笛卡尔积(Cartesian Product) 给定一组域D1,D2,…,Di,…,Dn(可以 有相同的域),则笛卡尔积定义为: D1×D2×… ×Di×… × Dn = {(d1,d2,…,di,…,dn) ∣di∈Di,i = 1,2,…,n} D1× D2 = { (陈韬,计算机系),(陈韬,电子系), (王雪莲,计算机系),(王雪莲,电子系),(白亚 春,计算机系),(白亚春,电子系)} 其中每个(d1,d2,…,di,…,dn)叫做元组,元组中的 每一个值di叫做分量,di必须是Di中的一个值。 显然,笛卡尔积的基数就是构成该积所有域的基数累乘积, 若Di(i = 1,2,…,n)为有限集合,其基数为mi(i = 1, 2,…,n),则D1 × D2 × … × Di × … × Dn笛卡尔积的 基数M为: