第二章 关系数据库

本文详细介绍了关系数据库的核心概念,包括关系数据结构的形式化定义,如域、笛卡尔积和关系;关系的三种类型,如基本表、查询表和视图表;以及关系模式和关系数据库模式。此外,讨论了关系操作,如选择、投影和连接,强调了集合操作方式的特点。还提到了SQL作为关系数据库的标准语言,以及实体完整性和参照完整性的概念。最后,简要概述了关系代数和关系演算在查询表达能力上的重要性。
摘要由CSDN通过智能技术生成

1 关系数据结构及形式化定义

关系数据库是支持关系模型的数据库系统。

关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。

1.1 关系

关系模型单一的数据结构:关系

1.1.1关系数据结构的形式化定义

(1)域:一组具有相同数据类型的值的集合。

(2)笛卡尔积:域上的集合运算。

笛卡尔积可以表示为一个二维表,每行对应一个元组,每一列的值来自一个域。

一个域允许的不同取值个数称为基数

(3)笛卡尔积的子集称为在域上的关系

R(D1,D2,…Dn)R为关系名,n称为关系的目或度,n目关系必有n个属性。

n=1,称为单元关系或一元关系;n=2,称为二元关系。

关系中的每一个元素是关系中的元组,用t表示。

候选码:指能唯一标识一个元组,而其子集不能的某一属性组

主码:若一个关系中有多个候选码,则选定一个为主码

主属性:候选码的诸属性称为主属性

非主属性:不包含在任何主属性中的属性称为非主属性或非码属性

全码:在最简单的情况下,候选码只包含一个属性;最极端的情况下,关系中的所有属性都是候选码,称为全码

1.1.2关系的三种类型

(1)基本表(基表/基本关系):是实际存在的表,实际存储数据的逻辑表示

(2)查询表:查询结果对应的表

(3)视图表:基本表或其他视图导出的表,虚表,不对应实际存储的数据

1.2 关系模式

关系模式是对关系的描述。关系模式是型,关系是值。关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的;关系是动态的,随时间不断变化的。

R(U,D,DOM,F)

R是关系名

U是组成该关系的属性名集合

D是U中属性所来自的域

DOM是属性向域的映像集合

F是属性间数据依赖关系的集合

1.3 关系数据库

所有关系的集合构成一个关系数据库。

关系数据库的型称为关系数据库模式,是对关系数据库的描述。

关系数据库模式包括若干域的定义,以及在这些域上定义的若干关系模式。

关系数据库的值是这些关系模式在某一时刻对应的关系的集合。

1.4 关系模型的存储结构

在关系数据模型中,实体和实体之间的关系用表来表示,但表是关系数据的逻辑模型。

在关系数据库的物理组织中,有的关系数据库管理系统中,一个表对应一个操作系统文件,将物理数据组织交给操作系统完成;有的关系数据库管理系统从操作系统申请若干个文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。

2 关系操作

2.1基本的关系操作

包括查询操作和插入、删除、修改操作两大部分

查询的基本操作:选择、投影、并、差、笛卡尔积

关系操作的特点:集合操作方式,操作的对象和结果都是集合。称为:一次一集合。

非关系数据模型的数据操作方式称为:一次一记录。

2.2 关系数据语言的分类

一个关系数据语言所能表示的关系代数能够表示的查询,称为具有完备的表达能力,简称关系完备性。关系代数和元组关系演算、域关系演算三种语言在表达能力上是等价的,都具有完备的表达能力,均是抽象的查询语言,能用作评估实际系统中查询语言能力的标准或基础。

具体的关系数据库关系中实现的实际语言具备丰富的功能:关系代数、关系演算、聚集函数、关系赋值、算术运算等。

结构化查询语言(SQL):

  • 介于关系代数和关系演算之间。
  • 具备丰富的查询功能,具有数据定义和数据控制功能,集查询、数据定义语言、数据操纵语言、数据控制语言于一体。
  • 它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。
  • 是一种高度非过程化的语言,用户不必请求数据库管理员为其建立特殊的存取路径,存取路径的选择由关系数据库管理系统的优化机制来完成。

3 关系的完整性

实体完整性、参照完整性是关系模型必须满足的完整性约束条件,是关系的两个不变性,由关系系统自动支持。

用户定义的完整性是应用领域需要遵守的约束条件,体现了具体领域中的语义约束。

3.1 实体完整性规则

意义:保证了关系数据库中每个元组都是唯一的、可区分的

规则说明:

  1. 实体完整性规则是针对基本关系而言的。一个基本表对应现实世界的一个实体集。例如学生关系对应学生的集合。
  2. 现实世界中的实体是可区分的,它们具有某种唯一性标识。例如每个学生都是独立的个体,是不一样的。
  3. 关系模式中以主码作为唯一性标识。
  4. 主属性不能取空值。

3.2 参照完整性

外码 / 参照关系 / 被参照关系

3.3 用户定义的完整性

是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

4 关系代数

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。

任何一种运算都是将一定的运算符作用在一定的运算对象上,得到预期的运算结果。所以运算的三大要素是:运算符、运算对象、运算结果

关系代数的运算对象是关系,运算结果是关系,运算符分为集合运算符关系运算符。逻辑运算符和比较运算符是用来辅助专门的关系运算符进行操作的。

4.1 集合运算

二目运算:并、差、交、笛卡尔积

4.2 关系运算

选择、投影、连接、除运算等。

4.2.1 选择 selection(Shift+F3)

选择,又称限制,是在关系R中选择满足给定条件的诸元组。

记作

( F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。)

逻辑表达式F的基本形式

(θ表示逻辑运算符,X1Y1是属性名,为常量或简单函数,可由序号代替。)


在基本的选择条件上可以进一步进行逻辑运算,即与或非运算。

选择运算实际上是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算。

例1.

例2.

4.2.2 投影 projecction

关系R上的投影是从R中选择出若干属性列组成新的关系,记作

其中A是R中的属性列

投影是从列的角度进行运算

4.2.3 连接 join

连接也称θ连接,它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组,记作

A、B是R、S上列数相等且可比的属性组,θ是比较运算符。

连接运算从R和S的笛卡儿积RxS中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组。  

连接运算:等值连接equijoin、自然连接natural join。

θ为‘=‘的连接运算称为等值连接,它是从R与S的广义笛卡儿积中选取A、B属性值相等的那些元组。

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是同名属性组,并且在结果中去掉重复属性列。

即若R和S中具有相同的属性组B,U为R和S的全体属性集合,记作

一般的连接操作是从列的角度进行运算,但自然连接还要取消重复列,所以是同时从行和列的角度进行运算。

悬浮元组:两个关系R、S做自然连接时,选择两个关系在公共属性上值相等的关系组成新的元组,关系R中某些元组有可能在关系S中不存在公共属性值相等的元组,从而造成这些元组在操作时被舍弃了;同样,S中有些元组也有可能被舍弃。这些被舍弃的元组称为悬浮元组。例如:(e)自然连接中,R中的第四个元组,S中的第五个元组都是被舍弃掉的悬浮元组。

如果把悬浮元组也保存在结果关系中,而在其他关系上填空值(NULL),这种连接称为

外连接(outer join),记作          。

左外连接 (left outer join),记作          。(只保留左边关系R中的悬浮元组)

右外连接 (right outer join),记作          。(只保留右边关系S中的悬浮元组)

4.2.4除运算(division)

设关系R除以关系S的结果为关系T,则T包括所有在R而不在S中的属性及其值,则T的元组和S的元组的所有属性都包含在R中。

4.2.5 复合运算

八种关系代数运算以并、差、笛卡尔积、选择、投影这五种运算为基础,其他三种运算交、连接、除均可以用这五种基本运算来表达。

关系代数中,这些运算经有限次复合后形成的表达式称为关系代数表达式。

5 关系演算

关系演算以数理逻辑中的谓词演算为基础。

按谓词变元的不同,分为元组关系演算和域关系演算。

5.1 元组关系演算关系 ALPHA

谓词变元的基本对象:元组变量。

5.2 域关系演算语言 QBE

谓词变元的基本对象:元组变量的分量,域变量。

小结

关系数据库是目前使用最广泛的数据库系统,在数据库1发展史上,最重要的成就之一是关系模型。

关系数据库和非关系数据库的区别:关系系统只有“表”一种数据结构,非关系数据库不止一种。

本章系统地讲解了关系数据库的概念:关系模型的数据结构、关系操作以及关系的三类完整性;介绍了以关系方式和逻辑方式来表达的关系语言,即关系代数、元组关系演算和域关系演算。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值