关系数据库关系代数运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系数据库试验系统System R, INGRES
关系数据库应用数学方法来处理数据库中的数据, 80年代后成为最重要、最流行的数据库系统
典型实验系统
System R, University INGRES
典型商用系统
ORACLE, SYBASE, INFORMIX, DB2, INGRES
n:关系的度或目,表的列数,一般称n元关系
相关术语
候选码:能够唯一标识一个元组的属性组
• 一个关系可以有多个候选码
主码:一个关系中选定的一个候选码
主属性:主码的各个属性
非主属性(非码属性):不包含在任何候选码中的属

全码:若关系模式的所有属性组是这个关系模式的候
选码
请举例
三类关系
关系完整性约束
• 实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持
由应用语 义Baidu Nhomakorabea束
关系语言
关系操作特点
操作对象和结果都是集合 高度非过程化的语言,不必借助循环结构就可以完成
数据操作,能嵌入高级语言中使用
三种语言在表达能 力上完全等价
关系代数语言 关系数据语言 关系演算语言
从笛卡尔集中取出一个子集,选择 有意义的结果组成关系
R=(导师,专业,研究生) •一个研究生只能有一个专业,如李 勇和王敏是计算机专业、刘晨是信 息专业
现在导师与研究生是什么关系?
限定一个学生只能有一个导师, 如张是计算机导师,刘是信息 专业导师
导师S
张清正 张 清正 张清正 张清正 张清正 张清正 刘逸 刘逸 刘逸 刘逸 刘逸 刘逸
例2.已知三个域
D1=导师集合={张清正,刘逸} D2=专业集合={计算机,信息} D3=学生集合={李勇,刘晨,王敏}
计算思考
1)基数? 2)计算D1×D2×D3=?基数? 3)计算结果中的元组有无实际意 义?
导师
张清正 张 清正 张清正 张清正 张清正 张清正 刘逸 刘逸 刘逸 刘逸 刘逸 刘逸
基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示
查询表
查询结果对应的表
视图表
由基本表或其他视图表导出的表,是虚表,不 对应实际存储的数据
例.已知三个域
D1=导师集合S={张清正,刘逸} D2=专业集合SP={计算机,信息} D3=学生集合P={李勇,刘晨,王敏}
计算思考
元组关系演算语言 域关系演算语言
例如ISBL 例如APLHA, QUEL 例如QBE
具有关系代数和关系演算双重特点的语言 例如SQL
关系模型语言
关系代数语言
• 把关系当作集合,用集合运算和特殊的关系运算来表达查询
要求和条件
• 是一种抽象的查询语言
关系演算语言
• 用谓词来表达查询要求和条件 • 谓词变元的基本对象可以是元组变量或域变量,故可分为元
专业SP
计算机 计算机 计算机 信息 信息 信息 计算机 计算机 计算机 信息 信息 信息
研究生P
李勇 刘晨 王敏 李勇 刘晨 王敏 李勇 刘晨 王敏 李勇 刘晨 王敏
D1,D2,D3的笛卡尔积(上图)
关系
关系的限定及扩充
关系数据中的关系是有限集合 为关系的每一列附以属性名以取消关系元组的有序性
2:笛卡尔积(Cartesian Product) P47
• 一组域D1,D2,…Dn的笛卡尔积
D1 D2 ... Dn {(d1, d2,...dn ) | di Di,i 1, 2,...n}
• (d1,d2,d3,…dn)称为一个元组,di称为一个分量,集合中唯一
元素的数量是集合的基数
第二章 关系数据库
学习要点
关系模型 关系数据结构的形式化定义 关系完整性 关系代数 关系演算
序言
值得记住的
1970年,E.F.Codd提出关系数据库理论基础
• E.F.Codd, “A Relational Model of Data for Large Shared
Data Banks”, 《Communication of the ACM》,1970
组关系演算和域关系演算两类
• 是一种抽象的查询语言
SQL
• 介于关系代数和关系演算之间 • 集DDL、DML和DCL一身的关系数据语言
2.2 关系数据结构的形式化定义
关系模型建立在集合代数基础上,从集合论角度讨论 关系的形式化定义
定义1:域(Domain)-形式化表示为D
• 一组具有相同数据类型的值的集合,如整数、实数等。定义
专业
计算机 计算机 计算机 信息 信息 信息 计算机 计算机 计算机 信息 信息 信息
研究生
李勇 刘晨 王敏 李勇 刘晨 王敏 李勇 刘晨 王敏 李勇 刘晨 王敏
D1,D2,D3的笛卡尔积(上图)
关系数据结构的形式化定义
定义3:关系
D1×D2×···×Dn的子集叫做在D1, D2, …, Dn上的 关系,表示为 R(D1, D2, …, Dn)
遵循这一性质的数据库产品(如ORACLE),增加新属 性时,永远是插至最后一列
– 若Di的基数为Mi,则笛卡尔集的基数M为
n
M mi i 1
笛卡尔积
计算实例 例1:D1={甲,乙}, D2={1,2}, D3={a,b,c} 1)D1,D2,D3基数分别是多少? 2)D1×D2=?(基数?) 3)D1×D2×D3=?(基数?) 笛卡尔集可表示为一个二维表
请将例子表示为二维表
关系的性质
列同质,即每一列是同一类型的数据 不同的列可出自同一个域,每一列为一个属性,不同的
属性被赋予不同的属性名 列的次序可以任意交换 任意两个元组不能完全相同 行的次序可以任意交换 分量必须取原子值,即不可再分
在许多实际关系数据库产品中,基本表并不完全具有这六条性质。
举例
列的顺序无所谓,次序可以任意交换
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
• 关系(一张二维表)
关系操作:
• 查询操作
– 选择(Select)、投影(Project)、连接(Join)、除(Divide)、 并(Union)、交(Intersection)、差(Difference)
• 更新操作
– 增加(Insert)、删除(Delete)、修改(Update)
相关文档
最新文档