资源预览内容
第1页 / 共56页
第2页 / 共56页
第3页 / 共56页
第4页 / 共56页
第5页 / 共56页
第6页 / 共56页
第7页 / 共56页
第8页 / 共56页
第9页 / 共56页
第10页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第2章 关系数据库,本章重点介绍: 关系模型的基本概念 关系代数(难点),2,2.1 关系数据库应用实例,在如今的网络信息时代,无论是通过网络预定机票,还是去图书馆查阅书籍信息,无论是去超市购物,还是去ATM机上取款,数据库应用系统正在默默地为人们的工作和生活提供着各种各样的服务与便捷。,例如:同济大学图书馆信息查询系统,图3-1高级查询窗口,3,2.1 关系数据库应用实例,4,2.1 关系数据库应用实例,这里的高级查询窗口和查询结果窗口都是数据库应用系统的一部分。数据库应用系统为用户提供简单易于操作的窗口或友好界面,为用户查找信息和更新信息提供了方便。,数据库应用系统的组成:由用户、数据库应用程序、数据库这几部分构成,其工作关系如图。,5,2.1 关系数据库应用实例,数据库应用系统的工作过程可以概括为:用户通过数据库应用程序输入查询条件,应用程序将查询条件转化成数据库查询命令并提交给DBMS,DBMS接收到查询命令解析执行命令并在操作系统的帮助下从数据库中取出数据返回给应用程序,再由应用程序以直观友好的格式显示出查询结果。,6,2.2 关系模型概述,1.关系(Relation):一个满足某些约束条件的二维表。 2. 属性(Attribute):表中的每列称为一个属性,每个属性必须有唯一的属性名。 3.元组(tuple): 表中的每行称为一个元组。 4.域(domain):属性的取值范围。 5.度或目(Degree):一个关系中属性的个数。 6.基数:一个关系中元组的个数。,2.2.1 关系模型的基本术语,7,借阅表,度,8,2.2.1 关系模型的基本术语,7. 超键(Superkey):一个关系中能唯一标识每个元组的某个或某组属性。 例如:学生(学号, 姓名, 性别, 年龄, 班级) 超键有:学号、 (学号, 姓名)、 (学号, 姓名, 性别)、 (学号, 姓名, 性别, 年龄)、 (学号, 姓名, 性别, 年龄, 班级) 是不是很多?其实只要“学号”一个属性就能唯一标识了,加上其他属性都是多余的。这就引入了候选键的概念。,9,2.2.1 关系模型的基本术语,8. 候选键(Candidate key):一个关系中能唯一标识每个元组的最小的属性集。 例如:学生(学号, 姓名, 性别, 年龄, 班级) 选课(学号,课号,成绩) 指导(导师,专业,研究生)候选键 ? 一个导师可以指导多个研究生,一个导师属于一个专业,一个专业可以有多个导师和学生。 一个关系中候选键可以有多个。,10,2.2.1 关系模型的基本术语,9. 主键(Primary key):在一个关系的候选键中选定一个为主键。 主键中的属性称为主属性。不包含在任何候选键中的属性称为非主属性。 最简单的情况,候选键只包含一个属性,最极端的情况,一个关系的所有属性构成这个关系的候选键,称为全键。,11,2.2.1 关系模型的基本术语,10. 外键(Foreign key): F为关系R中的属性组,它不是R的主键,但它与另一个关系S的主键Ks相对应,则称F为关系R的外键。R为参照关系,S为被参照关系。 例: 职工部门数据库 : 职工(工号,姓名,性别,部门号) 部门(部门号,部门名,负责人,电话),12,2.2.1 关系模型的基本术语,11. 关系数学定义 域:是一组具有相同数据类型的值的集合。 例:整数、小数点后保留2位的实数、性别集合“男”、“女”。,13,2.2.1 关系模型的基本术语,笛卡尔积(Cartesian Product) 定义:给定一组域D1,D2,Dn,这些域可以有相同的。D1,D2,Dn的笛卡尔积为: D1D2Dn= (d1, d2, , dn) | diDi , i=1 ,2, , n 其中,每一个元素(d1,d2, ,dn)叫作一个n元组(n-tuple)或元组。元组中的每一个值di叫作一个分量。,14,2.2.1 关系模型的基本术语,笛卡尔积可表示为二维表:,15,2.2.1 关系模型的基本术语,关系 定义:D1D2Dn的子集叫做在域D1, D2, , Dn上的关系,表示为: R(D1,D2,Dn) R为关系的名字,n为关系的目或度。 关系是笛卡尔积的子集,所以关系也是一个二维表。表的每一行对应一个元组,表的每一列对应一个域,由于域可以相同,为了加以区别,必须对每列起一个名字,称为属性,16,2.2.1 关系模型的基本术语,例如 有两个集合D1和D2,这里D1=2,4,D2=1,3,5。 这两个集合的笛卡尔积为: D1D2= (2,1),(2,3),(2,5),(4,1),(4,3),(4,5) 这个笛卡尔积的任何子集都是一个关系。例如可以产生下列关系: R=(2,1),(4,1) 可以用二维表表示:,17,2.2.2 数据模型三要素,任何数据模型都由三个基本要素构成:数据结构、数据操作、数据完整性约束。 关系模型由关系数据结构、关系操作集合、关系完整性约束三部分构成。,1.数据结构关系 关系数据结构由关系构成。不管是实体还是实体之间的联系都用关系表示。因此关系模型的数据结构单一。,18,2.2.2 数据模型三要素,2.关系操作关系操作集合 (1)关系的操作是集合操作。主要包括: 选择(Select)、投影(Project)、 连接(Join)、除(Divide)、 并(Union)、交(Intersection)、 差(Difference)、广义笛卡尔积 用这8种操作可以完成对数据库的插入、删除、修改、查询操作。,19,2.2.2 数据模型三要素,(2).关系操作的特点:一次一集合(setata time)方式,而非关系数据库的操作是一次一记录(record at a time)方式。,(3).关系操作的能力通常用关系代数或关系演算来表示。 关系代数和关系演算是两种抽象的查询语言。与实际系统中使用的语言并不完全一样。它们主要是用来评估实际系统中使用的查询语言能力的标准或基础。,20,2.2.2 数据模型三要素,3. 关系的三类完整性约束,为了维护数据库数据完整性,关系数据库在插入、删除、修改数据操作时要遵循三类完整性规则。,关系模型具有三类完整性:实体完整性、参照完整性和用户定义完整性。,21,2.2.2 数据模型三要素,一、实体完整性(entity integrity),实体完整性:关系R的主属性不能取空值。 空值(NULL):即“不知道”或“无意义”的值。,例2 学生-选课数据库: 学生(学号, 姓名, 性别, 出生日期, 系) 课程(课号,课名,学分,学时) 选课(学号,课号,成绩,学年学期) 学生表的学号、课程表的课号不能取空值,选课表的学号和课号都不能取空值。,22,2.2.2 数据模型三要素,参照完整性规则 若F为基本关系R的外键,且与基本关系S的主键Ks相对应,则R中的每个元组在F上的值必须为: (1)或者取空值; (2)或者等于S中某个元组的主键值。,二、参照完整性,23,2.2.2 数据模型三要素,例1 职工部门数据库 : 职工(工号,姓名,性别,部门号) 部门(部门号,部门名,负责人,电话) 例2 学生-选课数据库: 学生(学号, 姓名, 性别, 出生日期, 系) 课程(课号,课名,学分,学时) 选课(学号,课号,成绩,学年学期),24,2.2.2 数据模型三要素,实体完整性和参照完整性是关系数据库必须满足的完整性规则,RDBMS应自动支持。 用户定义完整性:是指,根据应用环境,某一具体应用所涉及到的数据必须满足的语义约束条件。RDBMS应提供用户定义这类完整性的机制。 如:学生表中性别只能取“男”,“女”。,三、用户定义完整性,25,2.2.3 关系的性质,数据库中的关系必须具有如下性质: (1)每一列中的分量数据类型相同,来自于同一个域。 (2) 每一列要给出不同的属性名; (3) 不同列的次序可以任意交换。 (4) 不同行的次序可以任意交换。 (5) 任意两个元组不能完全相同。 (6) 每一个分量都是不可再分的数据项。,26,2.2.3 关系的性质,这张表就不是关系,27,2.2.3 关系的性质,可采用如下所示的方式来处理。,28,2.2.4 关系模式,关系模式(Relational Schema): 关系结构的描述称为关系模式。它可以形式化地表示为:R(U , D , Dom , F ) U属性集,D域集,Dom属性向域的映象,表现为属性的类型、长度等。 F属性间的数据依赖。 通常关系被简写为R(A1,A2,.,An ),29,2.2.4 关系模式,关系数据库模式是对关系数据库的描述,包括若干域以及域上定义的关系模式的集合。 其值是这些关系模式在某一时刻对应于关系的集合,通常称为RDB。,30,2.3 关系代数,关系代数是一种抽象的数据语言。是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的,即关系代数的运算对象是关系,运算的结果也是关系。 关系是元组的集合,因此传统的集合运算并、交、差、广义笛卡尔积也适用于关系代数; 关系还包括4个专门的运算:选择、投影、连接和除。,31,2.3.1 传统的集合运算,只需一个操作数的运算称为单目运算,需要2个操作对象的称为二目运算。 传统的集合运算是二目运算,要求参与运算的关系(设为R和S)属性个数相同,且相应的属性取自同一个域。 1并(Union) 关系R与S的并仍是一个n元关系,它由属于R或属于S的元组组成。记作: RS=t | t R t S,32,2.3.1 传统的集合运算,2差(Difference) 关系R与S的差仍是一个n元关系,由属于R而不属于S的所有元组组成。记作: R - S=t | t R t S,3交(Intersection) 关系R与S的交仍是一个n元关系,由属于R且属于S的所有元组组成。记作: R S=t | t R t S,33,2.3.1 传统的集合运算,并,差,交,关系R与S的并、差、交运 算,34,2.3.1 传统的集合运算,4广义笛卡儿积(Cartesian Product) n目关系R和m目关系S的笛卡儿积是一个(n+m)目的新关系,其中每个元组的前n列是关系R的某个元组,后m列是关系S的某个元组。记作: R S =(a1, , an , b1 , , bm ) | (a1, , an )R ( b1 , , bm )S 若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积有k1k2个元组。,35,2.3.1 传统的集合运算,两个关系进行笛卡儿积运算后会得到一个非常大的关系。如R有10个元组,S有30个元组,则R S有300个元组,而且其每个元组要比R和S的元组要大。 关系R和关系S可能有相同的属性名,为加以区别,就在属性名前标上相应的关系名作为前缀,例如R . A和S . A等。属性名不同时,可以不用加前缀。,36,2.3.1 传统的集合运算,例:已知关系R和S分别如下图所示。求: (1) 关系R和S的并。 (2) 关系R与S的交。 (3) 关系R与S的差。 (4) 关系R与S的笛卡儿积。,37,2.3.1 传统的集合运算,解:,38,2.3.1 传统的集合运算,RS,39,2.3.1 传统的集合运算,RS,40,2.3.2 专门的关系运算,专门的关系运算包括选择、投影、连接、除 。 选择、投影是单目运算,其他双目运算。 1. 选择(selection) 关系R上的选择运算是在关系R中选择满足给定条件的元组。记作F ( R )。 其中为选择运算符,F为条件(逻辑表达式)。可表示为: F ( R ) = t | t R F(t)=true ,41,2.3.2 专门的
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号