![]()
关系数据模型的操作
1、查询
选择、投影、连接、除、并、交、差
2、数据更新
插入、删除、修改
一.关系代数(概述)
一种抽象的查询语言
用对关系的运算来表达查询
关系代数运算的三个要素
运算对象:关系
运算结果:关系
运算符:四类
1、集合运算符
将关系看成元组的集合
运算是从关系的“水平”方向即行的角度来进行
2、专门的关系运算符
不仅涉及行而且涉及列
3、算术比较符
辅助专门的关系运算符进行操作
4、逻辑运算符
辅助专门的关系运算符进行操作
二、传统的集合运算
在这里,共有并,差,交和笛卡尔积四种运算。
1. 并集(Union)
R∪S=${t|t∈R∧t∈S$}
R∪S=${t|t∈R∧t∈S$}
2. 交集 (Difference)
R∩S=${t|t∈R∨t∈S$}
R∩S=${t|t∈R∨t∈S$}
3. 差集 (Intersection)
R−S=${t|t∈R∧t∉S$}
R−S=${t|t∈R∧t∉S$}
4. 笛卡尔积 (Extended Cartesian Product)
即分别将两个集合中的元素组合
三、专门的关系运算
(1)选择(Selection)
在关系R中选择满足给定条件的诸元组
[例] 查询年龄小于20岁的患者
σSage < 20(patient)
或 σ4 < 20(patient)
(2)投影(Projection)
从R中选择出若干属性列组成新的关系
πA(R) = { t[A] | t R }
[例] 查询患者的姓名和所在科室
即求patient关系上患者姓名和所在科室两个属性上的投影
πSname,Sdept(patient)
或 π2,5(patient)
(3)连接(Join)
从两个关系的笛卡尔积中选取属性间满足一定条件的元组
(4)除(Division)
给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。
R中的Y与S中的Y可以有不同的属性名,但必须出自相同
的域集。R与S的除运算得到一个新的关系P(X),P是R中
满足下列条件的元组在X属性列上的投影:元组在X上分
量值x的象集Yx包含S在Y上投影的集合。
四、表示记号
(1) R,t属于R,t[Ai]
设关系模式为R(A1,A2,…,An)
它的一个关系设为R。tR表示t是R的一个元组t[Ai]则表示元组t中相应于属性Ai的一个分量
(2)A,t[A], A
若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。
(3) tr并 ts
R为n目关系,S为m目关系。trR,ts属于S, tr属于ts称为元组的连接。它是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组
(4)象集Zx
给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(Images Set)为:
Zx={t[Z]|t R,t[X]=x}
它表示R中属性组X上值为x的诸元组在Z上分量的集合。