数据库原理-第二讲
2 4 4 4 4 4 4
c d d d c c c
b a a b a a b
2.3.2 专门的关系运算
专门的关系运算包括选择、投影、连接、除等, 此类运算不仅涉及行而且涉及列。
⒈选择(Selection):选择又称为限制 (Restriction)。它是在关系R中选择满足给 定条件的诸元组,记作: σF(R) = {t|t∈R ∧ F(t)='真'} 其中F表示选择条件,它是一个逻辑表达式。 选择运算实际上是从关系R中选取使逻辑表达 式F为真的元组。
候选码的诸属性称为主属性(Prime attribute)
不包含在任何侯选码中的属性称为非码属性 (Non-Key Attribute)
2.2.1 关系
关系(Relation)——笛卡尔集的子集
关系可以有三种类型:基本关系(通常又称
为基本表或基表)、查询表和视图表。
基本表是实际存R-(R-S)
交运算
R A B a 2 a 4 S A B a a b 4 6 4 R∩S
C c
d
C
d d c
A a b
B 4 4
C d c
b
4
c
2.3.1 传统的集合运算
⒋ 广义笛卡尔积(Extended Cartesian Product):两个分别为n目和m目的关系R和S 的广义笛卡尔积是一个(n+m)列的元组的集合。 元组的前n列是关系R的一个元组,后m列是关 系S的一个元组。若R有k1个元组,S有k2个元 组,则关系R和关系S的广义笛卡尔积有k1×k2 个元组。记作:
2.2.2 关系模式
关系模式通常可以简记为:R(A1, A2, …, An)。 其中R为关系名,A1, A2, …, An为属性名。而 域名及属性向域的映象常常直接说明为属性的 类型、长度。
关系数据库中的关系与关系模式
关系模式是型,是对关系的描述,关系模式是静态
的、稳定的
关系是值,是动态的、随时间不断变化的
象集
R
A a a b B 2 2 4 C c d c
(a,2)在R中
的象集
C c
d
a
6
d
2.3.1 传统的集合运算
传统的集合运算是二目运算,包括并、交、差、 广义笛卡尔积四种运算。将关系看成元组的集 合,其运算是从关系的“水平”方向即行的角 度来进行。
⒈并(Union):设关系R和关系S具有相同的目 n(即两个关系都有n个属性),且相应的属性 取自同一个域,则关系R与关系S的并由属于R或 属于S的元组组成。其结果关系仍为n目关系。 记作: R∪S={t|t∈R∨t∈S}
2.3.2 专门的关系运算
逻辑表达式 F 由逻辑运算符连接各算术表达式组 成。算术表达式的基本形式为:
X1θY1 其中θ表示比较运算符,它可以是>,>=,<,<=, =或#。X1,Y1等是属性名,或为常量,或为简单 函数,属性名也可以用它的序号来代替。(但不 建议使用)
选择运算举例
设有一个学生-课程关系数据库, 包括学生关系Student、课程关 系Course和选修关系SC。下面 的许多例子将对这三个关系进 行运算。 Student
本章的重点内容之一
2.1 关系模型概述
介于关系代数和关系演算之间的语言SQL (Structured Query Language)
是集查询、DDL、DML和DCL于一体的关系数据 语言
是关系数据库的标准语言。充分体现了关系数 据语言的特点和优点
本章及本课程的重点内容之一
2.2 关系数据结构及形式化定义
关系操作
关系模型中常用的关系操作包括查询和更新两大 部分,其中:
查询操作包括:
选择(Select) 投影(Project) 连接(Join) 除(Divide) 并(Union) 交(Intersection) 差(Difference)等; 更新操作包括: 增加(Insert)、删除(Delete)、修改(Update)
数据库原理
主讲教师:任一支
数据库系统的三级模式结构
应用A 应用B 应用C 应用D
外模式1
外模式2
外模式/模式映象 模式 模式/内模式映象 内模式 数据库
外模式3
物理独立性和逻辑独立性 传统数据库课程的两个理论支撑
关系模型 并发与事务
现代数据库关键技术
海量数据计算
数据挖掘(人工智能)
这里R表示关系的名字,n是关系的目或度
(Degree)。
关系中的元素称为元组
由于域可以相同,为了加以区分,必须对每列
起一个名字,称为属性
2.2.1 关系
关系(Relation)——笛卡尔集的子集
候选码(Candidate Key):关系中能唯一地
标识一个元组的某一属性或属性组
若一个关系有多个候选码,则选定其中一个 为主码(Primary key)
5)行的次序可以任意交换
6)每一个分量都必须是不可分的数据项。
2.2.2 关系模式
定义2.4 关系的描述称为关系模式(Relation Schema)。一个关系模式应当是一个五元组。它 可以形式化地表示为:R(U, D, DOM, F)。其中R 为关系名,U为组成该关系的属性名集合,D为属 性组U中属性所来自的域,DOM为属性向域的映象 集合,F为属性间数据的依赖关系集合。
查询的表达能力是其中最主要的部分。
2.1 关系模型概述
关系操作的特点:
一次一集合(set-at-a-time)的操作方式。 操作的对象和结果都是集合,相应地,非关系 数据模型的数据操作方式则为一次一记录 (record-at-a-time )的方式。
存取路径对用户透明。用户只需指出“干 什么”或“找什么”,而不必说明“怎么干” 或“怎么找”,具有高度的非过程化。
关系是一张二维表,是元组的集合
关系模式指出了这个元组集合的结构
2.3 关系代数
关系代数是一种抽象的查询语言,用对关系的 运算来表达查询,作为研究关系数据语言的数 学工具。 关系代数的运算对象是关系,运算结果亦为关 系。关系代数用到的运算符包括四类:集合运 算符、专门的关系运算符、算术比较符和逻辑 运算符 比较运算符和逻辑运算符是用来辅助专门的关 系运算符进行操作的,所以关系代数的运算按 运算符的不同主要分为传统的集合运算和专门 的关系运算两类。
基数 域中所包含的值的个数(用m表示)
例:D2={男,女},D2是域名; “男,女” 是域值;域的基数m=2
2.2.1 关系
笛卡尔积(Cartesian Product)
定义2.2 给定一组域D1,D2…,Dn ,这些域中可 以有相同的。 D1,D2…,Dn的笛卡尔积为:
D1×D2×…×Dn=
差运算
R A B a 2 a b 4 4 C c d c S A B a 4 C d
R-S A B C a 2 c
a
b
6
4
d
c
S-R A B C a 6 d
2.3.1 传统的集合运算
交(Intersection):设关系R和关系S具 有相同的目n,且相应的属性取自同一个域, 则关系R与关系S的交由既属于R又属于S的 元组组成。其结果关系仍为n目关系。记作: R∩S={t|t∈R∧t∈S}
并运算
R A B a 2 a b 4 4 C c d c S A B a 4 C d
R∪S A B C a
a b a
2
4 4 6
c
d c d
a
b
6
4
d
c
2.3.1 传统的集合运算
差(Difference) :设关系R和关系S具 有相同的目n,且相应的属性取自同一个 域,则关系R与关系S的差由属于R而不属 于S的所有元组组成。其结果关系仍为n 目关系。记作: R-S={t|t∈R∧t∈S}
在关系模型中,无论是实体还是实体之间的联 系均由单一的结构类型——关系(表)来表示。
关系模型建立在集合代数的基础上
本节内容: 2.2.1 关系 2.2.2 关系模式 2.2.3 关系数据库
2.2.1 关系
域(Domain)
定义2.1 域是一组具有相同数据类型的值
的集合 在关系中用域表示属性的取值范围 例:长度小于20的字符串的集合;{0,1}; 整数等
据的逻辑表示。
视图表是由基本表或其他视图表导出的表,
是虚表
查询表是查询结果对应的表。
2.2.1 关系
关系(Relation)——笛卡尔集的子集
关系的性质
1)每一列中的分量来自同一个域 2)不同的列可出自同一个域,称其中的每
一列为一个属性,不同的属性要给予不同 的属性名
3)列的次序可以任意交换 4)任意两个元组不能完全相同
第二章 关系数据库
2.1 关系模型概述
2.2 2.3
关系数据结构及形式化定义 关系代数
2.4
2.5
关系的完整性
关系演算(自学)
2.1 关系模型概述
关系模型由三部分组成
关系数据结构—关系数据库中的数据对用 户来说是表(关系),并且只是表
关系完整性约束—关系数据库中的表满足 一定的完整性约束
关系代数运算符表
运算符 ∪ ∩ X 含义 运算符 > >= < <= = # ∧ ∨ 含义 大于 大于等于 小于 小于等于 等于 不等于 与 或 并 差 比 较 交 广义迪卡尔 运算符 积 选择 投影 连接 除
集合 运算符