数据库系统概论第二章.ppt

上传人:牧羊曲112 文档编号:6296579 上传时间:2023-10-14 格式:PPT 页数:66 大小:461.50KB
返回 下载 相关 举报
数据库系统概论第二章.ppt_第1页
第1页 / 共66页
数据库系统概论第二章.ppt_第2页
第2页 / 共66页
数据库系统概论第二章.ppt_第3页
第3页 / 共66页
数据库系统概论第二章.ppt_第4页
第4页 / 共66页
数据库系统概论第二章.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《数据库系统概论第二章.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论第二章.ppt(66页珍藏版)》请在三一办公上搜索。

1、1,第2章 关系数据库,关系模型具有严格的数学基础,应用数学方法处理数据库中的数据,奠定关系数据库理论基础的人是美国IBM公司的。模型的提出是在1970年,的一篇论文“A Relational Model of Data for Shared Data Banks”开创了数据库系统的新纪元,系统、严格的提出了关系模型。20世纪70年代末关系方法的理论研究已经取得了很大的成果,其中,有两大研究机构及其试验系统,一个是IBM公司的System R系统,另一个是美国加州大学伯克利分校的INGRES系统。1981年关系数据库的软件产品就问世了。目前主流的商业数据库系统Oracle,Informix(I

2、BM收购),Sybase,SQL Server,DB2Access,Foxpro,Foxbase,2,关系模型的组成 关系数据结构(实体及实体间的联系均用二维表来表示)关系操作(查询及增、删、改操作两大部分)关系代数语言 元组关系演算语言(ALPHA,QUEL)关系数据语言 关系演算语言 域关系演算语言(QBE)关系代数和关系演算结合的语言(SQL)关系的完整性(实体完整性,参照完整性,用户定义完整性),3,2.1 基本概念2.1.1 域(domain)一组具有相同数据类型的值的集合。例:整数,实数,500的整数,性别(男、女)、字符串。2.1.2 笛卡尔积(Cartesian product

3、)1.定义给定一组域D1,D2,Dn,则其笛卡积为:D1 D2 Dn=(d1,d2,dn)dnDj,j=1,2,n2.说明1)(d1,dn)为集合中的一个元素,称为n元组(ntuple),简称元组。2)元组中每个值di称为分量,4,3)集合中元素无序a,b,c=b,a,c=c,b,a4)元组中分量有序(a,b,c)(b,a,c)属性及其值的对应性。5)笛卡尔积称为一个二维表例 设有三个域:D1=男士集合=刘英,刘加D2=女士集合=白雪,白灵D=儿童集合=刘学,刘水,刘牛则D1,D2,D3的笛卡尔积为如下一张二维表:,5,6,2.1.3 关系1.定义D1 D2Dn的任意子集称为在域D1,D2,D

4、n上的关系。记为:R(D1,D2,Dn)2.说明1)R为关系名,n为关系的目或度(degree);2)关系是一张二维表;3)可多个候选KEY(candidate key);4)任选候选KEY之一为主码(primary key)。例:可从上表中取出一个有意义子集作为一个关系,7,2.1.4 外码(internal key)对于R1和R2,A1,An为其属性子集,若A1,A2,An不是R1的码,但它是R2的码,则称A1,An为R1的外码。Student(XH,XM)Course(KH,KM)SC(XH,KH,CJ)SC中的XH,KH为外码。2.1.5 关系模式(Relation Schema)1.

5、定义关系的描述:R(A1,An)即:R(U,D,DOM,F)R:关系名。U:R中的属性名序列。D:域(取值范围)。DOM:属性到域的映象集(属性类型、长度)。F:属性间数据依赖关系。,8,2.1.6 关系数据库1.型:若干关系模式的集合(内含)。2.值:某一时刻每个关系模式对应的具体关系集(外延)。2.1.7 视图(View)2.1.8 关系的完整性1.实体完整性(Entity integrity)主码属性不能为空。2.参照完整性(Referential integrity)若关系R1中含有另一个关系R2中主码的属性组F(R1的外部KEY),则对于R1的每个无组在F上的值必须满足:1)空,或2

6、)等于R2中某个元组的主码值,9,例:EMPL(ENO,ENAME,DNO)DEPT(DNO,DNAME)则对于EMPL中每个DNO的值必须为:取空(说明该职工还未分配到某部门)DEPT中某个元组的DNO值(该职工不可能分配到一个不存在的部门)3.用户定义完整性(user-defined integrity)用户定义的约束。跳高100米,人手2只,10,2.2 关系代数2.2.1 概述1、含义:用对关系的运算来表达查询的一种传统方式。2、分类:1)传统集合运算并(),交(),差(),笛卡尔积()2)专门的关系运算投影(),选择(),连接(),除()3、运算符1)集合运算符:、2)专门运算符:、

7、3)比较运算符:、4)逻辑运算符:、5)括号运算符:(),11,4、特殊记号1)设有关系模式R(A1,A2,Ai,An)则:tR:t是R的一个元组。t Ai:元组t中相应属性Ai的一个分量。,12,2)设 A=Ai1,Ai2,Aik,Ai1,Ai2,Aik是A1,A2,An中的一部分,则:A:属性列或域列。A:A1,A2,An中去掉(Ai1,Ai2,Aik)后剩余的属性组。tA=(tAi1,tAi2,tAik):元组t在属性A上诸分量的集合3)设R为n目关系,S为m目关系,则:trR,tsS:R和S的元组的连接,结果是一个n+m列元组;前n个分量是R的一个n元组;后m个分量是s的一个m元组,又

8、称元组的连串(Concatenation)。,13,4)设有关系R(X,Z),X、Z为属性组,则:当tX=x时,x在R中的象集(images set)为:Zx=tZ|tR,tX=x表示:R中属性组X上值为x的诸元组在Z上分量的集合。例:R为(学号,课程)设X为学号,则Z为课程,求x1的象集。,14,2.2.2 传统集合运算1.并(union)1)定义:设有关两个n目关系R、S,则RS表示是由属于R或属于S的元组组成。2)特征结果为n目关系:RS=t|tRtS;参入运算对象为两个关系;R、S属性同类(取自同一个域);相同元组取其一;从“行”上取值。,15,例:R S,16,则RS结果为:R S,

9、17,3)作用:将一个新元组集加入到原关系中去。2、交(intersection)1)定义:设有两个n目关系R、S,RS是由既属于R同时又属于S的元组组成。R S,18,2)特征结果为n目关系:RS=t|tRtS;参入运算为两个同目关系;R、S属性同类;从“行”上取值。,19,3)作用:从两个关系中找出相同元组。3、差(difference)1)定义:设有两个n目关系R、S,则R-S是由属于R不属于S的元组组成。R S,20,2)特征结果为n目关系:R-S=t|tRts;参入运算为两个同目关系;R、S同类;从“行”上取值。3)作用:从一个关系中删去某些元组。4、笛卡尔积(Cartesian p

10、roduct)1)定义:设R为n目关系,S为m目关系,则RS是一个由R和S的所有元组连接在一起而组成的(n+m)列的元组集合。每一元组的前n个列是R的一个元组,后m列是s的一个元组。,21,RS,22,2)特征结果为(n+m)目关系:RS=tr,ts|trRtss;参入运算为两个关系;R、S不同类(实际上);从“行”上取值。3)作用:将两个关系按元组连接组成一个新关系。,23,2.2.3 专门的关系运算1、选择(selection)1)定义:从指定关系R中选取满足条件的元组集的运算。记作:F(R)=t|tRF(t)=真 F:逻辑表达式(选择对象应满足的条件),一般表示为:X1Y1 X2Y2 X

11、1,Y1:属性|常量|简单函数|列顺序号:比较运算符:、:逻辑运算符:、:任选标识符,其中内容可有可无 A12,B=田野,3=8B5(R),24,设:,25,26,例1 查计算机系学生,27,例2 查学分3分的课程,28,例3:查成绩大于80或等于70的学生选课信息,29,2)说明参入运算只能一个关系;从行上取值。2、投影(projection)1)定义:从指定关系R中选出若干属性列的运算。记作:A(R)=tAtRA:R中的若干属性列名或列顺序号。,30,例3:查学生的姓名和年龄。XM,YL(Student)或2,4(Student),31,例4:查招有学生的系有哪些DM(Student)或4

12、(Student),2)说明:参入运算一个关系;从列上取值。,32,3、连接(Join)1)定义:从两个指定关系R和S中选取满足给定条件的元组的运算。记为:元组的连串(Concatenation)若r=(r1,rn),s=(s1,sm),则定义r与s的连串为:rs=(r1,rn,s1,sm),33,设有如下关系R和S:,2)说明运算步骤:笛长尔积取条件满足者,34,例5,笛卡尔积(RS):,35,取其中CE的元组:,参入运算为两个关系;参入运算关系不一定同目;从行上取值。3)等值连接(equi-join)仅为“=”的连接运算,36,4)自然连接(Natural join)参入运算的指定关系R和

13、S中用于比较的分量必须是相同的属性集,且结果值中去掉重复属性的运算。必须含公共属性如R和S中的B。运算步骤:计算RS;选出比较值相等的元组;去掉重复属性。,37,例6:上例中的RS结果:笛卡尔积同上取B(R)=B(S)的元组,38,去掉重复属性B之一:,4、除(division)1)定义:给定关系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上投影的集合。,39,记作:RS=tr X|trRYx Y(S)其中:Yx:X

14、在R中的象集,X=tr X,40,例6:有如下关系R、S:,则 RS=a1,41,R S R S,42,与除法的定义相对应,本题中X=A,B=(a1,b2),(a2,b4),(a3,b5),Y=C,D=(c3,d5),(c4,d6),Z=Ff3,f4。其中,元组在X上各个分量值的象集分别为:(a1,b2)的象集为(c3,d5),(c4,d6)(a2,b4)的象集为(c1,d3)(a3,b5)的象集为(c2,d8)S在Y上的投影为(c3,d5),(c4,d6)显然只有(a1,b2)的象集包含S在Y上的投影,所以RS=(a1,b2),43,5种基本运算并、差、笛卡尔积、投影、选择其它运算交、连接、

15、除均可用5种基本运算来表达,引进它们并不增加语言的能力,但可以简化表达RS=R(R S)R S=属性列表(相同的属性列值相等(R)(RS)R S=X(R)X(X(R)Y(S)R),44,R,AB(R),S,AB(R)CD(S),AB(R)CD(S)-R,R S=,-,=,例:RS=X(R)X(X(R)Y(S)R),45,关系代数中,这些运算经有限次复合后形成的式子称为关系代数表达式例:设有关系教师(工作证号、姓名、性别、出生年份、职称、所在院系)TL(TNO,TNAME,TSEX,BYEAR,RANK,DEPT);教学记录(工作证号、开课时间、课号、课时)CR(TNO,CTIME,CNO,CN

16、UM);DEPT=计算机(TL),DEPT=自控(TL),RANK=讲师(TL),BYEAR1965(TL),,TNO,TNAME,TSEX,DEPT(CNO=001(DEPT=计算机(TL)DEPT=自控(TL))RANK=讲师(TL)-BYEAR1965(TL))CR),46,3.应用实例 设教学数据库有三个关系:学生关系S(学号,姓名,性别,年龄,所在系)(Sno,Sname,Ssex,Sage,Sdept)课程关系C(课程号,课程名,先修课,学分)(Cno,Cname,Cpno,Ccredit)学习关系SC(学号,课程号,成绩)(Sno,Cno,Grade)下面用关系代数表达式来表达一

17、些查询语句。确定已知条件所在的关系写这样语句的步骤 确定输出内容所在的关系 写出查询条件的表达,47,例1:查询学习课程号为C2的学生学号和成绩(涉及一个关系)。,sno,grade(cno=c2(SC)),例2:查询学习课程号为C2的学生学号和姓名(涉及两个关系)。,sno,sname(cno=c2(S SC)),例3:查询选修了课程名为“数据库”的学生学号和姓名(涉及三个关系)。,sno,sname(cname=数据库(S SC C)),例4:查询选修了课程号为C1或C2的学生学号。,sno(cno=c1 cno=c2(SC)),48,例5:查询至少选修了课程号为C2和C4的学生学号。,例

18、6:查询不学C2课程的学生姓名、年龄。,sno(1=42=C25=C4(SCSC)),sname,sage(S)-sname,sage(cno=C2(S SC)所有学生 学了C2的学生,例7:查询选修了所有课程的学生姓名、年龄。,sname,sage(S(sno,cno(SC)cno(C)))求学了全部课程课学生学号,例8:查询所学课程包含了学生S2所学课程的学生学号。,sno,cno(SC)cno(sno=s2(SC),49,2.3关系演算以数理逻辑中的谓词演算为基础元组关系演算,例ALPHA域关系演算,例QBE 2.3.1 元组关系演算形式化定义 t|P(t)表示所有使谓词P为真的元组集合

19、t为元组变量如果元组变量前有“全称”()或“存在”()量词,则称其为约束元组变量,否则称为自由元组变量P是公式由原子公式和运算符组成,50,原子公式tR,写成R(t)t是关系R中的一个元组ti ujti与uj为元组分量,他们之间满足比较关系,元组t的第i个分量与元组u的第j个分量满足比较关系ti c分量ti与常量c之间满足比较关系,51,公式的递归定义原子公式是公式若P是公式,那么P也是公式若P1,P2是公式,则P1 P2,P1 P2,P2也是公式若P1,P2同时为真,则P1 P2 为真,否则为假;若P1,P2同时或有一个为真,则P1 P2 为真,仅当同时为假,则P1 P2 为假;若P1 为真

20、,则 P1为假。如果P是公式,则t(P)也是公式如果P是公式,则t(P)也是公式运算优先级(从高到低)算术比较运算符最高量词次之,高于逻辑运算符:,括号优先,52,元组演算表达式举例:t|S(t)tA 2S中A属性大于2的元组的集合 t|R(t)S(t)R中不在S中出现的元组的集合 t|(u)(S(t)R(u)tC uA)R中满足下述条件的元组的集合:C属性大于S中每个元组的A属性的值。,53,任何一个关系代数表达式都可等价地表示成元组关系演算表达式.关系代数中的5种基本运算用元组关系演算表示为:RS=t|R(t)S(t)对应于:RS=t|tR(t)tS(t)R S=t|R(t)S(t)对应于

21、:R S=t|tR(t)tS(t),54,55,R,S,t|S(t)tA 2,t|R(t)S(t),56,R,S,t|(u)(S(t)R(u)tC uB)S中满足下述条件的元组的集合:C属性小于R中某一个元组的B属性的值。,57,R,S,t|(u)(R(t)S(u)tC uA)R中满足下述条件的元组的集合:C属性大于S中每个元组的A属性的值。,58,R,S,t|(u)(v)(R(u)S(v)uAvB tA=uB tB=vC tC=uA)新关系的A列从R的B列取值,新关系的B列从S的C列取值,新关系的C列从R的A列取值,只需满足条件对应元组的RASB,59,表达式的安全性元组关系演算有可能会产生

22、无限关系,这样的表达式是不安全的 如t|R(t),求所有不在R中的元组引入公式P的域概念,用dom(P)表示 dom(P)至少包含 显式出现在P中的值+在P中出现的关系的元组中出现的值(不必是最小集),但是有限集。如果出现在表达式t|P(t)结果中的所有值均来自dom(P),则称t|P(t)是安全的,60,dom(t R)=A1,A2,B1,B2,B3,R,t|(t R),61,2.3.2 域关系演算形式化定义 x1 x2 xn|P(x1,x2,xn)xi代表域变量,P为由原子构成的公式原子公式 R,记R(x1,x2,xn)xi是域变量或域常量x y域变量x与y之间满足比较关系 x c域变量x

23、与常量c之间满足比较关系,62,R,S,R1=x y z|R(x,y,z)x3R中A列小于5并且B列大于3的元组的集合,列与R列对应不变。,W,63,R,S,W,R2=x y z|(u)(v)(R(z,x,u)W(y,v)uv)13列对应R的BA列,2列对应W的D列,并且对应元组的CE。,64,R,S,R2=xyz|R(x,y,z)(S(x,y,z)y=4)新关系与R列对应,其元组或属于R,或为S中B值为4的元组。,W,65,求R中3列小于8并且1列等于d的元组集合,域关系验算、关系代数、元组关系验算表达式,66,归纳:关系代数、元组关系演算和域关系演算都是抽象的查询语言,它们不是具体的DBMS中实际实用的语言,它们的作用是作为评估实际系统查询语言能力的标准。这三种语言在表达能力上是完全等价的。三种语言都是非过程化的。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号