oracle讲义2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第4章关系模型2上一章介绍了三种主要的数据模型:层次模型网状模型关系模型其中关系模型简单灵活,并有着坚实的理论基础,已成为当前最流行的数据模型。本章主要讲述:关系模型的数据结构关系的定义和性质关系数据库的基本概念关系运算32.1关系模型关系模型就是用二维表格结构来表示实体及实体之间联系的模型。关系模型是各个关系的框架的集合,即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。教师关系T课程关系C授课关系SC教师—课程数据库的关系模型TNO教师号TN姓名SEX性别AGE年龄PROF职称SAL工资COMM岗位津贴DEPT系别CNO课程号CN课程名CT课时TNO教师号CNO课程号4从各个关系的框架中,我们可以很容易看出哪两个关系之间有联系。例如:教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。而课程关系和授课关系有公共的属性“课程号”,则表明这两个关系也有联系。至于元组之间的联系,则与具体的数据有关。只有在公共属性上具有相同属性值的元组之间才有联系。5由上例可以看出,在一个关系中可以存放两类信息:一类是描述实体本身的信息一类是描述实体(关系)之间的联系的信息在层次模型和网状模型中,把有联系的实体(元组)用指针链接起来,实体之间的联系是通过指针来实现的。而关系模型则采用不同的思想,即用二维表来表示实体与实体之间的联系,这就是关系模型的本质所在。所以,在建立关系模型时,只要把的所有的实体及其属性用关系框架来表示,同时把实体之间的关系也用关系框架来表示,就可以得到一个关系模型。如上例中的教师—课程数据库的关系模型就是这样建立的。62.2关系的定义在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念。72.2.1域(Domain)域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)例如整数、实数、字符串的集合。域中所包含的值的个数称为域的基数(用m表示)。关系中用域表示属性的取值范围。例如:D1={李力,王平,刘伟}m1=3D2={男,女}m2=2D3={47,28,30}m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域名无排列次序,如D2={男,女}={女,男}8笛卡尔积(CartesianProduct)给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。由定义可以看出,笛卡尔积也是一个集合。例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1={李力,王平,刘伟}D2={男,女}D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}9笛卡尔积(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)。其中:李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组103.若Di(i=1,2,……n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,……n)表示,则笛卡尔积D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数)为所有域的基数的累积,即M=例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}其中:其基数M=m1×m2=3*2=6元组的个数为6niim1114.笛卡尔积可用二维表的形式表示。例如,上述的6个元组可表示成表2.1。D1和D2的笛卡尔积由上例可以看出,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。姓名性别李力男李力女王平男王平女刘伟男刘伟女122.2.3关系(Relation)笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…Dn上的n元关系(Relation),可用R(D1,D2……Dn)表示如上例D1×D2笛卡尔积的子集可以构成教师关系T1,姓名性别李力男王平女刘伟男几点说明:1.R为关系名,n称为关系的目或度(Degree)。当n=1时,称为单元关系。当n=2时,称为二元关系。…当n=n时,称为n元关系。如上例为二元关系,关系名为T。132.关系中元组个数是关系的基数。如(李力,男),(王平,女),(刘伟,男)为三个元组,关系T的基数为3。如果一个关系的元组个数是无限的,则称为无限关系;如果一个关系的元组个数是有限的,则称为有限关系。由于计算机存储系统的限制,我们一般不去处理无限关系,而只考虑有限关系。3.同样可以把关系看成一个二维表。其中,(1)表的框架由域Di(i=1,2,……n)构成;(2)表的任意一行对应一个元组;(3)表的每一列来自同一域;(4)域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,…,n)称为值域(5)具有相同关系框架的关系成为同类关系,例如,有另一个关系T2,如表2.3所示:T1和T2是同类关系。姓名性别张雪女张兰女144.数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。例如在表2.1中选取一个子集构成如下关系,显然不符合实际情况姓名性别李力男李力女152.3关系的性质尽管关系与二维表格、传统的数据文件是非常类似的,但它们之间又有重要的区别。严格地说,关系是种规范化了的二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制,关系具有如下特性:1.关系中不允许出现相同的元组。2.关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。163.关系中属性的顺序是无关紧要的:即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。例如:关系T1作如下交换时,无任何影响性别姓名男李力女王平男刘伟17而作如下交换时,不交换属性名,只交换属性列中的值,则得到不同的关系,如下表:姓名性别男李力女王平男刘伟184.同一属性名下的各个属性值必须来自同一个域:是同一类型的数据。5.关系中各个属性必须有不同的名字:不同的属性可来自同一个域,即它们的分量可以取自同一个域。例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业={教师,工人,辅导员}。姓名职业兼职张强教师辅导员王丽工人教师刘宁教师辅导员196.关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。满足此条件的关系称为规范化关系,否则称为非规范化关系。例如,在表1中,籍贯含有省、市/县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市/县两列,将其规范化,如表2所示。表1表2姓名籍贯姓名省市/县省市/县张强吉林长春张强吉林长春王丽山西大同王丽山西大同202.4关系的码2.4.1候选码与主码能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选码(CandidateKey),也称候选键。如“学生关系”中的学号能唯一标识每一个学生,则属性学号是学生关系的候选码。在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键。21下面给出候选码的形式化定义:设关系R有属性A1,A2,……An,其属性集K=(Ai,Aj,……Ak),当且仅当满足下列条件时,K被称为候选码:1.唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。2.最小性(Minimally):组成关系键的属性集(Ai,Aj,……Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质例如:“学生关系”中的每个学生的学号是唯一的,“选课关系”中“学号+课程号”的组合也是唯一的。对于属性集“学号+课程号”去掉任一属性,都无法唯一标识选课记录。22如果一个关系中有多个候选码,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主码(PrimaryKey),或称为主键、关键字。例如,假设在学生关系中没有重名的学生,则“学号”和“姓名”都可作为学生关系的候选键。如果选定“学号”作为数据操作的依据,则“学号”为主关系键。主码是关系模型中的一个重要概念。每个关系必需选择一个主码,选定以后,不能随意改变。每个关系必定有且仅有一个主码,因为关系的元组无重复,至少关系的所有属性的组合可作为主码。232.4.2主属性与非主属性主属性(PrimeAttribute):包含在主码中的的各属性称为主属性。非主属性(Non-PrimeAttribute):不包含在任何候选码中的属性称为非码属性。在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。24下面是一个全码的例子:假设图书馆有借书关系TCS,分别有三个属性读者编号(T)、图书编号(C)和借阅时间(S)。在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属性的组合是关系TCS的候选码,称为全码,T,C,S都是主属性。TCST1C1‘2005-4-1’252.4.3外码(Foreignkey)如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外码或外部关系键。并称关系R2为参照关系(referencingrelation),关系R1为被参照关系(referencedrelation)。因此,“学号”属性是选课关系的外码。学生关系为被参照关系,选课关系为参照关系。26由外部关系键的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。如选课关系中的“学号”与学生关系的主码“学号”定义在同一个域上。27关系模型及其定义5)关系模式(RelationSchema):关系的描述称作关系模式,包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等,其形式化描述为R(U,D,dom,F),简记作R(U)或R(A1,A2,…,An)。R(U,D,DOM,F)关系名属性名集合域的集合属性向域的映象属性间数据的依赖关系28属性向域的映象一般直接说明为属性的类型、长度等。某一时刻对应某个关系模式的内容(元组的集合)称作关系。关系模式是型,是稳定的,静态的。关系是某一时刻的值,是随时间不断变化的,是动态的。R(U,D,DOM,F)关系名属性名集合域的集合属性向域的映象属性间数据的依赖关系29关系数据库(RelationDatabase)

1 / 107
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功