《关系数据模型与关系运算.ppt》由会员分享,可在线阅读,更多相关《关系数据模型与关系运算.ppt(37页珍藏版)》请在三一办公上搜索。
1、1,数据库系统基础教程,第2章 关系数据模型与关系运算,2,2.1关系数据模型,关系与关系表,形式化定义:关系笛卡尔乘积子集意义:将数据模型置于严格数学基础之上直观性描述:关系表二维平面表格意义:将数据模型置于实际背景和应用实现基础之上,第2章 关系模型与运算:2.1 关系数据模型(1),3,关系与关系表(2),基本表:实际存储数据逻辑表示特点:数据库中实际保存视图表:基本表和其他视图的导出表示特点:数据库中保存模式,不保存具体数据值查询表:用户查询结果对应表示特点:如果不提出请求,数据库中将不保存,第2章 关系模型与运算:2.1 关系数据模型(1),关系表的三种类型,4,关系与关系表(2),
2、超 键:唯一标识元组的属性集合候选键:不含多余属性的超键主 键:选定用于标识的候选键外 键:R2的主键K是R1的属性子集,则K为R1外键,第2章 关系模型与运算:2.1 关系数据模型(1),关系的键,5,关系数据结构(1),如果使用下述方式组织数据,则称定义了一个关系数据结构,第2章 关系模型与运算:2.1 关系数据模型(2),以二维平面表格表示实体集以“键”表示该实体集中实体标识和该实体集与其它实体集之间关联,6,关系数据结构(2),关系结构基本性质,第2章 关系模型与运算:2.1 关系数据模型(2),列的同质性,异列同域性,列的无序性,元组相异性,属性原子性,7,关系数据操作(1),关系查
3、询,第2章 关系模型与运算:2.1 关系数据模型(3),单个关系内元组选择,多个关系的合并,单个关系内属性指定,8,关系数据操作(2),关系更新,第2章 关系模型与运算:2.1 关系数据模型(3),元组插入,元组删除,元组修改,9,关系数据操作(3),空值处理,第2章 关系模型与运算:2.1 关系数据模型(3),限定主键不能取空值,定义空值相应运算,10,关系数据操作(4),关系操作的数学理论,第2章 关系模型与运算:2.1 关系数据模型(3),基于集合:关系代数,基于逻辑:关系演算,11,关系数据完整性约束,实体完整性约束,第2章 关系模型与运算:2.1 关系数据模型(4),数据定义中主键非
4、空,数据操作中外键约束和元组间联系约束,参照完整性约束,自定义完整性约束,数据定义中基于应用背景的属性约束,12,2.2关系代数,基于更新的代数运算,插入运算:集合的并运算,第2章 关系模型与运算:2.2 关系代数(1),设有同类关系R、S(即R、S具有相同的关系模式),则二者的并运算定义为:,RS=t|tR tS,13,合并结果中要去掉相同的行,R,S,RS,14,基于更新的代数运算,第2章 关系模型与运算:2.2 关系代数(1),删除运算:集合的差运算,设有同类关系R、S,则二者的差运算定义为:,15,R,S,RS,SR,16,修改关系R内元组内容可用下面方法实现:设需要修改的元组构成关系
5、R1,则先做删除,得R-R1。设修改后的元组构成关系R2,此时将其插入,得到结果(R-R1)R2。,第2章 关系模型与运算:2.2 关系代数(1),基于更新的代数运算,修改运算:集合的差运算与并运算,17,第2章 关系模型与运算:2.2 关系代数(2),基于查询的代数运算,属性列的制定:投影运算,设有k元关系R,其元组变量为tk=,那么关系R在其分量Ai1,Ai2,Ain(nk,i1,i2,in 为1到k之间互不相同的整数)上的投影 定义为:,18,R,B,C(R),投影的结果中要去掉相同的行,19,第2章 关系模型与运算:2.2 关系代数(2),基于查询的代数运算,元组集合的选择:选择运算,
6、设有k元关系R,条件用一命题公式F表示,则从关系R中选择出满足条件F的行定义为:,F是选择的条件:tR,F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,算术表达式:X YX,Y是属性名、常量、或简单函数是比较算符,,20,R,A5(R),A5 C=7(R),21,第2章 关系模型与运算:2.2 关系代数(2),基于查询的代数运算,关系的集成:广义笛卡尔乘积运算,设有关系R、S,其中关系R有r个属性分量、m个元组,关系S有s个属性分量、n个元组,则二者的广义笛卡尔乘积(Cartesian Product)运算定义为:,22,23,求数学成绩比王红同学高的学生,S.
7、姓名(R.成绩S.成绩 R.课程=数学 S.课程=数学 R.姓名=王红(RS(R),S(R):更名运算,将R更名为S,24,第2章 关系模型与运算:2.2 关系代数(3),2.2.3 关系代数系统,n元有序组的集合R上两个一元运算(投影和选择)和三个二元运算(并、差、笛卡尔乘积)构成一个代数系统,称之为关系代数系统,简称为关系代数。,25,第2章 关系模型与运算:2.2 关系代数(2),关系代数组合运算,1.交运算,设有同类关系R、S,则二者的交Intersection)运算定义为,RS=r|rR rS,交运算可以通过差运算来重写:RS=R(R S),26,R,S,RS,27,第2章 关系模型
8、与运算:2.2 关系代数(2),关系代数组合运算,2.除法运算,设有两个关系T和R,其元数分别为n和m(nm0),则T和R进行“除法”运算的结果记P=T R,其中P是一个元数为n-m的满足下述性质的最大关系:P中的每个元组u与R中每个元组v所组成的元组(u,v)必在关系T中。在这里,为了叙述方便,假设R的属性为T中的后m个属性。,28,第2章 关系模型与运算:2.2 关系代数(2),关系代数组合运算,除法公式,由于关系中属性的次序无关性,给定两个可以“相除”的关系T、R之后,我们能够将T中的属性按照R中属性构成的集合分成两部分:X和Y,进而将T和R分别记为T(X,Y)和R(Y),则有T R=X
9、(T)-X(X(T)R)-T),29,第2章 关系模型与运算:2.2 关系代数(2),关系代数组合运算,除法运算步骤,P=T R的具体计算步骤为:U=X(T)(计算T在X上的投影);V=(UR)-T(计算在UR中但不在T中的元组);W=X(V)(计算V在X上的投影);P=U-W(计算在U中但不在W中的元组),30,R,AB(R),S,AB(R)CD(S),AB(R)CD(S)-R,R S=,-,=,31,注意:被除关系不能含多余属性,否则结果不一样。所以根据情况,可以先对被除关系作投影运算,选修了全部课程并且成绩都相同的学生,选修了全部课程的学生,32,第2章 关系模型与运算:2.2 关系代数
10、(2),关系代数组合运算,3.连接运算连接,设有关系R、S,为算术比较符,i为R中某一属性列的编号,j为S中某一属性列的编号,ij为一个算术比较式。关系R,S在域i,j上的-连接(-Join)就是从R和S的笛卡尔乘积中选取满足条件“ij”的元组,其定义为:,33,R S,B D,R,S,34,第2章 关系模型与运算:2.2 关系代数(2),关系代数组合运算,3.连接运算F连接,设F为形如F1F2Fn的公式,其中每个Fk(1kn)都是形如ij 的算术比较式。F-连接(F-Join)是从R和S的笛卡尔乘积RS中选取满足F的元组,其定义为:,35,第2章 关系模型与运算:2.2 关系代数(2),关系代数组合运算,3.连接运算自然连接,若R和S具有相同的属性组A=A1,A2,An,而B为R中属性集合和S中属性集合的并集合(相同属性只能算一次)则关系R和S的自然连接定义记为:,36,37,关系代数查询实例,以书P43关系数据库(s,sc,c)为例,用关系代数表示以下查询语句检索学习课程号为c2的学生学号和成绩检索学习课程号为c2的学生学号和姓名检索学习课程名为maths的学生学号和姓名检索学习课程号为c2或c4的学生学号检索至少学习课程号为c2和c4的学生学号检索没有学习课程号为c2的学生姓名和年龄检索所学课程包含了学号为s3同学所学所有课程的学生学号,