数据库原理-ZQX第一章11.3关系模型_第1页
数据库原理-ZQX第一章11.3关系模型_第2页
数据库原理-ZQX第一章11.3关系模型_第3页
数据库原理-ZQX第一章11.3关系模型_第4页
数据库原理-ZQX第一章11.3关系模型_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

11.3关系模型2本节主要讲述:1.3.1关系模型的数据结构1.3.2关系的数学定义1.3.3关系的性质1.3.4关系的码1.3.5关系数据库模式与关系数据库1.3.6关系运算1.3.7关系代数31.3.1关系模型

关系模型就是用二维表格结构来表示实体及实体之间联系的模型。关系模型是由若干个关系模式组成的集合。在建立关系模型时,只要把所有的实体及其属性用关系模式来表示,同时把实体之间的联系也用关系模式来表示,就可以得到一个关系模型。41.3.2关系的数学定义一、域(Domain)域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)例如整数、实数、字符串的集合。域中所包含的值的个数称为域的基数(用m表示)。例如:D1={李力,王平,刘伟} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域的值无排列次序,如D2={男,女}={女,男}关系中用域表示属性的取值范围5二、笛卡尔积(CartesianProduct)给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。由定义可以看出,笛卡尔积也是一个集合。例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1={李力,王平,刘伟}D2={男,女}D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}6D1={李力,王平,刘伟}D2={男,女}笛卡尔积(CartesianProduct)给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。其中:1.元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di)2.每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di)是按序排列的。如:(1,2,3)≠(2,3,1)≠(1,3,2)而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)。其中:李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组3.若Di(i=1,2,……n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,……n)表示,则笛卡尔积D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数)为所有域的基数的累积。基数M=m1×m2=3*2=6元组的个数为6例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:即

M=94.笛卡尔积可用二维表的形式表示。例如,上述的6个元组可表示成下表。姓名性别李力男李力女王平男王平女刘伟男刘伟女D1D2笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。D1和D2的笛卡尔积10三、关系的数学定义(Relation)笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…Dn上的n元关系(Relation),可用

R(D1,D2……Dn)表示如上例D1×D2笛卡尔积的子集可以构成教师关系T。姓名性别李力男王平女刘伟男几点说明:1.

R为关系名,n称为关系的目或度(Degree)。当n=1时,称为单元关系。当n=2时,称为二元关系。…当n=n时,称为n元关系。112.关系中元组个数是关系的基数。如果一个关系的元组个数是无限的,则称为无限关系;如果一个关系的元组个数是有限的,则称为有限关系。3.

同样可以把关系看成一个二维表。其中,(1)表的框架由域Di(i=1,2,……n)构成;(2)表的任意一行对应一个元组;(3)表的每一列来自同一域;(4)域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,…,n)称为值域用Ai表示4.关系的定义:定义在域D1,D2……Dn上的关系由关系头和关系体组成:

关系头:是属性A1,A2……An的集合;

关系体:是元组的集合。具有相同关系框架的关系称为同类关系,例如,有另一个关系T2,如表所示:T212姓名性别张雪女张兰女T1和T2是同类关系135.数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。姓名性别李力男李力女表不符合实际情况141.3.3关系的性质1.关系中不允许出现相同的元组。2.关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。153.关系中属性的顺序是无关紧要的:即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。例如:关系T作如表1所示的交换时,无任何影响而作如表2所示的交换时,不交换属性名,只交换属性列中的值,则得到不同的关系。性别姓名男李力女王平男刘伟姓名性别男李力女王平男刘伟表1表2164.同一属性名下的各个属性值必须来自同一个域:是同一类型的数据。5.关系中各个属性必须有不同的名字:不同的属性可来自同一个域,即它们的分量可以取自同一个域。姓名职业兼职张强教师辅导员王丽工人教师刘宁教师辅导员职业与兼职是两个不同的属性,它们取自同一个域:职业={教师,工人,辅导员}。176.所有的属性值都是原子的,元组中每一分量必须是不可分的数据项,即不可“表中有表”。满足上述条件的关系称为规范化关系,否则称为非规范化关系。姓名籍贯省市/县张强吉林长春王丽山西大同姓名省市/县张强吉林长春王丽山西大同表1表2181.3.4关系的码一、候选码与主码1.候选码:能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选码(CandidateKey),也称候选键,关系键。如:候选码候选码19下面给出候选码的形式化定义:设关系R有属性A1,A2,……An,其属性集K=(Ai,Aj,……Ak),当且仅当满足下列条件时,K被称为候选码:

1.唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。

2.最小性(Minimally):组成关系键的属性集(Ai,Aj,……Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质。2.如果一个关系中有多个候选码,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主码(PrimaryKey),或称为主键、主关键字。20二、主属性与非主属性主属性(PrimeAttribute):包含在主码中的各属性称为主属性。非主属性(Non-PrimeAttribute):不包含在任何候选码中的属性称为非主属性。在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。21一个老师可以指导多个学生,一个学生的导师可以有多个。学生姓名指导教师李阳王名李阳李斌张浩王名张浩李斌全键22三、外码(Foreignkey)

如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外码或外部关系键。并称关系R2为参照关系(referencingrelation),关系R1为被参照关系(referencedrelation)。参照关系被参照关系学生选课由外部关系键的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。R2R123同一关系内部属性间也可能存在参照关系。例:职工(职工号,姓名,性别,部门领导号)外码外码并不一定要与相应的主码同名:习惯上,当外码与相应的主码属于不同的关系时,取相同的名字。24四、关系模型的完整性关系模型的三类完整性:实体完整性参照完整性用户定义的完整性25例如,学生关系中的属性“学号”可以唯一标识一个元组,也可以唯一标识学生实体。不能为空不能部分为空1.实体完整性(EntityIntegrity)实体完整性是指主码的值不能为空或不能部分为空。262.

参照完整性(Referentialintegrity)如果关系R2的外码X与关系R1的主码相符,则X的每个值或者等于R1中主码的某一个值,或者取空值。SNO学号SN姓名SEX性别AGE年龄DEPT所在系S1赵亦女17计算机S2钱尔男18信息…

S11王威男19

S(学生关系)D(系别关系)DEPT所在系ADDR地址计算机1号楼自动化1号楼

信息2号楼空值R1R227学生

选课例:学号是学生关系的主键,在选课关系中,学号能不能取空值?283.用户定义完整性(User-definedIntegrity)用户定义完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如,属性值根据实际需要,要具备一些约束条件,如选课关系中成绩不能为负数;某些数据的输入格式要有一些限制等。291.3.5关系数据库模式与关系数据库一、关系模式(RelationSchema):1.定义:一个关系的属性名表(集合)R(A1,A2,…,An)叫做关系模式,其中

R为关系名;A1,A2,…,An为属性名。二、关系数据库(RelationDatabase)一组随时间变化的,具有各种度的规范化关系的集合。关系头2.关系数据库模式:一组关系模式的集合。3.关系数据库的内容:对应于关系数据库模式的当前值,也称关系数据库的实例。关系体关系数据库由一组关系头的集合及其关系体的集合组成。30例如教学数据库中,共有五个关系,其关系模式分别学生(学号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)选课(学号,课程号,成绩)授课(教师号,课程号)31在每个关系中,又有其相应的数据库的实例

S1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化与学生关系模式对应的数据库中的实例321.3.6关系运算关系数据语言的种类关系数据语言关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言元组关系演算语言域关系演算语言ISBL(InformationSystemBaseLanguage)QUELQBESQL33一、关系代数的分类及其运算符关系代数的运算对象是关系,运算结果也是关系,关系代数用到的运算符主要包括四类:集合运算符:∪(并),-(差),∩(交),×(广义笛卡尔积);专门的关系运算符:σ(选取),∏(投影),∞(连接),*(自然连接),÷(除);算术比较运算符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于);逻辑运算符:∧(AND与),∨(OR或),┐(NOT非)1.3.7关系代数34关系代数的运算按运算符的不同主要分为两类:传统的集合运算:∪(并),-(差),∩(交),×(广义笛卡尔积);专门的关系运算:

σ(选择),∏(投影),∞(连接),*(自然连接),÷(除)35二、传统的集合运算对参加运算的关系有什么要求呢?下面先看一个定义。定义设给定两个关系R、S,若满足:具有相同的度n;R中第i个属性和S中第i个属性必须来自同一个域。则说关系R、S是相容的。除笛卡尔积外,要求参加运算的关系必须满足上述的相容性定义。361.并(Union)关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作:

R∪S={t|t∈R∨t∈S}R

S对于关系数据库,记录的插入和添加可通过并运算实现。372.差(Difference)关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:

R-S={t|t∈R∧┐t∈S}R

S通过差运算,可实现关系数据库

记录的删除。383.交(Intersection)关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:

R∩S={t|t∈R∧t∈S}R

S如果两个关系没有相同的元组,那么它们的交为空(Ф)。两个关系的并和差运算为基本运算,而交运算为非基本运算,交运算可以用差运算来表示:R∩S=R-(R-S)394.广义笛卡尔积(ExtendedCartesianProduct)不要求参加运算的两个关系是同类关系。关系R的目为n,关系S的目为m,则R与S的广义笛卡尔积为:

R×S={trts|tr∈R,ts∈S}⌒关系的广义笛卡尔积可用于两关系的连接操作;连接操作将在后面章节中介绍。结果:它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。

⌒trts=(r1,r2,…,rn,s1,s2,…sm)称为元组的连串40广义笛卡儿积运算实例41三、专门的关系运算由于传统的集合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。专门的关系运算:

σ(选择),∏(投影),∞(连接),*(自然连接),÷(除)42样板数据库(学生-课程数据库)1.选取(Selection)选择运算是单目运算,是在关系R中选择满足给定条件的若干个元组组成一个新的关系,记作:

σF(R)={t|t∈R∧F(t)为真}σ为选取运算符;F为选取的条件:它由运算对象(属性名、常数、简单函数)、算术比较运算符(>,≥,<,≤,=,≠)和逻辑运算符(∨∧┐)连接起来的逻辑表达式,结果为逻辑值“真”或“假”。θ表示比较运算符,X1和Y1是运算对象基本形式为X1θY1属性名也可以用它的序号来代替选取运算实际上是从关系R中选取使逻辑表达式为真的元组,是从行的角度进行的运算。472.投影(Projection)关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:ΠA(R)={t[A]|t∈R}其中A为R中的属性列,Π为投影运算符。48投影运算可以改变关系的属性次序

49例4查询选课关系中有哪些学生选修了课程。ΠSNO(SC)SNO9500195001950019500295002SNO9500195002投影后取消了某些属性列,就可能出现重复行,应该取消这些完全相同的行。所以投影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。SNO95001ΠSNO(σCNO=’1’(SC))本例选取运算和投影运算相结合,先在选课表中选取满足条件的元组,再于SNO属性上进行投影例5查询选修了1号课程的学生学号。51例5查询选修了1号课程的学生学号。ΠSNO(σCNO=’1’(SC))本例中,能不能改变选取运算与投影运算的次序?问题???SNO9500195002不能改变运算次序52投影运算是从列的角度进行的运算,这正是选取运算和投影运算的区别所在。选取运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。533.连接(Join)连接运算是二目运算,是从两个关系的笛卡尔积中选取满足连接条件的元组,组成新的关系。设关系R(A1,A2,……An)及S(B1,B2,……Bm),连接属性集X包含于{A1,A2,……An},及Y包含于{B1,B2,……Bm},X与Y中属性列数目相等,且相对应属性有共同的域。关系R和S在连接属性X和Y上的连接,就是从R×S笛卡尔积中,选取X属性列上的分量与Y属性列上的分量满足给定θ比较条件的那些元组,组成新的关系。新关系的度为n+m。

若Z={A1,A2……An}/X(/X:去掉X之外的属性)及W={B1,B2……Bm}/Y,则R及S可表示为R(Z,X),S(W,Y)XY是相容的54记作:RS={|tr∈R∧ts∈S∧tr[X]θts[Y]为真}其中,是连接运算符,θ为算术比较运算符,也称θ连接;XθY为连接条件;θ为“=”时,称为等值连接;θ为“<”时,称为小于连接;θ为“>”时,称为大于连接。连接运算为非基本运算,可以用选取运算和广义笛卡尔积运算来表示:RS=σxθy(R×S)trts(55例6如图所示的两个关系R与S,求(1)R和S满足C>D的连接;ABCa1b12a1b24a2b36a2b48BDb15b2

温馨提示

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

评论

0/150

提交评论