书签 分享 收藏 举报 版权申诉 / 115
上传文档赚钱

类型数据库第二章.ppt

  • 上传人(卖家):saw518
  • 文档编号:5714398
  • 上传时间:2023-05-05
  • 格式:PPT
  • 页数:115
  • 大小:1.06MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据库第二章.ppt》由用户(saw518)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据库 第二
    资源描述:

    1、l关系模型的基本概念l关系模型的数据结构l关系操作l关系的完整性 l 关系数据库的数学理论基础:l 集合论、l 关系代数(信息代数),l 用数学的方法来处理数据。数学方法集合论关系代数l关系数据库的发展历程 u1962年,CODASYL “信息代数信息代数”。u1968年,David Child 在7090机上实现的实现的集集合论数据结构合论数据结构。u1970年,E.F.Codd 发表多篇论,严格地、系统地提出关系模型提出关系模型。u20世纪70年代末,IBM 的San Jose实验室研研制出制出关系数据库实验模型System R(原型原型)u1981年,IBM研制出研制出SQL/DS。DB

    2、2、Oracle ingres Sysbase Informix 前面讲过,关系数据库系统是支持关系模型的数据库系统,同样地由关系数据结构、关系操作集合和完整性约束条件三部分组成。一、单一的数据结构-关系关系(P46)实体以及实体间的联系均由关系关系来表示。关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。二、关系操作(P46)关系模型给出了关系操作的能力,但不对具体RDBMS语言给出具体的语法要求。常用的关系操作关系操作包括两大部分:l 选择(Select)、l 投影(Project)、l 连接(jo

    3、in)、l 除(Divide)、l 并(Union)、l 交(Intersection)、l 差(Difference)等查询操作查询操作和 l 增加(Insert)、l 删除(Delete)、l 修改(Update)操作。三、关系操作的特点:集合操作方式,即操作的对象和结果都是集合,这种方式一次一集合一次一集合(set-at-a-time)。非关系数据模型数据操作方式:一次一记录一次一记录(record-at a-time)。实现关系操作关系操作:关系代数和关系演算(元组关系演算、域关系演算)。这是一种抽象的查询语言抽象的查询语言。RDBMSRelational Database Manag

    4、ement System,关系数据库管理系统。关系语言关系语言是一种高度非过程化语言。SQL:Structured Query Language,结构化查询语言。SQL构成:集DDL、DML和DCL于一体。三类:关系代数语言、关系演算语言和具有关系代数和关系演算双重特点的语言关系数据语言1关系代数语言例如ISBL2关系演算语言1.元组关系演算语言例如APLHA,QUEL2.域关系演算语言例如QBE3具有关系代数和关系演算双重特点的语言例如SQL(1)关系代数关系代数是用对关系的运算来表达查询要求的方式。是用对关系的运算来表达查询要求的方式。(2)关系演算关系演算是用谓词来表达查询要求的方式。按

    5、是用谓词来表达查询要求的方式。按谓词变元的基本对象谓词变元的基本对象是元组变量还是元组变量还是域变量分为元组关系演算和域关系演算。是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。(3)介于关系代数和关系演算之间的语言介于关系代数和关系演算之间的语言SQL(Standard Query Language):):SQL不不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、DDL、DML和和DCL于

    6、一体的关系数据语言。它充分体现了关系数据语言的特点和优点,于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。是关系数据库的标准语言。特点特点:完备的表达能力、非过程化的集合操作、功能强、能嵌入高级语言使用。:完备的表达能力、非过程化的集合操作、功能强、能嵌入高级语言使用。关系的三类完整性约束:关系的三类完整性约束:关系模型提供了丰富的完整性控制机制,允许定义三类完整性:关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性实体完整性 参照完整性参照完整性 用户定义的完整性用户定义的完整性关系模型必须满足的完整性约束关系模型必须满足的完整性约束条件,

    7、应该由关系系统自动支持条件,应该由关系系统自动支持是应用领域需要遵循的约束条件,是应用领域需要遵循的约束条件,体现了具体领域中的语义约束体现了具体领域中的语义约束从集合论角度,给出关系数据结构形式化定义。2.2.1 关系2.2.2 关系模式 2.2.3 关系数据库1.域(域(Domain)2.笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)3.关系关系:(笛卡尔积的有效组合)4.码:码:(P49)5.关系的类型与性质关系的类型与性质:(P50)l域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)例如整数、实数、字符串的集合。l域中所包含的值的

    8、个数称为域的基数(用m表示)。l关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟 m1=3D2=男,女 m2=2D3=47,28,30 m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。l域中的值无排列次序,如D2=男,女=女,男l给定一组域D1,D2,Dn(它们可以包含相同的元素元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔积为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。l由定义可以看出,笛卡尔积也是一个集合。其中:1)元素中的每一个di叫做一个分量分量(Component),来自相应的域(diDi)2)每一个

    9、元素(元素(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(i1,2,n)为有限集有限集,其基数基数(Cardinal number)为mi(i1,2,n),则D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为所有域的基数的累乘之积,即:例例1:D1=男人的集合(Man)王兵、李平、张强 D2=女人的集合(Woman)丁梅、吴芳 D3=儿童的

    10、集合(Child)王一、李一、李二niimM1笛卡尔积笛卡尔积是是一个二维表二维表,表中每行行对应一个元组元组,每列列对应一个域域。则这三个集合的笛卡尔积笛卡尔积为:D1D2D3(王兵、丁梅、王一),(王兵、丁梅、李一),(王兵、丁梅、李二),(王兵、吴芳、王一),(王兵、吴芳、李一),(王兵、吴芳、李二),(张强、吴芳、李二)共有18个元素:笛卡尔基数基数32318每小括号的组合,是一个元组元组。每一个元组中的每一个元素(如王兵、丁梅等)就叫分量分量。例例2:上述表示教师关系中姓名D1=李力,王平,刘伟、性别D2=男,女两个域的笛卡尔积为:D1D2=(李力,男),(李力,女),(王平,男),

    11、(王平,女),(刘伟,男),(刘伟,女)其中:l李力、王平、刘伟、男、女都是分量l(李力,男),(李力,女)等是元组l其基数M=m1m2=3*2=6l元组的个数为6例如,上述的6个元组可表示成表2.1。姓名姓名性别性别李力男李力女王平男王平女刘伟男刘伟女表表2.1 D1和和D2的笛卡尔积的笛卡尔积-由上例可以看出,由上例可以看出,笛卡尔积笛卡尔积实际实际是是一个一个二维表二维表,表的框架由域构成表的框架由域构成,表表的任意一的任意一行行就就是是一个一个元组元组,表表中的每一中的每一列列来自同一来自同一域域(例如:(例如:第一个分量来自第一个分量来自D1,第二个分量来自,第二个分量来自D2)。)

    12、。定义定义:笛卡尔积D1D2Dn的任一子集称为定义在域D1,D2,Dn上的n元关系关系(Relation),可用R(D1,D2,Dn)表示如上例D1D2笛卡尔积的子集可以构成教师关系T1,如下表:姓名姓名性别性别李力男王平女刘伟男元组属性若有一个家庭成员集合:R(父亲,母亲,孩子)Man Woman Child 王兵 丁梅 王一 李平 吴芳 李一 李平 吴芳 李二 这个集合才是有效集合有效集合,在现实生活中才有实现的意义,是ManWomanChild之子集。1.R为关系名,n称为关系的目或度(Degree)。当n=1时,称为单元关系。当n=2时,称为二元关系。当n=n时,称为n元关系。如上例为

    13、二元关系,关系名为T。2.关系是笛卡尔积的有限子集,即是一个二维表。行对应一个元组;列对应一个域;每列的名称成为属性。3.n目关系必有n个属性候选键与关键字l能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选键(Candidate Key),也称候选关键字或候选码。如:“学生关系”中的学号能唯一标识每一个学生,则属性学号是学生关系的候选键。在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键。l如果一个关系中有多个候选码候选码,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键主关系键(P

    14、rimary Key),或简称为主键主键、主码主码、关系键关系键、关键字关键字。例如例如,假设在学生关系中没有重名的学生,则“学号”和“姓名”都可作为学生关系的候选键。如果选定“学号”作为数据操作的依据,则“学号”为主关系键。l主关系键是关系模型中的一个重要概念。每个关系必需选择一个主关系键,选定以后,不能随意改变。l每个关系必定有且仅有一个主关系键,因为关系的元组无重复,至少关系的所有属性的组合可作为主关系键,通常用较小的属性组合作为主关系键。主属性主属性与与非码属性非码属性l码属性(Prime Attribute):包含在任何一个候选码中的的各属性称为码属性。l主属性(Prime Attr

    15、ibute):包含在主码中的各属性称为主属性。l非码属性(Non-Prime Attribute):不包含在任何候选码中的属性称为非码属性,或非主属性(Non-key Attribute)。l在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。l在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。l下面是一个全码全码的例子例子:假设有教师、课程、参考书关系TCB,分别有三个属性教师号(T)、课程号(C)和参考书号(B)。一个教师可以讲授多门课程;一门课程可以为多个教师讲授,他们使用相同的一套参考书;同样每种参考书可以供多门课

    16、程使用。在这种情况下,T,C,B三者之间是多对多关系,(T,C,B)三个属性的组合是关系TCB的候选码,称为全码全码,T,C,B都是主属性。外部码外部码(Foreign Key):如果关系中某一个属性(不论该属性在此关系中起什么作用),在另一个关系中是主码,则称该属性为外部码或外部键。例如例如:学生:S(*SNO,SNAME,SEX,DPNO)系部:D(*DPNO,DNAME,TEL,LEADER)lDPNO在S表中就是一个属性;l而DPNO在D表中则是主码。1)关系的类型2)基本关系的性质关系可以有三种类型,具体如下-l基本关系基本关系(通常又称为基本表基本表或基表基表):基本表是实际存在的

    17、表,它是实际存储数据的逻辑表示。l查询表查询表:查询查询结果对应的表。l视图表视图表:视图表是由基本表或其他视图表导出的表,是虚表虚表,不对应实际存储的数据。u 列是同质的列是同质的,即每一列的分量是同一类型的数据,来自同一个域。u 不同的列可出自同一个域不同的列可出自同一个域,称其中的每一个列为一个属性,不同的属性要给予不同的属性名。u 列的顺序无所谓列的顺序无所谓,即列的次序可以任意交换。u 任意两个元组不能完全相同任意两个元组不能完全相同。u 行的次序无所谓行的次序无所谓,即行的次序可以任意交换。u 分量必须取原子值分量必须取原子值,即每一个分量都必须是不可分的数据项。l尽管关系关系与二

    18、维表格二维表格、传统的数据文件数据文件是非常类似的,但它们之间又有重要的区别。l严格地说,关系关系是种规范化了的二维表中行的集合二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制限制,关系具有如下特性:(1)关系中不允许出现相同的元组。关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。(2)关系中元组的顺序(即行序)是无关紧要的,在一个关系中关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据

    19、关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。(3)关系中属性的顺序是无关紧要的,即列关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。例如:关系T1作如下交换时,无任何影响,如下表所示:性别性别姓名姓名男李力女王平男刘伟 而作如下交换时,不交换属性名,只交换属性列中的值,则得到不同的关系,如下表:姓名姓名性别性别男李力女王平男刘伟(4)同一属性名下的各个属性值必须来自同一个域,同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。是同一类型的数据。(5)关系中各个属

    20、性必须有不同的名字,不同的属关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个性可来自同一个域,即它们的分量可以取自同一个域。域。例如例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员。姓名姓名职业职业兼职兼职张强教师辅导员王丽工人教师刘宁教师辅导员 (6)关系中每一分量必须是不可分的数据项关系中每一分量必须是不可分的数据项,或者说所,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示合。属性值可以为空值,表示“未知未知”或或“不可使用不

    21、可使用”,即不可即不可“表中有表表中有表”。满足此条件的关系称为。满足此条件的关系称为规范化关系规范化关系,否则称为否则称为非规范化关系非规范化关系。例如例如:在表:在表2.8中,籍贯含有省、市县两项,出现了中,籍贯含有省、市县两项,出现了“表中有表表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,将的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规范化,如表其规范化,如表2.9所示。所示。姓名姓名籍贯籍贯省省市市/县县张强张强吉林吉林长春长春王丽王丽山西山西大同大同姓名姓名省省市市/县县张强张强吉林吉林长春长春王丽王丽山西山西大同大同表表2.8表表2.9数据库中要区分数据

    22、库中要区分型型、值值。在关系数据库中,在关系数据库中,关系模式关系模式是是型型,关系关系是是值值。关系模式关系模式:对关系的描述。是关系的框架,或称为表框架。它应该:对关系的描述。是关系的框架,或称为表框架。它应该:指出关系由哪些属性构成,这些属性来自哪些域,以及属性与域之指出关系由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系间的映象关系刻画关系必须满足的完整性约束条件刻画关系必须满足的完整性约束条件怎样描述怎样描述关系关系:形式化描述形式化描述为:为:R(u,D,dom,F)其中:其中:R:关系名关系名u:组成该关系的属性名集合组成该关系的属性名集合D:为属性组为属性组u中属

    23、性所来自的域中属性所来自的域dom:为属性向域的映象集合为属性向域的映象集合F:为属性间数据的依赖关系为属性间数据的依赖关系一般地,一般地,关系模式关系模式可简记为可简记为 R(u)或或 R(A1,A2,An)而而域名域名及及属性属性向向域域的的映象映象常常直接说明为属性的常常直接说明为属性的类型类型、长度长度。关系名属性名关系模式关系模式关系模式通常可以简记为:R(A1,A2,An)。其中R为关系名,A1,A2,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。关系模式是静态的、稳定的;关系是关系模式在某一时刻的状态或内容,动态的、随时间不断变化的。关系数据库模式关系数据库

    24、模式一组关系模式的集合叫做关系数据库模式关系数据库模式(在一个给定的(在一个给定的应用领域应用领域中,所有中,所有实体及实体间实体及实体间联系的关系的集合联系的关系的集合构成构成一个一个关系数据库关系数据库)关系模式关系模式=关系数据库的描述关系数据库的描述=关系数据库的关系数据库的型型也也可可称称为数据库的为数据库的内含内含(Intention),包括),包括关系关系各属性定义各属性定义及及在相应域中的映象在相应域中的映象。关系的关系的“型型”是是稳定不变的稳定不变的。关系数据库关系数据库的的“值值”(或叫数据库的(或叫数据库的外延外延Extention)是关系模式在某一时刻对应的关系是关系

    25、模式在某一时刻对应的关系的集合的集合。(通常称为。(通常称为-关系数据库关系数据库)随时间而变化随时间而变化元组的插入、更新、删除元组的插入、更新、删除 关系数据库模式关系数据库模式是对关系数据库结构的描述,或是对关系数据库结构的描述,或者说是对关系数据库框架的描述。者说是对关系数据库框架的描述。与关系数据库模式对应的数据库中的当前值就是与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为关系数据库的内容,称为关系数据库关系数据库的的实例实例,可以看作是可以看作是关系的值关系的值。例如例如,在教学数据库中,共有五个关系,其关系,在教学数据库中,共有五个关系,其关系模式分别为:模式分

    26、别为:学生(学号,姓名,性别,年龄,系别)学生(学号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)课程(课程号,课程名,课时)选课(学号,课程号,成绩)选课(学号,课程号,成绩)授课(教师号,课程号)授课(教师号,课程号)l在每个关系中,又有其相应的数据库的实例在每个关系中,又有其相应的数据库的实例例如:与学生关系模式对应的数据库中的实例有如例如:与学生关系模式对应的数据库中的实例有如下下6 6个元组:个元组:S1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴

    27、丽女20自动化关系数据库关系数据库是是“一组随时间变化,具有各种度的规一组随时间变化,具有各种度的规范化关系的集合范化关系的集合”。在关系模型中,实体以及实体间的联系都是用关系在关系模型中,实体以及实体间的联系都是用关系来表示。在一个给定的现实世界领域中,相应于所来表示。在一个给定的现实世界领域中,相应于所有实体及实体之间的联系的关系的集合有实体及实体之间的联系的关系的集合构成构成一个一个关关系数据库系数据库。由此可见,由此可见,关系数据库关系数据库也有也有型型和和值值的概念。的概念。l其其型型就是关系数据库模式,相对固定;就是关系数据库模式,相对固定;l其其值值就是关系数据库内容,代表现实世

    28、界中的实体,而实就是关系数据库内容,代表现实世界中的实体,而实体是随着时间不断变化的,所以其值在不同的时刻会有所体是随着时间不断变化的,所以其值在不同的时刻会有所变化变化。关系数据库关系数据库本质本质:关系模型的完整性规则,是对关系的某种关系模型的完整性规则,是对关系的某种约束条件。约束条件。背景背景:为了维护数据库中数据与现实世界的一致为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类须有一定的约束条件,这就是关系模型的三类完整性。完整性。分类分类:关系模型中有三类完整性约束:关系模型中

    29、有三类完整性约束:实体完整性实体完整性参照完整性参照完整性用户定义完整性用户定义完整性必须满足的完整性约束条件(即:)DBMS自动支持体现了具体领域的语义约束l实体完整性实体完整性是指是指主键的值不能为空或部分为空主键的值不能为空或部分为空。l关系模型关系模型中的一个中的一个元组元组对应一个对应一个实体实体,一个,一个关系关系则对应一个则对应一个实体集实体集。例如,一条学生记录对应着一个学生,学生关系对应着学生的集合。例如,一条学生记录对应着一个学生,学生关系对应着学生的集合。l规则规则(实体完整性规则实体完整性规则):):若属性若属性A是基本关系是基本关系R的主属性,则属性的主属性,则属性A

    30、不不能取空值。能取空值。l实体完整性实体完整性是针对是针对基本关系基本关系的。的。l现实世界中的实体是可区分的,即它们具有某种唯一性标识。与此相对现实世界中的实体是可区分的,即它们具有某种唯一性标识。与此相对应,关系模型中以主关系键来唯一标识元组。应,关系模型中以主关系键来唯一标识元组。例如例如,学生关系中的属性,学生关系中的属性“学号学号”可以唯一标识一个元组,也可以唯一标识学生实体。可以唯一标识一个元组,也可以唯一标识学生实体。l如果主键中的值为空或部分为空,即主属性为空,则不符合键的定义条如果主键中的值为空或部分为空,即主属性为空,则不符合键的定义条件,不能唯一标识元组及与其相对应的实体

    31、。这就说明存在不可区分的件,不能唯一标识元组及与其相对应的实体。这就说明存在不可区分的实体,从而与现实世界中的实体是可以区分的事实相矛盾。因此实体,从而与现实世界中的实体是可以区分的事实相矛盾。因此主键的主键的值不能为空或部分为空值不能为空或部分为空。例如例如,学生关系中的主键,学生关系中的主键“学号学号”不能为空;选课关系中的主键不能为空;选课关系中的主键“学号学号+课程号课程号”不不能部分为空,即能部分为空,即“学号学号”和和“课程号课程号”两个属性都不能为空。两个属性都不能为空。例如:设备库设备库Equipment(*设备编号,设备名称,规格型号设备编号,设备名称,规格型号)SBBH S

    32、BMC GGXH另如:学生基本信息学生基本信息 学号学号 姓名姓名 出生日期出生日期 出生地出生地 民族民族Student(*Sno,Sname,CSRQ,CSD,MZ,再如:选课信息选课信息 学号学号 课程号课程号 成绩成绩SG(*Sno,*Cno,CJ,)均不为空 实体完整性是针对基本关系而言的。一个实体完整性是针对基本关系而言的。一个基本基本关系关系对应现实世界的一个对应现实世界的一个实体集实体集。实体实体间实体实体间的联系的联系 现实世界中实体是可区分的,即它们可以具有现实世界中实体是可区分的,即它们可以具有某种唯一性标识。某种唯一性标识。关系模型中的主码作为唯一性标识。关系模型中的主

    33、码作为唯一性标识。主码中的属性即主属性不能取空值(空值就是主码中的属性即主属性不能取空值(空值就是不知道或无意义的值),非空字符串不知道或无意义的值),非空字符串如果主属性取空值,就说明存在某个不可标识的实如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与体,即存在不可区分的实体,这与矛盾。矛盾。l现实世界中的实体之间往往存在某种联系,在关系模型现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用然存在着关系与关系间的引用。l例例1:学生(学生(学号学号

    34、,姓名,性别,姓名,性别,专业号专业号,年龄),年龄)l 专业(专业(专业号专业号,专业名),专业名)l例例2:学生(学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄)l 课程(课程(课程号课程号,课程名,学分),课程名,学分)l 选课(选课(学号学号,课程号课程号,成绩),成绩)l例例3:学生学生2 2(学号学号,姓名,性别,姓名,性别,专业号专业号,年龄,班长),年龄,班长)l定义定义2.5 设设F是基本关系是基本关系R的一个或一组属性,但不是关系的一个或一组属性,但不是关系R的码,如果的码,如果F与基本关系与基本关系S的主码的主码Ks相对应,则称相对应,则称F是基是基

    35、本关系本关系R的的外码外码(Foreign key),并称基本关系),并称基本关系R为为参照参照关系关系(Referencing relation),基本关系),基本关系S为为被参照关系被参照关系(Referenced relation)或)或目标关系目标关系(Target relation)。)。l关系关系R和和S不一定是不同的关系。不一定是不同的关系。引用返回l参照完整性规则参照完整性规则:若属性(或属性组)若属性(或属性组)F是基本是基本关系关系R的外码,它与基本关系的外码,它与基本关系S的主码的主码Ks相对应相对应(基本关系(基本关系R和和S不一定是不同的关系),则对于不一定是不同的关

    36、系),则对于R中每个元组在中每个元组在F上的值必须为:上的值必须为:(1)或者取空值()或者取空值(F的每个属性值均为空值);的每个属性值均为空值);(2)或者等于)或者等于S中某个元组的主码值。中某个元组的主码值。l如如图图2.2所示,所示,学生关系中某个学生(如学生关系中某个学生(如s1或或s2)“系别系别”的取值,必须在参照的系别关系中主关的取值,必须在参照的系别关系中主关系键系键“系别系别”的值中能够找到,否则表示把该学的值中能够找到,否则表示把该学生分配到一个不存在的部门中,显然不符合语义。生分配到一个不存在的部门中,显然不符合语义。l如果某个学生(如如果某个学生(如s11)“系别系

    37、别”取空值,则表示取空值,则表示该学生尚未分配到任何一个系。否则,它只能取专该学生尚未分配到任何一个系。否则,它只能取专业关系中某个元组的专业号值。业关系中某个元组的专业号值。S(学生关系)(学生关系)D(系别关系)(系别关系)SNO学号学号 SN姓名姓名SEX性别性别AGE年龄年龄DEPT所在系所在系S1赵亦赵亦女女17计算机计算机S2钱峰钱峰男男18信息信息S3高原高原男男18S11王威王威男男19DEPT所在系所在系ADDR地址地址计算机计算机1号楼号楼信息信息1号楼号楼自动化自动化2号楼号楼图图2.2 学生表和系别表学生表和系别表取空值,则表示该取空值,则表示该学生尚未分配到任学生尚未

    38、分配到任何一个系何一个系“管理”在系别关系中不存在,表示把该学生分配到一个不存在的部门中,显然不符合语义l在在例例2中,如果按照参照完整性规则,选课关系中的外部中,如果按照参照完整性规则,选课关系中的外部关系键关系键“学号学号”和和“课程号课程号”可以取空值或者取被参照关可以取空值或者取被参照关系中已经存在的值。但由于系中已经存在的值。但由于“学号学号”和和“课程号课程号”是选课是选课关系中主属性,根据实体完整性规则,两个属性都不能为关系中主属性,根据实体完整性规则,两个属性都不能为空。空。所以所以选课关系中的外部关系键选课关系中的外部关系键“学号学号”和和“课程号课程号”中能取被参照关系中已

    39、经存在的值。中能取被参照关系中已经存在的值。l实体完整性实体完整性和和参照完整性参照完整性是关系模型必须满足的完整性约是关系模型必须满足的完整性约束条件,被称作束条件,被称作关系的两个不变性关系的两个不变性。任何关系数据库系统。任何关系数据库系统都应该支持这两类完整性。都应该支持这两类完整性。l除此之外,不同的关系数据库系统由于应用环境的不同,除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,这就是往往还需要一些特殊的约束条件,这就是用户定义完整性用户定义完整性。例例4:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)外码等价等价于于学生关学生关系系参

    40、照关系专业关专业关系系被参照关系专业号例例5:学生(*学生号,姓名,性别,专业号,年龄)课程(*课程号,课程名,学分)选修(*学号,*课程名,成绩名)等价于等价于学生学生关系关系选修选修关系关系学号课程课程关系关系课程号例例6:同一关系属性间也能存在引用关系。“班长”属性与本身的主码“学号”属性相对应,因此“班长”是外码。这里,学生关系既是参照关系也是被参照关系。学生(*学号,姓名,性别,专业号,年龄,班长)学生关系班长等价于等价于l根据具体具体的应用环境应用环境,往往需要往往需要一些特殊特殊的约束条件约束条件。-需要由用户定义需要由用户定义。l此规则反映反映-某一具体应用具体应用所涉及的数据

    41、必须满足数据必须满足的语义要求的语义要求。l例如例如:某个属性属性的取值取值,结合具体应用,必须满足必须满足以下语义要求语义要求:u 某个属性的取值必须取唯一值取唯一值;u 某些属性值之间必须满足一定的函数关系满足一定的函数关系;u某个属性的取值范围取值范围在a,b区间之间等。u例如,属性值根据实际需要,要具备一些约束条件,如选课关系中成绩不能为负数。u某些数据的输入格式要有一些限制等。l关系模型应该提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。l关系模型与其他模型相比,最有特色的是它的数据库数据库语言语言。l这种语言灵活方便、表达能力和功能都

    42、很强。l目前关系数据库所使用的语言一般都具有定义定义、查询查询、更新更新和控制控制一体化的特点,而查询查询是最主要的部分。l所以说,关系数据库关系数据库的核心核心部分是查询查询,故又称为查查询语言询语言,而查询的条件要使用关系运算表达式关系运算表达式来表示。l因此,关系运算是设计关系数据语言的基础关系运算是设计关系数据语言的基础。l按表达查询的方法不同,关系运算可分为关系代数关系代数和关系演算关系演算两大类。定义定义:关系代数关系代数n是一种抽象的查询语言抽象的查询语言;n是关系操纵语言关系操纵语言的一种传统表达方式表达方式;n是用用对关系关系的运算运算来表达查询表达查询。2.4.1 关系代数

    43、的分类及其运算符关系代数的分类及其运算符2.4.2 传统的集合运算(传统的集合运算(P56-P57)2.4.3 专门的关系运算(专门的关系运算(P58-P64)2.4.1 关系代数的分类及其运算符关系代数的分类及其运算符l关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,关系代数语言,简称简称关系代数关系代数。它 是 由 I B M 在 一 个 实 验 性 的 系 统 上 实 现 的,称 为ISBL(Information System Base Language)语言。ISBL的每个语句都类似于一个关系代数表达式。l关系代数的运算对象运算对象是关系关系,运算结果运

    44、算结果也是关系关系,关系代数用到的运算符主要包括四类:集合运算符集合运算符:(并),-(差),(交),X(广义笛卡尔积);专门的关系运算符专门的关系运算符:(选择),(投影),(连接),*(自然连接),(除);算术比较运算符算术比较运算符:(大于),(大于等于),1000)(SEX=男)(T)l结果如图所示。l注意:字符型数据的值应该使用单引号括起来,例如,计算机,男。l练习:1)查询选择了 课程C1的学生l 2)查询教授了 课程C2的教师TNOTNSEXAGEPROFSALCOMMDEPTT1李力男47教授15003000计算机例2:选修关系SC(见P59图2.3(c))SNOCNOGrad

    45、eS1S2S3S4S5S6123231859075809288SNOSNAMESDEPTSAGE S1S2S3S4S5S6ABCDEFCSCSMAC1MACS202119192022学生Student (见P59图2.3(a))1)求计算机科学系(CS)的学生:记作:或 结果为:)(StudentCSSDEPT)(3StudentCSSNOSNAMESDEPTSAGES1S2S6ABFCSCSCS202122引用返回2)求年龄大于或等于20的学生:)(20StudentAGEDEPTSCSS)(882SCGradeCNO4)求选修课程2且成绩大于等于88分的元组:3)求计算机科学系年龄大于等于

    46、20的学生:)Student(20SAGE)(204Student或SNOSNAMESDEPTSAGE S1S2S5S6ABEFCSCSMACS20212022SNOSNAMESDEPTSAGES1S2S6ABFCSCSCS202122SNOCNOGradeS22903.投影(Projection)l投影运算投影运算也是单目单目运算,关系R上的投影是从从R中选择出若中选择出若干属性列干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,应应删去重复元组删去重复元组。记作:A(R)=tA|tRl其中A为R中的属性列,为投影运算符。l从其定义可看出,投影

    47、运算是从列的角度列的角度进行的运算,这正是选择运算和投影运算的区别所在。选择运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。l投影之后,新关系与原关系可能不相容。l投影之后,去掉了一些列,可能出现重复的元组,在结果中要去掉重复的元组。因此投影之后,要去掉某些行和列。例:查询学生的姓名和所在系(Student表见例2))(,StudentDEPTNAMESS例:查询学生关系中有哪些系(Student表见例2))(StudentDEPTSSNAMESDEPTABCDEFCSCSMAC1MACSSDEPTCSMAC1l再例再例:查询教师的姓名,教师号及其职称(教师表参见例

    48、1)。TN,TNO,PROF(T)或 2,1,5(T)(其中2,1,5分别为TN、TNO和PROF的属性序号)l结果右图所示TNTNOPROF李力T1教授王平T2讲师刘伟T3讲师张雪T4教授张兰T5副教授l上例表明,投影运算可以改变关系的属性次序 又例又例:查询教师关系中有哪些系(教师表参见例1)。DEPT(T)l结果如右图所示 l由上例可以看出,投影后取消了某些属性列后,就可能出现重复行,应该取消这些完全相同的行取消这些完全相同的行。所以投投影之后,不但减少了属性,元组也可能减少影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。DEPT计算机信息自动化又例又例:查询讲授C5课程的

    49、教师号(教师表参见例1)。TNO(CNO=C5(TC)l结果如右图所示。TNOT2T3T5 本例中选取运算和投影运算相结合,先在授课表中选本例中选取运算和投影运算相结合,先在授课表中选取满足条件的元组,再于取满足条件的元组,再于TNO属性上进行投影。属性上进行投影。练习练习:1)查询)查询 数据库数据库的课时的课时2)查询选择了)查询选择了 课程课程C1的学生的学生号及成绩的学生的学生号及成绩4.连接(Join)l连接运算是二目二目运算,是从两个关系的笛卡尔积中选取满足连接条件的元组,组成新的关系。l设关系R(A1,A2,An)及S(B1,B2,Bm),连接属性集X包含于A1,A2,An,及Y

    50、包含于B1,B2,Bm,X与与Y中属中属性列数目相等,且相对应属性有共同的域性列数目相等,且相对应属性有共同的域。l【若Z=A1,A2,An/X (/X:去掉X之外的属性)及W=B1,B2,Bm/Y,则 R及S可表示为R(Z,X),S(W,Y)。】l关系R和S在连接属性X和Y上的连接,就是在RS笛卡尔积中,选取选取X属性列上的分量与属性列上的分量与Y属性列上的分量满足给属性列上的分量满足给定定比较条件的那些元组比较条件的那些元组,也就是在RS上选取在连接属性X,Y上满足条件的子集,组成新的关系。新关系的度为新关系的度为n+m。4.连接(Join)记作:R S=trts|trRtsStrXtsY

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据库第二章.ppt
    链接地址:https://www.163wenku.com/p-5714398.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库