数据库系统概论 第2章关系数据库_第1页
数据库系统概论 第2章关系数据库_第2页
数据库系统概论 第2章关系数据库_第3页
数据库系统概论 第2章关系数据库_第4页
数据库系统概论 第2章关系数据库_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第二章 关系数据库,2.1 关系模型概述 2.2 关系数据结构及形式化定义 2.3 关系的完整性 2.4 关系代数 2.5 关系演算,2,2.1 关系模型概述,(1)单一的数据结构关系,(2)关系操作,(3)关系的三类完整性约束,关系操作的特点:一次一集合方式 非关系操作的特点:一次一记录方式,关系数据语言,关系代数语言 关系演算语言,元组关系演算语言 域关系演算语言,具有关系代数和关系演算双重特点的语言SQL,实体完整性 参照完整性 用户定义的完整性,关系模型的操作包括:查询和更新,3,2.2关系数据结构及形式化定义,1.域,定义:域是一组具有相同数据类型的值的集合。,例如:自然数,1,

2、2,3n,实数,A,B 小于100的正整数,1,2,3,100,2. 笛卡尔积,定义:给定一组域D1,D2,Dn,这些域中可以 有相同的。 D1,D2,Dn的 笛卡尔积为:,D1D2 Dn=(d1,d2,dn) |diDi,i=1,2,n,元组,分量,域的基数:集合的元素个数。,4,笛卡尔积的基数:若Di(i=1,2,n)为有限集,其基数为 mi(i=1,2,n),则 D1D2 Dn的基数M为:,笛卡尔积,一个二维表,元组,表的行,域,表的列,例:D1=A, B D2=3,5,9 D1 D2 =(A,3), (A,5) , (A,9) , (B,3) , (B,5) , (B,9) ,D1的基

3、数为2; D2的基数为3; D1 D2的基数为6;,A 3,A 5,A 9,B 3,B 5,B 9,D1 D2,5,例子: 三个域: D1=supervisor=张清政,刘逸 D2=speciality=计算机,信息 D3=postgraduate=李勇,刘晨,王敏 D1,D2,D3的笛卡积为: D1D2D3= (张清政,计算机,李勇),( 张清政, 计算机, 刘晨),( 张清政,计算机,王敏), (张清政, 信息 , 李勇),( 张清政, 信息, 刘晨),( 张清政, 信息, 王敏), (刘逸, 计算机, 李勇), ( 刘逸, 计算机, 刘晨), ( 刘逸,计算机,王敏), (刘逸, 信息

4、, 李勇),( 刘逸, 信息, 刘晨),( 刘逸, 信息, 王敏),该笛卡尔积的基数为:2 2 3=12,笛卡积,二维表,3列 12行,P49,该表的数据有 现实意义吗?,6,3.关系,定义: D1D2 Dn的子集称为在域D1,D2,Dn上 的关系,表示为 R(D1,D2,Dn),关系的名字,关系的目或度,关系,二维表,属性,表的列,元组,表的行,属性,例子:我们可以从表2.1取出一个子集来构造一个关系。 这个关系名字为SAP,语义为:一个导师只有一个专业,一个专业可有多名导师;一个研究生只有一个专业,一个专业可有多名研究生;一个导师指导多名研究生,一名研究生只有一个导师。,7,这个关系可以表

5、示为:,SAP(supervisor, speciality, postgraduate),supervisor=张清政,刘逸 speciality=计算机,信息 postgraduate=李勇,刘晨,王敏,关系SAP(supervisor, speciality, postgraduate)可包含三个元组:,8,候选码:若关系中的某一属性组能唯一地标识一个元组, 则称为该属性组为候选码。,主码:选定的一个 候选码。,主属性:候选码的诸属性。,非主码属性:不包含在任何候选码中的属性。,9,例子1: 关系 S(S#,SN,SD,SA) 关系S的候选码:(S#) , (SN) 关系S的主码:(S#

6、) 关系S的主属性:S# 关系S的非码属性:SD , SA 例子2: 关系SC(S#,C#,G) 关系SC的候选码: 关系SC的主码: 关系SC的主属性: 关系SC的非码属性:,(S#,C#),(S#,C#),S# , C#,G,例子3: 关系R(P,W,A) 关系R的候选码:(P,W,A) 关系R的主码:(P,W,A) 关系R的主属性:P ,W, A 关系R的非码属性:,全码,10,例子4:关系 SAP(supervisor,speciality,postgraduate),关系SAP的候选码: 关系SAP的主码: 关系SAP的主属性: 关系SAP的非码属性:,(postgraduate),

7、(postgraduate),postgraduate,Supervisor , speciality,11,对关系定义的一些限定和扩充: (1)无限关系在数据库系统中是无意义的。 (2)关系元组(d1,d2,di,dj,dn)= (d1,d2,dj,di,dn),关系具有的六条性质: (1)列是同质的。 (2)不同列可出自同一个域。 (3)列的次序可任意交换。 (4)任意两个元组不能完全相同。 (5)行的次序可任意交换。 (6)分量必须取原子值,即每一个分量都必须是不可分的数据项。 p46,12,2.2.2关系模式,关系模式简记为:,R(A1,A2,An),形式化表示为:,五元组 R( U,

8、 D, dom,F),关系名,属性集合,域集合,属性向域的映象集合,属性间数据的依赖关系集合,例子:选修关系 可简记为:SC(Sno,Cno,G),形式化表示为:,SC ( U, D, dom,F),U=Sno,Cno,G D=字符型,数值型 dom(Sno)=dom(Cno)=字符型; dom(G)=数值型; F(Sno,Cno)G,13,2.3关系的完整性,1.实体完整性,实体完整性规则:若属性A是基本关系R的主属性,则属 性A不能取空值。,例子1: 关系 S(S#,SN,SD,SA) 关系S的主码:(S#) 关系S的主属性:S#,(nul,张三,计算机系,20),例子2: 关系SC(S#

9、,C#,G) 关系SC的主码: 关系SC的主属性:,(S#,C#),S# C#,(nul ,nul, A) (nul, 0-12 ,B) (001, nul , B),14,2.参照完整性 p50,例子1: S(S#,SN,A#,SA) A(A#,AN),关系S的属性A#的取值需要参照关系A的主码A#取值,例子2: S(S#,SN,A#,SA) C(C#,CN,CG) SC(S#,C#,G),关系SC的属性S#、C#的取值需要参照关系S的主码S#和关系C的主码C#的取值,例子3: S2(S#,SN,A#,SA,MS#),关系S2的属性MS#的取值需要参照关系S2的主码S#取值,15,定义:设F

10、是基本关系R的一个或一组属性,但不是关系 R的码。如果F与基本关系S的主码Ks相对应,则 称F是基本关系R的外码,并称基本关系R为参照 关系,基本关系S为被参照关系。,例子1:p50 S(S#,SN,A#,SA) A(A#,AN),参照关系,被参照关系,外码,例子2: S(S#,SN,A#,SA) C(C#,CN,CG) SC(S#,C#,G),例子3: S2(S#,SN,A#,SA,MS#),16,参照完整性规则:若属性(或属性组)F是基本关系R的 外码,它与基本关系S的主码Ks相对应,则对于R中每个 元组在F上的取值必须为: (1)或为取空值; (2)或为S中的主码值;,例子1:p51 S

11、(S#,SN,A#,SA) A(A#,AN),例子2: S(S#,SN,A#,SA) C(C#,CN,CG) SC(S#,C#,G),可取两种值,可取一种值,17,例子3: S2(S#,SN,A#,SA,MS#),可取两种值,3.用户定义的完整性,是一组针对某一具体关系数据库的约束条件。 它反映某一具体应用所涉及的数据必须满足的 语义要求。,18,2.4关系代数,关系代数运算,运算对象 运算符 运算结果,关系,关系,运算符 p52,集合运算:,专门的关系运算:,比较运算: = ,逻辑运算:,19,2.4.1传统的集合运算,设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则可有如下定义

12、:,1.并,2.差,3.交,20,设有两个分别为n目和m目的关系R和S,则有如下定义: 4.笛卡尔积,例子:,21,22,RS,23,学生-课程数据库:,Student表:,SC表:,Course表:,24,例子:将一个新学生记录(95020, 陈冬,男, 18,IS,)插入student表中.,student(95020, 陈冬,男, 18,IS),例子:删除所有学生选课记录.,sc-sc,例子:删除计算机系的所有学生的信息。,例子:查询计算机系且年龄不大于19岁的学生信息。,例子:查询同时选修了1号课程和2号课程的学生学号。,25,几个符号: (1)设有关系R(A1,A2,An)。 tR表

13、示t是R的一个元组。 t Ai表示元组t中相应属性Ai的一个分量。,例子:student(sno,sname,ssex,sage,sdept) (95001,李勇,男,20,CS) student (95001,李勇,男,20,CS)Sname=李勇,(2)若A=Ai1,Ai2,,Aik,其中Ai1,Ai2,,Aik是 A1,A2,An中的一部分。 则A称为属性列或域列。 tA=(tAi1,tAi2tAik)表示元组t在属性列A上诸分量的集合。,则表示A1,A2,An中去掉Ai1,Ai2,Aik后的属性组。,2.4.2专门的关系运算,26,例子:A=sno,sname,sage (95001,

14、李勇,男,20,CS)A=(95001,李勇,20) (95001,李勇,男,20,CS) =(男,CS),(3)给定一个关系R(X,Z),X和Z是属性组。定义, 当tX=x时,x在R中的象集为:,例子:student(sno,sname,ssex,sage,sdept) 95001的象集为:(李勇,男,20,CS) 95002的象集为:(刘晨,女,19,IS) 信息系(IS系)IS的象集为:(95002,刘晨,女,19),(95004,张立,男,19) (李勇,男)的象集为:(95001,20,CS),27,1.选择,例子1:查询信息系(IS系)的全体学生.,28,例子2:查询年龄小于20岁

15、的学生.,下角标为4,29,例子3:查询信息系(IS系)年龄小于20岁的学生.,(3),(2),(1),30,31,2.投影,例子4:查询学生的姓名和所在系.,32,例子4:查询学生关系中有哪些系.p57,33,例子4:查询选修了C1并且成绩小于60分的学生的学号.,(1),(2),(3),34,复习:,(1)RS (2)RS (3)R-S (4)RS (5) (6),辅助运算符:,= ,例子: 查询选修了课程C1的学生的学号和姓名.,35,3.连接,例子:,说明:(1)A和B分别是R和S上度相等且可比的属性组。 (2) 是比较运算符。,36,等值连接:当连接条件为“=”时的连接运算.,a2

16、b3 8 b3 10,a2 b3 8 b3 2,37,自然连接:是一种特殊的等值连接,它要求两个关系中进行 比较的分量是相同的属性组,并且在结果中把重 复的属性列去掉.,38,学生-课程数据库:,Student表:,SC表:,Course表:,studentsc,sccourse,39,studentsc,Student表:,SC表:,例子:查询李勇的成绩单, 列出姓名、课程号、成绩。,40,SC表:,sccourse,Course表:,例子: 查询95001的选课情况。列出所选课程的课程号、课程名、成绩、学分。,41,意义:把同一个学生的基本情况、选课情况、所选的课 的课程情况同时列出。 连

17、接运算的作用:用于查询同一个对象分布在多个表的 不同属性。,42,例子:查询选修了3号课程的学生姓名。,选修了3号课程的Sno、Cno、Grade,学生的Sno、Sname、Ssex、Sage、Sdept,43,例子:查询选修了数学的学生姓名。,(1)数学的课程号,(2)选修了数学的学生学号,(3)选修了数学的学生姓名,44,例子:查询至少选修了一门其直接先行课为5 号课程的学 生姓名.,45,例子:查询至少选修了一门其直接先行课为5 号课程的学 生姓名.,(1)直接先行课为5号课程的课程号,(2)选修直接先行课为5号课程的学生学号,(3)选修直接先行课为5号课程的学生姓名,46,例子:查询年

18、龄大于20的男生学号和姓名。 查询李勇没有选修的课程号。 查询选修了全部课程的学生学号。,47,4.除(),给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组.R中的Y与S中的Y可以有不同的属性名,但必须出自同一相同的域集.R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合. 记为:,解释: (1) R(X,Y)S(Y,Z) P(X) (2) S在属性Y上的投影,(3) R中元组在X上分量值x的象集Yx (4) 确定R S的值,48,例子:有关系R(A,B,C)和S(B,C,D),求R S,R(A,B,C) S(B,C,D) P(A) (2) S在(B,C)上的投影: (b1,c2),(b2,c1),(b2,c3),(3) R中元组在A上分量值a的象集(B,C)a a1的象集:(b1,c2),(b2,c3),(b2,c1) a2的象集:(b3,c7),(b2,c3) a3的象集:(b4,c6) a4的象集:(b6,c6),(4) R S=a1,49,例子:设R=,S=,求R S,R(sno,cno) S(cno) P(sno) (2) S在(cno)上的投影:1,2,3,4,5,6,7 (3) R中元组在Sno上分量值sno的象集CNOs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论