数据库概论0课件2

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

【文档说明】数据库概论0课件2.ppt,共(112)页,1.320 MB,由小橙橙上传

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

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

第二章关系数据库是以关系模型为基础的数据库。目前最为流行(主导型)的数据库。目前绝大多数都是关系数据库在运行。E.F.Codd于20世纪70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖之后,提出了关系代数和关系演算的概念关系理论是

建立在集合代数理论基础上的,有着坚实的数学基础早期代表系统SystemR:由IBM研制INGRES:由加州Berkeley分校研制关系数据库回顾2.1关系数据结构及形式化定义关系特点用二维表格表示实体集;外键表示实体间的联系;关系必须是规范化的。单一的数据结构——规范化了的二维表格

——集合代数的基础。1.数学定义定义1:域(Domain)是一组具有相同类型的值的集合(即每个属性的取值范围)。一组值的集合,这组值具有相同的数据类型例:整数集合{0,1};长度小于5的字符串集合等都可以是域;全体学生的集合。2.1.1基本术语定义2:笛卡尔积给定一组域D1,D2,

…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡儿积(CartesianProduct)为D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n},其中每一个元素(d1,d2,…,dn)

叫做一个n元组(n-tuple),或简称元组。元组中的每一个值di叫做一个分量(Component),它们分别取自相对应的集合Di。度(n):参与笛卡儿积的域的个数,它表示了每一个元组中分量的个数。通常用n的值来称呼元组。当n=1时,称

为一元组;当n=2时,称为二元组;……;当n=p时,称为p元组。基:域中可取值的个数。若Di(i=1,2,…,n)是一组有限集,且分别含有mi(i=1,2,…,n)个元素,则称mi为集合Di的基。笛卡儿积是有限集,其基为:M=∏mini=1例

:设有域D1=姓名集合(NAME)={王三,丁平};D2=职业集合(JOB)={工人,农民,商人};D3=住址集合(ADDR)={北京,上海,广州};则D1×D2×D3={D1、D2、D3的基分别为2,3,3,所以笛卡儿积的基为MD1×D2×D3=2×3×3=18;

其度为3。(王三,工人,北京),(王三,工人,上海),(王三,工人,广州),(王三,农民,北京),(王三,农民,上海),(王三,农民,广州),(王三,商人,北京),(王三,商人,上海),(王三,商人,广州),(丁平,工人,北京),(丁平,工人,上海),(丁平,工人,

广州),(丁平,农民,北京),(丁平,农民,上海),(丁平,农民,广州),(丁平,商人,北京),(丁平,商人,上海),(丁平,商人,广州)}可以把笛卡儿积看作是一张二维表。行数:元组的个数,即笛卡儿积的基数;列数:域的个数。

NAMEJOBADDR王三工人北京王三工人上海王三工人广州王三农民北京………NAMEJOBADDR………丁平农民广州丁平商人北京丁平商人上海丁平商人广州表中的每行对应一个元组;每列对应一个域。定义3:

关系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,记为R(D1,D2,…,Dn)。其中R是关系(Relation)的名,也是条件的体现,Di(i=1,2,…,n)是关系的域,n是关系的目或度(Degree)。关系中的每个元素是关系中的元组,通常用t表示。当n=1时,称为一元关系

(UnaryRelation);当n=2时,称为二元关系(BinaryRelation);当n=3时,称为三元关系(TernaryRelation)。关系就是一张二维表。行数:元组的个数,即笛卡儿积的基数;列数:域的个数。NAMEJOBA

DDR王三工人北京王三工人上海王三工人广州王三农民北京………表中的每行对应一个元组;每列对应一个域关系中不同列可以对应相同的域为了加以区分,必须对每列起一个名字,称为属性(Attribute)n目关系必有n个属性注意:两个

或更多的属性可以都出于同一个域,这就需要在模式中给以映象,说明这个属性来自某个域。例:给出三个域D1=男人集合(MAN)={王兵,李平,张英};D2=女人集合(WOMAN)={丁梅,吴芳};D3=儿童集

合(CHILD)={王一,李一,李二};则家庭关系可表示为FAMILY(MAN,WOMAN,CHILD)此例也可以只给出两个域:成人PERSON={王兵,李平,张英,丁梅,吴芳}儿童CHILD={王一,李一,李二}但构造FAMILY时仍要三个属性,其中MAN,WOMAN都从PERS

ON域中取。PERSON这个域在FAMILY这个关系中扮演两个角色,就要给这个角色以不同的名字,即属性的名字。有两种方法:FAMILY(M_PERSON,W_PERSON,CHILD)或FAMILY(HU

SBAND,WIFE,CHILD)DOM(HUSBAND)=DOM(WIFE)=PERSON在域名前加上前缀作为属性名给属性另起名字代表域的意思,表示HUSBAND和WIFE属性取值来自PERSON域。一般说来,只有笛卡儿积的子集才是有意义的。条件“

某人现在的职业和住址”定义的关系R应是R(D1,D2,D3)={(王三,工人,上海),(丁平,商人,广州)}而全部元素作为关系是无意义的。根据条件去挑选笛卡儿积中的元组组成一个集合,就构成一个关系(条件就是关系的名)。工号姓名年龄工资4001张三5012004002李四4011004003

王五35950…………记录类型……关系模式记录1…元组1记录2…元组2记录3…元组3文件关系(或实例)字段值……属性值字段.数据项…属性一般术语关系模型术语术语对照关系有三种基本类型基本关系(基本表)实际存在的表,是实际存储

数据的逻辑表示。查询表查询结果所对应的表。视图表由基本表或视图表导出的表,是虚表,不对应实际存储的数据。2.关系的性质每一分量必须是不可再分的数据项;表的列是同质的,即每一列中的所有值具有相同的性质,或说它们来自同一个域;属性(列)的顺

序无关紧要;元组(行)的顺序无关紧要;同一关系中不存在两个完全相同的元组(各行相异);每一列称为属性。不同的属性要给予不同的属性名。学号姓名性别年龄曾用名0101张三男20张狗子0102李四女18李朋王五0103119王麻子0104赵六21981/2/28赵薇关系性质1——同质的列学号姓名

性别年龄姓名0101张三男20张狗子0102李四女18李朋0103王五男19王麻子0104赵六女20赵薇姓名2曾用名关系性质2——不同的属性名学号姓名性别年龄曾用名0101张三男20张狗子0102李四女18李朋0103王五男19王麻子0104赵六女20赵薇学号姓名曾用名性别年龄0101张三张狗子男

200102李四李朋女180103王五王麻子男190104赵六赵薇女20关系性质3——属性无序关系性质4——元组不重复学号姓名性别年龄姓名0101张三男20张狗子0102李四女18李朋0103王五男19王麻子0104赵六女20赵薇010

1张三男20张狗子重复的元组重复的元组!关系性质5——元组无序学号姓名性别年龄0101张三男200102李四女180103王五男190104赵六女20学号姓名性别年龄0104赵六女200101张三男200103王五男190102李四女18关系性质6——分量是原子父母孩子李男王男丁女肖女李一李二

王一父母孩子大小李男王男丁女肖女李一王一李二父母孩子李男李男王男丁女丁女肖女李一李二王一父母大孩小孩李男王男丁女肖女李一王一李二非规范化关系规范化关系3.有关关系术语解释①域和属性(Domain和Attribute)域是属性的取值范围,属性是列。属性名可以是域名,但有时不同的列名可以定

义在同一域中,这时属性名就不能与域名同名了。②关系的码(Key)如果一个属性(或属性集合)的值能唯一地标识一个关系的元组而又不含有多余的属性,则称该属性(或属性集合)为关系的码(或候选码,也称键)。每个关系都有一个且只有一个主码(PrimaryKey)。码的属性称为主属性,不包含在任何码中的属性

称为非主属性。③外码(ForeignKey--FK)如果某一个关系中的属性(或属性集合)在另一个关系中是主码,则称该属性(或属性集合)是外码。学号课程号成绩0101010101020103C1C2C2C390807080学号姓名年龄性别所在系01010102

01030104张三李四王五赵六20181920男女女男计算机计算机计算机计算机关系的码学号姓名所在系0101010201030104张三李四王五赵六计算机计算机计算机计算机课程号课程名学时数C01C0

2C03C04高等数学数据结构操作系统数据库100708060学号课程号成绩01010101010201040104C01C02C04C04C039080908570学生关系课程关系学习成绩关系外部码外部码主码主码外部关系码什么是关系模式?定义关系模式。关系模式与关系。2.1.2关系模式关

系模式是型是对数据本身的特性描述元组集合的结构属性构成属性来自的域属性与域之间的映象关系元组语义以及完整性约束条件属性间的数据依赖关系集合关系是值,是元组的集合关系模式是用DDL定义的包括:关系名,属性名以及属性域的类型和长度。1.什么是关系模式定义:关系模型中的

数据结构就是关系模式,即是对关系的描述。它的形式化表示是一个5元组:R(U,D,dom,F)其中,R:关系名;U:属性名集合;D:域,属性组U中属性所来自的域;dom:属性向域的映射;F:属性间数据的依赖关系集合2.关系模式定义关

系模式通常可以简记为R(U)或R(A1,A2,…,An)R:关系名A1,A2,…,An:属性名注:域名及属性向域的映象常常直接说明为属性的类型、长度属性间的数据依赖关系将在第6章中讨论。关系的内涵和外延关系的内涵是关系模式。它是静态的、稳定的,是对关系的描述。关系的外延是关系(的

值)。任何给定的时刻,出现在关系中的所有元组的集合,它是动态的、随时间变化的,反映了关系模式在某一时刻的状态或内容。3.关系模式与关系2.1.3关系数据库关系数据库在一个给定的应用领域中,所有关系的集合构成一个关系数据库关系数据库的型与值关系数据库的型:关系数据库模式对关系数据库

的描述。关系数据库模式包括若干域的定义在这些域上定义的若干关系模式关系数据库的值:关系模式在某一时刻对应的关系的集合,简称为关系数据库关系数据库整个数据库某关系的结构某关系的实例数据结构:单一的数据结构类型---关系或表;数据操作

:一组完备的高级关系运算;数据的约束条件:三类完整性规则。2.2关系的完整性1.关系模型关系模型的三要素:例:学生-课程数据库有三个关系,其关系模型结构(二维表)如下:学号姓名所属系班级年龄SNOSNAMESDE

PTSCLASSSAGE学生关系S课程号课程名课时CNOCNAMECTIME课程关系C学号课程号成绩SNOCNOGRADE学习关系SC其关系模式描述如下:S(SNO,SNAME,SDEPT,SCLASS,SAGE)C(CNO,CNAME,CTIME)SC(SNO,CN

O,GRADE)可以看出:哪些关系之间有联系。到底哪些元组之间有联系,哪些元组之间无联系,这要看具体数据(值)而定。只有公共属性上具有相同属性值的元组之间才有联系。2.关系模型的完整性约束规则域完整性约束规则要求属性值必须取自其对应的值域。域完整性约束是最基本的约束;一个

属性值能否为空值由其语义决定。实体完整性规则设属性A是基本关系R的主属性(码的组成部分),则属性A不能取空值(NULL)。实体完整性是针对基本关系的;本规则要求基本关系中的元组在组成码属性上不能有空值;现实世界中的实体是可区分的,即它们

具有某种唯一性标识;大部分DBMS支持实体完整性规则。S(SNO,SNAME,SDEPT,SCLASS,SAGE)C(CNO,CNAME,CTIME)SC(SNO,CNO,GRADE)关系S的主属性S

NO不能取空值关系C的主码CNO不能取空值关系SC的主属性SNO、CNO不能取空值参照(引用)完整性规则基本关系R中含有与另一个基本关系S的主码KS相对应的属性组F(F称为R的外码),则对于R中的每个元组在F上的值必须为:①或者取空值(F的每个属性值均为空值

);②或者等于S中某个元组的主码值,引用完整性约束是不同关系之间或同一关系的不同元组间的约束。本规则要求不允许引用不存在的元组;大部分DBMS支持引用完整性规则。例2.1职工关系EMP(ENO,ENAME,DNO)部门关系DEPT(DN

O,DNAME)在EMP中,DNO是外码。EMP中每个元组在DNO上的值允许有两种可能:①取空值。这说明这个职工尚未分配到某个部门;②若非空值,则DNO的值必须是DEPT中某个元组中的DNO值。表示此职

工不可能分配到一个不存在的部门。职工号部门编号姓名…9801980298039804980501010203张三李四王五赵六钱七部门编号部门名称…01020304经理办公室人事部公关部技术部职工表(EMP)部门表(DEPT)关系主码外部关系码例2.2学生实体及其内部的一对多联系学生(学号,姓名

,性别,专业号,年龄,班长)学号姓名性别专业号年龄班长801张三女0119802802李四男0120803王五男0120802804赵六女0220805805钱七男0219学生(学号,姓名,性别,专业号,年龄,班长)“学号”是主码,“班长”是外码,它引用了本关系的“学号

”“班长”必须是确实存在的学生的学号“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长(2)非空值,该值必须是本关系中某个元组的学号值例2.3选修(学号,课程号,成绩)“学号”和“课程号”可能的取值:(1)选修关系中的主

属性,不能取空值(2)只能取相应被参照关系中已经存在的主码值域完整性约束是最基本的约束;实体完整性约束是一个关系内的约束;引用完整性是不同关系之间或同一关系的不同元组间的约束;实体完整性和引用完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性,

应该由关系数据库系统自动支持。用户自定义完整性规则这是针对某一具体数据的约束条件,由应用环境决定。用户定义的完整性规则反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要应用程序承担这一功能。并不是每个合乎语法的

元组都能成为关系R的元组,它还要受到语义的限制;数据的语义不但会限制属性的值,而且还会制约属性间的关系;有些DBMS中,允许用户对个别数据说明一些约束及违反约束时的处理,但还没有一个RDBMS产品全面实现用户定义的完整性

约束检查。例:学生的年龄限制为15-28岁之间;一个学生在图书馆借书的数目不能超过10本。用户定义的完整性常用的关系操作查询:选择、投影、连接、除、并、交、差(、笛卡尔积)数据更新:插入、删除、修改说明查询的表达能力是其中最主要的部分选择、投影、并、差、笛卡尔基是5种基本操作2.3关系数

据语言在关系数据中,提供给用户对数据库进行操作的语言,称为关系数据语言。关系数据语言关系演算语言关系代数语言ISBL元组关系演算语言QUEL域关系演算语言QBE具有关系代数和关系演算SQL双重特点的语言关系数据语言特点:是集合操作语言;高度非过程化的;可以独立使用,也可以

与主语言结合起来使用;具有完备的表达能力;具有定义、更新(增、删、改)和控制一体化的特点。2.4关系代数关系代数语言是由一组关系作为运算对象的特定运算所组成的。关系代数运算传统的集合运算并、交、差、广义笛卡儿积专门的

关系运算选择、投影、连接、除关系代数的运算对象是关系,运算结果也是关系。关系代数用到的运算符有:集合运算符:∪,∩,-,×专门的关系运算符:σ,∏,∞,÷比较运算符:θ={>,≥,<,≤,=,≠}逻辑运算符:┐,∧,∨1.传统的集合运算一个关系从“水平”的方向看就是元组的

集合。传统的集合运算就是以元组作为集合中的元素来进行运算的的集合运算,即参加运算的集合都是以元组作为它的元素。传统的集合运算是一个二目运算。定义1.设给定两个关系R和S,若满足:具有相同的度n,且R中第i个属性和S中第j个属性必须来自同一个域,则说关

系R和S是相容的。即:关系R和S有相同的度,即有相同的属性个数,且对应的属性的域相同。约定:大写字母表示命名关系和关系的属性;小写字母表示元组。①并(Union)关系R和S的并记为R∪S,结果仍为n度关系,由或属于R或属于S的元组组成。R∪S={t

|t∈R∨t∈S}RS结果集R∪S②差(Difference)关系R和S的差记为R-S,结果仍为n度关系,由属于R而不属于S的元组组成。R-S={t|t∈R∧t∈S}RR-SS结果集③交(Intersection)关系

R和S的并记为R∩S,结果仍为n度关系,由既属于R又属于S的元组组成。R∩S={t|t∈R∧t∈S}RSR∩S结果集R∩S=R–(R-S)④广义笛卡儿积(ExtendendCartesianProduct)R是一个n度关系,S是一个m度关系。关系R和S的广义笛卡儿积记为R×S,其结

果是(n+m)度的关系,结果中的元组是R中元组和S中元组连成的一串,前n个分量是R中的一个元组,后m个分量是S的一个元组。假定R中有元组(r1,r2,…,rn),S中有元组(s1,s2,…,sm),则结果中的元组为(r1

,r2,…,rn,s1,s2,…,sm)。若R有k1个元组,S有k2个元组,则R×S有k1×k2个元组。R×S={t|t=(tr,ts),tr∈R∧ts∈S}例:ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1R

Sc2b3a1c1b2a2c2b2a1c1b1a1CBAR∪Sc1b1a1CBAR-Sc1b2a2c2b2a1CBAR∩SABCa2ca4db4cABCa4da6db4cABCDEFa2ca4da2ca6da2cb4ca4da4da

4da6da4db4cb4ca4db4ca6db4cb4cRSR×S2.专门的关系运算先介绍几个概念:设关系模式R(D1,D2,…,Dn)的一个关系R,t∈R表示t是关系R的一个元组;t[Di]则表示在元组t中相应于属性Di的分量(值)。例:t=(a1,b2,c2

)∈R,则t[2]=b2若D={Di1,Di2,…,Dik},其中Di1,Di2,…,Dik是(D1,D2,…,Dn)中的一部分,则D称为属性列或域列。D则表示(D1,D2,…,Dn)中去掉(Di1,Di2,…,D

ik)各列后剩余的属性列的总体。t[D]=(t[Di1],t[Di2],…,t[Dik])表示元组t在属性列D上诸分量的集合。例:t=(a1,b2,c2)∈R,D={b2},则D={a1,c2}连串R为n度关系,S为m度关系。tr=(r1,r2,…,rn)∈R,ts

=(s1,s2,…,sm)∈S,trts是称为元组的连串(Concatenation)。这是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量是S中的一个m元组。象集给定一个关系R(X,Z),其中X,Z为属性组。定义当t[X]=x时,x在R中的象集(ImageSet)为:Zx=

{t[Z]|t∈R,t[X]=x}表示R中属性组X上值为x的诸元组在Z上分量的集合。象集的计算方法:①求关系R中满足t[X]=x条件的元组集合;②对求出的元组集合,去掉属于X的分量(一个或几个)。a1在R中

的象集Ba1={B1,B2,B3},a2在R中的象集Ba2={B2,B3},a3在R中的象集Ba3={B1,B3}例2.4象集举例ABa1B1a1B2a1B3a2B2a2B3a3B1a3B3R例2.5设关系R(A,B,C),X=(A,C),Z=B。当

t[X]=x=(a3,c7)时,求x在R中的象集。ABCa1b1c1a1b4c2a1b7c3a2b8c4a2b5c6a3b3c7a3b6c5a6b2c4RZx={t[B]|t∈R∧t[X1]=a3∧t[X2]=c7}={b3}t[C]=c7t[A]=a3x=(a3,c7)例:

设有学生-课程关系数据库,如下所示:SNOSNAMESDEPTSAGE96001丁一CS1996002王二CS2096003张三MA2196004李四CI1996005刘五MA2096006赵六CS22SDEPTDNAMEADDRCS计算机系主楼505MA数学系主楼601CI信

息系主楼308PY物理系主楼202DCNOCNAMECTIMEC1高等代数144C2程序设计64C3微机原理64C4数据结构144C5编译原理56C6操作系统56C7计算方法48C8数据库64CSNOCNOGRADE96001C19096001C29096001C39096001C5959600

2C19596002C28196002C48196003C29596003C38196003C495SCSNOCNOGRADE96004C39596004C57096005C28196005C395960

05C59596006C49096006C690SC①选择(Selection)也称为限制(Restriction)从一个关系中选出所有满足指定条件的元组。即在给定关系中,从水平方向上选取符合给定条件的元组的子集。一般定义为:σF(R)={t|t∈R∧F(t)=‘True’}读

作关系R关于公式F的选择运算,表示从R中选择那些满足公式F的元组。σF(R)中:σ为选择运算符;F是一个公式,它的取值为‘真’或‘假’。书写时将条件F置于σ的右下脚;关系名R写在σ之后用()括起来。F

由逻辑运算符∧、∨、┐连接各比较表达式组成;比较表达式基本形式为XθY,X、Y是属性名或常量或简单函数。属性名也可以用它的序号来代替。例2.7求计算机系CS的学生。SSD=σSDEPT=‘CS’(S)SNOSNAMESDEPTSAGE96001丁一CS1996002王二CS2096006赵六C

S22SSDSSD=σ3=‘CS’(S)第3列例2.8求年龄大于或等于20,且是计算机系CS的学生。SNOSNAMESDEPTSAGE96002王二CS2096006赵六CS22SSASSA=σSAGE≥20∧SDEPT=‘CS’(S)或

SSD=σ4≥20∧3=‘CS’(S)第3列第4列②投影(Projection)从一个关系出发构造其垂直子集的运算,即结果关系由运算分量中的某些列组成,并消去重复的元组。一般定义为:关系R在域列A上的投影:∏A(R)={t[A]|t

∈R}∏表示投影运算符;A为R中的属性列,R是运算对象的关系,写在∏之后用()括起来。注意:因为投影运算的属性表不一定包含关系的码,经投影运算后,结果中很可能出现重复元组,消除重复元组后所得关系的元组将小于等于原关系的元组数。如

果属性列中包含码,则不可能出现重复元组,投影运算后所得关系的元组与原关系一样。投影不仅会取消一些列,也可能取消某些行。SNAMESDEPT丁一CS王二CS张三MA李四CI刘五MA赵六CSSND例2.9求学生关系S在学生姓名和所在系这两个属性上的投影。SND=∏SNAME,

SDEPT(S)或SND=∏2,3(S)?对学生姓名和所在系属性取投影SDCSMACISSD例2.10求有多少个系。?查询学生关系中都有哪些系SSD=∏SDEPT(S)或SSD=∏3(S)③连接(Join)也称为θ连接从连接的两个关系R和S的

笛卡儿积中选取满足给定属性间一定条件的那些元组。要求A和B分别为R和S上度数相等且可比的属性组。连接运算用来连接相互之间有联系的两个关系,被连接的两个关系通常是具有1:n联系的父子关系。所以连接过程一般是由参照关系的外码和被参照关系的主码

来控制的,这样的属性通常称为连接属性。一般定义为:关系R在域列A上的投影:R∞S={trts|tr∈R∧ts∈S∧tr[A]θts[B]}AθB∞表示连接运算符;θ为比较运算符,AθB是条件表达式,写在连接运算符

∞的下方。含义是:从R×S的广义笛卡儿积中选取R关系在A属性组上的值与S关系在B属性组上值满足比较运算θ的那些元组。条件连接运算又可定义如下:R∞S=σAθ(k+B)(R×S)这里:k表示关系R的度含义是

:从R×S的广义笛卡儿积中选取满足如下条件的元组的集合,这些元组第A个分量(对应于R的第A个分量)和第k+B个分量(对应于S的第B个分量)满足关系运算θ的那些元组。AθB当θ是“=”时,那么R∞S运算为等值连接。A=BR∞S={trts|tr∈R∧ts∈S∧tr[A]=

ts[B]}A=B当θ是“<”时,那么R∞S运算为小于连接。A<B当θ是“>”时,那么R∞S运算为大于连接。A>BABCa12ca24da34cDEd4e10ABCDEa12cd4a12ce10a24de10a34ce10RSRSB<EABCDEa12cd4a12ce10

a24dd4a24de10a34cd4a34ce10R×S连接运算自然连接(NaturalJoin)是一种特殊而常用的连接。自然连接只当两个关系含有公共属性时才能进行。自然连接是构造新关系的有效方法。是关系代数中常用的一种运算。

关系间的联系主要靠自然连接来实现。在查询操作中,当需要的信息分布在一个以上的关系时,常常要用自然连接把所有关系连接起来。若关系R和关系S具有公共属性组B,则自然连接定义为:R∞S={trts[B]|tr∈R∧ts∈S∧tr[A]=

ts[B]}ts[B]表示关系S中去掉与R相同的公共属性组。含义是:从两个关系的笛卡儿积中选取公共属性值相等的元组,且在非公共属性和一组公共属性上投影而形成的结果关系。自然连接计算过程计算广义笛卡儿积R×S;选择满足条件r[Ai]=

s[Aj]的所有元组。假设A1,A2,…,Ak是关系R和S的公共属性组,挑选R×S中满足tr[A1]=ts[A1],tr[A2]=ts[A2],…,tr[Ak]=ts[Ak]的那些元组。去掉重复的属性。在R×S关系上去掉S关系上的属性A1,A2,…,Ak。ABCa1

b1c2a2b2c1a3b1c3a4b2c5a5b3c1BCDEb1c2d1e1b3c1d2e2b1c3d3e3b1c2d4e4b3c1d5e5ABCDEa1b1c2d1e1a1b1c2d4e4a3b1c3d3e3a5b3c1d2e2a5b3c1d5e5RSABCB’C

’DEa1b1c2b1c2d1e1a1b1c2b1c2d4e4a3b1c3b1c3d3e3a5b3c1b3c1d2e2a5b3c1b3c1d5e5R.BC=S.BCRSRS自然连接运算比较:等值连接与自然连接等值连接是在笛卡儿积的基础上选择满足两

个关系中给定属性值相等的元组的集合。自然连接是在两个关系的相同属性组上的等值连接,并且自然连接要在结果中把重复的属性去掉,而等值连接则不必。自然连接要求两个关系中相等的分量必须是公共属性组,而等值连接则不需要。外连接如果把舍弃的元组也保存在结

果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTERJOIN)。左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFTOUTERJOIN或LEFTJOIN)右

外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHTOUTERJOIN或RIGHTJOIN)。关系R和关系S如下所示:关系R和关系S的外连接:图(b)是关系R和关系S的左外连接,图(c)是关系R和关系S的右外连接④除(Division)一般定

义为:设关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域。除运算记为R÷S:R÷S={tr[X]|tr∈R∧∏Y(S)Yx}Yx为x在R中的象集,x=

tr[X]。R÷S的计算方法有:∩方法一:R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。属性构成:由关系R中那些不出现在关系S中的属性组成;元组构成:由关系S在Y属性组上投影中出现的所有元组在R中对应的相同的值组成。例:ABCDab

cdabefbcefedcdedefabdeCDFcddefeRSABabedR÷SXYY方法二:由定义计算其象集。(A,B)可以取三个值,即x={(a,b),(b,c),(e,d)}Yx:(a,b)的象集{(c,d),(e,f),(d,e)}(b,c)的象集{(e,f)}(e,d)的象集{

(c,d),(e,f)}∏Y(S)在(C,D)上的投影为{(c,d),(e,f)}方法三:由以下公式计算。R÷S=∏X(R)-∏X(∏X(R)×∏Y(S)-R)R÷S具体操作过程如下:T=∏1,2,…,n-m(R),即计算∏X(

R)计算T×∏Y(S)-RV=∏1,2,…,n-m(T×∏Y(S)-R)R÷S=T-Vn为R(X,Y)的度,m为∏Y(S)的度,必须有n>m且m≠0。关系代数中,关系运算经有限次复合而成的式子称为关系代数式。关系代数运算中,由表达式从左到右顺序运算。若包括了

投影和连接的话,一般是先投影后连接。另外,还可以通过圆括号来规定运算次序。关系代数操作集{σ,∏,×,∪,-}称为基本关系运算,是完备的操作集,任何其他关系代数操作都可以用这五种操作来表示。∏SNO(σCNO=‘C2’(SC))={‘96001’,‘96002’,‘96003’,

‘96005’}关系代数式示例例2.11求选修‘C2’课程的学生号码。∏SNAME(σCT=90(C)∞∏SNO,CNO(SC)∞∏SNO,SNAME(S))例2.12求至少选修一门学时数为90的课程的学生姓名。或∏SNAME(∏SNO(σCT=90(C)∞SC

)∞∏SNO,SNAME(S))={‘王二’,‘张三’,‘赵六’}∏CNO(C)-∏CNO(σSNAME=‘王’(S)∞SC))={‘C3’,‘C5’,‘C6’,‘C7’,‘C8’}例2.13求‘王’同学不学的课程的课程号。∏SNAME(S∞(∏SN

O,CNO(SC)÷∏CNO(C)))={Φ}例2.14求出选修全部课程学生姓名。例2.15将新课程元组(‘C9’,‘物理’,144)插入到课程关系C中。C∪{(‘C9’,‘物理’,144)}分解执行为三步:例2.16将学号96004,选修课程号为‘C5’的

成绩改为85分。V=σSNO=‘96004’∧CNO=‘C5’(SC)第一步:取出元组,并命名为VSC∪{(‘96004’,‘C5’,85)}第二步:删除这个元组SC-V第三步:插入新元组2.5关系演算自学(不要求掌握)第二章作业:1.P483.2.试述关系模型的

完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?第二章作业:(续)3.P.485。4.P.486。5.P.497(只用关系代数语言)。思考题1.P.484。2.关系代数的基本运算有哪些?如何用这些基本运算来表示其他关系运算?

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