《哈工大数据库系统课件第二章 关系模型》由会员分享,可在线阅读,更多相关《哈工大数据库系统课件第二章 关系模型(16页珍藏版)》请在金锄头文库上搜索。
1、第二章 关系模型第二章 关系模型 内容出处: 1.Abraham Silberschatz数据库系统概念第二章 2.萨师煊,王珊,数据库系统概论,高等教育出版 社,第四章 内容出处: 1.Abraham Silberschatz数据库系统概念第二章 2.萨师煊,王珊,数据库系统概论,高等教育出版 社,第四章 概念回顾概念回顾 数据模型数据模型 表示实体及其它们之间联系的记录和记录间联系 的数据结构形式叫做数据模型。 表示实体及其它们之间联系的记录和记录间联系 的数据结构形式叫做数据模型。 数据模型的三要素数据模型的三要素 数据结构数据结构 数据及其它们之间的联系数据及其它们之间的联系 数据操作
2、数据操作 检索、更新等操作及其操作规则检索、更新等操作及其操作规则 完整性约束条件完整性约束条件 规定数据库状态及状态变化所应满足的条件,以保证数 据的正确、有效、相容 规定数据库状态及状态变化所应满足的条件,以保证数 据的正确、有效、相容 教学目的教学目的教学目的教学目的 本章首先学习关系模型的基础,然后介绍关系代数,为稍后学习的本章首先学习关系模型的基础,然后介绍关系代数,为稍后学习的本章首先学习关系模型的基础,然后介绍关系代数,为稍后学习的本章首先学习关系模型的基础,然后介绍关系代数,为稍后学习的 关系数据库查询语言关系数据库查询语言关系数据库查询语言关系数据库查询语言SQLSQL打好基
3、础打好基础打好基础打好基础 主要内容主要内容主要内容主要内容 关系基本概念,关系模型,关系代数,关系系统及其查关系基本概念,关系模型,关系代数,关系系统及其查关系基本概念,关系模型,关系代数,关系系统及其查关系基本概念,关系模型,关系代数,关系系统及其查 询优化询优化询优化询优化 教学方法教学方法教学方法教学方法 课堂讲授课堂讲授课堂讲授课堂讲授 重点重点重点重点 关系代数及查询优化关系代数及查询优化关系代数及查询优化关系代数及查询优化 难点难点难点难点 查询的关系代数表示查询的关系代数表示查询的关系代数表示查询的关系代数表示 第二章第二章第二章第二章 关系模型关系模型关系模型关系模型 本章内
4、容本章内容 关系基本概念 关系模型 关系代数 关系系统及其查询优化 关系模型的产生关系模型的产生 E.F.Codd于70年代初提出关系数据理论,他因 此获得1981年的ACM图灵奖 关系理论是建立在集合代数理论基础上的,有 着坚实的数学基础 早期代表系统 SystemR:由IBM的San Jose实验室在IBM370上研制出 INGRES:由加州Berkeley分校研制 部分数据库管理系统 Oracle,Informix,Sybase,SQL Server,DB2 MySQL, Access,Foxpro,Foxbase 关系模型的组成关系模型的组成 数据模型 目标型(数据结构)、运算(数据操
5、作)、完整性 规则 数据模型的作用 为表示和处理信息提供标准模式,依据此进行检 查,设计合适的数据操纵语言 关系模型的组成 数据结构(表) 关系操作集 关系完整性 关系基本概念关系基本概念 域(Domain) 具有相同类型的值的集合 如整数的集合、字符串的集合、全体学生的集合 笛卡尔积(Cartesian Product) 一组域D1 , D2 , Dn的笛卡尔积为: D1D2Dn= (d1 , d2 , , dn) | diDi, i=1,n 笛卡尔积的每个元素(d1 , d2 , , dn)称作一个n- 元组(n-tuple) 元组的每一个值di叫做一个分量(component) 若Di的
6、基数为mi,则笛卡尔积的基数为 i n i m 1 关系基本概念关系基本概念 例:设 D1为教师集合(T)= t1,t2 D2为学生集合(S)= s1,s2 ,s3 D3为课程集合(C)= c1,c2 则D1D2D3是个三元组集合,元组个数为232,是 所有可能的(教师,学生,课程)元组集合 笛卡尔积可表示为二维表的形式 c2s1t1 c2s3t2 c1s2t1 c1s1t1 CST 关系基本概念关系基本概念 关系 笛卡尔积D1D2Dn的子集叫做在域D1 , D2 , Dn上的关系,用R(D1 , D2 , Dn)表示 R是关系的名字,具有n个属性的关系称为n元关系 关系是笛卡尔积中有意义的子
7、集 关系也可以表示为二维表 关系TEACH(T, S, C) c2s1t1 c2s3t2 c1s2t1 c1s1t1 CST 元组 属性 关系基本概念关系基本概念 关系的性质 列是同质的 即每一列中的分量来自同一域,是同一类型的数据。 如TEACH(T, S, C)=(t1 , s1 , c1), (t1 , t2 , c1)是错误的 不同的列可来自同一域,每列必须有不同的属性名 如P=t1,t2 , s1,s2 ,s3,C= c1,c2,则TEACH不 能写成TEACH (P, P, C),还应写成TEACH(T, S, C) 行列的顺序无关紧要 任意两个元组不能完全相同(集合内不能有相同的
8、 两个元素) 每一分量必须是不可再分的数据。满足这一条件的 关系称作满足第一范式(1NF)的 关系模型关系模型 数据结构 单一的数据结构关系 实体集、联系集都表示成关系 系系系系DEPT(D# , DN , DEAN)DEPT(D# , DN , DEAN) 学生学生学生学生S(S# , SN , Gen , AGE , D#)S(S# , SN , Gen , AGE , D#) 课程课程课程课程C(C# , CN , PC# , CREDIT)C(C# , CN , PC# , CREDIT) 选课选课选课选课SC(S# , C# , SCORE)SC(S# , C# , SCORE) 教
9、师教师教师教师PROF(P# , PN, D# , SAL)PROF(P# , PN, D# , SAL) 讲授讲授讲授讲授TEACH(P# , C#)TEACH(P# , C#) 学生学生 课程课程 选课选课 属于属于 系系 教师教师 讲授讲授 工作工作管理管理 关系模型关系模型 候选码(Candidate Key) 其值能唯一标识一个元组的一个属性组,若从属性组中去 掉任何一个属性,它就不具有这一性质了,这样的属性组 称作候选码 如DEPT中的D#,DN都可作为候选码 主码(Primary Key) 进行数据库设计时,从一个关系的多个候选码中选定一个 作为主码 如可选定D#作为DEPT的主
10、码 主码的各属性称作主属性 如SC中的S#,C# 外部码(Foreign Key) 关系R中的一个属性组,它不是R的码,但它与另一个关系S 的码相对应,则称这个属性组为R的外部码 如S关系中的D#属性 关系模型关系模型 关系模式 关系的描述称作关系模式,包括关系名、关系中 的属性名、属性向域的映象、属性间的数据依赖 关系等,简记作R(A1 , A2 , An ) 属性向域的映象一般直接说明为属性的类型、长 度等 某一时刻对应某个关系模式的内容(元组的集合) 称作关系 关系模式是型,是稳定的 关系是某一时刻的值,是随时间不断变化的 关系模型关系模型 关系数据库 其型是关系模式的集合,即数据库描述
11、,称作数据 库的内涵(Intension) 其值是某一时刻关系的集合,称作数据库的外延 (Extension) 关系模型关系模型 关系操作 关系操作是集合操作,操作的对象及结果都是集 合,是一次一集合(Set-at-a-time)的方式 而 非 关 系 型 的 数 据 操 作 方 式 是 一 次 一 记 录 (Record-at-a-time)(需指定存取路径) 关系操作可以用关系代数和关系演算两种方式来 表示,它们是相互等价的 如用关系代数来表示关系的操作,可以有选择、 投影、连接、除、交、差、并等 关系模型关系模型 关系模式的完整性 实体完整性 实关系:实际存在的的关系(真正存在数据库中)
12、 虚关系:实关系导出的关系(关系表达式) 实体完整性针对实关系 实关系的主属性不能取空值 空值:不知道或无意义 说明(现实世界语义的要求): 关系对应到现实世界中的实体集,元组对应到实体,实 体是相互可区分的,通过主码来唯一标识,若主码为 空,则出现不可标识的实体,这是不容许的 关系模型关系模型 参照完整性 如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2 中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值 意义:如果关系R2的某个元组t2参照了关系R1的某个元 组t1,则t1必须存在 例如关系S在D#上的取值有两种可能 空值,表示该学生尚未分到任何系中 若非空值,
13、则必须是DEPT关系中某个元组的D#值,表示该学 生不可能分到一个不存在的系中 另例:职工关系EMP(Eno, Ename, Dno) 部门关系DEPT(Dno, Dname) 关系模型关系模型 用户定义的完整性 用户针对具体的应用环境定义的完整性约束条件 反应某一具体应用所涉及的数据必须满足的语义要求 如S#要求8位整数,gender要求值为“男”或“女” 系统支持 实体完整性和参照完整性由系统自动支持 系统应提供定义和检验用户定义的完整性的机制 关系模型关系模型 重庆立新Z01 天津黎明T20 上海宇宙S10 北京红星B01 所在城市供应商名供应商号 S10 白312 T20蓝201 B0
14、1红010 供应商号颜色零件号 今要向关系P中插入新行, 新行的值分别列出如下。哪些 行能够插入? A( 今要向关系P中插入新行, 新行的值分别列出如下。哪些 行能够插入? A(037037,绿绿,null) B(null, ,null) B(null,黄黄,T20T20) C( ) C(201201,红红,T20T20) D( ) D(105105,蓝蓝,B01B01) E( ) E(101101,黄黄,T11T11) ) 零件关系P(主码是“零件号”,外码是“供应商号”) 供应商关系S(主码是“供应商号”) 关系数据语言概述关系数据语言概述 关系数据语言的特点 一体化 一般关系系统的数据语
15、言都同时具有数据定义、数据操 纵和数据控制语言,而不是分为几个语言。对象单一, 都是关系,因此操作符也单一。而非关系型系统,如 DBTG,有对记录的操作,有对关系的操作 非过程化 用户只需提出“做什么”,无须说明“怎么做”,存取路径 的选择和操作过程由系统自动完成 面向集合的存取方式 操作对象是一个或多个关系,结果是一个新的关系(一 次一关系)。非关系系统是一次一记录的方式。 关系数据语言概述关系数据语言概述 抽象的查询语言 关系代数 用对关系的运算来表达查询,需要指明所用操作 关系演算 用谓词来表达查询,只需描述所需信息的特性 元组关系演算 谓词变元的基本对象是元组变量 域关系演算 谓词变元的基本对象是域变量 三种语言在表达能力上 是等价的,其差别在于 表达查询的方式不同 三种语言在表达能力上 是等价的,其差别在于 表达查询的方式不同 关系数据语言概述关系数据语言概述 具体系统中的实际语言 SQL 介于关系代数和关系演算之间,由IBM公司在研制 System R时提出 QUEL 基于Codd提出的元组关系演算语言ALPHA,在INGRES 上实现 QBE 基于域关系演算,由IBM公司研制 关系代数运算汇总关系代数运算汇总 基本运算 一元运算 选择、投影