数据库原理-第二讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这里R表示关系的名字,n是关系的目或度
(Degree)。
关系中的元素称为元组
由于域可以相同,为了加以区分,必须对每列
起一个名字,称为属性
2.2.1 关系
关系(Relation)——笛卡尔集的子集
候选码(Candidate Key):关系中能唯一地
标识一个元组的某一属性或属性组
若一个关系有多个候选码,则选定其中一个 为主码(Primary key)
本章的重点内容之一
2.1 关系模型概述
介于关系代数和关系演算之间的语言SQL (Structured Query Language)
是集查询、DDL、DML和DCL于一体的关系数据 语言
是关系数据库的标准语言。充分体现了关系数 据语言的特点和优点
本章及本课程的重点内容之一
2.2 关系数据结构及形式化定义
RXS={tr⌒ts |tr∈R∧ts∈S}
广义笛卡尔积
R S
R ×S
E F 4 d 6 d 4 4 6 4 4 6 4 c d d c d d c
A B C D a 2 c a a 2 c a
A a a b
B 2 4 4
C c d c
D a a b
E 4 6 4
F d d c
a a a a b b b
并运算
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.1 关系模型概述
单一的数据结构——关系
关系模型的数据结构非常单一。在关系模型 中,现实世界的实体以及实体间的各种联系均用 关系来表示,在用户看来,关系模型中数据的 逻辑结构是一张二维表。
关系必须是规范化的——每个分量必须是 不可分的数据项
2.1 关系模型概述
候选码的诸属性称为主属性(Prime attribute)
不包含在任何侯选码中的属性称为非码属性 (Non-Key Attribute)
2.2.1 关系
关系(Relation)——笛卡尔集的子集
关系可以有三种类型:基本关系(通常又称
为基本表或基表)、查询表和视图表。
基本表是实际存在的表,它是实际存储数
查询的表达能力是其中最主要的部分。
2.1 关系模型概述
关系操作的特点:
一次一集合(set-at-a-time)的操作方式。 操作的对象和结果都是集合,相应地,非关系 数据模型的数据操作方式则为一次一记录 (record-at-a-time )的方式。
存取路径对用户透明。用户只需指出“干 什么”或“找什么”,而不必说明“怎么干” 或“怎么找”,具有高度的非过程化。
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为真的元组。
2.2.2 关系模式
关系模式通常可以简记为:R(A1, A2, …, An)。 其中R为关系名,A1, A2, …, An为属性名。而 域名及属性向域的映象常常直接说明为属性的 类型、长度。
关系数据库中的关系与关系模式
关系模式是型,是对关系的描述,关系模式是静态
的、稳定的
关系是值,是动态的、随时间不断变化的
2.3 关系代数
⒊R为n目关系,S为m目关系。tr⌒ts 称为元 组的连接(Concatenation)。它是一个(n+m) 列的元组,前n个分量为R中的一个n元组,后m 个分量为S中的一个m元组。
⒋给定一个关系R(X,Z),X和Z为属性组。我们 定义,当t[X]=x时,x在R中的象集(Images Set)为:Zx={t[Z]|t∈R, t[X]=x} 它表示R中 属性组X上值为x的诸元组在Z上分量的集合。
⒈设关系模式为R(A1, A2, …, An)。它的一个关系设 为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中 相应于属性Ai的一个分量 。
⒉若A={Ai1, Ai2, …, Aik},其中Ai1, Ai2, …, Aik是A1, A2, …, An中的一部分,则A称为属性列或 域列。A则表示{A1, A2, …, An}中去掉{Ai1, Ai2, …, Aik}后剩余的属性组。t[A]=(t[Ai1], t[Ai2], …, t[Aik])表示元组t在属性列A上诸分量的 集合。
关系操作
关系模型中常用的关系操作包括查询和更新两大 部分,其中:
查询操作包括:
选择(Select) 投影(Project) 连接(Join) 除(Divide) 并(Union) 交(Intersection) 差(Difference)等; 更新操作包括: 增加(Insert)、删除(Delete)、修改(Update)
基数 域中所包含的值的个数(用m表示)
例:D2={男,女},D2是域名; “男,女” 是域值;域的基数m=2
2.2.1 关系
笛卡尔积(Cartesian Product)
定义2.2 给定一组域D1,D2…,Dn ,这些域中可 以有相同的。 D1,D2…,Dn的笛卡尔积为:
D1×D2×…×Dn=
关系是一张二维表,是元组的集合
关系模式指出了这个元组集合的结构
2.3 关系代数
关系代数是一种抽象的查询语言,用对关系的 运算来表达查询,作为研究关系数据语言的数 学工具。 关系代数的运算对象是关系,运算结果亦为关 系。关系代数用到的运算符包括四类:集合运 算符、专门的关系运算符、算术比较符和逻辑 运算符 比较运算符和逻辑运算符是用来辅助专门的关 系运算符进行操作的,所以关系代数的运算按 运算符的不同主要分为传统的集合运算和专门 的关系运算两类。
2.3.2 专门的关系运算
逻辑表达式 F 由逻辑运算符连接各算术表达式组 成。算术表达式的基本形式为:
X1θY1 其中θ表示比较运算符,它可以是>,>=,<,<=, =或#。X1,Y1等是属性名,或为常量,或为简单 函数,属性名也可以用它的序号来代替。(但不 建议使用)
选择运算举例
设有一个学生-课程关系数据库, 包括学生关系Student、课程关 系Course和选修关系SC。下面 的许多例子将对这三个关系进 行运算。 Student
第二章 关系数据库
2.1 关系模型概述
2.2 2.3
关系数据结构及形式化定义 关系代数
2.4
2.5
关系的完整性
关系演算(自学)
2.1 关系模型概述
关系模型由三部分组成
关系数据结构—关系数据库中的数据对用 户来说是表(关系),并且只是表
关系完整性约束—关系数据库中的表满足 一定的完整性约束
关系的交可以用差来表示,即:
R∩S=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 个元组。记作:
5)行的次序可以任意交换
6)每一个分量都必须是不可分的数据项。
2.2.2 关系模式
定义2.4 关系的描述称为关系模式(Relation Schema)。一个关系模式应当是一个五元组。它 可以形式化地表示为:R(U, D, DOM, F)。其中R 为关系名,U为组成该关系的属性名集合,D为属 性组U中属性所来自的域,DOM为属性向域的映象 集合,F为属性间数据的依赖关系集合。
据的逻辑表示。
视图表是由基本表或其他视图表导出的表,
是虚表
查询表是查询结果对应的表。
2.2.1 关系
关系(Relation)——笛卡尔集的子集
关系的性质
1)每一列中的分量来自同一个域 2)不同的列可出自同一个域,称其中的每
一列为一个属性,不同的属性要给予不同 的属性名
3)列的次序可以任意交换 4)任意两个元组不能完全相同
关系代数运算符表
运算符 ∪ ∩ X 含义 运算符 > >= < <= = # ∧ ∨ 含义 大于 大于等于 小于 小于等于 等于 不等于 与 或 并 差 比 较 交 广义迪卡尔 运算符 积 选择 投影 连接 除
集合 运算符
专门的 关 系 运算符
σ π ∞ ÷
フ 非
逻辑 运算符
2.3 关系代数
为了叙述上的方便,我们先引入几个记号。
数据库原理
主讲教师:任一支
数据库系统的三级模式结构
应用A 应用B 应用C 应用D
外模式1
外模式2
外模式/模式映象 模式 模式/内模式映象 内模式 数据库
外模式3
物理独立性和逻辑独立性 传统数据库课程的两个理论支撑
关系模型 并发与事务
现代数据库关键技术
海量数据计算
数据挖掘(人工智能)
2.1 关系模型概述
关系数据语言: 关系代数语言 如ISBL 元组关系演算 语言 如ALPHA 如QBE
关 系 数 据 语 言
关系演算语言
域关系演算语 言
具有关系代数和 关系演算双重特 点的语言
如SQL
2.1 关系模型概述
关系代数
关系代数是一种抽象的查询语言,用 对关系的运算来表达查询,作为研究关 系数据语言的数学工具。
{(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
例:有两个域D1={0,1},D2={a,b,c} D1×D2={(0,a),(0,b),(0,c),(1,a),(1,b), (1,c)}
2.2.1 关系
笛卡尔积(Cartesian Product)
基数m=∏mi(所有域的基数的乘积)
象集
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}
差运算
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}
说明
(1)
(2) (3) (4) (5)
笛卡儿积实际上是一个二维表
表的框架由域构成
表的任意一行就是一个元组
每一列数据来自同一个域 di称为分量
2.2.1 关系
关系(Relation)——笛卡尔集的子集
定义2.3 D1×D2×…×Dn的子集叫作在域
D1、D2、…、Dn上的关系,用 R(D1, D2, …, Dn) 表示。
在关系模型中,无论是实体还是实体之间的联 系均由单一的结构类型——关系(表)来表示。
关系模型建立在集合代数的基础上
本节内容: 2.2.1 关系 2.2.2 关系模式 2.2.3 关系数据库
2.2.1 关系
域(Domain)
定义2.1 域是一组具有相同数据类型的值
的集合 在关系中用域表示属性的取值范围 例:长度小于20的字符串的集合;{0,1}; 整数等
(Degree)。
关系中的元素称为元组
由于域可以相同,为了加以区分,必须对每列
起一个名字,称为属性
2.2.1 关系
关系(Relation)——笛卡尔集的子集
候选码(Candidate Key):关系中能唯一地
标识一个元组的某一属性或属性组
若一个关系有多个候选码,则选定其中一个 为主码(Primary key)
本章的重点内容之一
2.1 关系模型概述
介于关系代数和关系演算之间的语言SQL (Structured Query Language)
是集查询、DDL、DML和DCL于一体的关系数据 语言
是关系数据库的标准语言。充分体现了关系数 据语言的特点和优点
本章及本课程的重点内容之一
2.2 关系数据结构及形式化定义
RXS={tr⌒ts |tr∈R∧ts∈S}
广义笛卡尔积
R S
R ×S
E F 4 d 6 d 4 4 6 4 4 6 4 c d d c d d c
A B C D a 2 c a a 2 c a
A a a b
B 2 4 4
C c d c
D a a b
E 4 6 4
F d d c
a a a a b b b
并运算
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.1 关系模型概述
单一的数据结构——关系
关系模型的数据结构非常单一。在关系模型 中,现实世界的实体以及实体间的各种联系均用 关系来表示,在用户看来,关系模型中数据的 逻辑结构是一张二维表。
关系必须是规范化的——每个分量必须是 不可分的数据项
2.1 关系模型概述
候选码的诸属性称为主属性(Prime attribute)
不包含在任何侯选码中的属性称为非码属性 (Non-Key Attribute)
2.2.1 关系
关系(Relation)——笛卡尔集的子集
关系可以有三种类型:基本关系(通常又称
为基本表或基表)、查询表和视图表。
基本表是实际存在的表,它是实际存储数
查询的表达能力是其中最主要的部分。
2.1 关系模型概述
关系操作的特点:
一次一集合(set-at-a-time)的操作方式。 操作的对象和结果都是集合,相应地,非关系 数据模型的数据操作方式则为一次一记录 (record-at-a-time )的方式。
存取路径对用户透明。用户只需指出“干 什么”或“找什么”,而不必说明“怎么干” 或“怎么找”,具有高度的非过程化。
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为真的元组。
2.2.2 关系模式
关系模式通常可以简记为:R(A1, A2, …, An)。 其中R为关系名,A1, A2, …, An为属性名。而 域名及属性向域的映象常常直接说明为属性的 类型、长度。
关系数据库中的关系与关系模式
关系模式是型,是对关系的描述,关系模式是静态
的、稳定的
关系是值,是动态的、随时间不断变化的
2.3 关系代数
⒊R为n目关系,S为m目关系。tr⌒ts 称为元 组的连接(Concatenation)。它是一个(n+m) 列的元组,前n个分量为R中的一个n元组,后m 个分量为S中的一个m元组。
⒋给定一个关系R(X,Z),X和Z为属性组。我们 定义,当t[X]=x时,x在R中的象集(Images Set)为:Zx={t[Z]|t∈R, t[X]=x} 它表示R中 属性组X上值为x的诸元组在Z上分量的集合。
⒈设关系模式为R(A1, A2, …, An)。它的一个关系设 为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中 相应于属性Ai的一个分量 。
⒉若A={Ai1, Ai2, …, Aik},其中Ai1, Ai2, …, Aik是A1, A2, …, An中的一部分,则A称为属性列或 域列。A则表示{A1, A2, …, An}中去掉{Ai1, Ai2, …, Aik}后剩余的属性组。t[A]=(t[Ai1], t[Ai2], …, t[Aik])表示元组t在属性列A上诸分量的 集合。
关系操作
关系模型中常用的关系操作包括查询和更新两大 部分,其中:
查询操作包括:
选择(Select) 投影(Project) 连接(Join) 除(Divide) 并(Union) 交(Intersection) 差(Difference)等; 更新操作包括: 增加(Insert)、删除(Delete)、修改(Update)
基数 域中所包含的值的个数(用m表示)
例:D2={男,女},D2是域名; “男,女” 是域值;域的基数m=2
2.2.1 关系
笛卡尔积(Cartesian Product)
定义2.2 给定一组域D1,D2…,Dn ,这些域中可 以有相同的。 D1,D2…,Dn的笛卡尔积为:
D1×D2×…×Dn=
关系是一张二维表,是元组的集合
关系模式指出了这个元组集合的结构
2.3 关系代数
关系代数是一种抽象的查询语言,用对关系的 运算来表达查询,作为研究关系数据语言的数 学工具。 关系代数的运算对象是关系,运算结果亦为关 系。关系代数用到的运算符包括四类:集合运 算符、专门的关系运算符、算术比较符和逻辑 运算符 比较运算符和逻辑运算符是用来辅助专门的关 系运算符进行操作的,所以关系代数的运算按 运算符的不同主要分为传统的集合运算和专门 的关系运算两类。
2.3.2 专门的关系运算
逻辑表达式 F 由逻辑运算符连接各算术表达式组 成。算术表达式的基本形式为:
X1θY1 其中θ表示比较运算符,它可以是>,>=,<,<=, =或#。X1,Y1等是属性名,或为常量,或为简单 函数,属性名也可以用它的序号来代替。(但不 建议使用)
选择运算举例
设有一个学生-课程关系数据库, 包括学生关系Student、课程关 系Course和选修关系SC。下面 的许多例子将对这三个关系进 行运算。 Student
第二章 关系数据库
2.1 关系模型概述
2.2 2.3
关系数据结构及形式化定义 关系代数
2.4
2.5
关系的完整性
关系演算(自学)
2.1 关系模型概述
关系模型由三部分组成
关系数据结构—关系数据库中的数据对用 户来说是表(关系),并且只是表
关系完整性约束—关系数据库中的表满足 一定的完整性约束
关系的交可以用差来表示,即:
R∩S=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 个元组。记作:
5)行的次序可以任意交换
6)每一个分量都必须是不可分的数据项。
2.2.2 关系模式
定义2.4 关系的描述称为关系模式(Relation Schema)。一个关系模式应当是一个五元组。它 可以形式化地表示为:R(U, D, DOM, F)。其中R 为关系名,U为组成该关系的属性名集合,D为属 性组U中属性所来自的域,DOM为属性向域的映象 集合,F为属性间数据的依赖关系集合。
据的逻辑表示。
视图表是由基本表或其他视图表导出的表,
是虚表
查询表是查询结果对应的表。
2.2.1 关系
关系(Relation)——笛卡尔集的子集
关系的性质
1)每一列中的分量来自同一个域 2)不同的列可出自同一个域,称其中的每
一列为一个属性,不同的属性要给予不同 的属性名
3)列的次序可以任意交换 4)任意两个元组不能完全相同
关系代数运算符表
运算符 ∪ ∩ X 含义 运算符 > >= < <= = # ∧ ∨ 含义 大于 大于等于 小于 小于等于 等于 不等于 与 或 并 差 比 较 交 广义迪卡尔 运算符 积 选择 投影 连接 除
集合 运算符
专门的 关 系 运算符
σ π ∞ ÷
フ 非
逻辑 运算符
2.3 关系代数
为了叙述上的方便,我们先引入几个记号。
数据库原理
主讲教师:任一支
数据库系统的三级模式结构
应用A 应用B 应用C 应用D
外模式1
外模式2
外模式/模式映象 模式 模式/内模式映象 内模式 数据库
外模式3
物理独立性和逻辑独立性 传统数据库课程的两个理论支撑
关系模型 并发与事务
现代数据库关键技术
海量数据计算
数据挖掘(人工智能)
2.1 关系模型概述
关系数据语言: 关系代数语言 如ISBL 元组关系演算 语言 如ALPHA 如QBE
关 系 数 据 语 言
关系演算语言
域关系演算语 言
具有关系代数和 关系演算双重特 点的语言
如SQL
2.1 关系模型概述
关系代数
关系代数是一种抽象的查询语言,用 对关系的运算来表达查询,作为研究关 系数据语言的数学工具。
{(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
例:有两个域D1={0,1},D2={a,b,c} D1×D2={(0,a),(0,b),(0,c),(1,a),(1,b), (1,c)}
2.2.1 关系
笛卡尔积(Cartesian Product)
基数m=∏mi(所有域的基数的乘积)
象集
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}
差运算
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}
说明
(1)
(2) (3) (4) (5)
笛卡儿积实际上是一个二维表
表的框架由域构成
表的任意一行就是一个元组
每一列数据来自同一个域 di称为分量
2.2.1 关系
关系(Relation)——笛卡尔集的子集
定义2.3 D1×D2×…×Dn的子集叫作在域
D1、D2、…、Dn上的关系,用 R(D1, D2, …, Dn) 表示。
在关系模型中,无论是实体还是实体之间的联 系均由单一的结构类型——关系(表)来表示。
关系模型建立在集合代数的基础上
本节内容: 2.2.1 关系 2.2.2 关系模式 2.2.3 关系数据库
2.2.1 关系
域(Domain)
定义2.1 域是一组具有相同数据类型的值
的集合 在关系中用域表示属性的取值范围 例:长度小于20的字符串的集合;{0,1}; 整数等