1 / 14

第二章 关系数据库

第二章 关系数据库. 学习要点. 关系模型 关系数据结构的形式化定义 关系完整性 关系代数. 序言. 值得记住的 1970 年, E.F.Codd 提出关系数据库理论基础 关系数据库试验系统 System R, INGRES 目前流行的 RDBMS DB2, Oracle, Ingres, Sybase, Informix 等. 2.1 关系模型概述. 关系模型由以下三部分组成 关系数据结构 关系(一张二维表) 关系操作: 查询操作

yvon
Download Presentation

第二章 关系数据库

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 关系数据库

  2. 学习要点 • 关系模型 • 关系数据结构的形式化定义 • 关系完整性 • 关系代数

  3. 序言 • 值得记住的 • 1970年,E.F.Codd提出关系数据库理论基础 • 关系数据库试验系统System R, INGRES • 目前流行的RDBMS • DB2, Oracle, Ingres, Sybase, Informix等

  4. 2.1 关系模型概述 • 关系模型由以下三部分组成 • 关系数据结构 • 关系(一张二维表) • 关系操作: • 查询操作 • 选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference) • 更新操作 • 增加(Insert)、删除(Delete)、修改(Update) • 关系完整性约束 • 实体完整性、参照完整性、用户定义完整性 由应用语义约束 关系的两个不变性, 由系统自动支持

  5. 三种语言在表达能力上完全等价 关系语言 • 关系操作特点: • 操作对象和结果都是集合 • 高度非过程化的语言,不必借助循环结构就可以完成数据操作,能嵌入高级语言中使用 关系代数语言 例如ISBL 元组关系演算语言 例如APLHA, QUEL 关系演算语言 关系数据语言 域关系演算语言 例如QBE 具有关系代数和关系演算双重特点的语言 例如SQL

  6. 关系模型语言 • 关系代数语言 • 把关系当作集合,用集合运算和特殊的关系运算来表达查询要求和条件 • 是一种抽象的查询语言 • 关系演算语言 • 用谓词来表达查询要求和条件 • 谓词变元的基本对象可以是元组变量或域变量,故可分为元组关系演算和域关系演算两类 • 是一种抽象的查询语言 • SQL • 介于关系代数和关系演算之间 • 集DDL、DML和DCL一身的关系数据语言

  7. 2.2 关系数据结构的形式化定义 • 关系模型建立在集合代数基础上,从集合论角度讨论 • 关系的形式化定义 • 定义1:域(Domain) • 一组具有相同数据类型的值的集合,如整数、实数等。形式化表示为D • 定义2:笛卡尔积(Cartesian Product) P47 • 一组域D1,D2,…Dn的笛卡尔积 • (d1,d2,d3,…dn)称为一个元组,di称为一个分量 • 若Di的基数(值的个数)为Mi,则笛卡尔集的基数M为

  8. 笛卡尔积 • 计算实例 例1:D1={甲,乙}, D2={1,2}, D3={a,b,c} 1)D1,D2,D3基数分别是多少? 2)D1×D2=?(基数?) 3)D1×D2×D3=?(基数?) • 笛卡尔集可表示为一个二维表 • 表中的每行对应一个元组,表中的每列对应一个域 请将例子表示为二维表

  9. 导师 专业 研究生 张清正    计算机    李勇 张清正    计算机    刘晨 张清正    计算机    王敏 张清正    信息     李勇 张清正    信息     刘晨 张清正    信息     王敏 刘逸     计算机    李勇 刘逸     计算机    刘晨 刘逸     计算机    王敏 刘逸     信息     李勇 刘逸     信息     刘晨 刘逸     信息     王敏 D1,D2,D3的笛卡尔积 例2.已知三个域 D1=导师集合={张清正,刘逸} D2=专业集合={计算机,信息} D3=学生集合={李勇,刘晨,王敏} 计算思考 1)每个域的基数? 2)计算D1×D2×D3=?基数? 3)计算结果中的元组有无实际意义?

  10. 关系数据结构的形式化定义定义3:关系 • D1×D2×···×Dn的子集叫做在D1, D2, …, Dn上的关系,表示为 R(D1, D2, …, Dn) • 相关术语 • 候选码:能够唯一标识一个元组的属性组(一个关系可以有多个候选码) • 主码:一个关系中选定的一个候选码 • 主属性:包含在任何候选码中的属性 • 非主属性:不包含在任何候选码中的属性 • 全码:若关系模式的所有属性组是这个关系模式的候选码,称为全码(请举例) 三种关系类型:基本关系(又称基表)、视图表、查询表 n:关系的度或目,表的列数,一般称n元关系

  11. 例.已知三个域 • D1=导师集合S={张清正,刘逸} • D2=专业集合SP={计算机,信息} • D3=学生集合P={李勇,刘晨,王敏} • 计算思考 • 从笛卡尔集中取出一个子集,选择有意义的结果组成关系 • R=(导师,专业,研究生) • 一个研究生只能有一个专业,如李勇和王敏是计算机专业、刘晨是信息专业 导师S 专业SP 研究生P 张清正    计算机    李勇 张清正    计算机    刘晨 张清正    计算机    王敏 张清正    信息     李勇 张清正    信息     刘晨 张清正    信息     王敏 刘逸     计算机    李勇 刘逸     计算机    刘晨 刘逸     计算机    王敏 刘逸     信息     李勇 刘逸     信息     刘晨 刘逸     信息     王敏 现在导师与研究生是什么关系? 现在导师与研究生是什么关系? 限定一个学生只能有一个导师,如张是计算机导师,刘是信息专业导师 D1,D2,D3的笛卡尔积(上图)

  12. 关系 • 关系的限定及扩充 • 关系数据中的关系是有限集合 • 为关系的每一列附以属性名以取消关系元组的有序性 • 关系的性质 • 列同质,即每一列是同一类型的数据 • 不同的列可出自同一个域,每一列为一个属性,不同的属性被赋予不同的属性名 • 列的次序可以任意交换 • 任意两个元组不能完全相同 • 行的次序可以任意交换 • 分量必须取原子值,即不可再分 思考:描述关系需要那些方面的信息呢? 在许多实际关系数据库产品中,基本表并不完全具有这六条性质。

  13. 关系模式 • 关系模式是对关系的描述,形式化表示为 R(U, D, dom, F) U:组成该关系的属性名集合 D:属性组U中属性所来自的域 dom:属性向域的映象集合,如属性的类型、长度 F:属性间数据的依赖关系集合 ★可简记为R(U)或R(A1, A2, …, An),其中Ai为属性名 • 关系模式与关系 • 关系模式是型,是对关系的描述,是静态的,稳定的。 • 关系是值,由赋予它的元组语义来确定的,是动态的,不断变化的 • 关系是关系模式在某一时刻的状态或内容 ★实际应用中常常将关系模式和关系都称为关系

  14. 关系数据库 • 在给定应用领域中,所有表示实体及实体之间联系的关系的集合构成一个关系数据库 • 关系数据库也有型和值之分 思考:给出导师、学生、专业三个实体可能组成的关系数据库及其概念模型(E-R图)

More Related