您好,欢迎访问三七文档
数据库系统基础1数据库基础理论石油大学(北京)计算机系朱瑛数据库系统基础2第二章关系数据库一、关系模型的基本概念二、关系运算三、关系数据库标准语言——SQL数据库系统基础3一、关系的数学定义1.域域是值的集合。如,实数集合、姓名集合、职称集合、性别集合等等都是域。对于一个确定的域来说,总能判断某个值是否在此域中。§2.1关系模型的基本概念数据库系统基础4niDddddDDDIinN,...,2,1,,...,,...21212.笛卡尔积例:给出下面三个域D1=教师名={张辉,李晓云,王东}D2=性别={男,女}D3=职称={副教授,讲师,助教}则它们的笛卡儿积也是一个域,表示为:D1×D2×D3={(张辉,男,副教授),(张辉,男,讲师),(张辉,男,助教),(张辉,女,副教授),(张辉,女,讲师),数据库系统基础5(张辉,女,助教),(李晓云,男,副教授),(李晓云,男,讲师),(李晓云,男,助教),(李晓云,女,副教授),(李晓云,女,讲师),(李晓云,女,助教),(王东,男,副教授),(王东,男,讲师),(王东,男,讲师),(王东,男,助教),(王东,女,副教授),(王东,女,讲师),(王东,女,助教)}数据库系统基础62.关系笛卡儿积D1×D2×...×Dn中的任一个子集,可以构成在n个域D1,D2,...,Dn上的一个关系。例如,R={(张辉,男,副教授),(李晓云,女,讲师),(王东,男,助教)}就是上面提到的笛卡儿积D1D2D3中的一个关系。关系也可以写成二维表的形式:数据库系统基础7姓名性别职称张辉男副教授李晓云女讲师王东男助教数据库系统基础84.数据库中关系的性质属性必须是同质的,即同一属性的各个值应是同类型的数据;各属性的排列次序无关紧要;同一关系中不能有完全相同的元组;各元组的次序可以交换;任一属性必须是原子的,它不可再分。数据库系统基础9二、关系模型在关系模型中,实体及实体之间的联系均用关系——二维表格表示。关系模型由三部分组成:数据结构、关系操作集合、关系的完整性。数据库系统基础101.数据结构一个数据库文件由文件结构与记录数据两部分组成。前者称为关系的“型”或“关系框架”,后者称为关系的“值”。一个关系数据库可以包含一组关系,也可以只有一个关系。定义一个关系数据库,就是对它所包含的所有关系框架进行描述。例如,图书管理数据库有三个关系,其关系模式如下:数据库系统基础11读者登记:姓名借书证号单位借书登记:借书证号总编号借阅日期图书资料登记:图书号、总编号、分类号、书名、作者、出版社、价格1)定义字段字段名类型宽度姓名字符10借书证号字符8数据库系统基础12单位字符18图书号字符10总编号字符10分类号字符10书名字符20作者字符10出版单位字符18价格数值8借阅日期日期82)定义关系读者(姓名,借书证号,单位)数据库系统基础13图书(图书号,总编号,分类号,书名,作者,出版单位,价格)借阅(借书证号,总编号,借阅日期)说明:加下划线的字段名为主码;如果一个关系中的属性或属性组并非该关系的关键字(主码),但它们是另外一个关系的关键字(主码),则称其为该关系的外关键字(外部码)。数据库系统基础142.关系操作关系操作采用集合操作,即操作的对象和结果都是集合。关系模型中常用的关系操作包括:选择、投影、连接、除、并、交、差等查询操作和增、删、改操作两大部分。查询的表达能力是其中最主要的部分。数据库系统基础153.关系的完整性关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性、用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。1)实体完整性——基本关系的主属性不能取空值。①一个基本关系通常对应现实世界的一个实体集。例如,学生关系对应于学生的集合。数据库系统基础16②现实世界中实体是可以区分的,即它们具有某种唯一性标识。③关系模型中由主码作为唯一性标识。④主码不能取空值。因为主码取空值说明存在某个不可标识的实体。2)参照完整性若基本关系R中含有与另一基本关系S的主码Ks相对应的属性组F(F称为R的外部码),则对于R中每个元组F上的值必须为:①或者取空值(F的每个属性值均为空值);②或者等于S中某个元组的主码值。关系S的主码Ks和F定义在同一个(或一组)域上,基本关系R,S不一定是不同的关系。数据库系统基础17例如,职工关系(职工号,姓名,部门号)和部门关系(部门号,部门名称)是两个基本关系。职工关系的主码是职工号,部门关系的主码是部门号。在职工关系中,部门号是它的外部码。职工关系中每个元组的部门号取值允许有两种可能:①取空值。这说明这个职工尚未分配到某个部门;②若非空值,则部门号的值必须是部门关系中某个元组中的部门号值,表示此职工不可能分配到一个不存在的部门中,即参照的部门关系中一定存在一个元组,它的主码值等于职工关系中的外部码值。这就是参照完整性。数据库系统基础183)用户定义的完整性实体完整性和参照完整性用于任何关系数据库系统。用户定义的完整性则是针对某一数据库的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。数据库系统基础19总之,关系模型具有如下特点:关系必须规范化。即关系模型中每一个关系模式都必须满足一定的要求。模型概念单一。即关系模型中,无论是实体还是实体间的联系都用关系表示。集合操作。即关系模型中,操作对象和结果都是元组的集合。数据库系统基础20§2.2关系运算关系是由若干个元组组成,每个元组有若干个属性。关系的基本运算有两类:一类是传统的集合运算(并、交、差等);一类是专门的关系运算(选择、投影、联接等)有些查询需要几个基本运算的组合。数据库系统基础21一、传统的集合运算1.并关系R和关系S的并记为RS,结果仍为n目关系。由属于R或属于S的元组组成。2.交关系R和关系S的交记为RS,结果仍为n目关系。由既属于R又属于S的元组组成。3.差关系R和关系S的差记为R-S,结果仍为n目关系。由属于R而不属于S的元组组成。数据库系统基础22URSRISRSR-SRSRS数据库系统基础234.广义笛卡儿积两个分别为n、m目的关系R和关系S的笛卡儿积RS是一个(n+m)目元组的集合。元组的前n个分量R的一个元组,后m个分量是S的一个元组。若R有k1个元组,S有k2个元组,则RS有k1×k2个元组。数据库系统基础24二、专门的关系运算1.选择从关系中找出满足给定条件的诸元组称为选择。这是从行的角度进行运算,即水平方向抽取元组。经过选择运算得到的结果元组可以形成新的关系,其关系模式不变,但其中元组的数目小于等于原来关系中元组的个数,它是原关系的一个子集。SELECT关系名WHERE条件数据库系统基础25图书资料登记表表2.1图书号总编号分类号书名作者出版单位价格445501445502445503445504445505445506445507445508445509TP298TP298TP315TP315TP328TN431RT7RT7TP331数据库导论数据库导论操作系统操作系统程序设计集成电路英汉字典英汉字典数字电路C.J.DATEC.J.DATE王生王生张英李少光刘英刘英陆志林科学出版社科学出版社高等教育出版社高等教育出版社清华大学出版社电子工业出版社高等教育出版社高等教育出版社电子工业出版社17.9017.9012.2012.2025.0023.8030.0030.0020.40数据库系统基础26例1.从图书中找出书名是“数据库导论”的书籍。SELECT图书WHERE书名=“数据库导论”图书号总编号分类号书名作者出版单位单价445501TP298数据库导论C.J.Date科学出版社17.90445502TP298数据库导论C.J.Date科学出版社17.90数据库系统基础27例2.从图书中找出由高等教育出版社出版的,单价不超过20元的书籍。SELECT图书WHERE出版单位=“高等教育出版社”AND单价=20图书号总编号分类号书名作者出版单位单价445503TP315操作系统王生高等教育出版社12.20数据库系统基础282.投影从关系模式中挑选若干属性组成新的关系称为投影。这是从列的角度进行的运算,相当于对关系进行垂直分解。经过投影运算得到一个新关系,其关系模式所包含的属性个数比原关系少,或者属性的排列顺序不同。PROJECT关系名(属性1,属性2,...)数据库系统基础29例3.从图书中列出所有书的书名、作者、出版社、单价。PROJECT图书(书名,作者,出版单位,单价)书名作者出版单位价格数据库导论数据库导论操作系统操作系统程序设计集成电路英汉字典英汉字典数字电路C.J.DATEC.J.DATE王生王生张英李少光刘英刘英陆志林科学出版社科学出版社高等教育出版社高等教育出版社清华大学出版社电子工业出版社高等教育出版社高等教育出版社电子工业出版社17.9017.9012.2012.2025.0023.8030.0030.0020.40数据库系统基础30例4.从图书中找出藏书所涉及的所有出版社。PROJECT图书(出版单位)出版单位科学出版社高等教育出版社清华大学出版社电子工业出版社数据库系统基础313.联接将两个关系模式的属性名拼接成一个更宽的关系模式,生成新的关系中包含满足联接条件的元组。运算过程是通过联接条件来控制的,联接条件中将出现不同关系中的公共属性名,或者具有相同语义、可比的属性。联接是对关系的结合。JOIN关系1AND关系2WHERE条件数据库系统基础32联接运算比较费时间,尤其是在包括许多元组的关系之间联接更是如此。设关系R和S分别有m和n个元组,R与S的联接过程要访问mn个元组。先从关系R中的第一个元组开始,依次与关系S的各元组比较,符合条件的元组首尾相连纳入新关系,一轮共进行n次比较;再用关系R的第二个元组与关系S的各元组扫描,共需进行m轮扫描。如果m=500,n=50,关系R和关系S的联接过程需要进行25000次存取。由此可见,查询时应数据库系统基础33考虑优化,以便提高查询效率。如果有可能,应当首先进行选择运算,使关系中元组个数尽量减少,能投影的先投影,使关系中属性个数减少,然后再进行联接。数据库系统基础34借书登记表表2.2借书证号总编号借阅日期16000116000116000116000316000316000216000544550144550344550544550244550444550744550897.10.597.10.597.10.597.12.197.12.198.1.1098.1.23读者统计表表2.3姓名借书证号单位张平李少林王文元陈波赵明周晓燕160001160002160003160004160005160006计算机系机电系石工系经管学院地科系化工系数据库系统基础35例5.根据表2.1和表2.2,查看借书证号为“160001”所借书的详情。JOIN借阅AND图书WHERE借阅(总编号)=图书(总编号)AND借阅(借书证号)=“160001”总编号分类号书名作者出版单位价格借阅日期445501445503445505TP298TP315TP328数据库导论操作系统程序设计C.J.DATE王生张英科学出版社高等教育出版社清华大学出版社17.9012.2025.0097.10.597.10.597.10.5数据库系统基础36例6.根据表2.2和表2.3,查看借了书的读者的详情。R1=PROJECT借阅(借书证号)R2=JOINR1AND读者WHERER1(借书证号)=读者(借书证号)说明:联接过程中去掉重复属性的等值联接称为自然联接。姓名借书证号单位张平李少林王文元160001160002160003计算机系机电系石工系数据库系统基础37综上所述,关
本文标题:数据库原理第2章
链接地址:https://www.777doc.com/doc-8686375 .html