关系模型和关系运算.ppt

上传人:小飞机 文档编号:5928601 上传时间:2023-09-05 格式:PPT 页数:80 大小:490.50KB
返回 下载 相关 举报
关系模型和关系运算.ppt_第1页
第1页 / 共80页
关系模型和关系运算.ppt_第2页
第2页 / 共80页
关系模型和关系运算.ppt_第3页
第3页 / 共80页
关系模型和关系运算.ppt_第4页
第4页 / 共80页
关系模型和关系运算.ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《关系模型和关系运算.ppt》由会员分享,可在线阅读,更多相关《关系模型和关系运算.ppt(80页珍藏版)》请在三一办公上搜索。

1、第 一 章 关系和关系模型,主要内容:数据模型关系和关系模式键关系的更新,数据模型的组成要素:数据结构、数据操作、数据的完整性基本的数据模型分类:层次、网状、关系数据模型、面向对象数据模型,1.1 数据模型,1.1.1数据模型的组成要素,(l)数据结构:用于描述数据的静态结构,包括应用所涉及的对象类和对象类所具有的特性以及它们之间的联系。(2)数据操作:是施加在对象上的一组操作,是对系统动态特性的描述。(3)数据的完整性:是对数据静态和动态特征性的限制,是一组完整性规则的集合。完整性规则是用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。,1.层次模型有且仅有一个结

2、点无双亲,称为根结点;其它结点有且仅有一个双亲。层次模型的数据结构是一棵树。,1.1.2 基本数据模型分类,大学组织机构的层次模型,2.网状模型,允许一个结点可以有多个双亲;多个结点无双亲结点。,基本结构是二维表,一张表称为一个关系。与层次和网状模型比较,关系模型有下列优点:数据结构单一;建立在严格的数学概念基础上;将数据定义和数据操纵统一在一种语言中,使用方便,易学易用。由于关系模型具有许多优点,因而 在80年代之后的商品化数据库系统几乎都是关系型的。所以关系数据库是本课程的主要研究内容之一。,3.关系数据模型,(a)学生关系,(b)教师开课关系,可以表示复杂对象;模块化的结构,便于管理;具

3、有定义抽象数据类型的能力。面向对象的数据模型是新一代数据库系统的基础,是数据库技术发展的方向。,4.面向对象数据模型,1.2 关系和关系模式1.2.1 关系 在关系模型中唯一的数据结构是关系,一个关系对应一张二维表。域:具有相同数据类型的值的集合。定义1(笛卡尔积):D1,D2,.,Dn的笛卡尔积为:D1D2.Dn=(d1,d2,.,dn)diDi,i=1,2,.,n。其中每一个元素(d1,d2,.,dn)叫做一个n元组(n-tuple),元素中第i个值di叫做第i个分量。,例:设D1=1,2,3,D2=a,b D1D2=(1,a),(1,b),(2,a),(2,b),(3,a),(3,b),

4、实际上,如D1学生集(50个),如D2班级集(2个),D1 D2 有多少元素?意义?定义2(关系):集合D1,D2,.,Dn笛卡尔积的任一个子集称该集合上的一个关系(Relation)。其中,集合D1,D2,.,Dn是关系中元组的取值范围,称关系的域(domain),这些域是有限的非空集合,n叫做关系的度(degree)。,关系的基本概念关系(Relation)二维表,关系用关系名标识,如关系r。元组(Tuple)表中的行,一般用变量 t 表示。属性(Attribute)表中的一列,如列Ai,domAi表示属性Ai的域 键(Key,码)可以唯一地确定一个元组的属性组。关系举例:火车时刻表,do

5、m(NUMBER)=565,523,532,K95,K96 dom(FROM)=dom(TO)=BeiJing,XuZhou,ShenZhen dom(DEPARTS)=dom(ARRIVES)=一组时间。,表1 火车时刻表,关系的性质(关系数据库中对关系的限定)1.每一列中的值是同类型的数据,来自同一个域。2.不同的列可以有相同的域,每一列称为属性,用属性名标识。3.列的顺序是无关紧要的。4.任意二个元组不能完全相同。(相同元组称重复组)5.行的顺序是无关紧要的。6.关系中的每个分量都是原子值,是不可分的数据项。,1.2.2 关系模式 关系模式一般表示为:关系名(属性1、属性n)如:R(A1

6、,A2,An)。用U表示关系R的属性集合 U=A1A2An,模式R上的一个关系r是从U到D的映象。元组tr,t的分量用tAi表示.tAiDi例:在学生关系模式 S(SNO,SNAME,AGE,SEX,CNO)中,当CNO=1,就可以一班学生的列表,即一个具体的关系;当CNO=2,就可以二班学生的列表,即另一个具体的关系。,定义(关系数据库模式):设属性集U和U的属性所关联的域为D,U上的关系数据库模式R是 R1,R2,Rp 的集合,即:R=R1,R2,Rp,且U=R1 R2 Rp。比如:R1为学生关系:S(Sno,Sname,Sbirth,Dept,Class,Rno)R2为班级关系:C(Cl

7、ass,Pname,Dept,Cnum,Cyear)R3为系关系:D(Dept,Dno,Office,Dnum)R4为学生会 关系:M(Mname,Myear,Maddr,Mnum)关系数据库:一个关系数据库模式R 对应的所有关系集合 r1,r2,rp称为关系数据库模式R上的一个关系数据库d.,关系模式和关系的区别和联系:,关系模式:对一类实体特征的结构性描述,即对关系的结构性描述,该描述一般包括关系名、属性名、属性域的类型和长度,属性之间固有的依赖联系等。关系模式和关系的区别和联系:关系模式描述的是关系的静态结构信息,是对一个关系的“型”的描述,是相对固定的。关系是在关系模式约束之下的若干实

8、体的集合,实体的数量是随时间变化的,但这种变化必定在关系模式的约束范围内。一般用大写字母表述关系的结构,比如R,用小写字母一个具体的关系值,如r.,1.3 键(Key)和关系的完整性 1.键 设关系模式R(U),K U,r是R上的任一关系,若对r中的任意二个不同的元组t1、t2满足:(1)t1K t2K;(2)若 K K 而t1K t2K 不成立。称K是R的键。若仅条件(1)成立,K是R的超键。有键的定义得出:键是能唯一标示元组的最小属性集。在上面火车时刻表的例子中,NUMBER是一个键。,2.主键、隐含键、候选键、超键,主键:有的关系具有多于一个键,这种情况下指派其中一个键为主键,简称为关系

9、的键。用带下划线的属性表示。例如:TRAIN(NUMBER,FROM,TO,DEPARTS,ARRIVES)TRAIN(NUMBER,FROM,TO,DEPARTS,ARRIVES)隐含键:未被制定的键称隐含键,也称替补键。候选键:主键和隐含键统称为候选键。超键:在上面键的定义中,若条件(2)不成立,称K为R的超键。例如:NUMBER、FROM是一个超键。,3.关系的完整性,实体完整性 关系中键属性的值不能取空值。例如:学生关系 S(SNO,SNAME,AGE,SEX,CNO)参照完整性 是关系间引用所遵循的规则,与外键有关。用户定义的完整性 数据间应满足的语义约束关系,由用户定义,由系统检查

10、。,(2)完整性约束,下下页,参照完整性规则 关系R中外键的值或者为空值,或者为被参照关系中主键的值。,建立表结构和完整性约束,补充:SQL语言简介 SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言将数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能集于一体,可以独立完成数据库生命周期中的全部活动.SQL被作为关系型数据库管理系统的标准语言。目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL语言标准。基本的SQL语句包括Select、I

11、nsert、Update、Delete、Create、Drop,它们可以被用来完成几乎所有的数据库操作。很多数据库根据不同的需要对SQL语句进行了再开发和扩展。,SQL的基本语句,1.创建新表 create table tabname(col1 type1 not null primary key,col2 type2 not null,.)例:CREATE TABLE C(CNO NUMBER(6),CMN CHAR(10))2.选择select*from table1 where 范围 例:SELECT SNO,SNAME FROM S WHERE CNO=2002013.插入insert

12、 into table1(field1,field2)values(value1,value2)例:INSERT INTO S VALUES(909901,李利,21,男,200205);,4.删除delete from table1 where 范围 例:DELETE FROM S WHERE SNO=20100162;5.更新(修改)update table1 set field1=value1 where 范围 例:UPDATE S SET Sage=23 WHERE Sno=20100162 完成核心功能SQL语言只用9个动词,并且它的表达接近英语句子,所以比较简单、易学。SQL语言既

13、是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言,比如:C、PL/1、FORTRAN。,CREATE TABLE S(SNO NUMBER(4),SNAME CHAR(10)NOT NULL,AGE NUMBER(3),SEX CHAR(1),CNO NUMBER(6),CONSTRAINT SK1 PRIMARY KEY(SNO),CONSTRAINT SK2 FOREIGN KEY(CNO)REFERENCES C(CNO),CONSTRAINT SK3 C

14、HECK(AGE IN(16,45);,CREATE TABLE C(CNO NUMBER(6),CMN CHAR(10),CONSTRAINT CK PRIMARY KEY(CNO);,1.4 关系的更新插入、删除、修改,1插入 对关系r(A1,A2,An),插入操作形式为:ADD(r;A1=d1,A2=d2,An=dn)ADD(r;d1,d2,dn)例:ADD(S;SNO=909901,SNAME=李利,AGE=21,SEX=男,CLASSNO=200205),插入操作的有效检查:(1).描述的元组是否符合所指定的关系模式;(2).元组的某些值是否属于对应的域;(3).元组的键是否已在关系

15、中存在。,例:用SQL语言实现在学生关系S中插入一个元组。INSERT INTO S VALUES(909901,李利,21,男,200205);,2删除 对关系r(A1,A2,An),删除操作形式为:DEL(r;A1=d1,A2=d2,An=dn)DEL(r;d1,d2,dn);若K=B1B2Bm,DEL(r;B1=k1,B2=k2,Bm=km)例:DEL(S;SNO=909901,SNAME=李利,AGE=21,SEX=男,CLASSNO=200205),删除操作的检查:如果被删除元组在关系中不存在,这个关系将保持不变,但需给出一个出错提示。*删去最后一个元组不受限制,即允许是空关系。,实

16、际上,为了识别被删除的元组并不需要所有元组的信息,只需要制定键的值就足够了。比如:删除学号为909901的学生元组 DELETE FROM S WHERE SNO=909901;,3修改 修改元组的部分值。对关系r(A1,A2,An),若属性集 C1,C2,Cp A1,A2,An,则修改操作形式为:CH(r;A1=d1,A2=d2,An=dn;C1=e1,C2=e2,Cp=ep)如果KB1,B2,Bm为键,则可简化为:CH(r;B1=k1,B2=k2,Bm=km;C1=e1,C2=e2;Cp=ep)例:CH(S;SNO=909901;CLASSNO=200203),修改操作可用删除操作后跟一个

17、插入操作实现。对插入和删除操作的限制可运用到修改操作中。,例:施加一系列操作于火车时刻表 1.ADD(train;33,TianJin,ShangHai,17:20,10:36);2.ADD(train;Y15,BeiJing,TianJin,10:05,12:43);3.DEL(train;523);4.CH(train;NUMBER=532;DEPARTS=22:45,ARRIVES=10:42)。,火车时刻表,练习,2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点

18、、人数。学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,指出各关系模式的候选键和外键。,练习解答,解:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)班级:C(Class,Pname,Dept,Cnum,Cyear)系:D(Dept,Dno,Office,Dnum)学会:M(Mname,Myear,Maddr,Mnum)(2)各关系模式的候选键、外部键如下:A、学生S候选

19、键:Sno;外部键:Dept、Class;B、班级C候选键:Class;外部键:Dept;C、系D候选键:Dept或Dno;无外部键;D、学会M候选键:Mname;无外部键。课后练习:如何用SQL来创建该数据库?(建议没有学过数据库的同学在自学SQL后练习一下),第二章 关 系 运 算,本章的主要内容:布尔运算选择 投影 连接 除,2.1 布尔运算,关系可以看做元组的集合,那么集合的并、交、差等布尔运算算都可以用到关系中。关系的布尔运算包括:并、交、差、广义笛卡尔积、补、有效补。,同类关系:若R和S是同类关系,则满足如下条件:(1)R和S具有相同的度;(2)R和S的对应属性定义在同一个域上。同

20、类关系也称相容运算,布尔运算大多是在同类关系中进行。,并(Union)关系R和S的并其结果由属于R或属于S的所有元组组成,其结果为一个新关系。记为:Q=RS=t|t R 或 t S,交(Intersection)关系R和S的交其结果由既属于R又属于S的所有元组组成。记为:Q=RS=t|t R 且 t S,差(Difference)关系R和S的差由属于R但不属于S的所有元组组成。记为:Q=RS=t|t R 但 t S,例子:RS,R,S,RS,例子:R-S,例子:R S,例:并运算的SQL实现查询200201班的学生和年龄超过23岁的学生姓名。SELECT SNO,SNAME FROM S WH

21、ERE CNO=200201UNIONSELECT SNO,SNAMEFROM S WHERE AGE 23;*INTERSECT(交)、MINUS(差),广义笛卡尔积 的例子:,R,S,R S,有学生关系S(Sno,Sname,Sage)和 选课关系SC(Sno,Cno,Grade)SELECT S.*,SC.*FROM S,SC,例:广义笛卡尔积的SQL实现,补(Complement)关系模式R(A1,A2,An),R上的关系r。补运算:设dom(R)表示模式R上的所有元组的集合,则关系r的补为:r=dom(R)r,例:设R(A,B),dom(A)=a1,a2,a3,dom(B)=b1,b

22、2 R上的关系r和r的补r 如下所示。,r(A B)r(A B)a1 b1 a2 b2 a1 b2 a3 b1 a2 b1 a3 b2,例:设R(A,B,C),dom(A)=a1,a2,dom(B)=整数的集合,dom(C)=c1,c2。求r的补。,r(A B C)a1 1 c1 a1 2 c2 a2 1 c1 a2 2 c1 a2 3 c2,有效补 关系模式R(A1,A2,An),属性Ai的有效值域:adom(Ai,r)=d|dDi,存在tr且tAi=d 定义r的有效补为:,有效补的应用:当关系元组数比其有效补元组数多得多时,有效补可作为数据压缩手段。例如:学生选课,一个班有50个学生选数据

23、库课,3个学生不选,则存储选修了数据库课的学生可用存储其有效补实现。,练习,1.设R(A,B,C),dom(A)=a1,a2,dom(B)=b1,b2,b3,dom(C)=c1,c2 r(A B C)a2 b3 c1 a2 b1 c1 a2 b2 c1 a1 b1 c1求:r 的补和有效补,从关系中选择在指定属性上有确定值的关系的子集。表示为:Aa(r)ttr 且tA=a。选择运算是选择关系中行的子集,即选择满足条件元组。,例:在下面关系train中 求:FROMbeijing(train);DEPARTS16:55(train),2.2 选择(Select),(2)可分配 A=a(rs)=A

24、=a(r)A=a(s)其中、或,且r和s是同类关系。广义选择:A a(r)t|tr且tA a 其中为、。,选择运算的特性,设r(R)是一个关系,A和B为R的属性。(1)可交换 A=a(B=b(r))B=b(A=a(r)。例:学生关系中,A=2011年入学,B=信息学院,2.3 投影(Project)投影是选取关系中列的子集。设模式R上关系r,X是R上属性的子集,r到 X上的投影r表示为:r(X)=x(r)=tX|tr。投影的结果不是原来的关系,是X中几列属性。*如果X中不包含R的键,则选取的列中会出现重复元组,r(X)中应不包含重复元组。例:Sno,Sname(S);Cno(S),投影的特性:

25、,投影的串接 给定关系r(R),且Y X R,则:Y(X(r)=Y(r)对一串投影而言,若X1 X2 Xm R,则:X1(X2(Xm(r)X1(r)投影和选择的可交换性 设r是R上的一个关系,AX,X R,则下式成立:X(A=a(r)=A=a(X(r),SELECT SNO,SNAME FROM S WHERE CNO=200401,投影,选择,检索200401班学生的姓名。,2.4 连接(Join),R,S,例子:求R和S自然连接,连接运算:有学生关系S和课程关系C.SELECT SNO,SNAME,S.CNO,CMN FROM S,C WHERE S.CNO=C.CNO,A.a,连接的特性

26、:,A.a1 a2 ak,多元连接 可连接:设关系s1(S1),s2(S2),sm(Sm),t1,t2,tm为元组序列,且tiSi,1im。又R=S1S2Sm。若在r(R)上存在一个元组t,使得ti=tSi,1im,则称元组序列t1,t2,tm在R上是可连接的。,a1 b2 c1,2.4.2 _连接(Theta_Join)_连接:设r(R)和s(S)为两个关系,且AR,BS,dom(A)=dom(B),r和s在A和B上的_连接写作:rABs 设Q=RS,则_连接可用下式表示:qQ=t|tq,trr&tss&tR=tr&tS=ts&tAtB 其中为比较符:、示例,R,S,例子:,R S,CE,等

27、值连接 R S,R.B=S.B,学生关系 S(SNO,SNAME,AGE,SEX,DEPTNO)专业系 DEPT(DEPTNO,DNAME)选择运算:SNAME=LiMing(S);投影运算:SNO,SNAME,DEPTNO(S);连接运算:S DEPT,示例:,思考:在第一章的建立数据库例子中,如何通过学号查该学生的入学年份和所学专业?如何通过系号查该系同学所住的宿舍区?如何通过学号查该学生所在系的的办公地点?,建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会

28、:学会名、成立年份、办公地点、人数。学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)班级:C(Class,Pname,Dept,Cnum,Cyear)系:D(Dept,Dno,Office,Dnum)学会:M(Mname,Myear,Maddr,Mnum),2.5 除法(Division)即:对每一元组tss都存在一元组trr,使得trR=t 且trs=ts设rs 得到的新关系其属性集为X,则除法可用下式表示:R(X,Y)S(Y)=X(R)X(X(R)S R)即 rs是满足下列条件的最大关系:rs的每个元组t与s中每个元组u组成的元组必在关系r中。,定义除:设关系r(

29、R)和s(S),且S R。令R=RS,除运算rs 的结果为一个新关系 r,记作:rs=r(R)=t|tr且trr,tss,t=trR&trS=ts,t s r,909803,除法运算:SC C,78,第1次作业(作业要求纸质),1.设关系r和s如下:r(A B C)s(B C D)a2 b3 c2 b1 c1 d1 a2 b1 c1 b2 c1 d1 a2 b2 c1 b2 c2 d1 a1 b1 c2 计算下列表达式的值:(1)A=a2(r);(3)B(r)(2)设A=a1,a2,B=b1,b2,b3 C=c1,c2,D=d1,d2,求r 和s 的补和有效补,79,2.设关系r和s如下:r(A B C)s(B C D)2 4 6 5 7 3 3 5 7 4 6 2 7 4 6 5 7 9 5 4 7 5 6 3 求 r 与s的自然连接。,80,3.关系R和S如下表所示,求RS关系R 关系S A B C D C D a1 b1 c1 d1 c1 d1 a1 b1 c2 d2 c2 d2 a1 b1 c3 d3 a2 b2 c2 d2 a3 b3 c1 d1 a3 b3 c2 d2,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号