数据库系统课件第2章 关系数据库_第1页
数据库系统课件第2章 关系数据库_第2页
数据库系统课件第2章 关系数据库_第3页
数据库系统课件第2章 关系数据库_第4页
数据库系统课件第2章 关系数据库_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.关系数据库概述关系数据库,是建立在关系数据模型基础上的数据库。20世纪70年代初美国IBM公司的E.F.Codd首次提出关系模型。20世纪70年代末第一款关系数据库实验系统SystemR推出。20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型。关系数据库很快成为数据库市场的主流。2.2.2关系

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院主要内容CONTENTS域笛卡尔积12关系关系的性质341.域域是一组具有相同数据类型的值的集合。例如学历域和年龄域:学历:{小学,初中,高中,中专,大专,本科,硕士,博士};年龄:大于0小于150的整数。2.笛卡尔积给定一组域D1,D2,…,Dn,这些域可以是相同的,也可完全不同,则D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}所有域的所有取值的一个组合;不能重复。笛卡尔积的表示方法:笛卡尔积可表示为一张二维表,表中的每行对应笛卡尔积的一个元素,表中的每列对应一个域。2.笛卡尔积【例】域D1={1,2,3},域D2={A,B},求D1与D2的笛卡尔积。D1×D2={(1,A),(1,B),(2,A),(2,B),(3,A),(3,B)}2.笛卡尔积

元组笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个元组,如果它包含n个值,就叫n元组或简称元组。如例题中(1,A),(1,B)等都是元组。2.笛卡尔积

分量笛卡尔积元素(d1,d2,…,dn)中的每一个值di

叫作一个分量。如例题中1,A,B等都是分量。2.笛卡尔积

基数若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:M=m1×m2×…×mn如例题中D1与D2的笛卡尔积的基数就是3×2=6。2.笛卡尔积

笛卡尔积不满足交换律【例】域D1={1,2,3},域D2={A,B}

D1×D2={(1,A),(1,B),(2,A),(2,B),(3,A),(3,B)}D2×D1={(A,1),(A,2),(A,3),(B,1),(B,2),(B,3)}

此处D1×D2≠D2×D13.关系笛卡尔积D1×D2×…×Dn的子集叫作在域D1、D2、…、Dn上的关系,表示为:

R(D1,D2,…,Dn)这里R表示关系的名字,n是关系的目或度。3.关系一般来说,D1、D2、…、Dn的笛卡尔积是没有实际意义的,从中取出有实际意义的元组才能构成关系。【例】有三个域:

D1=顾客的集合{张丽,万欣,陈浩},

D2=供应商的集合{蒙牛,伊利,雀巢}D3=商品的集合{牛奶,咖啡}1)求D1、D2、D3的笛卡尔积;

3.关系D1×D2×D32)在D1、D2、D3三个域中,张丽购买了蒙牛的牛奶,万欣购买了伊利的牛奶,陈浩购买了雀巢的咖啡。构造一个“销售”关系。销售关系关系是笛卡尔积的有限子集,无限关系在数据库系统中是无意义的。3.关系关系是笛卡尔积的子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列取一个名字,称为属性。由于笛卡尔积不满足交换律,即(d1,d2,…,dn)≠(d2,d1,…,dn)但关系满足交换律,即(d1,d2,…,di,dj,…,dn)=(d1,d2,…,dj,di,…,dn)(i,j=1,2,…,n)

解决方法:每个列的属性名可以取消关系元组的有序性3.关系候选码能唯一标识关系中一个元组的某一属性组,称为候选码。候选码所包含的属性可能是一个属性,也可能是多个属性,在最极端的情况下,关系的所有属性才能构成候选码,称为全码。一个关系的候选码可能不只一个,如果有多个候选码,选定其中一个作为主码。候选码的诸属性称为主属性,不存在于任何候选码中的属性称为非主属性。3.关系4.关系的性质关系中每个属性值是不可分解的。这个性质也是关系模型对关系的最基本的要求。非关系的表4.关系的性质表中各列取自同一个域。不同的列可以来自同一个域。列的次序可以任意交换,不改变关系的实际意义。表中不允许出现完全相同的两行。行的次序无关紧要,可以任意交换,不会改变关系的意义。2.2.3关系模式

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院主要内容CONTENTS型和值关系模式121.型和值关系模式是型关系是值关系模式是对关系的描述关系模式是静态的关系是动态的1.型和值关系模式是对关系的描述元组集合的结构属性构成属性来自的域属性与域之间的映象关系元组语义以及完整性约束条件属性间的数据依赖关系集合2.关系模式关系模式可以形式化地表示为:

R(U,D,DOM,F)R为关系名;U为组成该关系的属性名集合;D为属性组U中属性所来自的域;DOM为属性向域的映像集合;F为属性间数据的依赖关系集合。2.关系模式关系模式可简化为二元组:

R(U)

或者

R(A1,A2,…,An)

其中,R为关系名,A1,A2,…,An为属性名。2.2.4关系数据库

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院主要内容CONTENTS关系数据库关系数据库的型与值121.关系数据库关系数据库是基于关系模型的数据库。在关系模型中,实体及实体间的联系都是用关系来表示。在一个给定的现实世界应用领域中,所有实体及实体之间联系所形成关系的集合就构成了一个关系数据库。2.关系数据库的型与值关系数据库的型:数据库的描述。它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值:这些关系模式在某一时刻对应的关系集合。在数据库中,关系模式是型,关系是值,二者通常统称为关系数据库。2.3关系数据操作

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院1.关系数据操作

常用的关系操作查询操作:选择、投影、连接、除、并、差、交、笛卡尔积;其中选择、投影、并、差、笛卡尔积是5种基本操作。数据更新:插入、删除、修改。关系操作的特点集合操作方式:操作的对象和结果都是集合,一次一集合的方式。2.4.1实体完整性

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院主要内容CONTENTS实体完整性规则实体完整性实例121.实体完整性规则实体完整性规则:若属性A是基本关系R的主属性,则A不能取空值。空值就是“不知道”或“不存在”或“无意义”的值。关系模型必须遵守实体完整性规则的原因:实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系。现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。主码中的属性即主属性不能取空值。1.实体完整性规则【例】学生(学号,姓名,出生年份,性别,学院,专业,微信号)“学号”为候选码“学号”是主属性,不能取空值2.实体完整性实例注意:实体完整性规则规定基本关系的所有主属性都不能取空值。【例】销售(商品编码,学号,销售时间,数量)“商品编码,学号”为候选码“商品编码”和“学号”两个属性是主属性,都不能取空值2.实体完整性实例2.4.2参照完整性

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院主要内容CONTENTS关系间的引用外码12参照完整性规则31.关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,自然存在着关系与关系间的引用。【例】校园超市中的商品实体和供应商实体可以用下面的关系来表示,其中主码用下划线标识。商品(商品编码,供应商编码,商品分类,商品名,条形码,进价,售价,数量,单位,备注)供应商(供应商编码,供应商名,地址,联系人,电话)商品关系中引用了供应商关系的主码“供应商编码”。1.关系间的引用【例】学生、商品、学生与商品之间的多对多联系可以用下面的三个关系表示。学生(学号,姓名,出生年份,性别,学院,专业,微信号)商品(商品编码,供应商编码,商品分类,商品名,条形码,进价,售价,数量,单位,备注)销售(商品编码,学号,销售时间,数量)销售关系中引用了学生关系的主码“学号”和商品关系的主码“商品编码”。2.外码定义:设F是基本关系R的一个或一组属性,但不是关系R的码,K是基本关系S的主码。如果F与K相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。

2.外码关于外码的理解:外码必须是本关系的一个或一组属性;外码不是本关系的码;外码与另一个关系(可能是同一关系)的主码相对应。2.外码【例】商品关系和供应商关系:商品(商品编码,供应商编码,商品分类,商品名,条形码,进价,售价,数量,单位,备注)供应商(供应商编码,供应商名,地址,联系人,电话)外码2.外码【例】学生关系、商品关系和销售关系:学生(学号,姓名,出生年份,性别,学院,专业,微信号)商品(商品编码,供应商编码,商品分类,商品名,条形码,进价,售价,数量,单位,备注)销售(商品编码,学号,销售时间,数量)外码主码外码关于外码的说明:关系R和S不一定是不同的关系。目标关系S的主码K

和参照关系的外码F必须定义在同一个(或一组)域上。外码并不一定要与相应的主码同名。当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。2.外码3.参照完整性规则参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。【例】商品关系和供应商关系:商品(商品编码,供应商编码,商品分类,商品名,条形码,进价,售价,数量,单位,备注)供应商(供应商编码,供应商名,地址,联系人,电话)外码可取下面两类值:空值,表示该商品的供应商还未确定;非空值,这时该值必须是供应商关系中某个元组的“供应商编码”值,表示该商品不可能由一个不存在的供应商供货。3.参照完整性规则【例】学生关系、商品关系和销售关系:学生(学号,姓名,出生年份,性别,学院,专业,微信号)商品(商品编码,供应商编码,商品分类,商品名,条形码,进价,售价,数量,单位,备注)销售(商品编码,学号,销售时间,数量)外码只能取非空值:非空值,“商品编码”和“学号”属性实际上只能取相应被参照关系中已经存在的主码值。3.参照完整性规则2.4.3用户定义的完整性

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院主要内容CONTENTS用户定义的完整性用户定义的完整性实例121.用户定义的完整性用户定义的完整性:针对某一具体应用环境,给出关系数据库的约束条件,这些约束条件就是反映某一具体应用所涉及的数据必须满足的语义要求。1.用户定义的完整性用户定义的完整性约束主要包括:唯一值约束(UNIQUE);非空值约束(NOTNULL);检查约束(CHECK);缺省值约束(DEFAULT)。1.用户定义的完整性【例】学生(学号,姓名,出生年份,性别,学院,专业,微信号)“姓名”属性必须取唯一值(唯一值约束)非主属性“出生年份”不能取空值(非空值约束)“性别”属性只能取值{男,女}(检查约束)“性别”默认取值“男”(缺省值约束)2.5.1传统的集合运算

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院主要内容CONTENTS并交差广义笛卡尔积12341.并如果R和S都是关系,具有相同的目n,且相应地属性取自同一个域,则R与S的并是由属于R或属于S的元组组成,其结果仍为n目关系,用R∪S表示集合并运算。记作:R∪S={t|tR∨tS}R∪S的运算结果1.并【例】有关系R和S,如表所示,求R∪S。2.交如果R和S都是关系,具有相同的目n,且相应地属性取自同一个域,则R与S的交是由既属于R又属于S的元组组成,其结果仍n为目关系,用R∩S表示集合交运算。记作:R∩S={t|tR∧tS}R∩S的运算结果2.交【例】有关系R和S,如表所示,求R∩S。3.差如果R和S都是关系,具有相同的目n,且相应地属性取自同一个域,则R与S的差表示由属于R但不属于S的元组组成,其结果仍n为目关系,用R-S表示关系R和S的差。记作:R-S={t|tR∧tS}R-S的运算结果3.差【例】有关系R和S,如表所示,求R-S。注意:R-S≠S-R4.广义笛卡尔积如果R和S都是关系,分别是n目和m目,则R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。如果R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:R×S={tr⌒ts|tr∈R∧ts∈S}【例】有关系R和S,如表所示,求R与S的广义笛卡尔积。4.广义笛卡尔积2.5.2专门的关系运算

DatabasePrincipleandApplication数据库原理及应用重庆理工大学计算机科学与工程学院主要内容CONTENTS几个记号选择运算投影运算

连接运算1234除运算51.几个记号--分量设关系模式为R(A1,A2,…An),它的一个关系设为R。t∈R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量。tt[姓名]=李明t[性别]=男学生(学号,姓名,出生年份,性别,学院,专业,微信号)若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…An中的一部分,A称为属性列或域列。则t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。Ã则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩下的属性组。t学生(学号,姓名,出生年份,性别,学院,专业,微信号)A={学号,姓名,出生年份,性别}t[A]=(S01,李明,1999,男)Ã={学院,专业,微信号}t[Ã]=(CS,IT,wx001)1.几个记号--分量的集合R为n目的关系,S为m目关系。tr∈R,ts∈S,trts称为元组的连串。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。RStstrtrts=(S01,李明,1999,男,CS,IT,wx001)1.几个记号--元组的连串给定一个关系R(X,Z),X和Z为属性组,定义,当t[X]=x时,x在R中的象集为:Zx={t[Z]|t∈R,t[X]=x},表示R中属性组X上的值为x的诸元组在Z上分量的集合。x1在R中的象集Zx1={z1,z3,z5}x2在R中的象集Zx2={z2,z6}x3在R中的象集Zx3={z4}1.几个记号--象集2.选择运算--定义选择运算又称为限制运算。它是在关系R中选择满足条件的元组,记作:бC(R)={t|t∈R∧C(t)='真'}C表示选择条件,由逻辑运算符与、或、非连接各算术表达式组成。算术表达式的基本形式为:X1θY1。选择运算是单目运算。2.选择运算--定义选择运算实际上是从关系R中选取使逻辑表达式C为真的元组。这是从行的角度进行的运算。选择运算的运算方式示意图2.选择运算--表达查询实例【例】查询计算机学院(CS)的学生。бCollege=‘CS’(Student)2.选择运算--表达查询【例】查询信息管理专业的女学生。БMajor=‘MIS’∧Gender=‘女’(Student)2.选择运算--表达查询3.投影运算--定义投影是从R中选择出若干属性列组成新的关系。记作:ΠA(R)={t[A]|t∈R}其中A为R中的属性列。投影运算是单目运算。3.投影运算--定义投影操作主要是从列的角度进行运算,但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。投影运算的运算方式示意图3.投影运算--表达查询实例【例】查询商品的名称和售价。πGoodsName,SalePrice(Goods)3.投影运算--表达查询【例】查询现有专业。πMajor(Student)3.投影运算--表达查询4.连接运算--θ连接θ连接是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。这种运算形式称作θ连接,记作:={trts|tr∈R∧ts∈S∧tr[A]θts[B]}

A和B分别是关系R和S中度数相等且可比的属性组,θ是比较运算符,可以为>,<,≥,≤,≠。连接运算是多目运算。θ连接运算步骤可分为两步:(1)求R×S;(2)选择R中属性A和S中属性B满足条件的元组组成新关系即为连接运算的结果。4.连接运算--θ连接【例】设有关系R和S如表所示,求。4.连接运算--θ连接θ连接操作是从行的角度进行运算,连接结果的列是参加运算的关系的列的组合,其运算方式示意图如图所示。θ连接运算的运算方式示意图4.连接运算--θ连接关系R与S的等值连接是从R和S的广义笛卡尔积R×S中选取A与B等值的那些元组形成的关系。记作:={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}等值连接可以理解为在θ连接中,当θ为“=”的连接运算。4.连接运算--等值连接等值连接运算步骤可分为两步:(1)求R×S;(2)选择R中属性A和S中属性B相等的元组组成新关系即为等值连接运算的结果。4.连接运算--等值连接【例】设有关系R和S如表所示,求。4.连接运算--等值连接自然连接运算是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。记作:

={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}4.连接运算--自然连接自然连接运算步骤可分为三步:(1)求R×S;(2)选择R中属性A和S中属性B相等的元组组成新关系;(3)在新关系中去掉重复的属性列即为所求。4.连接运算--等值连接【例】设有关系R和S如表所示,求。4.连接运算--等值连接自然连接需要取消重复列,所以是同时从行和列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论