第2讲关系模型精选PPT.ppt
《第2讲关系模型精选PPT.ppt》由会员分享,可在线阅读,更多相关《第2讲关系模型精选PPT.ppt(107页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2讲关系模型2022/10/72022/10/71 1第1页,此课件共107页哦上一章介绍了上一章介绍了三种三种主要的数据模型:主要的数据模型:层次模型网状模型关系模型其中关系模型简单灵活,并有着坚实的理论基础,已成为当前最流行的数据模型。本章主要讲述:关系模型的数据结构关系的定义和性质关系数据库的基本概念关系运算第2页,此课件共107页哦2.1关系模型关系模型就是用二维表格结构来表示实体及实体之间联系的模型。关系模型是各个关系的框架的集合,即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。教师关系课程关系C授课关系SC教师课程数据库的关系模型TNO教师号TN姓名SEX性别AGE
2、年龄PROF职称SAL工资COMM岗位津贴DEPT系别CNO课程号CN课程名CT课时TNO教师号CNO课程号第3页,此课件共107页哦从各个关系的框架中,我们可以很容易看出哪两个关系之间有联系。例如:教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。而课程关系和授课关系有公共的属性“课程号”,则表明这两个关系也有联系。至于元组之间的联系,则与具体的数据有关。只有在公共属性上具有相同属性值的元组之间才有联系。第4页,此课件共107页哦由上例可以看出,在一个关系中可以存放两类信息:一类是描述实体本身的信息一类是描述实体(关系)之间的联系的信息在层次模型和网状模型中,把有联系的实体(
3、元组)用指针链接起来,实体之间的联系是通过指针来实现的。而关系模型则采用不同的思想,即用二维表来表示实体与实体之间的联系,这就是关系模型的本质所在。所以,在建立关系模型时,只要把的所有的实体及其属性用关系框架来表示,同时把实体之间的关系也用关系框架来表示,就可以得到一个关系模型。如上例中的教师课程数据库的关系模型就是这样建立的。第5页,此课件共107页哦2.2关系的定义在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念。第6页,此课件共
4、107页哦2.2.1域(Domain)域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)例如整数、实数、字符串的集合。域中所包含的值的个数称为域的基数(用m表示)。关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟m1=3D2=男,女m2=2D3=47,28,30m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域名无排列次序,如D2=男,女=女,男第7页,此课件共107页哦笛卡尔积(CartesianProduct)给定一组域D1,D2,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔积为D1D2D
5、n=(d1,d2,dn)|diDi,i=1,2,n。由定义可以看出,笛卡尔积也是一个由定义可以看出,笛卡尔积也是一个集合集合。例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1=李力,王平,刘伟D2=男,女D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)第8页,此课件共107页哦笛卡尔积(CartesianProduct)给定一组域D1,D2,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔积为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。其中:1.元素中的每一个di叫做一个分量(
6、Component),来自相应的域(diDi)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)。其中:李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组第9页,此课件共107页哦3.若Di(i=1,2,n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,n)表示,则笛卡尔积D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为
7、所有域的基数的累积,即M=例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)其中:其基数M=m1m2=3*2=6元组的个数为6第10页,此课件共107页哦4.笛卡尔积可用二维表的形式表示。例如,上述的6个元组可表示成表2.1。D1和D2的笛卡尔积由上例可以看出,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。姓名性别李力男李力女王平男王平女刘伟男刘伟女第11页,此课件共107页哦2.2.3关系(Relation)
8、笛卡尔积D1D2Dn的任一子集称为定义在域D1,D2,Dn上的n元关系(Relation),可用R(D1,D2Dn)表示如上例D1D2笛卡尔积的子集可以构成教师关系T1,姓名性别李力男王平女刘伟男几点说明:几点说明:1.R为关系名,为关系名,n称为关系的目或度称为关系的目或度(Degree)。)。当n=1时,称为单元关系。当n=2时,称为二元关系。当n=n时,称为n元关系。如上例为二元关系,关系名为如上例为二元关系,关系名为T。第12页,此课件共107页哦2.关系中元组个数是关系的基数。如(李力,男),(王平,女),(刘伟,男)为三个元组,关系的基数为3。如果一个关系的元组个数是无限的,则称为
9、无限关系;如果一个关系的元组个数是有限的,则称为有限关系。由于计算机存储系统的限制,我们一般不去处理无限关系,而只考虑有限关系。3.同样可以把关系看成一个二维表。其中,(1)表的框架由域Di(i=1,2,n)构成;(2)表的任意一行对应一个元组;(3)表的每一列来自同一域;(4)域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,n)称为值域(5)具有相同关系框架的关系成为同类关系,例如,有另一个关系T2,如表2.3所示:T1和T2是同类关系。姓名性别张雪女张兰女第13页,此课件共107页哦4.数学上关系是笛卡尔积的任意子集,
10、但在实际应用中关系是笛卡尔积中所取的有意义的子集。例如在表2.1中选取一个子集构成如下关系,显然不符合实际情况姓名性别李力男李力女第14页,此课件共107页哦2.3关系的性质尽管关系与二维表格、传统的数据文件是非常类似的,但它们之间又有重要的区别。严格地说,关系是种规范化了的二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制,关系具有如下特性:1.关系中不允许出现相同的元组关系中不允许出现相同的元组。2.关系中元组的顺序(即行序)是无关紧要关系中元组的顺序(即行序)是无关紧要的的,在一个关系中可以任意交换两行的次序。根据关系的这个性质,可以改变元组的顺序使其具有某种排
11、序,然后按照顺序查询数据,可以提高查询速度。第15页,此课件共107页哦3.关系中属性的顺序是无关紧要的关系中属性的顺序是无关紧要的:即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。例如:关系T1作如下交换时,无任何影响性别姓名男李力女王平男刘伟第16页,此课件共107页哦而作如下交换时,不交换属性名,只交换属性列中的值,则得到不同的关系,如下表:姓名性别男李力女王平男刘伟第17页,此课件共107页哦4.同同一一属属性性名名下下的的各各个个属属性性值值必必须须来来自自同同一一个域个域:是同一类型的数据。5.关关系系中中各各个个属属性性必必须须有有不不同同的的名名字字
12、:不同的属性可来自同一个域,即它们的分量可以取自同一个域。例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员。姓名职业兼职张强教师辅导员王丽工人教师刘宁教师辅导员第18页,此课件共107页哦6.关关系系中中每每一一分分量量必必须须是是不不可可分分的的数数据据项项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。满足此条件的关系称为规范化关系,否则称为非规范化关系。例如,在表1中,籍贯含有省、市县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规
13、范化,如表2所示。表1表2姓名籍贯姓名省市县省市县张强吉林长春张强吉林长春王丽山西大同王丽山西大同第19页,此课件共107页哦2.4关系的码2.4.1候选码与主码能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选码(CandidateKey),也称候选键。如“学生关系”中的学号能唯一标识每一个学生,则属性学号是学生关系的候选码。在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键。第20页,此课件共107页哦下面给出候选码的形式化定义:设关系R有属性A1,A2,An,其属性集K=(Ai,Aj,Ak),当且仅当满足下列
14、条件时,K被称为候选码:1.唯唯一一性性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。2.最最小小性性(Minimally):组成关系键的属性集(Ai,Aj,Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质例如:“学生关系”中的每个学生的学号是唯一的,“选课关系”中“学号+课程号”的组合也是唯一的。对于属性集“学号+课程号”去掉任一属性,都无法唯一标识选课记录。第21页,此课件共107页哦如果一个关系中有多个候选码,可以从中选择一个作为查询、插入或删除元组的操作 变 量,被 选 用 的 候 选 键 称 为 主 码(PrimaryKey),或称为主键
15、、关键字。例如,假设在学生关系中没有重名的学生,则“学号”和“姓名”都可作为学生关系的候选键。如果选定“学号”作为数据操作的依据,则“学号”为主关系键。主码是关系模型中的一个重要概念。每个关系必需选择一个主码,选定以后,不能随意改变。每个关系必定有且仅有一个主码,因为关系的元组无重复,至少关系的所有属性的组合可作为主码。第22页,此课件共107页哦2.4.2主属性与非主属性主属性(PrimeAttribute):包含在主码中的的各属性称为主属性。非主属性(Non-PrimeAttribute):不包含在任何候选码中的属性称为非码属性。在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“
16、学号”,教师关系中的“教师号”。在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。第23页,此课件共107页哦下面是一个全码的例子:假设图书馆有借书关系TCS,分别有三个属性读者编号(T)、图书编号(C)和借阅时间(S)。在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属性的组合是关系TCS的候选码,称为全码,T,C,S都是主属性。TCST1C12005-4-1第24页,此课件共107页哦2.4.3外码(Foreignkey)如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外码或外部关系键。并
17、 称 关 系 R2为 参 照 关 系(referencingrelation),关 系 R1为 被 参 照 关 系(referencedrelation)。因此,因此,“学号学号”属性是选课关系的属性是选课关系的外码外码。学生关系为。学生关系为被参照关系被参照关系,选课关系为选课关系为参照关系参照关系。第25页,此课件共107页哦由外部关系键的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。如选课关系中的“学号”与学生关系的主码“学号”定义在同一个域上。第26页,此课件共107页哦关系模型及其定义5)关系模式(RelationSchema):关系的描述称作关系模式,包括关系名、
18、关系中的属性名、属性向域的映象、属性间的数据依赖关系等,其形式化描述为R(U,D,dom,F),简记作R(U)或R(A1,A2,An)。R(U,D,DOM,F)关系名关系名属性名集合属性名集合域的集合域的集合属性向域属性向域的映象的映象属性间数据属性间数据的依赖关系的依赖关系第27页,此课件共107页哦属性向域的映象一般直接说明为属性的类型、长度等。某一时刻对应某个关系模式的内容(元组的集合)称作关系。关系模式是型,是稳定的,静态的。关系是某一时刻的值,是随时间不断变化的,是动态的。R(U,D,DOM,F)关系名关系名属性名集合属性名集合域的集合域的集合属性向域属性向域的映象的映象属性间数据属
19、性间数据的依赖关系的依赖关系第28页,此课件共107页哦关系数据库(RelationDatabase)其型是关系模式的集合,即数据库描述其值是某一时刻关系的集合例如教学数据库中,共有五个关系,其关系模式分别学生(学号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)选课(学号,课程号,成绩)授课(教师号,课程号)第29页,此课件共107页哦在每个关系中,又有其相应的数据库的实例例如:与学生关系模式对应的数据库中的实例有如下6个元组:S1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化第30
20、页,此课件共107页哦2.4.4关系模型的完整性为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:实体完整性参照完整性用户定义的完整性1.实体完整性(EntityIntegrity)实体完整性是指主码的值不能为空或部分为空。关系模型中的一个元组对应一个实体,一个关系则对应一个实体集。例如,一条学生记录对应着一个学生,学生关系对应着学生的集合。第31页,此课件共107页哦现实世界中的实体是可区分的,即它们具有某种唯一性标识。与此相对应,关系模型中以主码来唯一标识元组。例如,学生关系中的属性“学号”可以唯一标识一个元组,也可
21、以唯一标识学生实体。如果主码的值为空或部分为空,即主属性为空,则不符合主码的定义条件,不能唯一标识元组及与其相对应的实体。这就说明存在不可区分的实体,从而与现实世界中的实体是可以区分的事实相矛盾。因此主关系键的值不能为空或部分为空。例如,学生关系中的主关系键“学号”不能为空;选课关系中的主关系键“学号+课程号”不能部分为空,即“学号”和“课程号”两个属性都不能为空。第32页,此课件共107页哦2.参照完整性(Referentialintegrity)如果关系R2的外码X与关系R1的主码相符,则X的每个值或者等于R1中主码的某一个值,或者取空值。SNO学号SN姓名SEX性别AGE年龄DEPT所在
22、系S1赵亦女17计算机S2钱尔男18信息S11王威男19DEPT所在系ADDR地址计算机1号楼信息1号楼自动化2号楼S(学生关系)(学生关系)D(系别关系)(系别关系)第33页,此课件共107页哦在下例中,如果按照参照完整性规则,选课关系中的外码“学号”可以取空值或者取被参照关系中已经存在的值。但由于“学号”是选课关系中主属性,根据实体完整性规则,两个属性都不能为空。所以选课关系中的外码“学号”中只能取被参照关系中已经存在的值。第34页,此课件共107页哦实体完整性和参照完整性是关系模型必须满足的完整性约束条件,系统都应该支持这两类完整性。除此之外,不同的关系数据库系统由于应用环境的不同,往往
23、还需要一些特殊的约束条件,这就是用户定义完整性。第35页,此课件共107页哦3.用 户 定 义 完 整 性(User-definedIntegrity)用户定义完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如,属性值根据实际需要,要具备一些约束条件,如选课关系中成绩不能为负数;某些数据的输入格式要有一些限制等。关系模型应该提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。第36页,此课件共107页哦关系模型及其定义关系操作关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-t
24、ime)的方式。而非关系型的数据操作方式是一次一记录(Record-at-a-time)。关系操作语言的种类关系数关系数据语言据语言关系代关系代数语言数语言关系演关系演算语言算语言具有关系代数和关系具有关系代数和关系演算双重特点的语言演算双重特点的语言元组关系演算语言元组关系演算语言域关系演算语言域关系演算语言ISBL(InformationSystemBaseLanguage)APLHAQBESQL第37页,此课件共107页哦关系模型与其他模型相比,最有特色的是它的数据库语言。这种语言灵活方便、表达能力和功能都很强。目前关系数据库所使用的语言一般都具有定义、查询、更新和控制一体化的特点,而查
25、询是最主要的部分。所以说,关系数据库的核心部分是查询,故又称为查询语言,而查询的条件要使用关系运算表达式来表示。因此,关系运算是设计关系数据语言的基础。按表达查询的方法不同,关系运算可分为关系代数和关系演算两大类。2.6关系代数第38页,此课件共107页哦2.6.1关系代数的分类及其运算符关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,简称关系代数。它是由IBM在一个实验性的系统上实现的,称 为 ISBL(InformationSystemBaseLanguage)语言。ISBL的每个语句都类似于一个关系代数表达式。关系代数的运算对象是关系,运算结果也是关系,关系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 模型 精选 PPT
限制150内