1、第二章 关系数据库学习要点n 关系模型n 关系数据结构的形式化定义n 关系完整性n 关系代数n 关系演算序言n 值得记住的= 1970年, E.F.Codd提出关系数据库理论基础 E.F.Codd, “A Relational Model of Data for Large Shared Data Banks”, Communication of the ACM ,1970= 关系数据库试验系统 System R, INGRESn 关系数据库应用数学方法来处理数据库中的数据 , 80年代后成为最重要、最流行的数据库系统n 典型实验系统= System R, University INGRESn
2、 典型商用系统= ORACLE, SYBASE, INFORMIX, DB2, INGRES2.1 关系模型概述n 关系模型由以下三部分组成= 关系数据结构 关系(一张二维表)= 关系操作: 查询操作 选择 (Select)、 投影 (Project)、 连接 (Join)、 除 (Divide)、并 (Union)、 交 (Intersection)、 差 (Difference) 更新操作 增加 (Insert)、 删除 (Delete)、 修改 (Update)= 关系完整性约束 实体完整性、参照完整性 、用户定义完整性关系的两个 不变性,由系统自动支持由应用语义约束关系语言n 关系操作
3、特点= 操作对象和结果都是集合= 高度非过程化的语言,不必借助循环结构就可以完成数据操作,能嵌入高级语言中使用关系数据语言关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言元组关系演算语言域关系演算语言例如 ISBL例如 APLHA, QUEL例如 QBE例如 SQL三种语言在表达能力上完全等价关系模型语言n 关系代数语言 把关系当作集合,用集合运算和特殊的关系运算来表达查询要求和条件 是一种抽象的查询语言n 关系演算语言 用谓词来表达查询要求和条件 谓词变元的基本对象可以是元组变量或域变量,故可分为元组关系演算和域关系演算两类 是一种抽象的查询语言n SQL 介于关系代数和关系演算
4、之间 集 DDL、 DML和 DCL一身的关系数据语言2.2 关系数据结构的形式化定义n 关系模型建立在集合代数基础上,从集合论角度讨论n 关系的形式化定义= 定义 1:域 (Domain) 形式化表示为 D 一组具有相同数据类型的值的集合,如整数、实数等。定义 2:笛卡尔积 (Cartesian Product) P47 一组域 D1,D2, Dn的笛卡尔积 (d1,d2,d3, dn)称为一个 元组 , di称为一个 分量 ,集合中唯一元素的数量是集合的 基数 若 Di的 基数为 Mi, 则笛卡尔集的基数 M为笛卡尔积n 计算实例例 1: D1=甲 ,乙 , D2=1,2, D3=a,b,
5、c1) D1,D2,D3基数分别是多少?2) D1D2?( 基数?)3) D1D2D3?( 基数?)n 笛卡尔集可表示为一个二维表= 请将例子表示为二维表例 2已知三个域D1=导师集合 张清正 ,刘逸 D2=专业集合 计算机 ,信息 D3=学生集合 李勇 ,刘晨 ,王敏 计算思考1)基数?2)计算 D1D2D3? 基数?3)计算结果中的元组有无实际意义?导师 专业 研究生张清正 计算机 李勇张清正 计算机 刘晨张清正 计算机 王敏张清正 信息 李勇张清正 信息 刘晨张清正 信息 王敏刘逸 计算机 李勇刘逸 计算机 刘晨刘逸 计算机 王敏刘逸 信息 李勇刘逸 信息 刘晨刘逸 信息 王敏D1,D2,D3的笛卡尔积(上图)关系数据结构的形式化定义定义 3:关系n D1D2Dn的子集叫做在 D1, D2, , Dn上的关系,表示为 R(D1, D2, , Dn)= n: 关系的 度 或 目 ,表的列数,一般称 n元关系n 相关术语= 候选码: 能够唯一标识一个元组的属性组 一个关系可以有多个候选码= 主码: 一个关系中选定的一个候选码= 主属性: 主码的各个属性= 非主属性(非码属性): 不包含在任何候选码中的属性= 全码: 若关系模式的所有属性组是这个关系模式的候选码 请举例