关系数据库课件

上传人:鲁** 文档编号:573199126 上传时间:2024-08-14 格式:PPT 页数:72 大小:1.12MB
返回 下载 相关 举报
关系数据库课件_第1页
第1页 / 共72页
关系数据库课件_第2页
第2页 / 共72页
关系数据库课件_第3页
第3页 / 共72页
关系数据库课件_第4页
第4页 / 共72页
关系数据库课件_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《关系数据库课件》由会员分享,可在线阅读,更多相关《关系数据库课件(72页珍藏版)》请在金锄头文库上搜索。

1、第二章第二章 关系数据库关系数据库F关系数据库系统大事记关系数据库系统大事记1970年6月,E.F.Codd在Communication of the ACM上发表题为“A Relational Model of Data for Large Shared Data Banks”一文,首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。随后他又连续发表了多篇论文,奠定了关系数据库的理论基础。1973年IBM 研究中心启动关系数据库实验系统System R 项目,并于70IBM370系列机上获得成功。1977 INGRES关系数据库实验系统,于1985获得成功。三十多年来涌现出许多关系

2、数据库管理系统(RDBMS),著名的有: Oracle, DB2,Informix, Sybase,SQL Server,PostGreSQL等。12.1 关系数据结构及形式化定义关系数据结构及形式化定义F关系数据结构关系(二维表)关系数据结构的特点:实体和联系都用关系这种单一实体和联系都用关系这种单一的数据结构来实现的数据结构来实现。22.1 关系数据结构及形式化定义关系数据结构及形式化定义F关系的定义域(Domain):一组具有相同数据类型的值的集合。如整数、字符串等。笛卡尔积(Cartesian Product):给定一组域D1, D2, , Dn (可相同), D1, D2, , Dn

3、上的笛卡尔积为: D1 D2 Dn (d1, d2, , dn) | di = 1, 2 , , n (d1, d2, , dn)称为一个元组(Tuple)di叫作元组(d1, d2, , dn)的第i 个分量(component)关系(Relation): D1 D2 Dn的一个子集子集叫做域D1, D2, , Dn上的关系。定义在n个域上的关系称为n元(n目)关系。32.1 关系数据结构及形式化定义关系数据结构及形式化定义F给定域name=王小明,李莉,sex=男,女,则name sex=(王小明,男),(王小明,女),(李莉,男),(李莉,女)。F笛卡尔积的结果中有许多元组是无意义的,可

4、以认为其中有意义的元组,即子集构成关系子集构成关系,为实际的二维表。namesex王小明王小明男男李莉李莉女女属性名记录属性、字段42.1 关系数据结构及形式化定义关系数据结构及形式化定义F关系应具有的六条性质:1.列是同质的;2.不同的列可以出自同一个域;3.列序无关性列序无关性;4.任意两个元组不能完全相同;5.行序无关性;6.分量必须取原子值。F几个概念:候选码(Candidate Key):能唯一标识元组的属性(组)。主码(Primary Key):多个候选码中选定一个作主码。主属性(Prime Attribute):候选码中的各个属性。非主属性(Non-Key Attribute):

5、不出现在任何候选码中的属性52.1 关系数据结构及形式化定义关系数据结构及形式化定义l候选码:学号、姓名(无重名存在)l主属性:学号、姓名l非主属性:年龄、性别、系名、年级62.1 关系数据结构及形式化定义关系数据结构及形式化定义F 关系的型与值关系(表)的型:关系的结构(字段名、字段个数、域等)关系(表)的值:关系中具体的元组,也称关系的实例(Instance)。F关系模式(Relation Schema)即关系的型的定义数据依赖属性到域上的映射关系关系的域属性集R(U,D,dom(),F)关系名关系模式通常简记为:R(U)72.2 关系操作关系操作n查询(Query)l并(Union)l交

6、(Intersection)l差(Difference)l广义笛卡尔积l选择(Select)l投影(Project)l连接(Join)l除(Divide)5种基本操作种基本操作n插入(Insert)n删除(Delete)n修改(Update)F基本的关系操作关系操作的特点:操作对象操作对象和操作结果都是关系和操作结果都是关系。82.2 关系操作关系操作F关系语言关系代数关系演算(逻辑)元组演算元组演算域演算域演算SQLF关系语言特点关系语言是一种高度非过程化的语言关系语言是完备的关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价92.3 关系的完整性关系的完整性关系的完整性约束是对

7、关系的正确性限定,通常是与关系所表达的实际数据约束相对应。关系的完整性分为实体完整性、参照完整性和用户定义完整性。F实体完整性规则(Entity Integrity) 若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系。现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识唯一性标识(主码)。空值就是“不知道”或“无意义”的值,不不是是空空格格字字符符。主属性取空值,就说明存在某个不可标识的实体,这与第(2)矛盾。102.3 关系的完整性关系的完整性F几个概念设F是基本关系R的一个或一组属性,但

8、不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外外 码码 (Foreign Key)。 基 本 关 系 R称 为 参参 照照 关关 系系(Referencing Relation), 基 本 关 系 S称 为 被被 参参 照照 关关 系系(Referenced Relation)或目标关系目标关系(Target Relation)。注:注:关系R和S不一定是不同的关系主码Ks 和外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名(当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别)112.3 关系的完整性关系的完整性SnoSnameSsex

9、SageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISCnoCnameCpnoCcredit1数据库542数学NULL23信息系统144操作系统635数据结构746数据处理NULL27PASCAL64SnoCnoGrade95001192950012659500229095002573课程表课程表Course学生表学生表Student成绩表成绩表SC122.3 关系的完整性关系的完整性F参照完整性规则(Referential Integrity)若属性(或属属性性组组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和

10、S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值的每个属性值均为空值)或者等于S中某个元组的主码值。例例1 在SC表中,Sno只能取S表中存在的学号,Cno也只能取已存在的课程号,但两者都不能取空值,因为Sno和Cno都是主属性。注注:外码中的属性如果不是主属性,则可以取空值,此时外码中的每个属性均为空值。132.3 关系的完整性关系的完整性例例2 高考录取数据库YxdhZydhYxmcZymcZyccZss10701080605西电计算机本科20010698080605西交大计算机本科400院校专业表院校专业表KshXmYxdhZydh考生录取表

11、考生录取表1张涛NULLNULL2李明107010806054赵刚NULL0806055马波10698NULL3王敏10701080606142.3 关系的完整性关系的完整性F用户定义完整性(User-defined Integrity)用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。如性别只能取“男”、“女”值,成绩必须在0100分之间。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。通常由RDBMS的Check约束提供这类检查。152.4 关系代数关系代数F关系代数(Relation

12、al Algebra):以集合为基础,定义一组运算,由已知关系经过一系列运算,得到需要的查询结果。F关系代数是过程化的查询语言。F关系代数继承传统的集合运算:并()、交()、差()、广义笛卡尔积()。其中并、交、差要求参与运算的两个关系要有相同的结构。将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行162.4 关系代数关系代数F关系上的传统集合运算并:RS = t | t Rt S 差:R S = t | tRtS 交:RS = t | t Rt S RS = R ( R S )广义笛卡尔积:RS (其中R为k1行n列,S为k2行m列)列:(列:(n+m)列的元组的集合)列的元组

13、的集合元组的前元组的前n列是关系列是关系R的一个元组的一个元组后后m列是关系列是关系S的一个元组的一个元组行:行:k1k2个元组个元组nRS = tr ts | tr R tsS 172.4 关系代数关系代数n传统的集合运算举例传统的集合运算举例c1b2a2c2b3a1c2b2a1CBASc1b2a2c2b2a1c1b1a1CBARCBAR RSSc1b2a2c2b2a1c1b1a1c1b1a1CBARSa1a3a2182.4 关系代数关系代数c1b2a2c2b2a1c1b1a1CBARc1b2a2c2b3a1c2b2a1CBASR.A R.B R.C S.A S.BS.Ca1b1c1a1b2

14、c2a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1a1b3c2a1b3c2a1b3c2a2b2c1a2b2c1a2b2c1R S192.4 关系代数关系代数F专门的关系运算选择()含义:在关系含义:在关系R中选择满足给定条件的诸元组中选择满足给定条件的诸元组 F(R) = t | t RF(t)= 真真其中:其中:F:选择条件,是一个逻辑表达式,基本形式为:选择条件,是一个逻辑表达式,基本形式为: ( X1Y1 ) ( X2Y2 ):比较运算符(,:比较运算符(,或,或)X1,Y1等等:属属性性名名、常常量量、简简单单函

15、函数数;属属性性名名也也可可以以用它的序号来代替;用它的序号来代替;:逻辑运算符(:逻辑运算符(或或) :表示任选项:表示任选项:表示上述格式可以重复下去:表示上述格式可以重复下去202.4 关系代数关系代数选择运算的直观意义:选择运算的直观意义:学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95002刘晨刘晨女女19IS95003王敏王敏女女18MASsex = 女 (S)212.4 关系代数关系代

16、数投影()含义:从含义:从R中选择出若干属性列组成新的关系中选择出若干属性列组成新的关系 A(R) = tA | t R A:R中的属性列的集合中的属性列的集合投影操作主要是从列的角度进行运算投影操作主要是从列的角度进行运算投影运算的直观意义:投影运算的直观意义:注:但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)222.4 关系代数关系代数投影举例投影举例学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS Sno,Snam

17、e (S)学 号Sno姓 名Sname95001李勇李勇95002刘晨刘晨95003王敏王敏95004张立张立232.4 关系代数关系代数F例:学生表例:学生表Student如下如下(1) 查询信息系(IS系)全体学生 Sdept = IS (Student)或 5 =IS (Student) (2) 查询年龄小于20岁的学生 Sage 20(Student) 或 4 20(Student)学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS242.4

18、 关系代数关系代数 (3) 查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)(4)查询学生关系Student中都有哪些系 Sdept(Student) 或 5(Student)n例:学生表Student如下学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS252.4 关系代数关系代数F连接( ) ABtr tsR S=|tr Rts StrAtsBn

19、含义:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。nA和B:分别为R和S上度数相等且可比的属性组n:比较运算符n连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。n带有比较运算符的连接运算称为连接连接。262.4 关系代数关系代数n连接操作是从行和列的角度进行运算 ABRS自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。272.4 关系代数关系代数 例例:R SC 5 T=e (R)3) R3=R W4) R4= 2, 1, 6 (32965643CBA582.5 关系演算关系演算987654321CBAR:96

20、5643321CBAS:R2= t | R(t)S(t)ABC456789R3= t | S(t)u(R(u)t3u1)ABC456789592.5 关系演算关系演算R5= t | u v(R(u)S(v)u1 v2t1= u2t2= v3 t3= u1)798768738435R.AS.CR.B987654321CBAR:965643321CBAS:解题步骤:1.确定结果集的结构表,2.根据元组演算公式中的限定条件构造元组填入表中。602.5 关系演算关系演算F元组演算运算符的优先级:元组演算运算符的优先级:l算术运算符l,l l lF元组演算的等价规则:元组演算的等价规则: 德摩根律德摩根

21、律1)P1 P2 ( P1 P2 )2)P1 P2 ( P1 P2 )蕴含式蕴含式1)P1 P2 P1 P2量词转换量词转换1)x ( P(x) x( P(x)2)x ( P(x) x( P(x)612.5 关系演算关系演算1902男钱七8052002女赵六8042001男王五8032001男李四8021901女张三801sagesdepssexsnamesnoSc488c480390c480282c380285c280178c380192801gradecnosnoSC元组演算综合举例: (本小节的所有查询均用到以下关系)(本小节的所有查询均用到以下关系)关系模式:S(sno,sname,s

22、sex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)Pascalc4编译原理c3数据结构c2数据库c1creditcnamecno3.5443Ccpnoc2c4c6622.5 关系演算关系演算(1)查询选修了C2课程的学生学号和成绩。关系模式:关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)c488c480390c480282c380285c280178c380192801gradecnosnoSCt|u2=c2u(SC(u)t1=u1t2

23、=u3(2)查询选修了C2课程的学生学号和姓名。t|uv(S(u)SC(v)t1=u1t2=u2u1=v1v2=c2632.5 关系演算关系演算(3) 查询选修了数据库课程的学生学号、姓名和成绩。关系模式:关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)t|uvw(S(u)SC(v)C(w)u1=v1v2=w1w2=“数据库“t1=u1t2=u2t3=v3)(4)查询选修了C2或C4课程的学生学号。t|u(SC(u)(u2=c2u2=c4)t1=u1)642.5 关系演算关系演算(5) 查询选修了

24、C2和C4课程的学生学号。关系模式:关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)c488c480390c480282c380285c280178c380192801gradecnosnoSCuvt|uv(SC(u)SC(v)u1=v1u2=c2v2=c4t1=u1)(6) 查询不学C2课的学生学号。t|uv(S(u)(SC(v)u1=v1v2c2)t1=u1)t|uv(S(u)(SC(v)u1=v1v2=c2)t1=u1)等价转换等价转换注:注:特性谓词对特性谓词对作为蕴含式的前件,对作为蕴含

25、式的前件,对作为合取项作为合取项652.5 关系演算关系演算关系模式:关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)(7) 查询选修了全部课程的学生姓名。t|u(S(u)v(C(v)w(SC(w)w1=u1w2=v1)t1=u2)(8)查询选修学号为“802”的学生所选全部课程的学生学号。t|u(SC(u)v(SC(v)v1=802w(SC(w)w1=u1w2=v2)t1=u1)t|uvw(S(u)(C(v)(SC(w)w1=u1w2=v1)t1=u2)前束范式前束范式662.5 关系演算关系演

26、算F关系代数表达式与元组演算表达式的等价转换关系代数表达式与元组演算表达式的等价转换RS t | R(t)S (t) R S t | R(t)S (t) RS t (m+n)|u (m) v(n)(R(u)S(v)t1=u1tm=umtm+1=v1tm+n=vn)F(R) t | R(t) F i1,i2,ik(R) t(k) | u(R(u)t1=ui1tk=uik) 以上为关系代数的以上为关系代数的基本运算基本运算与元组演算表达式的等价公与元组演算表达式的等价公式。由此,关系代数的其他组合运算也可以等价转换为元组式。由此,关系代数的其他组合运算也可以等价转换为元组演算表达式。进一步,任何关

27、系代数表达式都可以等价地转演算表达式。进一步,任何关系代数表达式都可以等价地转换为元组演算表达式,反之亦然。换为元组演算表达式,反之亦然。672.5 关系演算关系演算F域演算域演算域演算表达式: t1 ,t2 ,tk | (t1 ,t2 ,tk) 称为域演算表达式域演算表达式。其中: t1 ,t2 ,tk 称为域变量域变量, (t1 ,t2 ,tk) 称为域演算公式域演算公式,简称公式公式。F原子公式:原子公式:(1) R(t1 ,t2 ,tk ) R是关系名, t1 ,t2 ,tk是域变量。表示: (t1 ,t2 ,tk ) 是R中的元组。(2) tiuj ti , uj为域变量,为比较运算

28、符。表示: ti 与 uj满足比较关系。(3) ti c 或 c ti 其中c为常量。682.5 关系演算关系演算F域演算公式的归纳定义(类似于元组演算公式)例1:987654321CBAR:R1= t1,t2,t3 | R(t1,t2,t3 )t13654CBA例2 查询选修了C2课程的学生学号和成绩。t1,t2 | u1u2u3(SC(u1,u2,u3)u2=c2t1= u1t2= u3)或 t1,t2 | SC(t1,c2,t2 )692.5 关系演算关系演算F关系运算的安全性和等价性关系运算的安全性和等价性安全运算:不产生无限关系和无穷验证的运算。1.关系代数中无集合的补运算,是安全的

29、。关系代数中无集合的补运算,是安全的。2.形如形如uP(u)是无穷验证,在只涉及到关系的域上进行是无穷验证,在只涉及到关系的域上进行的关系演算是安全的。的关系演算是安全的。等价性:关系代数、元组演算和域演算在表达和操作能力上是等价的。F几种代表性语言几种代表性语言ISBL关系代数表达式(语言)QUEL元组演算表达式(语言)QBE域演算表达式(语言)70第二章第二章 关系数据库关系数据库F回顾回顾关系是数据结构是一张二维表关系模型的基本操作关系的完整性约束关系代数是用代数的方法由已知关系构造新的关系关系演算是用谓词演算的方式构造新的关系关系代数、元组演算和域演算在表达和操作能力上是等价的有专门的关系代数语言(ISBL)和元组演算语言(QUEL)等来完成关系代数表达式和元组演算表达式在关系上的实现。缺点:缺点:这些语言太过数学化,不易掌握。71第二章第二章 关系数据库关系数据库F作业作业用元组演算元组演算表达式写出课本第74页第5题中的全部查询。注:注:大题不用抄在作业本上,但每小题必须抄题。72

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号