版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章关系模型2.1关系模型概述2.2关系数据结构及形式化定义2.3关系的完整性2.4关系代数2.5关系演算2.6小结2.1关系模型概述2.1概述E.F.Codd于70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖关系理论是建立在集合代数理论基础上的,有着坚实的数学基础早期代表系统SystemR:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商业数据库系统Oracle,Informix,Sybase,SQLServer,DB2Access,Foxpro,Foxbase2.1概述数据结构:二维表关系操作:查询(Query):选择(select)、投影(project)、连接(join)除(divide)、并(union)、交(intersection)差(difference)增加(insert)、删除(delete)、修改(updated)关系代数,关系演算,SQL关系的三类完整性约束实体完整性、参照完整性、用户自定义的完整性2.1概述关系代数是用对关系的运算来表达查询要求的方式。
关系演算是用谓词表达查询要求的方式。按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算
2.1概述具体系统中的实际语言SQL介于关系代数和关系演算之间,由IBM公司研制systemR时提出QUEL
基于Codd提出的元组关系演算语言ALPHA,在INGRES上实现QBE
基于域关系演算,由IBM公司研制2.2关系数据结构及形式化定义域(Domain)一组值的集合,这组值具有相同的数据类型如:整数的集合、字符串的集合、全体学生的集合笛卡尔积(Car’tesianProduct)一组域D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn
={(d1,d2,…,dn)|di∈Di
,i=1,…,n}笛卡尔积的每个元素(d1,d2,…,dn)称作一个n-元组(n-tuple)元组的每一个值di叫做一个分量(component)若Di的基数为mi,则笛卡尔积的基数为2.2关系数据结构及形式化定义(续)例:设
D1为学生集合(T)={张群,徐晶,王刚}
D2为性别集合(S)={男,女
} 则D1×D2是个二元组集合,元组个数为3×2,是所有可能的(学生,性别)元组集合TS张群男张群女徐晶男徐晶女王刚男王刚女D1×D2=2.2关系数据结构及形式化定义(续)例:设
D1为教师集合(T)={t1,t2} D2为学生集合(S)={s1,s2,s3} D3为课程集合(C)={c1,c2}
则D1×D2×D3是个三元组集合,元组个数为2×3×2,是所有可能的(教师,学生,课程)元组集合笛卡尔积可表为二维表的形式TSCt1s1c1t1s1c2t1s2c1………t2s3c2域(课程集合)元组2.2关系数据结构及形式化定义(续)关系笛卡尔积D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,用R(D1,D2,…,Dn)表示R是关系的名字,n是关系的度或目关系是笛卡尔积中有意义的子集关系也可以表示为二维表关系TEACH(T,S,C)TSCt1s1c1t1s1c2t1s2c1t2s3c2元组属性2.2关系数据结构及形式化定义(续)关系的性质列是同质的行列的顺序无关紧要任意两个元组不能完全相同每一分量必须是不可再分的数据。不同的属性,属性名不能相同学生姓名学号年月出生日期日2.2关系数据结构及形式化定义(续)数据结构单一的数据结构——关系实体集、联系都表示成关系DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,PC#,CREDIT)TEACH(P#,C#)SC(S#,C#,SCORE)PROF(P#,PN,D#,SAL)学生课程选修属于系教师教授工作2.2关系数据结构及形式化定义(续)候选码(CandidateKey)关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码如DEPT中的D#,DN都可作为候选码任何一个候选码中的属性称作主属性如SC中的S#,C#主码(PrimaryKey)进行数据库设计时,从一个关系的多个候选码中选定一个作为主码如可选定D#作为DEPT的主码外部码(ForeignKey)关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码如S关系中的D#属性2.2关系数据结构及形式化定义(续)关系模式关系的描述称作关系模式,包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等,记作R(A1,A2,…,An)属性向域的映象一般直接说明为属性的类型、长度等某一时刻对应某个关系模式的内容(元组的集合)称作关系关系模式是型,是稳定的关系是某一时刻的值,是随时间不断变化的2.2关系数据结构及形式化定义(续)关系数据库其型是关系模式的集合,即数据库描述,称作数据库的内涵(Intension)其值是某一时刻关系的集合,称作数据库的外延(Extension)2.3关系的完整性关系模式的完整性实体完整性关系的主码中的属性值不能为空值空值:不知道或无意义意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的学号姓名性别系名0101张男CS0102李女CS0203赵男MA2.3关系的完整性(续)参照完整性如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1中某个元组的Pk值,或者为空值意义:如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在例如关系S在D#上的取值有两种可能空值,表示该学生尚未分到任何系中若非空值,则必须是DEPT关系中某个元组的D#值,表示该学生不可能分到一个不存在的系中DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)2.3关系的完整性(续)学号姓名性别系名0101张男CS0102李女CS0203赵男MA课号课名CS145数据库CS148操作系统CS180数据结构学号课号成绩0101CS145880101CS148900102CS180870203CS145782.3关系的完整性(续)供应商号供应商名所在城市B01红星北京S10宇宙上海T20黎明天津Z01立新重庆零件号颜色供应商号010红B01312白S10201蓝T20今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A.(‘037’,‘绿’,null)B.(null,‘黄’,‘T20’)C.(‘201’,‘红’,‘T20’)D.(‘105’,‘蓝’,‘B01’)E.(‘101’,‘黄’,‘T11’)零件关系P(主码是“零件号”,外码是“供应商号”)供应商关系S(主码是“供应商号”)2.3关系的完整性(续)用户定义的完整性用户针对具体的应用环境定义的完整性约束条件如S#要求是8位整数,SEX要求取值为“男”或“女”系统支持实体完整性和参照完整性由系统自动支持系统应提供定义和检验用户定义的完整性的机制关系代数属于关系操作的一种关系代数是一种抽象的查询语言通过对关系的运算来表达查询操作运算对象、结果均为关系运算符集合运算符、专门的关系运算符、比较运算符、逻辑运算符关系代数——运算符2.4关系代数基本运算一元运算选择、投影多元运算笛卡儿积、并、集合差其它运算集合交、自然连接、除、赋值扩展运算广义投影、外连接、聚集修改操作插入、删除、更新2.4关系代数(续)并运算定义所有至少出现在两个关系中之一的元组集合RS={r|rRrS}RS两个关系R和S若进行并运算,则它们必须是相容的:关系R和S必须是同元的,即它们的属性数目必须相同对i,R的第i个属性的域必须和S的第i个属性的域相同2.4关系代数(续)并运算ABC367257723443RABC345723SABC367257723443345R∪S2.4关系代数(续)2.4关系代数(续)2.4关系代数(续)ABCabcbafcbdRSABCbgabafDEFghijklTABCabcbafcbdbgaR∪S2.4关系代数(续)差运算定义所有出现在一个关系而不在另一关系中的元组集合RS={r|rRrS}R和S必须是相容的RS2.4关系代数(续)差运算ABC367257723443RABC345723SABC367257443R-SABC345S-R2.4关系代数(续)2.4关系代数(续)ABCabcbafcbdRSABCbgabafDEFghijklTABCabccbdR-S2.4关系代数(续)交运算定义所有同时出现在两个关系中的元组集合RS={r|rRrS}交运算可以通过差运算来重写RS=R(RS)RS2.4关系代数(续)交运算ABC367257723443RABC345723SABC723R∩S2.4关系代数(续)2.4关系代数(续)ABCabcbafcbdRSABCbgabafDEFghijklTABCbafR∩S2.4关系代数(续)广义笛卡尔积元组的连串(Concatenation)若r=(r1,…
,rn),s=(s1,…,sm),则定义r与s的连串为:定义两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组RS的度为R与S的度之和,RS的元组个数为R和S的元组个数的乘积rs=(r1,…
,rn,s1,…,sm)RS={rs|rRsS}2.4关系代数(续)AB12RCD10102010EaabbSAB11112222CD1010201010102010EaabbaabbRx
S2.4关系代数(续)ABCabcbafcbdRSABCbgabafDEFghijklTR.AR.BR.CS.AS.BS.CabcbgaabcbafbafbgabafbafcbdbgacbdbafR×S2.4关系代数(续)记号说明给定关系模式R(A1,A2,…,An),设R是它的一个具体的关系,tR是关系的一个元组分量设tR,则t[Ai]表示元组t中相应于属性Ai的一个分量属性列Ai={Ai1,Ai2,…,Aik}{A1,A2,…,An},称A为属性列Ā表示{A1,A2,…,An}中去掉A后剩余的属性组t[Ai]=(t[Ai1],t[Ai2],…,t[Aik])象集给定关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:Zx={t[Z]|t∈R,t[X]=x},它表示R中属性组X上值为x的诸元组在Z上分量的集合。2.4关系代数(续)学号姓名性别系别0101张男CS0102李女CS0203赵男MA0103吴女CS关系模式:学生(学号,姓名,性别,系别)元组t:(0102,李,女,CS)t[性别]:女属性组X:{性别,系别}t[性别,系别]:(女,CS)属性组Z:{学号,姓名}t[X]=(女,CS)象集Zx
=?CS系全部女生的学号,姓名XZX=(女,CS),
Zx=?XZ姓名课程张蕊物理王红数学张蕊数学x=张蕊Zx课程数学物理张蕊同学所选修的全部课程从R中选出在X上取值为张蕊的元组,去掉X上的分量,只留Z上的分量2.4关系代数(续)选择运算基本定义在关系R中选择满足给定条件的元组(从行的角度)F(R)={t|tR,F(t)=‘真’}F是选择的条件,tR,F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成 逻辑表达式:,, 算术表达式:XY X,Y是属性名、常量、或简单函数 是比较算符,{,,,,,≠}2.4关系代数(续)选择运算2.4关系代数(续)ABC367257723443RA<5(R)
ABC367257443A<5C=7(R)
ABC3672572.4关系代数(续)SNOSNASEXDEPT0101张男CS0102李女CS0203赵男MA0103吴女CSDept=‘CS’(S)
SSNOSNASEXDEPT0101张男CS0102李女CS0103吴女CS4=‘CS’(S)
2.4关系代数(续)示例:用关系表达式表达下列查询找前页关系S中计算机系(代号:‘CS’)全部的男生Dept=‘CS’∧
SEX=‘男’(S)关系运算——选择(σ)例:σssex=‘男’ANDsdep=‘IS’(Student)
2.4关系代数(续)投影定义从关系R中取若干列组成新的关系(从列的角度)A(R)={t[A]|tR},AR投影的结果中要去掉相同的行2.4关系代数(续)投影cbcfedcbaCBABCbcef
R
B,C(R)
2,3(R)2.4关系代数(续)投影Student(S#,SN,Age)Course(C#,CN)SC(C#,S#,Score)示例给出所有学生的姓名和年龄SN,AGE(S)找001号学生所选修的课程号C#(S#=001(SC))关系运算——投影(π)例:πssex,sage(student)2.4关系代数(续)选择与投影的区别选择:
投影:2.4关系代数(续)SNOSNASEXDEPT0101张男CS0102李女CS0203赵男MA0103吴女CS示例列出CS系和MA系学生学号和姓名
方案1:∏SNO(DEPT=‘CS’∨
DEPT=‘MA’(S))
方案2:∏SNO(DEPT=‘CS’(S))∪∏SNO(DEPT=‘MA’(S))S2.4关系代数(续)连接定义从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组
A,B为R和S上度数相等且可比的属性列为算术比较符,为等号时称为等值连接
RS=R[A]S[B](
R×S)ABABRS={rs|rRsSr[A]S[B]}2.4关系代数(续)987654321CBADE3162ABCDE123311236245662
RSB<D
R
S2.4关系代数(续)自然连接定义从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的行。自然连接与等值连接的不同自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。当R与S无相同属性时,RS=R×SRS={rs|rRsSr[B]=S[B]}2.4关系代数(续)AB12412CDaababRB13123DaaabbES11112aaaabABCDERS2.4关系代数(续)987654321CBACD3162
R
SABCD12314562
RS2.4关系代数(续)除给定关系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上投影的集合。记作:
RS={tr[X]|tr∈R^y(S)Yx}
其中,Yx为x在R中的象集,x=tr[X]2.4关系代数(续)RSXYYZYxy(S)RS2.4关系代数(续)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R
S
RS=Aa12.4关系代数(续)ABCDabcdabefabdebcefedcdedefCDcdefABabedABabbcedABCDabcdabefbccdbcefedcdedefR
AB(R)S
AB(R)CD(S)AB(R)CD(S)-RABCDbccdRS=ABabbcedABbc-=RS=X(R)X(X(R)Y(S)R)2.4关系代数(续)姓名课程成绩张军物理88王红数学80张军数学90物理数学课程姓名张军选修了全部课程的学生的姓名2.4关系代数(续)学号Sno姓名Sname性别Ssex年龄Sage系别Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS
例题背景S课程号Cno课程名Cname先行课Cpno学分Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL64C学号Sno课程号Cno成绩Grade9500119295001285950013889500229095002380SC2.4关系代数(续)查询信息系(IS)的全体学生
Sdept=‘IS’(S)或5=‘IS’(S)查询年龄小于20岁的学生
Sage<20(S)或4=20(S)查询学生的姓名和所在系
Sname,Sdept(S)
或2,5(S)查选修了2号课程的学生的学号
Sno(Cno=‘2’(SC))查2号课程的学生学号和成绩
Sno,Grade(Cno=‘2’(SC))2.4关系代数(续)查2号课程的学生姓名和成绩
Sname,Grade(Cno=‘2’(SSC))或
Sname,Grade(Sno,Grade(Cno=‘2’(SC))S)查选修“数学”的学生学号,姓名及该课程的成绩
Sno,Sname,Grade(Cname=‘数学’(SSCC))查选修1号或2号课程的学生学号
Sno(Cno=‘1’VCno=‘2’(SC))2.4关系代数(续)查没学2号课程的学生姓名
Sname(S)-Sname(Cno=‘2’(SSC))查询选修了全部课程的学生学号
Sno,Cno(SC)Cno(C)2.4关系代数(续)5种基本运算并、差、笛卡尔积、投影、选择其它运算交、连接、除均可用5种基本运算来表达,引进它们并不增加语言的能力,但可以简化表达RS=R(RS)RS=∏属性列表(相同的属性列值相等(R)(R×S))RS=X(R)X(X(R)Y(S)R)关系代数中,这些运算经有限次复合后形成的式子称为关系代数表达式2.5关系演算以数理逻辑中的谓词演算为基础元组关系演算,例ALPHA域关系演算,例QBE形式化定义{t|P(t)}表示所有使谓词P为真的元组集合t为元组变量如果元组变量前有“全称”()或“存在”()量词,则称其为约束变量,否则称为自由变量P是公式由原子公式和运算符组成2.5关系演算(续)-元组关系演算原子公式t∈R,写成R(t)t是关系R中的一个元组t[i]u[j]t[i]与u[j]为元组分量,他们之间满足比较关系,元组t的第I个分量与元组u的第j个分量满足比较关系t[i]c分量t[i]与常量c之间满足比较关系
2.5关系演算(续)-元组关系演算公式的递归定义原子公式是公式如果P是公式,那么┑P也是公式如果P1,P2是公式,则P1
P2,
P1
P2,P1
P2也是公式如果P(t)是公式,R是关系,则tR(P(t))是公式如果P(t)是公式,R是关系,则tR(P(t))
也是公式运算优先级(从高到低)算术比较运算符最高量词次之,高于逻辑运算符:┑,,
括号优先2.5关系演算(续)-元组关系演算公式的等价性P1
P2
┑(┑P1
┑P2)t
(P(t))
┑t(┑P(t))P1
P2
┑P1P2pq┑ppq┑pqTTFTTTFFFFFTTTTFFTTT2.5关系演算(续)-元组关系演算ABC123456789ABC123346569RSABC346569{t|S(t)t[A]>2}ABC456789{t|R(t)┑S(t)}2.5关系演算(续)-元组关系演算ABC123456789ABC123346569RS{t|(
u)(S(t)R(u)
t[C]<u[B])}ABC1233462.5关系演算(续)-元组关系演算ABC123456789ABC123346569RS2.5关系演算(续)-元组关系演算ABC456789{t|(u)(R(t)S(u)
t[C]>u[A])}ABC123456789ABC123346569RS2.5关系演算(续)-元组关系演算R.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])}
表达式的安全性元组关系演算有可能会产生无限关系,这样的表达式是不安全的如{t|┑(tR)},求所有不在R中的元组引入公式P的域概念,用dom(P)表示
dom(P)=显式出现在P中的值+在P中出现的关系的元组中出现的值(不必是最小集)如dom(t|┑(tR))是R中出现的所有值的集合如果出现在表达式{t|P(t)}结果中的所有值均来自dom(P),则称{t|P(t)}是安全的2.5关系演算(续)-元组关系演算ABA1B1A1B2A2B3dom(┑(tR))={{A1,A2},{B1,B2,B3}}ABA1B3A2B1A2B2R{t|┑(tR)}2.5关系演算(续)-元组关系演算2.5关系演算(续)-元组关系演算学号Sno姓名Sname性别Ssex年龄Sage系别Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS
例题背景S课程号Cno课程名Cname先行课Cpno学分Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL64C学号Sno课程号Cno成绩Grade9500119295001285950013889500229095002380SC2.5关系演算(续)-元组关系演算查询信息系(IS)的全体学生
Sdept=‘IS’(S)
{t|S(t)t[Sdept]’IS’}
查询年龄小于20岁的学生
Sage<20(S)
{t|S(t)t[Sage]<20}
查询学生的姓名和所在系
Sname,Sdept(S)
或2,5(S)
{t|(u)(S(u)t[1]=u[Sname]t[2]=u[Sdept])}
2.5关系演算(续)-元组关系演算查选修了2号课程的学生的学号
Sno(Cno=‘2’(SC))
{t|(u)(SC(u)u[Cno]=‘2’t[1]=u[Sno])}
查2号课程的学生学号和成绩
Sno,Grade(Cno=‘2’(SC))
{t|(u)(SC(u)u[Cno]=‘2’t[1]=u[Sno]
t[2]=u[Sno])}
2.5关系演算(续)-元组关系演算查选修2号课程的学生姓名和成绩
Sname,Grade(Cno=‘2’(S|×|SC))
{t|(u)(v)(S(u)SC(v)v[Cno]=‘2’
u[Sno]=v[Sno]
t[1]=u[Sname]
t[2]=v[Grade])}
查选修“数学”的学生学号,姓名及该课程的成绩
Sno,Sname,Grade(Cname=‘数学’(S|×|SC|×|C))
{t|(u)(v)(w)(S(u)SC(v)C[w]
w[Cname]=‘数学’
u[Sno]=v[Sno]v[Cno]=w[Cno]
t[1]=u[Sno]t[2]=u[Sname]t[3]=v[Grade])}
2.5关系演算(续)-元组关系演算查选修1号或2号课程的学生学号
Sno(Cno=‘1’VCno=‘2’(SC))
{t|(u)(SC(u)(u[Cno]=‘1’u[Cno]=‘2’)
t[1]=u[Sno])}
元组关系演算与关系代数的等价性投影∏A(R)={t|sR(s[A]=t[A])}选择F(A)(R)={t|tRF(t[A])}广义笛卡儿积R(A)S(B)={t|uRsS(t[A]=u[A]
t[B]=s[B])}并RS={t|tR
tS}差RS={t|tR
┑tS}2.5关系演算(续)-元组关系演算关系演算示例VPROF(P#,PNAME,SAL,DNO)找出工资在800元以上的老师{t|tPROFt[SAL]>800}GetW(Prof):Prof.Sal>800找出工资在800元以上的老师的姓名{t|sPROF(t[PNAME]s[PNAME]
s[SAL]>800)}给出计算机系老师的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年耕地租赁合同
- 广告设备购销合同2024年
- 合伙企业协议格式
- 房地产代理销售协议书2024年
- 服装制造商合作合同
- 2024年二手房屋买卖合同范例
- 担保合作协议填写指南
- 合伙餐馆协议书样本专业
- 装修预算合同范本2024年
- 2024设备搬迁运输合同
- 浙江省杭州市十三中教育集团2024-2025学年七年级上学期期中科学试题(无答案)
- 100MWp户用光伏发电EPC总承包 投标方案(技术方案)
- 《中国心力衰竭诊断和治疗指南2024》解读
- 店铺门面转让合同协议书2024年
- DL∕T 618-2022 气体绝缘金属封闭开关设备现场交接试验规程
- 水利工程填塘固基、堤身加固施工方法
- 中医针灸的骨边穴怎样定位
- 人教版八年级上册英语单词表默写版(直接打印)
- 电脱水、电脱盐讲解
- 江西省科技创新平台建设(PPT课件)
- 违约损失率(LGD)研究
评论
0/150
提交评论