数据库系统概论第二章-课件

PPT
  • 阅读 67 次
  • 下载 0 次
  • 页数 66 页
  • 大小 536.515 KB
  • 2022-12-05 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
数据库系统概论第二章-课件
可在后台配置第一页与第二页中间广告代码
数据库系统概论第二章-课件
可在后台配置第二页与第三页中间广告代码
数据库系统概论第二章-课件
可在后台配置第三页与第四页中间广告代码
数据库系统概论第二章-课件
数据库系统概论第二章-课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 66
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】数据库系统概论第二章-课件.ppt,共(66)页,536.515 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-92472.html

以下为本文档部分文字说明:

1第2章关系数据库关系模型具有严格的数学基础,应用数学方法处理数据库中的数据,奠定关系数据库理论基础的人是美国IBM公司的E.F.Codd。模型的提出是在1970年,E.F.Codd的一篇论文“ARelationalModelof

DataforSharedDataBanks”开创了数据库系统的新纪元,系统、严格的提出了关系模型。20世纪70年代末关系方法的理论研究已经取得了很大的成果,其中,有两大研究机构及其试验系统,一个是IBM公司的SystemR系统,另一个是美国加州大学伯克利分校的INGRES系统。1981年关系数

据库的软件产品就问世了。目前主流的商业数据库系统Oracle,Informix(IBM收购),Sybase,SQLServer,DB2Access,Foxpro,Foxbase2关系模型的组成关系数据结构(实体及实体间的联系均用二维表

来表示)关系操作(查询及增、删、改操作两大部分)关系代数语言元组关系演算语言(ALPHA,QUEL)关系数据语言关系演算语言域关系演算语言(QBE)关系代数和关系演算结合的语言(SQL)关系的完整性(实体完整性,参照完

整性,用户定义完整性)32.1基本概念2.1.1域(domain)——一组具有相同数据类型的值的集合。例:整数,实数,≤500的整数,性别(男、女)、字符串。2.1.2笛卡尔积(Cartesianproduct)1.定义给定一组域D1,D2,…,Dn,则其笛卡积

为:D1D2…Dn={(d1,d2,…,dn)dnDj,j=1,2,…,n}2.说明1)(d1,…,dn)为集合中的一个元素,称为n元组(n–tuple),简称元组。2)元组中每个值di称为分量43)集合中元素无序{a

,b,c}={b,a,c}={c,b,a}4)元组中分量有序(a,b,c)≠(b,a,c)属性及其值的对应性。5)笛卡尔积称为一个二维表例设有三个域:D1=男士集合={刘英,刘加}D2=女士集合={白雪,白灵}D=儿童集合={刘学,刘水,刘牛}则D1,D2,D3的笛卡尔积为如下一张二维表:5男士女

士儿童刘英白雪刘学刘英白雪刘水刘英白雪刘牛刘英白灵刘学刘英白灵刘水刘英白灵刘牛刘加白雪刘学刘加白雪刘水刘加白雪刘牛刘加白灵刘学刘加白灵刘水刘加白灵刘牛笛卡尔积基数=223=12(12个元组)男士基数女士基数儿童基数62.1.3关系1.定义D1D2…Dn的任

意子集称为在域D1,D2,…,Dn上的关系。记为:R(D1,D2,…,Dn)2.说明1)R为关系名,n为关系的目或度(degree);2)关系是一张二维表;3)可多个候选KEY(candidatekey)

;4)任选候选KEY之一为主码(primarykey)。例:可从上表中取出一个有意义子集作为一个关系男士女士儿童丈夫妻子孩子刘英白雪刘学刘英白雪刘学刘加白灵刘水刘加白灵刘水刘加白灵刘牛72.1.4外码

(internalkey)——对于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关系模式(RelationSchema)1.定义关系的描述:R(A1,…,An)即:R(U,D,DOM,F)R:关系名。U:R中的属性名序列。D:域(取值范围)。DOM:属性到域的映象集(属性类型、长度)。F:属性间数据依赖关系。

82.1.6关系数据库1.型:若干关系模式的集合(内含)。2.值:某一时刻每个关系模式对应的具体关系集(外延)。2.1.7视图(View)2.1.8关系的完整性1.实体完整性(Entityintegrity)——主码属性不能为空。2.参照完整性(Referen

tialintegrity)——若关系R1中含有另一个关系R2中主码的属性组F(R1的外部KEY),则对于R1的每个无组在F上的值必须满足:1)空,或2)等于R2中某个元组的主码值9例:EMPL(ENO,ENAME,DNO)DEPT(DNO,DNAME)

则对于EMPL中每个DNO的值必须为:取空(说明该职工还未分配到某部门)DEPT中某个元组的DNO值(该职工不可能分配到一个不存在的部门)3.用户定义完整性(user-definedintegrity)——用户定义的

约束。跳高≤100米,人手≤2只102.2关系代数2.2.1概述1、含义:用对关系的运算来表达查询的一种传统方式。2、分类:1)传统集合运算并(∪),交(∩),差(–),笛卡尔积(×)2)专门的关系运算投影(),选择(),连接(),除()3、运算符

1)集合运算符:∪、∩、–、×2)专门运算符:、、、3)比较运算符:>、≥、<、≤、=、≠4)逻辑运算符:、、5)括号运算符:()114、特殊记号1)设有关系模式R(A1,A2,…,Ai,…,An)则:tR:t是R

的一个元组。t[Ai]:元组t中相应属性Ai的一个分量。StudentXHXMXB20012007千里马黄河男男<„„>t“男”Ai(XB)的一个分量122)设A={Ai1,Ai2,…,Aik},Ai1,Ai2,…,Aik是A1,A2,…,An中的一部

分,则:A:属性列或域列。A:{A1,A2,…,An}中去掉(Ai1,Ai2,…,Aik)后剩余的属性组。t[A]=(t[Ai1],t[Ai2],…,t[Aik]):元组t在属性A上诸分量的集合3)设R为n目关系,S为m目

关系,则:trR,tsS:R和S的元组的连接,结果是一个n+m列元组;前n个分量是R的一个n元组;后m个分量是s的一个m元组,又称元组的连串(Concatenation)。134)设有关系R(X,Z),X、Z为属性组,则:当t[X]=x时,x在R中的象集(imagesset)为:Zx={t

[Z]|tR,t[X]=x}表示:R中属性组X上值为x的诸元组在Z上分量的集合。例:R为(学号,课程)设X为学号,则Z为课程,求x=1的象集。学号课程1C语言1数据结构1数据库2C语言课程C语言数据结构数据库142.2.2传统集合运算1.并(union)1)定义:设有关两个n目关系R、S,则R∪

S表示是由属于R或属于S的元组组成。2)特征·结果为n目关系:R∪S={t|tRtS};·参入运算对象为两个关系;·R、S属性同类(取自同一个域);·相同元组取其一;·从“行”上取值。15ABCABCa1b1c1a1b2c2a1b2c2

a1b3c2a2b2c1a2b2c1例:RS16则R∪S结果为:RSABCa1b1c1a1b2c2a2b2c1a1b3c2ABCABCa1b1c1a1b2c2a1b2c2∪a1b3c2=a2b2c1a2b2c1173)作用:将一个新元组集加入到原关系中去。2、交

(intersection)1)定义:设有两个n目关系R、S,R∩S是由既属于R同时又属于S的元组组成。RSABCa1b2c2a2b2c1ABCABCa1b1c1a1b2c2a1b2c2∩a1b3c2=a2b2c1a

2b2c1182)特征·结果为n目关系:R∩S={t|tRtS};·参入运算为两个同目关系;·R、S属性同类;·从“行”上取值。193)作用:从两个关系中找出相同元组。3、差(difference)1)定义:设有两个n目关系R、S,则R-S是由属于R不属于S的元组组成

。RSABCa1b1c1ABCABCa1b1c1a1b2c2a1b2c2-a1b3c2=a2b2c1a2b2c1202)特征·结果为n目关系:R-S={t|tRts};·参入运算为两个同目关系;·R、

S同类;·从“行”上取值。3)作用:从一个关系中删去某些元组。4、笛卡尔积(Cartesianproduct)1)定义:设R为n目关系,S为m目关系,则R×S是一个由R和S的所有元组连接在一起而组成的(

n+m)列的元组集合。每一元组的前n个列是R的一个元组,后m列是s的一个元组。21R×SABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a

1b3c2a2b2c1a2b2c1222)特征·结果为(n+m)目关系:RS={tr,ts|trRtss};·参入运算为两个关系;·R、S不同类(实际上);·从“行”上取值。3)作用:将两个关系按元组连接组成一个新关系。232.2.3专门

的关系运算1、选择(selection)1)定义:从指定关系R中选取满足条件的元组集的运算。记作:F(R)={t|tRF(t)=‘真’}F:逻辑表达式(选择对象应满足的条件),一般表示为:X1Y1[X2Y2]…X1,Y1:属性|常量|简单函数|列顺序号:比较运算符:>、≥、<、≤、

=、≠:逻辑运算符:、、[]:任选标识符,其中内容可有可无A>12,B=‘田野’,3=’8’B5(R)24设:studentscXHXMXBYLDMXHKHCJ9901于得水男24计算机9901001729903牛得

草男23动力9902001709904白灵女22计算机9903003729902马千里男23自控99040028599030017225CourseKHKMXF001DB3002OS3003C2004AI

226例1查计算机系学生DM=‘计算机’(Student)XHXMXBYLDM9901于得水男24计算机9904白灵女22计算机studentXHXMXBYLDM9901于得水男24计算机9903牛得草

男23动力9904白灵女22计算机9902马千里男23自控27例2查学分<3分的课程XF<3CourseKHKMXF003C2004AI2CourseKHKMXF001DB3002OS3003C2004AI228例3:查成绩大

于80或等于70的学生选课信息CJ>80CJ=70(SC)XHKHCJ990200170990400285scXHKHCJ990100172990200170990300372990400285990300172292)说明·参入运算只能一个关系;·从行上取值。2、投影(pro

jection)1)定义:从指定关系R中选出若干属性列的运算。记作:A(R)={t[A]∣tR}A:R中的若干属性列名或列顺序号。30例3:查学生的姓名和年龄。XM,YL(Student)或2,4(Stu

dent)XHYL于得水24牛得草23白灵22马千里23studentXHXMXBYLDM9901于得水男24计算机9903牛得草男23动力9904白灵女22计算机9902马千里男23自控31例4:查招有学生的系有哪些DM(Student)或4(Student)DM计算机动

力自控去掉一个重复元组“计算机”2)说明:·参入运算一个关系;·从列上取值。studentXHXMXBYLDM9901于得水男24计算机9903牛得草男23动力9904白灵女22计算机9902马千里男23自控323、连接(Join)1)定义:

从两个指定关系R和S中选取满足给定条件的元组的运算。记为:元组的连串(Concatenation)若r=(r1,…,rn),s=(s1,…,sm),则定义r与s的连串为:rs=(r1,…,rn,s1,…,

sm)33设有如下关系R和S:RSABCBEa1b15b13a1b26b27a2b38b310a2b412b32b522)说明·运算步骤:笛长尔积取条件满足者34例5c<ERS笛卡尔积(RS):(R)(S)ABCBEa1b15b13a1

b15b27a1b17b310a1b17b32a1b17b52a1b26b13„„a2b38b13„„a2b412b13a2b412b27„„a2b412b5235取其中C<E的元组:AB(R)CB(S)Ea1b15b27a1b15b310a1b26b27a1b2

6b310a2b38b310参入运算为两个关系;·参入运算关系不一定同目;·从行上取值。3)等值连接(equi-join)仅为“=”的连接运算364)自然连接(Naturaljoin)参入运算的指定关系R和S中用于比较的分量必须是相同的属性集,且

结果值中去掉重复属性的运算。·必须含公共属性如R和S中的B。·运算步骤:·计算RS;·选出比较值相等的元组;·去掉重复属性。37例6:上例中的RS结果:·笛卡尔积同上·取B(R)=B(S)的元组AB(R)CB(S)Ea1b15b13a1b26b27a2b38b310a2b38b3238去掉

重复属性B之一:ABCEa1b153a1b267a2b3810a2b3824、除(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记作:RS={tr[X]|trRYxY(S)}其中:Yx:X在R中的象集,X=tr[X]40例6:有如下关系R、S:RSABCBCDa1b1c2b1c2d1a2b3c

7b2c1d1a3b4c6b2c3d2a1b2c3a4b6c6a2b2c3a1b2c1则RS={a1}RSAa141RSR÷SABCDCDFABa1b2c3d5c3d5f3a1b2a1b2c4d6c4d6f4a2b4c1d3a3b5c2d842与除法的定义相对应,本题中X=

{A,B}=>{(a1,b2),(a2,b4),(a3,b5)},Y={C,D}=>{(c3,d5),(c4,d6)},Z={F}>{f3,f4}。其中,元组在X上各个分量值的象集分别为:(a1,b

2)的象集为{(c3,d5),(c4,d6)}(a2,b4)的象集为{(c1,d3)}(a3,b5)的象集为{(c2,d8)}S在Y上的投影为{(c3,d5),(c4,d6)}显然只有(a1,b2)的象集

包含S在Y上的投影,所以R÷S={(a1,b2)}435种基本运算并、差、笛卡尔积、投影、选择其它运算交、连接、除均可用5种基本运算来表达,引进它们并不增加语言的能力,但可以简化表达•RS=R

(RS)•RS=∏属性列表(相同的属性列值相等(R)(R×S))•RS=X(R)X(X(R)Y(S)R)44ABCDabcdabefabdebcefedcdedefCDcdefABabedABabb

cedABCDabcdabefbccdbcefedcdedefRAB(R)SAB(R)CD(S)AB(R)CD(S)-RABCDbccdRS=ABabbcedABbc-=例:RS=X(R)X(X(R)

Y(S)R)45关系代数中,这些运算经有限次复合后形成的式子称为关系代数表达式例:设有关系教师(工作证号、姓名、性别、出生年份、职称、所在院系)TL(TNO,TNAME,TSEX,BYEAR,RANK,DEPT);教学记录(工作证号、开课时间、课号、课时)CR(TNO,CT

IME,CNO,CNUM);σDEPT=’计算机’(TL),σDEPT=’自控’(TL),σRANK=’讲师’(TL),σBYEAR<1965(TL),ПTNO,TNAME,TSEX,DEPT(σCNO=’001’(((σDEPT=’计算机’(TL)∪σDEPT=’自控’(TL

))∩σRANK=’讲师’(TL)-σBYEAR<1965(TL))CR))463.应用实例设教学数据库有三个关系:学生关系S(学号,姓名,性别,年龄,所在系)(Sno,Sname,Ssex,Sage,Sdept)课程关系C(课程号,课程名,先修课,学分)(Cno,Cname,Cpno,

Ccredit)学习关系SC(学号,课程号,成绩)(Sno,Cno,Grade)下面用关系代数表达式来表达一些查询语句。①确定已知条件所在的关系写这样语句的步骤→②确定输出内容所在的关系③写出查询条件的表达47例

1:查询学习课程号为C2的学生学号和成绩(涉及一个关系)。Пsno,grade(σcno=’c2’(SC))例2:查询学习课程号为C2的学生学号和姓名(涉及两个关系)。Пsno,sname(σcno=’c2’(SSC)))例3:查询选修了课程名为“数据库”的学生学号和姓名(涉及三个关

系)。Пsno,sname(σcname=’数据库’(SSCC))例4:查询选修了课程号为C1或C2的学生学号。Пsno(σcno=’c1’∨cno=’c2’(SC)))48例5:查询至少选修了课程号为C2和C4的学生学号。例6:查询不学C2课程的学生姓名、年龄。П

sno(σ[1]=[4]∧[2]=‘C2’∧[5]=’C4’(SC×SC)))Пsname,sage(S)-Пsname,sage(σcno=‘C2’(SSC)))所有学生学了C2的学生例7:查询选修了所有课程的学生姓名、年龄。Пsname,sage(S

(Пsno,cno(SC)÷Пcno(C)))求学了全部课程课学生学号例8:查询所学课程包含了学生S2所学课程的学生学号。Пsno,cno((SC)÷Пcno(σsno=’s2’(SC))492.3关系演算以数理逻辑

中的谓词演算为基础元组关系演算,例ALPHA域关系演算,例QBE2.3.1元组关系演算形式化定义{t|P(t)}表示所有使谓词P为真的元组集合t为元组变量•如果元组变量前有“全称”()或“存在”()量词,则称其为约束元组变量,

否则称为自由元组变量P是公式•由原子公式和运算符组成50原子公式•t∈R,写成R(t)•t是关系R中的一个元组•t[i]u[j]•t[i]与u[j]为元组分量,他们之间满足比较关系,元组t的第i个分量与元组u的第j个分量满足比较关系•t[i]c•分

量t[i]与常量c之间满足比较关系51公式的递归定义•原子公式是公式•若P是公式,那么┑P也是公式•若P1,P2是公式,则P1P2,P1P2,┑P2也是公式•若P1,P2同时为真,则P1P2为真,否则为假;•若P1,P2同时或有一个为真,则P1P2为真,仅

当同时为假,则P1P2为假;•若P1为真,则┑P1为假。•如果P是公式,则t(P)也是公式•如果P是公式,则t(P)也是公式运算优先级(从高到低)•算术比较运算符最高•量词次之,高于•逻辑运算符:┑,,•括号优先52元组演算表达式举例:{t|S(t)t[A]>2}S中A属性大于2

的元组的集合{t|R(t)┑S(t)}R中不在S中出现的元组的集合{t|(u)(S(t)R(u)t[C]<u[B])}S中满足下述条件的元组的集合:C属性小于R中某一个元组的B属性的值。{t|(u)(R(t)S(u)

t[C]>u[A])}R中满足下述条件的元组的集合:C属性大于S中每个元组的A属性的值。53任何一个关系代数表达式都可等价地表示成元组关系演算表达式.关系代数中的5种基本运算用元组关系演算表示为:R∪S={t|R(t)∨S(t)}对应于:R∪S={t|t∈

R(t)∨t∈S(t)}R–S={t|R(t)∧¬S(t)}对应于:R–S={t|t∈R(t)∧┑t∈S(t)}54)][][...]1[]1[][][...]1[]1[)()()()(()()()(svsrtvrtrur

tutvSuRvutSRssrr)][][...][]1[)()(()(1)(,...,1kkiiiuktiutuRutRk的等价表示形式是其中FFFtRtRF',')()(55ABC123456789ABC12

3346569RSABC346569{t|S(t)t[A]>2}ABC456789{t|R(t)┑S(t)}56ABC123456789ABC123346569RS{t|(u)(S(t)R(u)t[C]<u[B])}S中满

足下述条件的元组的集合:C属性小于R中某一个元组的B属性的值。ABC12334657ABC123456789ABC123346569RSABC456789{t|(u)(R(t)S(u)t[C]>u[A])}R中满足下述条件的元组的

集合:C属性大于S中每个元组的A属性的值。58ABC123456789ABC123346569RSR.BS.CR.A534837867897{t|(u)(v)(R(u)S(v)u[A]>v[B]t[A]=u[B]t[B]=v[C]t[C]=u[A])}新关系的A列从R的B

列取值,新关系的B列从S的C列取值,新关系的C列从R的A列取值,只需满足条件对应元组的R[A]>S[B]59表达式的安全性元组关系演算有可能会产生无限关系,这样的表达式是不安全的如{t|┑R(t)},求所有不在R中的元组引入公式P的域概念,用dom(

P)表示dom(P)至少包含显式出现在P中的值+在P中出现的关系的元组中出现的值(不必是最小集),但是有限集。如果出现在表达式{t|P(t)}结果中的所有值均来自dom(P),则称{t|P(t)}是安全的60ABA1B1A1B2A2B3dom(┑

(tR))={{A1,A2},{B1,B2,B3}}ABA1B3A2B1A2B2R{t|┑(tR)}612.3.2域关系演算形式化定义{x1x2…xn|P(x1,x2,…,xn)}xi代表域变量,P为由原子构成的公式原子公式•<x1

,x2,…,xn>R,记R(x1,x2,…,xn)•xi是域变量或域常量•xy•域变量x与y之间满足比较关系•xc•域变量x与常量c之间满足比较关系62ABC123456789ABC123346569RSA

BC456R1={xyz|R(x,y,z)x<5y>3}R中A列小于5并且B列大于3的元组的集合,列与R列对应不变。DE7548W63ABC123456789ABC123346569RSDE7548WBDA574877847R2={xyz|(u)(v

)(R(z,x,u)W(y,v)u>v)}13列对应R的BA列,2列对应W的D列,并且对应元组的C>E。64ABC123456789ABC123346569RSABC123456789346R2={xyz|R(x,y,z)(S(x,y,z)y=4

)}新关系与R列对应,其元组或属于R,或为S中B值为4的元组。DE7548W65A1A2A3ddgdcebdefcd53798]3[]1[)()(8)(183''111tdttRtRRRdXZXYZRXYZRAdA:等价于元组关系演算为:等价于关系代

数表达式A1A2A3ddcebd53求R中3列小于8并且1列等于d的元组集合,域关系验算、关系代数、元组关系验算表达式66归纳:关系代数、元组关系演算和域关系演算都是抽象的查询语言,它们不是具体的DBMS中实际实用的语言,它们的作用是作为评估实际系统查询

语言能力的标准。这三种语言在表达能力上是完全等价的。三种语言都是非过程化的。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?