思维导图+学习笔记
关系数据模型的操作 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上分量的集合。