第二章 关系数据库
2.1 系模型概述
关系数据库系统是支持关系模型的数据库系统,
关系模型由关系数据结构、关系操作集合和关系完整性约束三
部分组成。
一、单一的数据结构 —— 关系
二、关系操作
关系模型中常用的关系操作有,
选择 (Selsct)、投影 (Project)、连接 (Join)、除 (Divide)、并
(Union)、交 (Intersection)、差 (Difference)、等查询 (Query)操作
和增加 (Insert)、删除 (Delete)、修改 (Update)两大部分。
三、关系的三类完整性约束
关系模型允许定义三类完整性约束:实体完整性、参照完整性
和用户定义的完整性。
2.2 关系数据结构及形式化定义
2.2.1 关 系
1,域 (Domain)
定义 2.1 域 是一组具有相同数据类型的值的集合,
2,笛卡尔积 (Cartesian Produce)
定义 2.2 给定一组域 D1,D2,…,Dn,这些域中可以有相同的。
D1,D2,…,Dn 的 笛卡尔积 为,
D1× D2× … × Dn= {(d1,d2,…,dn) | di ∈ Di,i=1,2,3,…,n)
若 Di(i=1,2,…,n) 为有限集,其基数为 mi(i=1,2,…,n),
则 D1× D2× … × Dn的基数为 m=∏mi
例如给出三个域:
D1=导师集合 SUPERVISOR=张清玫,刘逸
D2=专业集合 SPECIALITY=计算机专业,通信专业
D3=研究生集合 POSTGRADUATE=李勇,刘晨,王敏
则 D1,D2,D3的 笛卡尔积 为:
D1× D2× D3={(张清玫,计算机专业,李勇 ),(张清玫,计算机专业,刘晨 ),
(张清玫,计算机专业,王敏 ),(张清玫,通信专业,李勇 ),
(张清玫,通信专业,刘晨 ),(张清玫,通信专业,王敏 ),
(刘逸,计算机专业,李勇 ),(刘逸,计算机专业,刘晨 ),
(刘逸,计算机专业,王敏 ),(刘逸,通信专业,李勇 ),
(刘逸,通信专业,刘晨 ),(刘逸,通信专业,王敏 ),}
i=1
n
3,关 系
定义 2.3 D1× D2× … × Dn 的子集叫做在域 D1,D2,…,Dn上的关系,
用 R(D1,D2,…,Dn)表示
这里 R表示关系的名字,n是关系的目或度,
当 n=1时,称为单元关系,
当 n=2时,称为二元关系,
关系是一张二维表,表的每一行对应一个元组,表的每一列对应
一个域,由于域可以相同,为了加以区分,对每列取一个名字,称为属
性,n目关系必有 n个属性,
SUPERVISOR SPECIALITY POSTGRADUATE
张清玫 计算机专业 李勇
张清玫 计算机专业 刘晨
刘 逸 通 信 专 业 王敏
表 2.2 SAP关系
☆ 数据库中的基本关系有以下性质,
1、列是同性质的,即每一列中的分量是同一类型的数据,来自
同一个域。
2、不同的列可出自同一个域,每一列称为属性,要给予不同
的属性名。
3、列的顺序无所谓,即列的次序可以任意交换。
4、任意两个元组不能全同。
5、行的顺序无所谓,即行的次序可以任意交换。
6、每一分量必须是不可分的数据项。
☆ 关系的三种类型,
基本关系,查询表,视图表
.☆ 关系模型要求关系必须是规范化的,即要求关系模式
必须满足一定的规范条件,
2.2.2 关系模式
定义 2.4 关系的描述称为关系模式 (Relation Schema)。
可形式化表示为, R(U,D,dom,F)
关系模式通常可以简记为:
R(U) OR R(A1,A2,…,A n)。
R为关系名,A1,A2…,A n为属性名,属性向域的映象常常直接说
明为属性的类型、长度。
2.2.3 关系数据库
(1).关系数据库的型
(2).关系数据库的值
2.3 关系的完整性
一、实体完整性 (Entity Integrity)
规则 2.1 实体完整性规则 若属性 A是基本关系 R的主属性,则属
性 A不能取空值,
★ 对实体完整性规则的说明,
(1) 实体完整性规则是针对基本关系而言的,
(2) 现实世界中的实体是可区分的,即它们具有某种唯一性标识,
(3) 相应地,关系模型中的以主码作为唯一性标识,
(4) 主码中的属性即主属性不能取空值,
二、参照完整性 (Referential Integrity)
例 1 学生实体和专业实体可以用下面的关系表示,其中主码用
下划线标识,
学生 (学号,姓名,性别,专业号,年龄 )
专业 (专业号,专业名 )
例 2 学生、课程、学生与课程之间的多对多的联系可用如下
三个关系表示:
学生 (学号,姓名,性别,专业号,年龄 )
课程 ( 课程号,课程名,学分 )
选修 ( 学号, 课程号,成绩 )
例 3 在关系 学生 2(学号,姓名,性别,专业号,年龄,班长 )中,
?学号?属性是主码,?班长?属性表示该学生所在班级的班长的
学号。
定义 2.5 设 F是基本关系 R的一个或一组属性,但不是关系
R的码,如果 F与基本关系 S的主码 Ks相对应,则称 F是基本关系的
外码 (Foreing Key),并称基本关系 R为参照关系 (Referencing
Relation).基本关系 S为被参照关系 (Referenced Relation)或目标关
系 (Target Relation)..
规则 2.2 参照完整性规则 若属性 (或属性组 )F是基本关系
R的外码,它与基本关系 S的主码 Ks相对应,则对于 R中每个元组在
F上的值必须为,
● 或者取空 (F的每个属性值均为空 );
● 或者等于 S中某个元组的主码值,
三、用户定义的完整性 (User-defind Integrity)
用户定义的完整性就是针对某一具体关系数据库的约束条
件, 它反映某一具体应用所涉及的数据必须满足的语义要求,
2.4 关 系 代 数
一、关系代数的运算的分类
1,传统的集合运算
2,专门的关系运算
关系代数的运算对象是关系,运算结果亦为关系。
二、关系代数用到的运算符
(1)集合运算符, ∪ (并 ),- (差 ),∩(交 )
(2)算术比较符 θ={>,≥,<,≤,=,≠}
(3)专门的关系运算符, σ(选择 ),π(投影 ),(连接 ),÷ (除 )
× (广义笛卡尔积 )
(4)逻辑运算符, ┐,∧,∨
2.4.1 传统的集合运算
设关系 R和关系 S具有相同的目 n,且相应的属性取自同一个域,
则可以定义四种运算如下,
1,并 (Union)
关系 R和关系 S的并记为, R∪ S {t | t ∈ R ∨ t ∈ S},
结果仍为 n目关系,由属于 R或属于 S的元组组成,
2,差 (Difference)
关系 R和关系 S的差记为,R-S={t|t ∈ R ∧ t ∈ S}.
结果仍为 n目关系,由属于 R而不属于 S的元组组成,
3,交 (Intersection)
关系 R和关系 S的交记为, R ∩ S ={t | t ∈ R ∧ t ∈ S}
结果仍为 n目关系,由既属于 R有属于 S的元组组成, 关系的交可
由关系的差表示,即 R∩S=R-(R-S).
4,广义笛卡尔积 (Extended cartesian product)
两个分别为 n,m目阿关系 R和 S的广义笛卡尔积 R× S是一个
(n+m)元组的集合,元组的前 n个分量是 R的一个元组,后 m个分量是 S
的一个元组,若 R有 k1个元组,S有 k2个元组,则 R× S有 k1× k2个元组,
A B C
a1
a1
a2
b1
b2
b2
c1
c2
c1
A B C
a1
a1
a2
b2
b3
b2
c2
c2
c1
R S
A B C
a1
a1
a2
a1
b1
b2
b2
b3
c1
c2
c1
c3
A B C
a1 b1 c1
A B C
a1
a2
b2
b2
c2
c1
图 4-1 ( c )R∪ S 图 4-1 ( e )R∩S图 4-1 ( d ) R-S
( a ) ( b )
2.4.2 专门的关系运算
一, 几个记号
1,设关系模式为 R(A1,A2,…,An),它的一个关系设为 R,T∈ R
表示 t是 R的一个元组。 T[Ai]则表示元组 t中相应属于 Ai的一个分量。
2.若 A={Ai1,Ai2,Ai3,…,Aik},其中 Ai1,Ai2,Ai3,…,Aik 是
A1,A2,A3,…,An 中的一部分,则 A称为属性列或域列,A则表示
{A1,A2,A3,…,An} 中去掉 {Ai1,Ai2,Ai3,…,Aik} 后剩余的属性
组,t[A]=(t[Ai1],t[Ai2],…,t[Aik]) 表示元组 t在属性列 A上诸分量的集合,
3,R为 n目关系,S为 m目关系
tr ∈ R,ts ∈ S
tr ts 称为元组的连接 (Concatenation).这是一个 (n+m)列的元组,
前 n个分量是 R的一个 n元组,后 m个分量是 S中的一个 m元组,
4,给定一个关系 R(X,Z),X,Z为属性组, 我们定义当 X=x时,x在
R中的象集 (Image Set)为,
Zx={t[z]| t∈ R,t[X]=x}
表示 R中属性组 X上值为 x的诸元组在 Z上分量的集合,

二, 各种关系运算的定义
1,选择 (Selection)
亦称为限制 (Restriction).在关系 R中选择满足给定条件的诸元组,
记为,
σF( R)={t|t∈ R∧ F(t)=‘真’ }
F是一个公式,它的取值为‘真’或‘假’,
F由逻辑运算符 (∧,∨,┐)连接各算术表达式组成。算术表达式
的基本形式为:
X1θY1
选择运算是从关系 R中选取使公式 F为真的元组,这是从行的角度
进行的运算,
举例说明选择运算,
设有学生 —— 课程关系数据库,学生关系 Student、课程关系
Course和学生选课关系 SC,分别如图 2.3 (a ),( b ),( c )所示
学号
Sno
姓 名
Sname
性别
Ssex
年龄
Sage
所在系
Sdept
95001
95002
95003
95004
李勇
刘晨
王敏
张立




20
19
18
19
CS
IS
MA
IS
Student
课程号
Cno
课程名
Nname
先行课
Cpno
学分
Ccredit
1
2
3
4
5
6
7
数据库
数 学
信息系统
操作系统
数据结构
数据处理
PASCAL语言
5
1
6
7
6
4
2
4
3
4
2
4
Course
学号
Sno
课程号
Cno
成绩
Grade
95001
95001
95001
95002
95002
1
2
3
2
3
92
85
88
90
80
SC
( a )
( b )
( c )
图 2.3 学生 -课程数据库
例 1,查询信息系 (IS系 )的全体学生,
解, 在学生关系中找出 Sdept为‘ IS’的学生,
σSdept=‘IS’(Student)或 σ5=‘IS’(Student)
学号
Sno
姓 名
Sname
性别
Ssex
年龄
Sage
所在系
Sdept
95002
95004
刘晨
张立


19
19
IS
IS
例 2,查询年龄小于 20岁的学生,
解, 在学生关系中找出 Sage小于 20的学生,
即, σSage<‘19’(Student)或 σ4<‘19’(Student)
学号
Sno
姓 名
Sname
性别
Ssex
年龄
Sage
所在系
Sdept
95002
95003
95004
刘晨
王敏
张立



19
18
19
IS
MA
IS
2,投影 (Projection)
关系 R上的投影是从 R中选择若干属性列组成新的关系,记作,
πA( R )={t[A] | t ∈ R}
A为 R中的属性列,
例 3,求学生 (Student)关系在学生姓名和所在系这两个属性上的
投影,
解, πSname,Sdept( Student ) 或 π2,5( Student )
结果如图 2.5(a)所示,
例 4,查询关系 Student 在所在系属性上的投影,
解, πSdept( Student ) 或 π5 ( Student )
结果如图 2.5 (b)
3,连接 (Join)亦称为 θ连接
连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件
的元组,记作,
R∞S = { tr ts | tr∈ R∧ ts∈ S ∧ tr[A] θts[B]}AθB ⌒
自然连接 (Natural join)是一种特殊而常用的连接,若 R和 S具有
相同的属性组 B,则自然连接定义如下,
R∞S = { tr ts[B] | tr∈ R∧ ts∈ S ∧ tr[B] =ts[B]}⌒
例 5,设关系 R,S分别为 图 2.6中的 ( a),(b ).
R∞S 的结果如图 2.6( c ).
R∞S 等值连接的结果如图 2.6( d ),
C<E
R.B=S.B
R∞S 自然连接的结果如图 2.6( e ),
4,除 (Division)
给定关系 R(X,Y)与 S(Y,Z),其中 X,Y,Z为属性列,R中的 Y与 S中的
Y可以有不同的属性名,但必须出自相同的域集,定义除法,
R÷ S={ tr[X] | tr∈ R∧ πr(S) Yx)}
Yx为 x在 R中象集,x= tr[X],
除法结果是 R中满足下列条件的元组在 X属性列上的投影,
元组在 X上分量值 x的象集 Yx包含 S在 Y上投影的集合,
例 6 设关系 R,S分别为图 2.7中 (a) 和 (b),R÷ S的结果如图 (c)
在关系 R中,A可以取四个值 {a1,a2,a3,a4}
a1的象集为,{(b1,c2),(b2,c3),(b2,c1)}
a2的象集为,{(b3,c7),(b2,c3)}
a3的象集为,{(b4,c6)}
a4的象集为,{(b6,c6)}
S在 (B,C)上的投影为 {(b1,c2),(b2,c1),(b2,c3)}
例 7,求至少选修 1号课程和 3号课程的学生的学号,
解, 设一个临时关系 K:
π Sno,Cno(SC)÷ K={95001}
Cno
1
3
例 8,查询选修了 2号课程的学生的学号
πSno(σCno=‘2’ (SC))={95001,95002}
例 9,查询至少选修了一门其先行课为 5号课程的学生姓名,
πSname(σCpno=‘5’ (Course) ∞SC ∞ π Sno,Sname(Student) )
例 10,查询选修了全部课程的学生的学号和姓名,
πSno,Cno(SC) ÷ πCno (Course) ∞ π Sno,Sname(Student)
2.5.1 元组关系演算语言 ALPHA
★ ALPHA语言的基本格式
操作语句 工作空间名 (表达式 ),操作条件
各部分的具体说明,
<操作语句 >::=GET | PUT | HOLD | UPDATA | DELETE |DROP
<表达式 >::=(<简单项 1>,<简单项 2>,…,< 简单项 n>),
2.5 关系演算
关系演算按谓词变元的不同可分为元组关系演算和域
关系演算,我们首先介绍元组关系演算然后介绍域关系演
算,都是先讨论抽象语言然后介绍一种实际语言。
一, 检索操作
1,简单检索
例 1,求所有被选修的课程的课程号码,
GET W (SC.Cno)
例 2,求所有学生的数据,
GET W (Student)
2,限定的检索
例 3,求信息系 (IS)中年龄小于 20岁的学生的学号和年龄,
GET W (Student.Sno,Student.Sage),Student.Sdept=‘IS’∧ Student.Sage<’20’
3,带排序的检索
例 4,求计算机科学系 (CS)的学生的学号和年龄,结果按年龄降
序排列,
GET W (S.Student,S.Sage),Student.Sdept=‘CS’ DOWN Student.Sage
4,带定额的检索
例 5,取出一个信息系学生的学号,
GET W (1) (Student.Sno),Student.Sdept=‘IS’
5,用元组变量的检索
例 7,查询信息系学生的名字,
RANGE Student X
GET W (X.Sname),X.Sdept=‘IS’
6,用存在量词的检索
例 8.求选修 2号课程的学生的名字,
RANGE SC X
GET W (Student.Sname),X (X.Sno=Student.Sno∧ X.Cno =‘2’)E
例 9.求选修某课程的学生的学号,课程的条件是其直接先行课程是 1号课
程。
RANGE C XC
GET W (SC.Sno),CX (CX.Cno =SC.Cno∧ CX.Pcno =‘1’)
E
(7) 带有多个关系的表达式的检索,
例 11.求成绩为 90分以上的学生的名字与课程名字,
查询的结果 Sname和 Cname分别在 Student和 Course两个关系中,
RANGE SC SCX
GET W (Student.Sname,C.Cname),SCX (SCX.Grade≥=90∧
SCX.Sno =Student.Sno) ∧ Course.Cno=SCX.Cno)
E
(8) 用全称量词的检索
例 12.求不选修 1号课程的学生的名字,
RANGE SC SCX
GET W (Student.Sname),SCX (SCX.Sno≠Student.Sno∨ SCX.Cno ≠‘1’)A
(9) 用两种量词的检索
例 13.查询选修了全部课程的学生姓名,
RANGE Course CX
SC SCX
GET W (Student.Sname),CX SCX (SCX.Sno=Sstudent.Sno
∧ SCX.Cno =CX.Cno)
EA
(10) 用蕴函 (Implication)的检索
例 14.求最少选修了 95002所选的课程的学生的学号,
RANGE C CX
SC SCX
SC SCY
GET W (Student.Sno),CX( SCX (SCX.Sno=‘95002’∧ SCX.Cno
=CX.Cno) SCY (SCY.Sno=Student.Sno∧ SCY.Cno =CX.Cno)E
A E
(11) 库函数 (build-in function)
库函数也称集函数 (Aggregation-function).常用的主要有,
对元组计数, COUNT 求和, TOTAL
最大值, MAX 最小值, MIN
平均值, AVG
例 15,求学生所在系的数目
GET W (COUNT(Student.Sdept))
例 16,求计算机科学系学生的平均年龄,
GET W (AVG(Student.Sage):Student.Sdept=‘CS’)
二、更新操作
(1),修改操作, 操作语句为,UPDATE
例 17,把 95004从信息系转到计科系,
解, 应先将欲修改的数据读出来,然后修改,最后送回,
HOLD W (Student.Sno,Student.Sdetp),Student.Sno =‘95004’
MOVE ‘CS’ TO W.Sdetp
UPDATE W
(2),插入操作, 操作语句为,PUT
例 18,学校新开设了一门 2学分的课程?计算机系统结构?,其
课程号为 8,直接先行课为 6号课程。插入该课程元组。
解, MOVE ‘8’ TO W.Cno
MOVE ‘计算机系统结构’ TO W.Cname
MOVE ‘6’ TO W.Cpno
MOVE ‘2’ TO W.Credit
PUT W (Course)
(3),删除操作,
操作语句为,DELETE
例 19,95035学生因故退学,删除该学生元组,
解, HOLD W (Student):Student.Sno=‘95035’
DELETE W
例 21,删除全部学生,
解, HOLD W (Student)
DELETE W
HOLD W (SC) 相应地也应删除 SC关系中的全部元组,
DELETE W
* 2.5.2 元组关系演算
元组关系演算用表达式
{t | φ(t)} 来表示,
其中 t为元组变量, φ(t)为元组关系演算公式,它由原子公式和运
算符组成,
一, 原子公式,
1,R(t).
R是关系名,t是元组变量,R(t)表示 t是 R中的一个元组,即 t∈ R.
2,t[i]θu[j],
t 和 u是元组变量,θ是算术比较符,
3,t[i]θC 或 Cθ t[i],
表示? t的第 i个分量与常量 C之间满足比较关系 θ”.
二, 公式可以递归定义
1,每个原子公式是一个公式,
2,设 φ1和 φ2是公式,则 ┐φ1,φ1∧ φ2,φ1∨ φ2也是公式,
3,若 φ是公式,t是元组变量,则 t (φ) 也是公式,
4,若 φ是公式,则 t (φ)也是公式,
5,公式中运算符的优先次序为,
( ) 算术比较符 量词 ( ) (┐ ∧ ∨ )
6,有限次地使用上述五条规则得到的公式是元组关系演算公式,
E
A
A E
元组关系表达式 {t | φ(t)},表示使 φ为真的元组集合,
三, 用关系演算表达式表示 5种关系代数的基本运算
1,并
R∪ S={ t |R( t)∨ S(t )}
2,差
R-S={t | R(t)∧ ┐S(t)}
3,笛卡尔积
4,投影
πi1,i2,…,ik (R)={t | ( u)(R(u)∧ t[1]=u(i1)∧ …t[k]=u[i k])}(k) E
5,选择
σF(R)={ t| R(t)∧ F’}
例 2,查询年龄大于或等于 20的学生,
S20={ t| Student( t) ∧ t[4]≥‘20’}
例 3,求学生姓名及所在的系
S1={t | ( u)(R(u)∧ t[1]=u[2])∧ t[2]=u[5])}(2) E
四, 举例
例 1 查询计科系 (CS系 )的全体学生
SCS={ t| Student( t) ∧ t[5]=‘CS’}
五, 元组演算表达式的安全性
当满足下列条件时,元组演算表达式 {t | φ( t)}是安全的,
1,如果 t使 φ( t)为真,则 t的每个分量是 DOM(φ)中的元素,
2,对于 φ中每一个形如 ( u) (w(u))的子表达式,若 u使 w(u)为真,
则 u的每个分量是 dom(φ)中的元素,
3,对于 φ中每一个形如 ( u) (w(u))的子表达式,若 u使 w(u)为假,
则 u的每个分量必属于 dom(φ).换言之,若 u的某一分量不属于 dom(φ),
则 w(u)为真,
E
A
例, 设有关系 R如图 2.8( a),S={t | ┐R( t)},若不进行安全限制,则可
能是一个无限关系,所以令
dom(φ)=πA(R)∪ πB( R)∪ πC(R)
={{a1,a2},{b1,b2},{c1,c2}}
则 S是 DOM(φ)中各元素的笛卡尔积与 R的差集,结果如图 2.8(b).
2.5.3 域关系演算语言 QBE
QBE是 Quey By Example的简称。它是一种高度非
过程化的基于屏幕表格的查询语言。
QBE中用示例元素来表示查询结果可能的情况,示
例元素实质上就是域变量。其操作框架如下所示。
元组属性值或查询条件
关系名
属性名关系名
操作命令
一,检索操作
例 1,求信息系全体学生姓名,
解, 这要在关系 S上查找,具体步骤是,
(1).用户提出要求,
(2).机器显示空白表格,
,(4) 系统显示该关系的
属性名,本题显示为:
(3).用户输入
关系名 Student Student
Student Sno Sname Ssex Sage Sdept
(5),用户构造查询要求, Student Sno Sname Ssex Sage Sdept
P.T IS
(6),屏幕显示查询结果 Student Sno Sname Ssex Sage Sdept李勇
张立
IS
例 2,查询全体学生的全部数据
也可以用下面的简单表示
Student Sno Sname Ssex Sage Sdept
P.95001 P.李勇 P.男 P.20 P,IS
Student Sno Sname Ssex Sage Sdept
P.
2,条件查询,
例 3,求年龄大于 19岁的学生的学号,
Student Sno Sname Ssex Sage Sdept
P.95001 >19
例 4,求计科系年龄大于 19岁的学生的学号,
查询的条件是, Sdept=‘CS’和 Sage>19两个条件的与,
(1),把两个条件写在同一行上 ;
Student Sno Sname Ssex Sage Sdept
P.95001 >19 CS
Student Sno Sname Ssex Sage Sdept
P.95001
P.95001 >19
CS
(2),把两个条件写在不同行上,但使用相同的示例元素值
例 5.查询计科系或者年龄大于 19岁的学生的学号,
Student Sno Sname Ssex Sage Sdept
P.95001
P.95002 >19
CS
例 6,查询既选修了 1号课程又选修了 2号课程的学生的学号,
例 7,查询选修 1号课程的学生姓名,
该查询涉及两个关系, SC和 Student.
SC Sno Cno Grade
P.95001
P.95001
1
2
Student Sno Sname Ssex Sage Sdept
P.95001 P.李勇
SC Sno Cno Grade
P.95001 1
例 8,查询未选修 1课程的学生姓名,
用逻辑非的查询,
例 9,求有两个人以上选修的课程号码,
在一个表内连接的查询
Student Sno Sname Ssex Sage Sdept
P.95001 P.李勇
SC Sno Cno Grade
┐ P.95001 1
SC Sno Cno Grade
95001
┐95001
P.1
1
3,集函数
CNT 对元组计数 SUM 求总和
AVG 求平均值 MAX 求最大值
MIN 求最小值
例 10,查询信息系学生的平均年龄,
Student Sno Sname Ssex Sage Sdept
P.AVG.ALL,IS
4,对查询结果排序
例 11,查询全体男生的姓名,要求查询结果按所在系升序排列,
对相同系的学生按年龄降序排列,
Student Sno Sname Ssex Sage Sdept
P,李勇 男 DO (2),AO (1),
二, 更新操作
1,修改操作 (U)
例 12,把 95001学生的年龄改为 18.
例 14,将计算机科学系所
有学生的年龄都增加 1岁,
Student Sno Sname Ssex Sage Sdept
95001 U.18 (1).将操作符? U.”放在值上,
(2).将操作符? U.”
放在关系上,
Student Sno Sname Ssex Sage Sdept
95001 U.18
例 13,把 95001学生的
年龄增加 1岁,
Student Sno Sname Ssex Sage Sdept
U.
95001
95001
17
17+1
Student Sno Sname Ssex Sage Sdept
U.
95008
95008
18
18+1
CS
3.删除操作 (D)
例 16,删除学生 95089.
2,插入操作 ( I )
例 15,把信息系女生 95701,姓名张三,年龄 20存入数据库中,
Student Sno Sname Ssex Sage Sdept
I,95701 张三 女 20 IS
Student Sno Sname Ssex Sage Sdept
D,95089
SC Sno Cno Grade
D,95089
* 2.5.4 域关系演算
域演算利用与元组关系演算相同的运算符建立,主要区别是公
式中的变量不是元组变量而是元组分量的变量,简称域变量,
一, 域演算表达的形式为,
{x1,x2,…,x k|φ(x1,x2,…,x k ) }
其中 x1,x2,…,x k是域变量,φ是由原子公式和运算符组成的公式,
二, 三类原子公式
1,R(t1,t2,…,t k ).R是 K元关系,ti是域变量或常量,R(t1,t2,…,t k )表
示由分量 t1,t2,…,t k组成的元组属于 R.
2,tiθuj ti,uj是域变量,θ是算术比较符,表示 ti,uj 之间满足比
较关系 θ.
3,ti θC 或 Cθ ti 表示域变量 ti与常量 C之间满足比较关系 θ.
三, 公式可以递归定义
1,每个原子公式是一个公式,
2,设 φ1和 φ2是域关系演算公式,则 ┐φ1,φ1∧ φ2,φ1∨ φ2也是域关
系演算公式,
3,若 φ是域关系演算公式,则 t i(φ) 也是域关系演算公式,
4,若 φ是域关系演算公式,则 t i(φ)也是域关系演算公式,
5,公式中运算符的优先次序为,
( ) 算术比较符 量词 ( ) (┐ ∧ ∨ )
6,有限次地使用上述五条规则得到的公式是域关系演算公式,
E
A
A E
域演算表达式 {x1,x2,…,x k|φ(x1,x2,…,x k ) }表示所有使得 φ为真的
那些 x1,x2,…,x k 组成的元组的集合,
四, 关系代数表达式、元组演算表达式和域关系演算
表达式的关系
1,每一个关系代数表达式有一个等价的安全的元组演算表达式,
2,每一个安全的元组演算表达式有一个等价的安全的域演算表达式,
3,每一个安全的域演算表达式有一个等价的关系代数表达式,
第二章结束