1、- 1 -数据库原理 课程教案授课题目(教学章、节或主题):第二章 关系数据库:包括关系数据结构及形式化定义,关系操作,关系的完整性,关系代数,关系演算。教学目的、要求(分掌握、熟悉、了解三个层次):了解:用域关系演算式表达查询要求;关系数据库查询优化的重要性理解:关系模型的基本概念 掌握:关系数据库的重要概念,包括关系模型的数据结构、关系的完整性以及关系操作。用关系代数和元组关系演算表达查询要求。掌握查询处理各个步骤的主要功能。能够把 SQL 语句转换成查询树,对查询树进行代数优化,转换成优化的查询树。重点: 1关系模型 2关系数据结构及形式化定义:域、笛卡尔积、元组、关系、侯选码、主码、
2、关系模式、关系数据库 3关系的完整性:实体完整性、参照完整性、用户定义的完整性 难点: 1关系代数:并、差、交、广义笛卡尔积等传统的集合运算;选择、投影、连接、除等专门的关系运算 2关系演算:元组关系演算;域关系演算 3. 查询优化:关系代数的优化算法 课时安排:7 节授课方式:理论课教学基本内容:以教师为中心的讲授、提问及论证等的教学方法,教学手段使用板书与多媒体相结合的手段。- 2 -关系数据库简介 提出关系模型的是美国IBM公司的E.F.Codd 1970年提出关系数据模型E.F.Codd, “A Relational Model of Data for Large Shared Dat
3、a Banks”, Communication of the ACM,1970 之后,提出了关系代数和关系演算的概念 1972年提出了关系的第一、第二、第三范式 1974年提出了关系的BC范式第二章 关系数据库 2.1 关系2.2 关系代数2.3 查询优化2.4 关系演算*本章小结2.1 关系 2.1.1 关系定义 单一的数据结构- 关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构- 二维表 从用户角度,关系模型中数据的逻辑结构是一张二维表 建立在集合代数的基础上 从集合论角度给出给出关系数据结构的形式化定义: 域(Domain ) 域 是一组具有相同数据类型的值的集合。例:
4、整数 实数 介于某个取值范围的整数 长度指定长度的字符串集合 男 , 女.2. 笛卡尔积(Cartesian Product) 笛卡尔积 给定一组域 D1 , D2 , , Dn ,这些域中可以有相同 的。 D1 , D2 , , Dn 的笛卡尔积 为: D1D2Dn - 3 -( d1 , d2 , , dn ) diDi , i 1 ,2 , , n 所有域的所有取值的一个组合 不能重复 元组 (Tuple ) 笛卡尔积中每一个元素( d1, d2, dn)叫作一个 n元组(n-tuple)或简称元组(Tuple) (张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组 分量
5、 (Component ) 笛卡尔积元素( d1, d2, dn)中的每一个值 di叫作一个分量 张清玫、计算机专业、李勇、刘晨等都是分量 基数(Cardinal number) 若 Di( i1,2, n)为有限集,其基数为 mi( i1,2, n),则D1D2Dn的基数 M为: 笛卡尔积的表示方法 笛卡尔积可表示为一个二维表 表中的每行对应一个元组,表中的每列对应一个域3. 关系(Relation ) 1) 关系D1D2Dn 的子集 叫作在域 D1 , D2 , , Dn 上的 关系 ,表示为 表 2.1 D1, 2, D3的 笛 卡 尔 积 SUPERVISO SPECIALTY POS
6、TGRADUTE 张 清 玫 计 算 机 专 业 李 勇 张 清 玫 计 算 机 专 业 刘 晨 张 清 玫 计 算 机 专 业 王 敏 张 清 玫 信 息 专 业 李 勇 张 清 玫 信 息 专 业 刘 晨 张 清 玫 信 息 专 业 王 敏 刘 逸 计 算 机 专 业 李 勇 刘 逸 计 算 机 专 业 刘 晨 刘 逸 计 算 机 专 业 王 敏 刘 逸 信 息 专 业 李 勇 刘 逸 信 息 专 业 刘 晨 刘 逸 信 息 专 业 王 敏 - 4 -R ( D1 , D2 , , Dn ) R: 关系名 n: 关系的目 或度 (Degree ) 2) 元组 关系中的每个元素是关系中的元组
7、,通常用 t 表示。 3) 单元关系与二元关系 当 n=1 时,称该关系为单元 关系 (Unary relation ) 或一元 关系 当 n=2 时,称该关系为二元 关系(Binary relation ) 4) 关系的表示 关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域 5) 属性 关系中不同列可以对应相同的域 为了加以区分,必须对每列起一个名字,称为属性(Attribute ) n 目关系必有 n 个属性 6) 码 候选码(Candidate key)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码简单的情况:候选码只包含一个属性全码(All-key)最极
8、端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)主码若一个关系有多个候选码,则选定其中一个为主码(Primary key)主属性候选码的诸属性称为主属性(Prime attribute)不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute) D1, D2, Dn的笛卡尔积的某个子集才有实际含义例:表2.1 的笛卡尔积没有实际意义取出有实际意义的元组来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)表 2. SAP关 系 SUPERVISO SP
9、ECILTY POSTGRADUTE 张 清 玫 信 息 专 业 李 勇 张 清 玫 信 息 专 业 刘 晨刘 逸 信 息 专 业 王 敏 - 5 -假设:导师与专业:1:1, 导师与研究生:1:n主码:POSTGRADUATE(假设研究生不会重名) SAP关系可以包含三个元组 (张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(刘逸,信息专业,王敏) 7) 三类关系 基本关系 (基本表或基表) 实际存在的表,是实际存储数据的逻辑表示 查询表 查询结果对应的表 视图表 由基本表或其他视图表导出的表,是虚表,不对 应实际存储的数据 8) 基本关系的性质 列是同质的(Homogeneou
10、s) 不同的列可出自同一个域 其中的每一列称为一个属性 不同的属性要给予不同的属性名 列的顺序无所谓,,列的次序可以任意交换 任意两个元组的候选码不能相同 行的顺序无所谓,行的次序可以任意交换 分量必须取原子值 这是规范条件中最基本的一条 表2.3 非规范化关系2.1.2 关系模式1 什么是关系模式 2 定义关系模式 3. 关系模式与关系 1 什么是关系模式 - 6 - 关系模式(Relation Schema ) 是型 关系是值 关系模式是对关系的描述 元组集合的结构 属性构成 属性来自的域 属性与域之间的映象关系 元组语义以及完整性约束条件 属性间的数据依赖关系集合 2 定义关系模式 关系
11、模式可以形式化地表示为: R( U, D, DOM, F)R 关系名 U 组成该关系的属性名集合 D 属性组 U 中属性所来自的域 DOM 属性向域的映象集合 F 属性间的数据依赖关系集合 例:导师和研究生出自同一个域 人, 取不同的属性名,并在模式中定义属性向域 的映象,即说明它们分别出自哪个域: DOM (SUPERVISOR-PERSON ) = DOM (POSTGRADUATE-PERSON ) =PERSON关系模式通常可以简记为 R (U) 或 R (A1, A2, , An) R: 关系名 A1 , A2 , , An : 属性名 注:域名及属性向域的映象常常直接说明为 属性的
12、类型、长度 3. 关系模式与关系 关系模式 对关系的描述 静态的、稳定的 关系 关系模式在某一时刻的状态或内容 动态的、随时间不断变化的 - 7 - 关系模式和关系往往统称为关系通过上下文加以区别 2.1.3 关系数据库 关系数据库 在一个给定的应用领域中,所有关系的集合构成一个关系数据库 关系数据库的型与值2. 关系数据库的型与值 关系数据库的型: 关系数据库模式 对关系数据库的描述。 关系数据库模式包括 若干域的定义 在这些域上定义的若干关系模式关系数据库的值: 关系模式在某一时刻对应的关系的集合,简称为关系数据库 2.2.1 基本关系操作 常用的关系操作 查询:选择、投影、连接、除、并、
13、交、差 数据更新:插入、删除、修改 查询的表达能力是其中最主要的部分 选择、投影、并、差、笛卡尔基是5种基本操作 关系操作的特点 集合操作方式:操作的对象和结果都是集合,一次一集合的方式 2.2.2 关系数据库语言的分类 关系代数语言 用对关系的运算来表达查询要求 代表:ISBL 关系演算语言:用谓词来表达查询要求 元组关系演算语言 谓词变元的基本对象是元组变量 代表:APLHA, QUEL 域关系演算语言 谓词变元的基本对象是域变量 代表:QBE 具有关系代数和关系演算双重特点的语言 代表:SQL(Structured Query Language) 2.3 关系的完整性 2.3.1 关系的
14、三类完整性约束 - 8 -实体完整性和参照完整性:关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持用户定义的完整性:应用领域需要遵循的约束条件,体现了具体领域中的语义约束 2.3.2 实体完整性 规则2.1 实体完整性规则(Entity Integrity)若属性 A是基本关系 R的主属性,则属性 A不能取空值例:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE:主码(假设研究生不会重名)不能取空值实体完整性规则的说明(1) 实体完整性规则是针对基本关系而言的。一个基本表通常对应现 实世界的一个实体集。(2) 现
15、实世界中的实体是可区分的,即它们具有某种唯一性标识。(3) 关系模型中以主码作为唯一性标识。(4) 主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性2.3.3 参照完整性 1. 关系间的引用 2. 外码 3. 参照完整性规则 1. 关系间的引用 在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1 学生实体、专业实体学生(学号 ,姓名,性别,专业号 ,年龄) 专业(专业号 ,专业名) 关系间的引用( 续)例2 学生、课程、学生与课程之间的多对多联系学生(学号,
16、姓名,性别,专业号,年龄) 课程(课程号 ,课程名,学分) 选修(学号 ,课程号 ,成绩) - 9 -例3 学生实体及其内部的一对多联系 学生(学号,姓名,性别,专业号,年龄,班长)“学号”是主码,“班长”是外码,它引用了本关系的“学号” “班长” 必须是确实存在的学生的学号 2 外码(Foreign Key ) 设 F是基本关系 R的一个或一组属性,但不是关系 R的码。如果F与基本关系 S的主码K s相对应,则称F是基本关系 R的外码 基本关系 R称 为参照关系(Referencing Relation) 基本关系 S称 为被参照关系(Referenced Relation)或目标关系(Ta
17、rget Relation) 例1:学生关系的“专业号与专业关系的主码“专业号”相对应 “专业号”属性是学生关系的外码 专业关系是被参照关系,学生关系为参照关系 例2:选修关系的“学号” 与学生关系的主码“学号”相对应选修关系的“课程号”与课程关系的主码“课程号”相对应 “学号”和“课程号”是选修关系的外码 学生关系和课程关系均为被参照关系学 号 姓 名 性 别 专 业 号 年 龄 班 长 801张 三 女 0198022 李 四 男 2 3王 五 男4 赵 六 女 5 805钱 七 男 019 - 10 - 选修关系为参照关系 例3:“班长”与本身的主码“学号”相对应 “班长”是外码 学生关
18、系既是参照关系也是被参照关系 关系 R和 S不一定是不同的关系 目标关系 S的主码K s 和参照关系的外码F必须定义在同一个(或一组)域上 外码并不一定要与相应的主码同名当外码与相应的主码属于不同关系时,往往取相同的名 字,以便于识别3. 参照完整性规则 规则2.2 参照完整性规则若属性(或属性组) F是基本关系 R的外码它与基本关系 S的主码K s相对应(基本关系 R和 S不一定是不同的关系),则对于 R中每个元组在 F上的值必须为: 或者取空值( F 的每个属性值均为空值) 或者等于 S 中某个元组的主码值 例1:学生关系中每个元组的“专业号”属性只取两类值:(1)空值,表示尚未给该学生分
19、配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业例2 :选修(学号,课程号,成绩)“学号”和“课程号”可能的取值 :(1)选修关系中的主属性,不能取空值(2)只能取相应被参照关系中已经存在的主码值例3:学生(学号,姓名,性别,专业号,年龄,班长)“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长(2)非空值,该值必须是本关系中某个元组的学号值 2.3.4 用户定义的完整性 针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能