数据库系统概论 ---- 第二章 -- 关系数据库(2.4 关系代数)(上)

简介: 数据库系统概论 ---- 第二章 -- 关系数据库(2.4 关系代数)

2.4 关系代数

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

运算的三大要素:

1.运算对象

2.运算符

3.运算结果

关系代数的运算对象是关系,运算结果也为关系。

关系代数用到的运算符包括两类:

1.集合运算符

2.专门的关系运算符

关系代数的运算按运算符的不同可以分为:

1.传统的集合运算

传统的集合运算将关系看成元组的集合,其运算是从关系的“水平”方向进行,即行的角度来进行。

2.专门的关系运算

专门的关系运算不仅涉及行而且涉及列。使用比较运算符和逻辑运算符来辅助专门的关系运算符进行操作。

2.4.1 传统的集合运算

传统的集合运算是二目运算,包括并、差、交、笛卡尔积4种运算。

设关系R和关系S具有相同的目n,即两个关系都有n个属性,且相应的属性取自同一个域,t是元组变量,t∈R表示t是R的一个元组。

  • 相容性:
    两个关系具有相同的目。
    两个关系相应的属性取自同一个域。

1. 并(基本运算)

关系R与关系S的并记作,R∪S = { t | t∈R ∨ t∈S } ,其结果仍为n目关系,由属于R或属于S的元组组成。

并为行的并,所有行合成一个表,除去重复的

2. 差(基本运算)

关系R与关系S的差记作,R-S ={ t | t∈R ∧ t∉S } ,其结果仍为n目关系,由属于R而不属于S的所有元组组成。

3. 交(非基本运算)

关系R与关系S的交记作,R∩S ={ t | t∈R ∧ t∈S } ,其结果关系仍为n目关系,由 属于R 属于S的元组组成。关系的交可以用差来表示,即 R∩S = R - (R-S)。

4. 笛卡尔积(基本运算)

两个分别为n目和m目的关系R和S的笛卡尔积是一个 (n+m)列 的元组的集合(不具有相容性)。元组的前n列为关系R的一个元组,后m列是关系S的一个元组。

若R有k1个元组,S有k2个元组,则关系R和关系S的笛卡尔积有 k1 * k2个元组 。记作

2.4.2 专门的关系运算

专门的关系运算包括选择、投影、连接、除运算

引入记号:

  1. 关系模式为R(A1,A2,…,An),它的一个关系设为R。t∈R表示 t 是R的一个元组。t[Ai] 则表示元组 t 中相应于属性 Ai 的一个分量。即为元组中一个属性的值

  1. 若A = { Ai1,Ai2,…,Aik },其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则称A为属性列或属性组。t[Ai] = ( t[Ai1],t[Ai2],…,t[Aik] )表示元组 t 在属性列A上诸分量的集合。

即对关系R和关系S的属性进行拼接

设有一个学生-课程的数据库,包括学生关系Student,课程关系Course,选修关系SC,后面的多个例子将会对这三个关系进行运算。

1. 选择(基本运算)

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

其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。

逻辑表达式F的基本形式为:X1 θ Y1 ,其中 θ 表示比较运算符,X1,Y1等是属性名,或为常量,或为简单函数,属性名可以使用属性的序号来代替。在基本选择的条件上可以进一步进行逻辑运算

相关文章
|
18天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
61 10
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
96 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
80 0
|
18天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
91 6
|
1月前
|
存储 SQL NoSQL
关系数据库与非关系数据库:选择适当的数据存储方案
关系数据库与非关系数据库:选择适当的数据存储方案
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据更新
【数据库SQL server】关系数据库标准语言SQL之数据更新
33 0
|
2月前
|
SQL 数据库 数据库管理
【数据库SQL server】关系数据库标准语言SQL的基本知识
【数据库SQL server】关系数据库标准语言SQL的基本知识
60 0
|
11天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
46 2
|
26天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
106 0
|
8天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
16 0