关系数据库系统
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表2.3 商品供应关系模式SUPPLY的实例 SNO S1 SNAME 迅飞公司 SCITY 上海 CODE 021 PNO P102 PNAME 六角螺栓 WEIGH T 2.58 QTY 280
S2
S2 S3 S4
网达公司
网达公司 新嘉公司 中联公司
天津
天津 北京 北京
022
022 010 010
s
s
s
Байду номын сангаас
t i , t j 分别表示元组t
s
r的第i个分量、元组ts的第j个分量
t i t j 表示这两个分量的 操作
15
2.2 关系代数
(2)F连接
F连接操作是从关系R和S的笛卡尔积中选取属性值满足 某一公式F的元组,记为 R F S。
(3)自然连接
两个关系R和S的自然连接操作用R∞S表示,计算过程 如下:
①计算R×S;
②设R和S的公共属性是A1,…,Ak,挑选R×S中满足 R.A1=S.A1,…,R.Ak=S.Ak的那些元组;
③去掉S.A1,…,S.Ak这些列。
因而R∞S定义如下:
R∞S≡
i ,
1
,im ( R. A 1 S . A 1
R. Ak S . Ak ( R S ))
16
学号,课程号 选课 课程号 课程
从学号求学生姓名,可用自然连接和投影操作组合而 成:
姓名 学生 学号,课程名 选课 课程名 课程
21
2.3 关系规范化
关系模式的设计问题
引例:表2.3关系模型存在如下几方面的问题。
数据冗余;修改异常;插入异常;删除异常
S4
中联公司
北京
关系模式PART的实例
关系模式S_P的实例
PNO
PNAME
WEIGHT
SNO S1 S2 S2 S3
PNO P102 P432 P761 P432
QTY 280 360 200 480
P102
P432 p761
六角螺栓
转管 水暖三通
2.58
45.14 34.96
S4
P761
100
24
π1,3(
学号,姓名 课程名'应用数学' 学生选课课程
20
2.2 关系代数
(3)检索选修全部课程的学生姓名。
过程如下:
学号,课程号 选课 学生选课情况表示如下:
全部课程表示如下: 课程号 课程
选修了全部课程的学生学号可用除法操作表示,操 作结果是学号集 ,表示如下:
6
2.1 关系模型的基本概念
关系的定义和性质
在关系模型中,对关系作了下列规范性限制。
(1)关系中的每一个属性值是不可分解的。 (2)每一个关系模式中属性的数据类型以及属性的个数 是固定的,并且每个属性必须命名,在同一个关系模式中, 属性名必须是不同的。 (2)每一个关系仅有一种关系模式。
(4)在关系中没有行序。
R
2> 2 1 2
S S.A 4 2 S.B 3 3
17
R.C 1 1 (d)
2.2 关系代数
4. 除法
设关系R和S的元数分别为r和s(设r>s>0),那么RS是一个 (r-s)元的元组集合。 (R S)是满足下列条件的最大关系:其 中每个元组t与S中每个元组u组成的新元组<t,u>必在关系R 中。
10
2.2 关系代数
4.广义笛卡尔积
设A1、A2、…、An为任意集合,A1、A2、…、An的笛 卡尔乘积记做:A1×A2×…×An,并且定义D= A1×A2×…×An ={(a1,a2,…,an)|ai∈Ai,i=1,2,…, n},其中(a1,a2,…,an)是一个元组,它的每个元素ai取 自对应的集合Ai。
PART(PNO,PNAME,WEIGHT)
S_P(SNO,PNO,QTY)
23
表2.4 关系模式SUPPLY的分解实例
关系模式SUPPLIER的实例 关系模式CITY的实例
SNO
SNAME
SCITY
S1
S2 S3
迅飞公司
网达公司 新嘉公司
上海
天津 北京
SCITY 上海 天津 北京
SNAME 021 022 010
例如,设A={1,2},B={a,b},则A×B={(1,a),(1, b),(2,a),(2,b)}。
11
2.2 关系代数
【例2.1】
A a1 a1 a2 R B b1 b2 b2 (a) R? S A a1 a1 a2 a1 B b1 b2 b2 b3 (c) R-S A a1 B b1 (d) C c1 C c1 c2 c1 c2 R.A a1 a1 a1 a1 a1 a1 a2 a2 a2 R.B b1 b1 b1 b2 b2 b2 b2 b2 b2 R.C c1 c1 c1 c2 c2 c2 c1 c1 c1 (f) C c1 c2 c1 A a1 a1 a2 S B b2 b3 b2 (b) R×S S.A a1 a1 a2 a1 a1 a2 a1 a1 a2 S.B b2 b3 b2 b2 b3 b2 b2 b3 b2 S.C c2 c2 c1 c2 c2 c1 c2 c2 c1 C c2 c2 c1 A a1 a2
i ,
1
,im
(R) {t|t t i1 ,
, t im t1,
, t k R}
13
2.2 关系代数
【例2.2】 (a)是关系R,(b)表示
C>3(R),(c)表示πC,A(R)。
R A 5 1 6 B 2 7 9 (a) C 8 4 3 A 5 1
C>3(R)
103018
104024
张华
吴林华
女
女
35
27
103
104
表2.2 部门信息表
部门号
101 102 103
部门名
技术部 财务部 公关部
部门经理
林克 徐莹华 张文韬
电话号码
26540214 26540652 26544852
104
策划部
谢海
26543298
3
2.1 关系模型的基本概念
1.关系
一个关系就是一张二维表,通常将一个没有重复行、重 复列的二维表看成一个关系,每个关系都有一个关系名。
2.3 关系规范化
函数依赖
定义1 设R=R(A1,A2,…,An)是一个关系模式 (A1,A2,…,An是R的属性),X∈{ A1,A2,…,An }, Y∈{ A1,A2,…,An },即X和Y是R的属性子集,T1、T2是R 的两个任意元组,即T1=T1(A1,A2,…,An),T2= T2(A1,A2,…,An),如果当T1(X)=T2(X)成立时,总有T1(Y) =T2(Y),则称X决定Y,或称Y函数依赖于X。记为:X→Y。
2. 属性及值域
二维表的每一列在关系中称为属性(Attribute),每个属性 都有一个属性名,各个属性的取值称为属性值。每个属性有 一定的取值范围,称为值域。
3. 关系模式 对关系的描述称为关系模式,关系模式的一般形式为: 关系名(属性1,属性2,…,属性n)
例如,职工信息关系(职工号,职工名,性别,年龄, 4 部门号)
第2章 关系数据库系统
1
第2章 关系数据库系统
2.1 2.2 2.3 关系模型的基本概念 关系代数 关系规范化
2 2
2.1 关系模型的基本概念
关系模型的基本术语
表2.1 职工信息表
职工号 101001 101003 职工名 王军 黄明业 性别 男 男 年龄 24 34 部门号 101 101
(5)在关系中没有列序。 (6)在同一个关系中不允许出现完全相同的元组。
7
2.1 关系模型的基本概念
关系模型的三要素 1. 数据结构 2. 关系操作 (1)代数方法,也称为关系代数,是以集合(关系是元 组的集合)操作为基础,应用对关系的专门运算来表达查询 的要求。 (2)逻辑方法,也称为关系演算,是以谓词演算为基础, 通过元组必须满足的谓词公式来表达查询要求。 3. 关系模型的三类完整性规则
P432
P761 P432 P761
转管
水暖三通 转管 水暖三通
45.14
34.96 45.14 34.96
360
200 480 100
22
2.3 关系规范化
要解决上述3个问题,可将商品供应关系模式SUPPLY分 解以下为四个模式: SUPPLIER(SNO,SNAME,SCITY) CITY(SCITY,CODE)
B 2 7 (b) C 8 4
πC,A(R) C 8 4 3 (c) A 5 1 6
14
2.2 关系代数
3. 连接 连接运算的结果是笛卡尔积的子集 (1) 连接 从关系R和S的笛卡尔积中选取属性值满足某一 操作的元 组。 形式定义如下:
R S {t | t
ij
s
t
, t t R t S t i t j}
9
2.2 关系代数
传统的集合运算 对二维表格进行运算的机制。 1.并 设A、B同为n元关系,则A、B的并也是一个n元关系, 记作A∪B。 2.差 设A、B同为n元关系,则A、B的差也是一个n元关系, 记作A-B。A-B包含了所有属于A但不属于B的元组。 3.交 设A、B同为n元关系,则A、B的交也是一个n元关系, 记作A∩B。A∩B包含了所有同属于A、B的元组。
8
2.1 关系模型的基本概念
(1)实体完整性 所谓实体完整性,就是一个关系模型中的所有元组都是 惟一的,没有两个完全相同的元组,也就是一个二维表中没 有两个完全相同行,也称为行完整性。 例如,表 2.1的职工信息关系,根据实体完整性,“职工 号”不能取空值 。 (2)参照完整性 当一个数据表中有外部关键字(即该列是另外一个表的关 键字)时,外部关键字列的所有值,都必须出现在其所对应 的表中,这就是参照完整性的含义 。 例如,表2.1的职工信息表和表2.2的部门信息表。 (3)用户定义完整性
关系代数表达式及其应用实例
【例2.5】设教学数据库中有三个关系:
学生关系(学号,姓名,性别,年龄,所在系,专业) 课程关系(课程号,课程名,学时数)
选课关系(学号,课程号,成绩 )
下面用关系代数表达式表达每个查询语句。 (1)检索课程号为C201的学生的学号与成绩。 学号,成绩 课程名'C 201' 选课 (2)检索选修课程名为应用数学的学生的学号与姓名。
5
2.1 关系模型的基本概念
6. 主属性与非主属性 关系中包含在任何一个候选键中的属性称为主属性,不 包含在任何一个候选键中的属性称为非主属性。 例如,表2.1职工关系中,职工号和职工名是主属性,其 他属性是非主属性。 7. 外键、参照关系与依赖关系 如果关系中某个属性或属性组合并非关键字,但却是另 一个关系的主关键字,则称此属性或属性组合为本关系的外 部关键字或外键(Foreign Key)。 在关系数据库中,用外部关键字表示两个表间的联系。 以外键作为主键的关系称为参照关系或主关系,外键所在的 关系称为依赖关系或从关系。
2.1 关系模型的基本概念
4.元组 二维表的每一行在关系中称为元组(Tuple)。一行描述了 现实世界中的一个实体,或者描述了不同实体间的一种联系。 5. 键 (1) 超键:在关系中能唯一标识元组的属性或属性的组 合称为该关系的超键。 (2)候选键:不含有多余属性的超键称为候选键。 (3)主键:用户选作元组标识的一个候选键称为主键。 例如,表2.1的职工信息关系中,属性组合(职工号,职工 名)是超键,但不是候选键 。
18
2.2 关系代数
【例2.4】 (a)和(b)是两个关系R和S,(c)表示除法运算。
RS D 8 4 (b) A 5 9 (c) B 7 8
R A 5 5 5 3 9 9 B 7 7 1 6 8 8 (a) C 2 7 5 4 2 7 D 8 4 7 1 8 4 C 2 7
S
19
2.2 关系代数
R∩S
B b2 b2 (e) C c2 c1
12
2.2 关系代数
专门的关系运算
1. 选择
对关系作水平分割 定义如下: 2. 投影 对关系作垂直分割
F
(R) {t | t R F (t ) true}
t是元组变量,F是元组需满足的公式。
设关系R是k元关系,R在其分量,…,(m≤k,…, i1,…,im为1到k间的整数)上的投影用 i1 , ,im (R) 表示, 它是一个m元元组的集合,定义如下:(t是元组变量 )
2.2 关系代数
【例2.3】 (a)和(b)是两个关系R和S,(c)表示连接,(d) 表示F连接,(e)表示自然连接。
R A 4 4 2 B 3 3 9 (a) C 6 7 1 A 4 8 2 (b) S B 3 1 3
R∞S A 4 4 B 3 3 (e) C 6 7 R.A 2 2 R.B 9 9
S2
S2 S3 S4
网达公司
网达公司 新嘉公司 中联公司
天津
天津 北京 北京
022
022 010 010
s
s
s
Байду номын сангаас
t i , t j 分别表示元组t
s
r的第i个分量、元组ts的第j个分量
t i t j 表示这两个分量的 操作
15
2.2 关系代数
(2)F连接
F连接操作是从关系R和S的笛卡尔积中选取属性值满足 某一公式F的元组,记为 R F S。
(3)自然连接
两个关系R和S的自然连接操作用R∞S表示,计算过程 如下:
①计算R×S;
②设R和S的公共属性是A1,…,Ak,挑选R×S中满足 R.A1=S.A1,…,R.Ak=S.Ak的那些元组;
③去掉S.A1,…,S.Ak这些列。
因而R∞S定义如下:
R∞S≡
i ,
1
,im ( R. A 1 S . A 1
R. Ak S . Ak ( R S ))
16
学号,课程号 选课 课程号 课程
从学号求学生姓名,可用自然连接和投影操作组合而 成:
姓名 学生 学号,课程名 选课 课程名 课程
21
2.3 关系规范化
关系模式的设计问题
引例:表2.3关系模型存在如下几方面的问题。
数据冗余;修改异常;插入异常;删除异常
S4
中联公司
北京
关系模式PART的实例
关系模式S_P的实例
PNO
PNAME
WEIGHT
SNO S1 S2 S2 S3
PNO P102 P432 P761 P432
QTY 280 360 200 480
P102
P432 p761
六角螺栓
转管 水暖三通
2.58
45.14 34.96
S4
P761
100
24
π1,3(
学号,姓名 课程名'应用数学' 学生选课课程
20
2.2 关系代数
(3)检索选修全部课程的学生姓名。
过程如下:
学号,课程号 选课 学生选课情况表示如下:
全部课程表示如下: 课程号 课程
选修了全部课程的学生学号可用除法操作表示,操 作结果是学号集 ,表示如下:
6
2.1 关系模型的基本概念
关系的定义和性质
在关系模型中,对关系作了下列规范性限制。
(1)关系中的每一个属性值是不可分解的。 (2)每一个关系模式中属性的数据类型以及属性的个数 是固定的,并且每个属性必须命名,在同一个关系模式中, 属性名必须是不同的。 (2)每一个关系仅有一种关系模式。
(4)在关系中没有行序。
R
2> 2 1 2
S S.A 4 2 S.B 3 3
17
R.C 1 1 (d)
2.2 关系代数
4. 除法
设关系R和S的元数分别为r和s(设r>s>0),那么RS是一个 (r-s)元的元组集合。 (R S)是满足下列条件的最大关系:其 中每个元组t与S中每个元组u组成的新元组<t,u>必在关系R 中。
10
2.2 关系代数
4.广义笛卡尔积
设A1、A2、…、An为任意集合,A1、A2、…、An的笛 卡尔乘积记做:A1×A2×…×An,并且定义D= A1×A2×…×An ={(a1,a2,…,an)|ai∈Ai,i=1,2,…, n},其中(a1,a2,…,an)是一个元组,它的每个元素ai取 自对应的集合Ai。
PART(PNO,PNAME,WEIGHT)
S_P(SNO,PNO,QTY)
23
表2.4 关系模式SUPPLY的分解实例
关系模式SUPPLIER的实例 关系模式CITY的实例
SNO
SNAME
SCITY
S1
S2 S3
迅飞公司
网达公司 新嘉公司
上海
天津 北京
SCITY 上海 天津 北京
SNAME 021 022 010
例如,设A={1,2},B={a,b},则A×B={(1,a),(1, b),(2,a),(2,b)}。
11
2.2 关系代数
【例2.1】
A a1 a1 a2 R B b1 b2 b2 (a) R? S A a1 a1 a2 a1 B b1 b2 b2 b3 (c) R-S A a1 B b1 (d) C c1 C c1 c2 c1 c2 R.A a1 a1 a1 a1 a1 a1 a2 a2 a2 R.B b1 b1 b1 b2 b2 b2 b2 b2 b2 R.C c1 c1 c1 c2 c2 c2 c1 c1 c1 (f) C c1 c2 c1 A a1 a1 a2 S B b2 b3 b2 (b) R×S S.A a1 a1 a2 a1 a1 a2 a1 a1 a2 S.B b2 b3 b2 b2 b3 b2 b2 b3 b2 S.C c2 c2 c1 c2 c2 c1 c2 c2 c1 C c2 c2 c1 A a1 a2
i ,
1
,im
(R) {t|t t i1 ,
, t im t1,
, t k R}
13
2.2 关系代数
【例2.2】 (a)是关系R,(b)表示
C>3(R),(c)表示πC,A(R)。
R A 5 1 6 B 2 7 9 (a) C 8 4 3 A 5 1
C>3(R)
103018
104024
张华
吴林华
女
女
35
27
103
104
表2.2 部门信息表
部门号
101 102 103
部门名
技术部 财务部 公关部
部门经理
林克 徐莹华 张文韬
电话号码
26540214 26540652 26544852
104
策划部
谢海
26543298
3
2.1 关系模型的基本概念
1.关系
一个关系就是一张二维表,通常将一个没有重复行、重 复列的二维表看成一个关系,每个关系都有一个关系名。
2.3 关系规范化
函数依赖
定义1 设R=R(A1,A2,…,An)是一个关系模式 (A1,A2,…,An是R的属性),X∈{ A1,A2,…,An }, Y∈{ A1,A2,…,An },即X和Y是R的属性子集,T1、T2是R 的两个任意元组,即T1=T1(A1,A2,…,An),T2= T2(A1,A2,…,An),如果当T1(X)=T2(X)成立时,总有T1(Y) =T2(Y),则称X决定Y,或称Y函数依赖于X。记为:X→Y。
2. 属性及值域
二维表的每一列在关系中称为属性(Attribute),每个属性 都有一个属性名,各个属性的取值称为属性值。每个属性有 一定的取值范围,称为值域。
3. 关系模式 对关系的描述称为关系模式,关系模式的一般形式为: 关系名(属性1,属性2,…,属性n)
例如,职工信息关系(职工号,职工名,性别,年龄, 4 部门号)
第2章 关系数据库系统
1
第2章 关系数据库系统
2.1 2.2 2.3 关系模型的基本概念 关系代数 关系规范化
2 2
2.1 关系模型的基本概念
关系模型的基本术语
表2.1 职工信息表
职工号 101001 101003 职工名 王军 黄明业 性别 男 男 年龄 24 34 部门号 101 101
(5)在关系中没有列序。 (6)在同一个关系中不允许出现完全相同的元组。
7
2.1 关系模型的基本概念
关系模型的三要素 1. 数据结构 2. 关系操作 (1)代数方法,也称为关系代数,是以集合(关系是元 组的集合)操作为基础,应用对关系的专门运算来表达查询 的要求。 (2)逻辑方法,也称为关系演算,是以谓词演算为基础, 通过元组必须满足的谓词公式来表达查询要求。 3. 关系模型的三类完整性规则
P432
P761 P432 P761
转管
水暖三通 转管 水暖三通
45.14
34.96 45.14 34.96
360
200 480 100
22
2.3 关系规范化
要解决上述3个问题,可将商品供应关系模式SUPPLY分 解以下为四个模式: SUPPLIER(SNO,SNAME,SCITY) CITY(SCITY,CODE)
B 2 7 (b) C 8 4
πC,A(R) C 8 4 3 (c) A 5 1 6
14
2.2 关系代数
3. 连接 连接运算的结果是笛卡尔积的子集 (1) 连接 从关系R和S的笛卡尔积中选取属性值满足某一 操作的元 组。 形式定义如下:
R S {t | t
ij
s
t
, t t R t S t i t j}
9
2.2 关系代数
传统的集合运算 对二维表格进行运算的机制。 1.并 设A、B同为n元关系,则A、B的并也是一个n元关系, 记作A∪B。 2.差 设A、B同为n元关系,则A、B的差也是一个n元关系, 记作A-B。A-B包含了所有属于A但不属于B的元组。 3.交 设A、B同为n元关系,则A、B的交也是一个n元关系, 记作A∩B。A∩B包含了所有同属于A、B的元组。
8
2.1 关系模型的基本概念
(1)实体完整性 所谓实体完整性,就是一个关系模型中的所有元组都是 惟一的,没有两个完全相同的元组,也就是一个二维表中没 有两个完全相同行,也称为行完整性。 例如,表 2.1的职工信息关系,根据实体完整性,“职工 号”不能取空值 。 (2)参照完整性 当一个数据表中有外部关键字(即该列是另外一个表的关 键字)时,外部关键字列的所有值,都必须出现在其所对应 的表中,这就是参照完整性的含义 。 例如,表2.1的职工信息表和表2.2的部门信息表。 (3)用户定义完整性
关系代数表达式及其应用实例
【例2.5】设教学数据库中有三个关系:
学生关系(学号,姓名,性别,年龄,所在系,专业) 课程关系(课程号,课程名,学时数)
选课关系(学号,课程号,成绩 )
下面用关系代数表达式表达每个查询语句。 (1)检索课程号为C201的学生的学号与成绩。 学号,成绩 课程名'C 201' 选课 (2)检索选修课程名为应用数学的学生的学号与姓名。
5
2.1 关系模型的基本概念
6. 主属性与非主属性 关系中包含在任何一个候选键中的属性称为主属性,不 包含在任何一个候选键中的属性称为非主属性。 例如,表2.1职工关系中,职工号和职工名是主属性,其 他属性是非主属性。 7. 外键、参照关系与依赖关系 如果关系中某个属性或属性组合并非关键字,但却是另 一个关系的主关键字,则称此属性或属性组合为本关系的外 部关键字或外键(Foreign Key)。 在关系数据库中,用外部关键字表示两个表间的联系。 以外键作为主键的关系称为参照关系或主关系,外键所在的 关系称为依赖关系或从关系。
2.1 关系模型的基本概念
4.元组 二维表的每一行在关系中称为元组(Tuple)。一行描述了 现实世界中的一个实体,或者描述了不同实体间的一种联系。 5. 键 (1) 超键:在关系中能唯一标识元组的属性或属性的组 合称为该关系的超键。 (2)候选键:不含有多余属性的超键称为候选键。 (3)主键:用户选作元组标识的一个候选键称为主键。 例如,表2.1的职工信息关系中,属性组合(职工号,职工 名)是超键,但不是候选键 。
18
2.2 关系代数
【例2.4】 (a)和(b)是两个关系R和S,(c)表示除法运算。
RS D 8 4 (b) A 5 9 (c) B 7 8
R A 5 5 5 3 9 9 B 7 7 1 6 8 8 (a) C 2 7 5 4 2 7 D 8 4 7 1 8 4 C 2 7
S
19
2.2 关系代数
R∩S
B b2 b2 (e) C c2 c1
12
2.2 关系代数
专门的关系运算
1. 选择
对关系作水平分割 定义如下: 2. 投影 对关系作垂直分割
F
(R) {t | t R F (t ) true}
t是元组变量,F是元组需满足的公式。
设关系R是k元关系,R在其分量,…,(m≤k,…, i1,…,im为1到k间的整数)上的投影用 i1 , ,im (R) 表示, 它是一个m元元组的集合,定义如下:(t是元组变量 )
2.2 关系代数
【例2.3】 (a)和(b)是两个关系R和S,(c)表示连接,(d) 表示F连接,(e)表示自然连接。
R A 4 4 2 B 3 3 9 (a) C 6 7 1 A 4 8 2 (b) S B 3 1 3
R∞S A 4 4 B 3 3 (e) C 6 7 R.A 2 2 R.B 9 9