数据库技术及应用第3章关系数据库.ppt_第1页
数据库技术及应用第3章关系数据库.ppt_第2页
数据库技术及应用第3章关系数据库.ppt_第3页
数据库技术及应用第3章关系数据库.ppt_第4页
数据库技术及应用第3章关系数据库.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

第3章 关系数据库,3.1 关系模型及其定义 3.2 关系代数 习题3,3.1 关系模型及其定义,3.1.1 关系数据结构 在关系模型中,无论是实体集,还是实体集之间的联系均由单一的关系表示。由于关系模型是建立在集合代数基础上的,因而一般从集合论角度对关系数据结构进行定义。,1. 关系的数学定义 (1) 域。 域是一组具有相同数据类型的值的集合。 (2) 笛卡儿积。 (3) 关系。,表3-1 D1、D2、D3的笛卡儿积,表3-2 学 生 关 系,2. 关系中的基本名词 (1) 元组。 关系表中的每一横行称作一个元组,组成元组的元素为分量。 (2) 属性。 关系中的每一列称为一个属性。 (3) 候选码和主码。 若关系中的某一属性组(或单个属性)的值能惟一地标识一个元组,则称该属性组(或属性)为候选码。,(4) 全码。 若关系的候选码中只包含一个属性,则称它为单属性码;若候选码是由多个属性构成的,则称它为多属性码。 (5) 主属性和非主属性。 在关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性,3. 数据库中关系的类型 (1) 基本表。它是关系数据库中实际存在的表,是实际存储数据的逻辑表示。 (2) 视图表。它是由基本表或其他视图表导出的表。 (3) 查询表。它是指查询结果表或查询中生成的临时表。,4. 数据库中基本关系的性质 关系数据库中的基本表具有以下六个性质: (1) 同一属性的数据具有同质性,即同一列中的分量是同一类型的数据,它们来自同一个域。 (2) 同一关系的属性名具有不能重复性,即同一关系中不同属性的数据可出自同一个域,但不同的属性要给予不同的属性名。,(3) 关系中的列位置具有顺序无关性,即关系中的列的次序可以任意交换、重新组织,属性顺序不影响使用。 (4) 关系具有元组无冗余性,即关系中的任意两个元组不能完全相同。 (5) 关系中的元组位置具有顺序无关性,即关系元组的顺序可以任意交换。 (6) 关系中每一个分量都必须是不可分的数据项。,表3-3 非规范化的关系结构,表3-4 修改后的关系结构,5. 关系模式 关系的描述称为关系模式。关系模式可以表示为 R(U,D,Dom,F) 其中: R关系名,它是关系的形式化表示; U组成该关系的属性集合; D属性组U中属性所来自的域; Dom属性向域的映像的集合; F属性间数据的依赖关系集合。,6. 关系数据库 在关系数据库中,实体集以及实体间的联系都是用关系来表示的。在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库。关系数据库也有型和值的区别。,3.1.2 关系操作概述 1. 关系操作的基本内容 关系操作包括数据查询、数据维护和数据控制三大功能。 (1) 数据查询指数据检索、统计、排序、分组以及用户对信息的需求等功能。 (2) 数据维护指数据增加、删除、修改等数据自身更新的功能。 (3) 数据控制是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。,2. 关系操作的特点 关系操作具有以下三个明显的特点: (1) 关系操作语言操作一体化。 (2) 关系操作的方式是一次一集合方式。 (3) 关系操作语言是高度非过程化的语言。,3. 关系操作语言的种类 关系操作语言可以分为以下三类: (1) 关系代数语言。 (2) 关系演算语言。 (3) 基于映像的语言。,3.1.3 关系的完整性 1. 关系模型的实体完整性 关系的实体完整性规则:若属性A是基本关系R的主属性,则属性A的值不能为空值。 实体完整性规则规定:基本关系的所有主属性都不能取空值,而不仅是主码不能取空值。实体完整性的主要作用是: (1) 能够保证实体的惟一性。 (2) 能够保证实体的可区分性。,2. 关系模型的参照完整性 (1) 外码和参照关系。 设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。 (2) 参照完整性规则。 (3) 用户定义的完整性。,3.2 关 系 代 数,关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。 关系代数的运算对象是关系,运算结果亦为关系。关系代数所使用的运算符包括四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符。,(1) 集合运算符:(并运算),(差运算),(交运算),(广义笛卡儿积)。 (2) 专门的关系运算符:(选择),(投影),(连接),(除)。 (3) 比较运算符:(大于),(大于等于),(小于),(小于等于),(等于),(不等于)。 (4) 逻辑运算符:(非),(与),(或)。,3.2.1 传统的集合运算 传统的集合运算是二目运算,它包括四种运算:并、差、 交、广义笛卡儿积。 1. 并运算 关系R与关系S的并运算表示为 RS=t| t (Rt (S 上式说明,R和S并的结果仍为n目关系,其数据由属于R或属于S的元组组成。,2. 差运算 关系R与关系S的差运算为 R - S = t | t (Rt (S 上式说明,R和S差运算的结果关系仍为n目关系,其数据由属于R而不属于S的所有元组组成。,3. 交运算 关系R与关系S的交运算为 RS = t | t(Rt (S 上式说明,R和S交运算的结果关系仍为n目关系,其数据由既属于R同时又属于S的元组组成。 关系的交可以用差来表示,即 RS = R-(R-S),4. 广义笛卡儿积运算 设两个分别为n目和m目的关系R和S,它们的广义笛卡儿积是一个(n+m)目的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积应当有k1k2个元组。 R和S的笛卡儿积表示为 RS = tr ts | tr ( Rts ( S ,表3-5 传统集合运算的实例,3.2.2 专门的关系运算 专门的关系运算包括选择、投影、连接和除法运算。为了叙述上的方便,先引入几个记号。 1. 记号说明 (1) 关系模式、关系、元组和分量。 (2) 域列和域列非。 (3) 元组连串。 (4) 属性的像集。,2. 专门关系运算的定义 (1) 选择运算。 选择运算又称为限制运算。选择运算指在关系R中选择满足给定条件的元组,记作: F(R)= t | t (RF(t)= 真 ,【例3-1】用关系代数表示在学生课程数据库中查询计算机系的全体学生的操作。 所在系= 计算机系 (学生) 或 4 = 计算机系 (学生) 【例3-2】用关系代数表示在学生课程数据库中查询年龄小于20岁的学生的操作。 年龄20(学生) 或 320(学生),(2) 投影运算。 关系R上的投影是从R中选择出若干属性列组成新的关系,记作: A(R)=t A | t (R 其中,A为R中的属性列。 (3) 连接运算。 (4) 除运算。,【例3-3】在学生课程数据库中,查询学生的姓名和所在系,即求学生关系在学生姓名和所在系两个属性上的投影操作,表示为 姓名,所在系(学生) 或 2,4(学生) 在学生课程数据库中,查询学生关系中都有哪些系,即查询关系学生在所在系属性上的投影的操作,表示为 所在系(学生),【例3-4】设学生和选课关系中的数据如下,学生与选课之间的笛卡儿积、等值连接和自然连接的结果如表3-6所示。,表3-6 关系间的笛卡儿积、等值连接和自然连接运算结果比较,【例3-5】给出选课、选修课和必修课三个关系,它们的关系模式为 选课(学号,课号,成绩) 选修课(课号,课名) 必修课(课号,课名) “选课选修课”运算结果如表3-7所示,“选课必修课”以及“学号,课号(选课)必修课”的结果如表3-8所示。,表3-7 关系除运算实例1,表3-8 关系除运算实例2,3.2.3 关系代数检索实例 下面的检索实例均基于学生选课库,学生选课库的关系模式为 学生(学号,姓名,性别,年龄,所在系) 课程(课程号,课程名,先行课) 选课(学号,课程号,成绩) 【例3-6】求选修了课程号为“C2”课程的学生学号。 【例3-7】求选修了课程号为“C2”课的学生学号和姓名。 【例3-8】求没有选修课程号为“C2”课程的学生学号。,【例3-9】求既选修“C2”课程,又选修“C3”课程的学生学号。 【例3-10】求选修课程号为“C2”或“C3”课程的学生学号。 【例3-11】求选修了全部课程的学生学号。 【例3-12】一个学号为“04001”的学生所学过的所有课程可能也被其他学生选修,求这些学生的学号和姓名。(求至少选修了学号为“04001”的学生所学过的所有课程的学生的学号和姓名)。,习 题 3,3.1 试述关系模型的特点和三个组成部分。 3.2 解释下列术语,说明它们之间的联系与区别: (1) 主码、候选码、外码。 (2) 迪卡儿积、关系、元组、属性、域。 (3) 关系、关系模式、关系数据库。,3.3 试述关系模型的完整性规则。在参照完整性中,为什么外码属性的值也可以为空?什么情况下才可以为空? 3.4 试述等值连接与自然连接的区别和联系。 3.5 设属性A是关系R的主属性,则属性A不能取空值(NULL),这是_。 A. 实体完整性规则 B. 参照完整性规则 C. 用户定义完整性规则 D. 域完整性规则,3.6 下面对于关系的叙述中,哪个是不正确的? A. 关系中的每个属性是不可分解的 B. 在关系中元组的顺序是无关紧要的 C. 任意的一个二维表都是一个关系 D. 每一个关系只有一种记录类型 3.7 设关系R和S的元组个数分别为100和300,关系T是R与S的笛卡儿积,则T的元组个数是_。 A. 400 B. 10 000 C. 30 000 D. 90 000,3.8 设关系R与关系S具有相同的目(或称度),且相对应的属性的值取自同一个域,则R-(R-S)等于_。 A. RS B. RS C. RS D. R-S,3.9 关系模式进行投影运算后_。 A. 元组个数等于投影前关系的元组数 B. 元组个数小于投影前关系的元

温馨提示

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

评论

0/150

提交评论