关系数据库关系代数运算.ppt
《关系数据库关系代数运算.ppt》由会员分享,可在线阅读,更多相关《关系数据库关系代数运算.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、现在学习的是第1页,共81页n关系模型关系模型n关系数据结构的形式化定义关系数据结构的形式化定义n关系完整性关系完整性n关系代数关系代数n关系演算关系演算现在学习的是第2页,共81页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关系数据库应用数学方法来处理数据库中的数据关系数据库
2、应用数学方法来处理数据库中的数据, 80年代年代后成为最重要、最流行的数据库系统后成为最重要、最流行的数据库系统n典型实验系统典型实验系统=System R, University INGRESn典型商用系统典型商用系统=ORACLE, SYBASE, INFORMIX, DB2, INGRES现在学习的是第3页,共81页n关系模型由以下三部分组成关系模型由以下三部分组成=关系数据结构关系数据结构关系(一张二维表)关系(一张二维表)=关系操作:关系操作:查询操作查询操作 选择选择(Select)、投影、投影(Project)、连接、连接(Join)、除、除(Divide)、并、并(Union)
3、、交交(Intersection)、差、差(Difference)更新操作更新操作 增加增加(Insert)、删除、删除(Delete)、修改、修改(Update)=关系完整性约束关系完整性约束实体完整性、参照完整性实体完整性、参照完整性、用户定义完整性、用户定义完整性关系的两个关系的两个不变性不变性,由系统自动支持由系统自动支持由应用语义约由应用语义约束束现在学习的是第4页,共81页n关系操作特点关系操作特点=操作对象和结果都是集合操作对象和结果都是集合=高度非过程化的语言,不必借助循环结构就可以完成数据操作,高度非过程化的语言,不必借助循环结构就可以完成数据操作,能嵌入高级语言中使用能嵌入
4、高级语言中使用关系数据语言关系数据语言关系代数语言关系代数语言关系演算语言关系演算语言具有关系代数和关系演算双重特点的语言具有关系代数和关系演算双重特点的语言元组关系演算语言元组关系演算语言域关系演算语言域关系演算语言例如例如ISBL例如例如APLHA, QUEL例如例如QBE例如例如SQL三种语言在表达能三种语言在表达能力上完全等价力上完全等价现在学习的是第5页,共81页n关系代数语言关系代数语言把关系当作集合,用集合运算和特殊的关系运算来表达查询要求和条件把关系当作集合,用集合运算和特殊的关系运算来表达查询要求和条件是一种抽象的查询语言是一种抽象的查询语言n关系演算语言关系演算语言用谓词来
5、表达查询要求和条件用谓词来表达查询要求和条件谓词变元的基本对象可以是元组变量或域变量,故可分为元组关系演算谓词变元的基本对象可以是元组变量或域变量,故可分为元组关系演算和域关系演算两类和域关系演算两类是一种抽象的查询语言是一种抽象的查询语言nSQL介于关系代数和关系演算之间介于关系代数和关系演算之间集集DDL、DML和和DCL一身的关系数据语言一身的关系数据语言现在学习的是第6页,共81页n关系模型建立在集合代数基础上,从集合论角度讨论关系模型建立在集合代数基础上,从集合论角度讨论n关系的形式化定义关系的形式化定义=定义定义1:域:域(Domain)形式化表示为形式化表示为D一组具有相同数据类
6、型的值的集合,如整数、实数等。定义一组具有相同数据类型的值的集合,如整数、实数等。定义2:笛卡:笛卡尔积尔积(Cartesian Product) P47一组域一组域D1,D2,Dn的笛卡尔积的笛卡尔积(d1,d2,d3,dn)称为一个称为一个元组元组,di称为一个称为一个分量分量,集合中唯一元素的数量,集合中唯一元素的数量是集合的是集合的基数基数 若若Di的基数为的基数为Mi,则笛卡尔集的基数,则笛卡尔集的基数M为为1212.( ,. )|,1,2,. nniiD DDd dddD in 1niiMm现在学习的是第7页,共81页n计算实例计算实例例例1:D1=甲甲,乙乙, D2=1,2, D
7、3=a,b,c1)D1,D2,D3基数分别是多少?基数分别是多少?2)D1D2?(基数?)?(基数?)3)D1D2D3?(基数?)?(基数?)n笛卡尔集可表示为一个二维表笛卡尔集可表示为一个二维表=请将例子表示为二维表请将例子表示为二维表现在学习的是第8页,共81页例例2已知三个域已知三个域D1=导师集合导师集合张清正张清正,刘逸刘逸D2=专业集合专业集合计算机计算机,信息信息D3=学生集合学生集合李勇李勇,刘晨刘晨,王敏王敏计算思考计算思考1)基数?)基数?2)计算)计算D1D2D3?基数?基数?3)计算结果中的元组有无实际意义?)计算结果中的元组有无实际意义?导师导师专业专业研究生研究生张
8、清正计算机李勇张清正计算机李勇张清正计算机刘晨张清正计算机刘晨张清正计算机王敏张清正计算机王敏张清正信息李勇张清正信息李勇张清正信息刘晨张清正信息刘晨张清正信息王敏张清正信息王敏刘逸计算机李勇刘逸计算机李勇刘逸计算机刘晨刘逸计算机刘晨刘逸计算机王敏刘逸计算机王敏刘逸信息李勇刘逸信息李勇刘逸信息刘晨刘逸信息刘晨刘逸信息王敏刘逸信息王敏D1,D2,D3的笛卡尔积(上图)的笛卡尔积(上图)现在学习的是第9页,共81页nD1D2Dn的子集叫做在的子集叫做在D1, D2, , Dn上的关系,上的关系,表示为表示为 R(D1, D2, , Dn)= n n:关系的:关系的度度或或目目,表的列数,一般称,表
9、的列数,一般称n n元关系元关系n相关术语相关术语=候选码:候选码:能够唯一标识一个元组的属性组能够唯一标识一个元组的属性组一个关系可以有多个候选码一个关系可以有多个候选码=主码:主码:一个关系中选定的一个候选码一个关系中选定的一个候选码=主属性:主属性:主码的各个属性主码的各个属性=非主属性(非码属性):非主属性(非码属性):不包含在任何候选码中的属性不包含在任何候选码中的属性=全码:全码:若关系模式的所有属性组是这个关系模式的候选码若关系模式的所有属性组是这个关系模式的候选码请举例请举例现在学习的是第10页,共81页n基本关系(基本表或基表)基本关系(基本表或基表)=实际存在的表,是实际存
10、储数据的逻辑表示实际存在的表,是实际存储数据的逻辑表示n查询表查询表=查询结果对应的表查询结果对应的表n视图表视图表=由基本表或其他视图表导出的表,是虚表,不由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据对应实际存储的数据现在学习的是第11页,共81页例已知三个域例已知三个域D1=导师集合导师集合S张清正张清正,刘逸刘逸D2=专业集合专业集合SP计算机计算机,信息信息D3=学生集合学生集合P李勇李勇,刘晨刘晨,王敏王敏计算思考计算思考从笛卡尔集中取出一个子集,选择有意义从笛卡尔集中取出一个子集,选择有意义的结果组成关系的结果组成关系R(导师,专业,研究生导师,专业,研究生)一个研究
11、生只能有一个专业,如李勇和一个研究生只能有一个专业,如李勇和王敏是计算机专业、刘晨是信息专业王敏是计算机专业、刘晨是信息专业导师导师S专业专业SP研究生研究生P张清正计算机李勇张清正计算机李勇张清正计算机刘晨张清正计算机刘晨张清正计算机王敏张清正计算机王敏张清正信息李勇张清正信息李勇张清正信息刘晨张清正信息刘晨张清正信息王敏张清正信息王敏刘逸计算机李勇刘逸计算机李勇刘逸计算机刘晨刘逸计算机刘晨刘逸计算机王敏刘逸计算机王敏刘逸信息李勇刘逸信息李勇刘逸信息刘晨刘逸信息刘晨刘逸信息王敏刘逸信息王敏D1,D2,D3的笛卡尔积(上图)的笛卡尔积(上图)现在导师与研究生是什么关系?限定一个学生只能有一个导
12、师,如张限定一个学生只能有一个导师,如张是计算机导师,刘是信息专业导师是计算机导师,刘是信息专业导师现在导师与研究生是什么关系?现在学习的是第12页,共81页n关系的限定及扩充关系的限定及扩充=关系数据中的关系是有限集合关系数据中的关系是有限集合=为关系的每一列附以属性名以取消关系元组的有序性为关系的每一列附以属性名以取消关系元组的有序性n关系的性质关系的性质=列同质,即每一列是同一类型的数据列同质,即每一列是同一类型的数据=不同的列可出自同一个域,每一列为一个不同的列可出自同一个域,每一列为一个属性,不同的属性被,不同的属性被赋予不同的属性名赋予不同的属性名=列的次序可以任意交换列的次序可以
13、任意交换=任意两个元组不能完全相同任意两个元组不能完全相同=行的次序可以任意交换行的次序可以任意交换=分量必须取原子值,即不可再分分量必须取原子值,即不可再分在许多实际关系数据库产品中,基本表并不完全具有这六条性质。在许多实际关系数据库产品中,基本表并不完全具有这六条性质。现在学习的是第13页,共81页n列的顺序无所谓,次序可以任意交换列的顺序无所谓,次序可以任意交换=遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE),增加新属性时,永,增加新属性时,永远是插至最后一列远是插至最后一列=但也有许多关系数据库产品没有遵循这一性质,例如但也有许多关系数据库产品没有遵循这一性质,例
14、如FoxPro仍然区分了属性顺序仍然区分了属性顺序n任意两个元组不能完全相同,由笛卡尔积的性质决任意两个元组不能完全相同,由笛卡尔积的性质决定定=但许多关系数据库产品没有遵循这一性质,例如但许多关系数据库产品没有遵循这一性质,例如Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件用户特别定义了相应的约束条件现在学习的是第14页,共81页n行的顺序无所谓,行的次序可以任意交换行的顺序无所谓,行的次序可以任意交换=遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE),插,插入一个元组时永远插
15、至最后一行入一个元组时永远插至最后一行=但也有许多关系数据库产品没有遵循这一性质,但也有许多关系数据库产品没有遵循这一性质,例如例如FoxPro仍然区分了元组的顺序仍然区分了元组的顺序现在学习的是第15页,共81页n关系模式是对关系的描述,形式化表示为关系模式是对关系的描述,形式化表示为R(U, D, dom, F)U:组成该关系的属性名集合:组成该关系的属性名集合D:属性组:属性组U中属性所来自的域中属性所来自的域dom:属性向域的映象集合,如属性的类型、长度:属性向域的映象集合,如属性的类型、长度F:属性间数据的依赖关系集合:属性间数据的依赖关系集合可简记为可简记为R(U)或或R(A1,
16、A2, , An),其中,其中Ai为属性名为属性名n关系模式与关系关系模式与关系= 关系模式关系模式是型,是对关系的描述,是静态的,稳定的是型,是对关系的描述,是静态的,稳定的= 关系关系是值,由赋予它的元组语义来确定的,是动态的,不断变化的是值,由赋予它的元组语义来确定的,是动态的,不断变化的,是关系模式在某是关系模式在某一时刻的状态或内容一时刻的状态或内容实际应用中常常将关系模式和关系都称为关系实际应用中常常将关系模式和关系都称为关系现在学习的是第16页,共81页n在给定应用领域中,所有表示实体及实体之间联系的在给定应用领域中,所有表示实体及实体之间联系的关系的集合构成一个关系数据库关系的
17、集合构成一个关系数据库n关系数据库也有型和值之分关系数据库也有型和值之分=关系数据库的型称为关系数据库的型称为关系数据库模式关系数据库模式,是对关系数据库的描,是对关系数据库的描述述若干域的定义若干域的定义在这些域上定义的若干关系模式在这些域上定义的若干关系模式=关系数据库的值是这些关系模式在某一时刻对应的关系的集合,关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为通常简称为关系数据库关系数据库现在学习的是第17页,共81页n给出导师、学生、专业三个实体可能组成给出导师、学生、专业三个实体可能组成的关系数据库及其概念模型(的关系数据库及其概念模型(ER图)图)现在学习的是第1
18、8页,共81页n实体完整性实体完整性n参照完整性参照完整性n用户定义完整性用户定义完整性关系模型必须满足,称为关系的不变性由关系数据库系统自动支持现在学习的是第19页,共81页n规则规则:若属性:若属性A是基本关系是基本关系R的主属性,则属性的主属性,则属性A不能取不能取空值空值n说明说明:基本关系的所有主属性不能取空值,而不仅是主:基本关系的所有主属性不能取空值,而不仅是主码整体不能取空值码整体不能取空值n依据依据:现实世界的实体是唯一可分的:现实世界的实体是唯一可分的例:学生(例:学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄)课程(课程(课程号课程号,课程名,学分)
19、,课程名,学分)选修(选修(学号学号,课程号课程号,成绩),成绩)现在学习的是第20页,共81页n关系间的引用关系间的引用n外码外码n参照完整性规则参照完整性规则现在学习的是第21页,共81页n在关系模型中实体及实体间的联系都是用关系来描在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用述的,因此可能存在着关系与关系间的引用学学号号姓姓名名性性别别专专业业号号年年龄龄801张张三三女女0119802李李四四男男0120803王王五五男男0120804赵赵六六女女0220805钱钱七七男男0219专专 业业 号号专专 业业 名名01信信 息息02数数 学学03计计
20、 算算 机机例例1 学生实体、专业实体以及专业与学生间的一对多联系学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,学生(学号,姓名,性别,专业号专业号,年龄),年龄) 专业(专业(专业号专业号,专业名),专业名)现在学习的是第22页,共81页例例2 学生、课程、学生与课程之间的多对多联系学生、课程、学生与课程之间的多对多联系 学生(学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄) 课程(课程(课程号课程号,课程名,学分),课程名,学分) 选修(选修(学号学号,课程号课程号,成绩),成绩)课课程程号号课课程程名名学学分分01数数据据库库402数数据据
21、结结构构403编编译译404PASCAL2学学号号姓姓名名性性别别专专业业号号年年龄龄801张张三三女女0119802李李四四男男0120803王王五五男男0120804赵赵六六女女0220805钱钱七七男男0219学学号号课课程程号号成成绩绩801049280103788010285802038280204908030488现在学习的是第23页,共81页例例3 学生实体及其内部的领导联系学生实体及其内部的领导联系(一对多一对多) 学生(学生(学号学号,姓名,性别,专业号,年龄,姓名,性别,专业号,年龄,班长班长)学学号号姓姓名名性性别别专专业业号号年年龄龄班班长长801张张三三女女01198
22、02802李李四四男男0120803王王五五男男0120802804赵赵六六女女0220805805钱钱七七男男0219现在学习的是第24页,共81页n外码外码=设设F是基本关系是基本关系R的一个或一组属性,但不是关系的一个或一组属性,但不是关系R的码。如的码。如果果F与基本关系与基本关系S的主码的主码Ks相对应,则称相对应,则称F是基本关系是基本关系R的外的外码码被参照关系被参照关系Referenced Relation或:目标关系或:目标关系Target Relation参照关系参照关系Referencing Relation基本关系基本关系R(F , )基本关系基本关系S(Ks,)F K
23、r现在学习的是第25页,共81页n关系关系R和和S不一定是不同的关系不一定是不同的关系n目标关系目标关系S的主码的主码Ks 和参照关系的外码和参照关系的外码F必必须定义在同一个(或一组)域上须定义在同一个(或一组)域上n关于取名关于取名=外码并不一定要与相应的主码同名外码并不一定要与相应的主码同名=当外码与相应的主码属于不同关系时,往往取当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别相同的名字,以便于识别现在学习的是第26页,共81页例:学生实体与专业实体间的关系:例:学生实体与专业实体间的关系:学生(学生(学号学号,姓名,性别,姓名,性别,专业号专业号,年龄),年龄)专业(专
24、业(专业号专业号,专业名),专业名)外码外码例:学生,课程,学生与课程之间的多对多联系:例:学生,课程,学生与课程之间的多对多联系:学生(学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(选修(学号学号,课程号课程号,成绩),成绩)学生关系专业关系学生关系专业关系专业号专业号学生关系学生关系 选修关系课程关系选修关系课程关系学号学号课程号课程号关系参照图参照关系参照关系被参照关系被参照关系参照关系参照关系被参照关系被参照关系被参照关系被参照关系关系参照图现在学习的是第27页,共81页例:学生(例:学生(学号学号,
25、姓名,性别,专业号,年龄,姓名,性别,专业号,年龄,班长班长)学学号号姓姓名名性性别别专专业业号号年年龄龄班班长长801张张三三女女0119802802李李四四男男0120803王王五五男男0120802804赵赵六六女女0220805805钱钱七七男男0219被参照关系被参照关系参照关系参照关系外码外码现在学习的是第28页,共81页n已知基本关系已知基本关系R的外码的外码F(与基本关系(与基本关系S的的主码主码Ks相对应),每个元组在相对应),每个元组在F上的值必上的值必须为:须为:= 或者取空值(或者取空值(F的每个属性值均为空值)的每个属性值均为空值)= 或者等于或者等于S中某个元组的主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 代数 运算
限制150内