收藏 分享(赏)

0数据库理论2_n.ppt

上传人:hyngb9260 文档编号:10082802 上传时间:2019-10-08 格式:PPT 页数:55 大小:1.39MB
下载 相关 举报
0数据库理论2_n.ppt_第1页
第1页 / 共55页
0数据库理论2_n.ppt_第2页
第2页 / 共55页
0数据库理论2_n.ppt_第3页
第3页 / 共55页
0数据库理论2_n.ppt_第4页
第4页 / 共55页
0数据库理论2_n.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、2019/10/8,第二章 关系数据库,1970年,IBM公司的E.F.Codd第一次提出了以关系的数学关系理论为基础的关系数据模型,奠定了关系数据库的理论基础。 90年代,关系模型数据库系统已成为商用主流数据库系统,广泛应用于各个领域,2019/10/8,2,2.1 关系的数学定义,“关系”“二维表”(非形式化) “关系”的理论是建立在集合代数理论的基础上,2019/10/8,3,2.1.1 域,定义2.1:域(Domain)是一组具有相同数据类型的值的集合。例如:整数、实数、 男,女 等都是域。 在关系中用域来表示属性的取值范围 域中所包含的值的个数称域的基数(用m表示)例:D1 (姓名)

2、 =李平,张红,王钢 M1=3D2 (性别) =男,女 M2=2D3 (年龄) =17,18,19 M3=3,2019/10/8,4,2.1.2 笛卡儿积,定义2.2 给定一组任意集合D1,D2,Dn,这些域中可以有相同的。这n个集合的笛卡儿积为:D1D2Dn=(d1,d2,dn)| di Di, i=1,2,n 笛卡儿积也是一个集合,其中: Di称为域; 每一个元素(d1,d2,dn) 叫做一个n元组(简称元组); 元素中每一个值di叫做一个分量 Di的基数用mi(i=1,2,n)表示,则笛卡儿积的D1D2Dn的基数为所有域的基数的累乘乘积,2019/10/8,5,2.1.2 笛卡儿积,例:

3、设有两个域, D1 =0,1和D2 =a,b,c则D1D2=(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)笛卡儿积也可以用二维表表示,其中表的框架由域构成,表的任意一行就是一个元组,每一列数据来自同一域。笛卡儿积基数为所有域的基数的累乘乘积。,0 1,A B C,2019/10/8,6,例:给出三个域: D1导师集合(张清玫,刘逸) D2专业集合(计算机专业,信息专业) D3研究生集合(李勇,刘晨,王敏) D1D2D3 (张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨)(张清玫,计算机专业,王敏), (张清玫,信息专业,李勇), (张清玫,计信息专业,刘晨),(

4、张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏), (刘逸,信息专业,李勇), (刘逸,信息专业,刘晨), (刘逸,信息专业,王敏) 其中(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨)(张清玫,计算机专业,王敏)等都是元组,张清玫、计算机专业、李勇、刘晨等都是分量。 该笛卡尔积的基数是22312,有12个元组。,2019/10/8,7,张清玫刘逸,计算机专业信息专业,李勇刘晨王敏,D1D2D3,D1,D2,D3的笛卡尔积,2019/10/8,9,2.1.3 关系,定义2.3:笛卡儿积 D1D2 Dn 的子集称为定义在域D

5、1,D2,Dn上的n元关系(Relation),可用R(D1,D2,Dn )表示。其中R为关系名,n称为关系的目或度(Degree); 关系中的每个元素是关系中的元组; 关系中的元组个数是关系的基数; 可以把关系看作是一个二维表,表的框架由Di(I=1,2,n)构成,每一行对应一个元组,表的每一列对应一个域,给每个域起一个名字,称为属性;,2019/10/8,10,2.1.3 关系,例1:在上述笛卡尔积中取出一个子集构造一个关系。由于一个研究生只师从一个导师,学习某一个专业,所以笛卡尔积中的许多元组是无实际意义的。该关系的名字为SAP,关系表示为: SAP(导师,专业,研究生) 假设导师与专业

6、是一一对应的,导师与学生是一对多。这样SAP可以包括三个元组。,D1,D2,D3的笛卡尔积,2019/10/8,12,这里假设研究生不会重名(只是为了举例),研究生 属性的每一个值都唯一地标识了一个元组,因此可作 为SAP 关系的主码。,SAP,2019/10/8,13,2.1.3 关系,例2:设 D1=男人集合(MAN)=王兵、李平、张英D2 =女人集合(WOMAN)=丁红、肖芳D3=儿童集合(CHILD)=王一、李一、李二 (1)求上面三个集合的笛卡儿积 (2)构造一个家庭关系,可表示为:FAMILY(MAN,WOMAN,CHILD)MAN WOMAN CHILD 王兵 丁红 王一 李平

7、肖芳 李一 李平 肖芳 李二 Family,2019/10/8,14,2.1.3 关系,由上例可知,关系是笛卡儿乘积的任意子集,但从实际应用中,只有取某个子集才有实际意义。 一般说来,关系是从笛卡儿积中选取的有意义的子集。,2019/10/8,15,2.1.3 关系,关系头与关系体的定义: 定义2.4: 定义在域D1,D2,Dn(不要求完全相异)上的关系由关系头(Heading)和关系体(Body)组成。关系头由属性名的A1,A2,An的集合组成,每个属性Ai正好对应一个域Di(I=1,2,n);关系体由随时间变化的n个元组的集合构成,每个元组依次由一组属性值的集合构成。,2019/10/8,

8、16,2.1.3 关系,关系头 是关系的数据结构的描述(关系框架) 关系头相对固定。 关系体 是指关系结构中的内容(数据值) 关系体随时间变化(随元组的建立、修改或删除而变化),2019/10/8,17,2.1.4 关系的性质,(1)关系中没有重复元组,任意元组在关系中都是唯一的。 (2)元组的顺序(行)无关紧要,即元组的次序可以任意交换。 (3)属性的顺序(列)是非排序的,即它的次序可以任意交换。 (4)属性必须具有不同的属性名,不同的属性可来自同一个域。 (5)同一属性名下的诸属性值(同列)是同类型数据,且来自同一个域。 (6)所有的属性值都是原子的,即每一个分量必须是不可分的数据项。,2

9、019/10/8,18,2.2 关系模型,一、单一的数据结构关系 关系模型的数据结构非常单一。在关系模型中,实体以及实体之间的各种联系均由关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。,2019/10/8,19,2.2 关系模型,1. 码:在给定的关系中,具有唯一标识元组的一个或一组属性,称为关系的码。例如:学生(学号,姓名,性别,班级,年龄,系部) 假设没有重名,学号,姓名都是码。 2. 候选码:如果在关系中,具有码特性的属性或属性组有多个,则把它们都称为关系的候选码。 3. 主码:当一个关系中有多个候选码时,我们从候选码中选择一个作为关系的主码。每个关系都必定有且只有一个主

10、码。 对于一个关系,主码一经选定,通常是不能随意改变的。,2019/10/8,20,2.2 关系模型,4. 外部码:如果关系R2的一个或一组属性不是R2的主码,而是另一关系R1的主码,则该属性或属性组成为关系R2的外部码。 例如: R2学生(学号,姓名,性别,年龄,专业号,系部) R1专业(专业号,专业名) 专业号是R2的外部码。,2019/10/8,21,2.2 关系模型,二、关系操作关系模型给出了关系操作的能力,但不对DBMS的语言给出具体的语法要求。关系模型中常用的关系操作包括:选择(Select)、投影(Project)、连接 (Join)、除(Divide) 、并(Union)、交(

11、Intersection)、差(Set Difference)等查询。以及增加(Insert)、删除(Delete) 、修改(Update)操作。,2019/10/8,信息与通信工程学院,22,2.2 关系模型,三、关系模型的三类完整性指实体完整性、参照完整性和用户定义的完整性(其中前两类完整性是关系模型必须满足的约束条件) 1. 实体完整性在关系中,要求主码的值不能为空值。学生(学号,姓名,年龄,性别,系部,年级)主码:学号不能为空值。,2019/10/8,信息与通信工程学院,23,2.2 关系模型,2. 参照完整性如果关系R2的外部码X与关系R1的主码相符,那么外部码X的每个值必须在关系R

12、1中主码的值中找到,或者取空值,称为参照完整性。 例如:R2学生(学号,姓名,性别,年龄,专业号,系部)R1专业(专业号,专业名) 即:R2学生中,专业号的取值要参照R1专业中专业号的取值。,2019/10/8,信息与通信工程学院,24,2.2 关系模型,3. 用户定义完整性针对某个具体数据库的约束条件,由应用环境决定,它反映某一具体应用所涉及的数据必须满足的语义要求。 例如:某个属性必须取唯一值,某个属性的取值范围在0100之间等。,2019/10/8,信息与通信工程学院,25,2.3 关系数据库模式与关系数据库,一、关系模式 定义:一个关系的属性名(集合) R(A1,A2,An) 叫做关系

13、模式。其中:R为关系名A1,A2,An为属性名关系模式就是关系的框架(表框架) 它是对关系结构的描述 例如:学生(学号,姓名,性别,班级,年龄,系部),2019/10/8,信息与通信工程学院,26,2.3 关系数据库模式与关系数据库,二、关系数据库模式 定义:一组关系模式的集合构成关系数据库模式。它是对关系数据库结构的描述,2019/10/8,信息与通信工程学院,27,2.3 关系数据库模式与关系数据库,三、关系数据库 关系数据库是由一组关系头的集合及其关系体的集合组成的 关系头的集合就是关系数据库模式 关系体的集合代表数据库的内容 关系数据库有型和值的概念,其型就是关系数据库模式,它是相对固

14、定;其值就是数据库的内容,它是随时间而变化的,2019/10/8,信息与通信工程学院,28,2.4 关系代数,关系代数包含两类运算: 传统的集合运算,如并、交、差、广义笛卡尔积,这类运算将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行的。 专门的关系运算,如选择、投影、连接、除,这类运算不仅涉及行,而且涉及列。 关系运算的运算对象是关系,结果也是关系。,2019/10/8,信息与通信工程学院,29,2.4 关系代数,关系代数的运算符有: 集合运算符:(并) (交) (差) (广义笛卡尔积) 专门的关系运算符:(选择) (投影) (连接) (除) 算术比较符=,=, 逻辑运算符

15、:(AND) (OR) (NOT),2019/10/8,信息与通信工程学院,30,2.4.1 传统的集合运算,1. 关系并运算:关系R和关系S的所有元组的合并,再删去重复的元组,组成一个新关系,记作:RSRS=t| tR tS 2. 关系差运算:在关系R中删去与关系S中相同的元组,组成一个新关系,记作:RSRS=t| tR tS 3. 关系交运算:在两个关系R与S中取相同的元组,组成一个新关系,记作:R SRS=t| tR tS 4. 广义笛卡尔积:两个分别为n、m目关系R和S的广义笛卡儿积是一个(n+m)元的元组集合,记作:RSRS=(r1, ,rn, s1,sm)| (r1, ,rn)R

16、(s1,sm)S,R,S,R S,RS,R-S,R ,2019/10/8,信息与通信工程学院,32,2.4.2 专门的关系运算,1. 选择:是在指定的关系中,按给定的条件选取其中的若干个元组,组成一个新的关系运算。记作:F(R) F为布尔函数,可由运算对象(属性名、常数、简单函数)、算术比较符和逻辑运算符连接起来的表达式组成。 F(R)=t | tR F(t)=true,例如:设有一个学生-课程数据库,包括:学生关系Student、课程关系Course和选课关系SC Student,Course,SC,2019/10/8,信息与通信工程学院,34,例1:查询信息系全体学生 Sdept=信息(S

17、tudent) 或5=信息(Student) 其中5为属性序号 查询结果:,a,例2:查询年龄小于20的学生 Sage20(Student) 或420(Student) 查询结果:,b,2019/10/8,信息与通信工程学院,36,2.4.2 专门的关系运算,2. 投影:是在指定的关系R中,选择出若干属性列组成新的关系。 记作:X(R) X为R的属性列。i1,im(R)=(ri1, ,rim)| (r1, ,ri1, ,rim,rn)R 投影操作是从列的角度进行的运算,即对关系R进行垂直分割,消去某些列,并重新排列顺序。 删除重复元组。,例3:查询学生的姓名和所在系 sname,Sdept(S

18、tudent) 或2,5(Student)查询结果:,Student,例3:查询学生关系Student中都有哪些系 Sdept(Student) 或5(Student)查询结果:,2019/10/8,信息与通信工程学院,39,2.4.2 专门的关系运算,3. 连接:是从两个关系R、S的笛卡儿积中选取属性间满足一定条件的元组。 记作:R SXY为连接条件 当为“=”,称为等值连接,XY,XY,2019/10/8,信息与通信工程学院,40,2.4.2 专门的关系运算,4. 自然连接:对于关系R、S,在等值连接的情况下,当连接属性X与Y具有相同的属性名时,则关系R与S的连接称为自然连接。记作:R S

19、 在自然连接构成的结果关系中,相同的属性名不必重复。 一般自然连接使用在R和S用公共属性的情况,2019/10/8,信息与通信工程学院,41,例:,设有关系R和S(见表), 求R S|R.学号S.学号, R S|R.学号S.学号, R S的值。,R,S,R S|R.学号S.学号,R S|R.学号=S.学号,R,S,2019/10/8,信息与通信工程学院,44,R S,2019/10/8,信息与通信工程学院,45,2.4.2 专门的关系运算,5. 除法: 定义见例子之后。(略)象集: 设关系R(X,Z),X和Z为属性组,当tX=x时,x在R中的象集为:Zx=tZR,tX=x,例:关系R和关系S见

20、图,求RS在R中,姓名,性别可以取3个值(王雷,女),(张宾,男),(许宁,男)。其中: (王雷,女)的象集为计算机语言 (张宾,男)的象集为数据库原理,操作系统,计算机语言,汇编语言 (许宁,男)的象集为汇编语言 所以:只有张宾的象集包含S在“选修课程”上的投影,RS(张宾,男),RS,S,R,RS,S,R,5. 除法:给定关系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上投影的集合。记作: RS

21、,X1,X2,Y,Y,Z,P,X1,X2,2019/10/8,信息与通信工程学院,48,2.4.3 关系代数表达式及应用,在关系代数运算中,我们介绍了9种运算。其中并、差、笛卡尔积、选择、投影运算为基本运算,交、连接、自然连接、除法可以用这5种基本运算经过有限次复合来表达。这种表达式称为关系代数表达式。,例如:设有一个学生-课程数据库,包括:学生关系Student、课程关系Course和选课关系SC Student,Course,SC,2019/10/8,信息与通信工程学院,50,举例: 例1:查询选修了2号课程的同学的学号SC,Sno(Cno=2(SC),Student,Course,SC,

22、例:查询至少选修了一门其先行课为5号的同学的学生姓名。 Sname(Cpno=5(Course) SC sno,Sname(Student),2019/10/8,信息与通信工程学院,52,习题:,2. 已知关系R、S、T,如下图所示,试求出下列运算的结果: (1) RS (2) R-S (3) RS (4) R T (5)R与T连接(AC) (6)A(R) (7) B,C(A=c(R T),1. 请举例说明关系中实体的完整性和参照完整性。,2019/10/8,信息与通信工程学院,53,习题:,3.教学数据库中有三个关系,请用关系代数表达式表示以下数据查询操作. 学生关系S(SNO,SNAME,

23、AGE,SEX) 学习关系SC(SNO,CNO,GRADE) 课程关系C(CNO,CNAME,TEACHER) (1) 检索学习课程号为C2的学生学号与成绩 (2) 检索选修课程名为MATHS的学生的学号,姓名和成绩 (3) 检索没有选修课程号为C2的学生的姓名和年龄 (4)检索女同学选修的课程名和任课教师名 (5)检索不学“ENGLISH”课程的学生姓名和年龄,S表,P表,J表,SPJ表,供应商(S)-零件(P)-项目(J) 数据库,S表,P表,J表,SPJ表,供应商(S)-零件(P)-项目(J) 数据库,(1)求供应工程J1零件的供应商号码SNO; (2)求供应工程J1零件P1的供应商号码SNO; (3)求供应工程J1零件为红色的供应商号码SNO; (4)求没有使用天津供应商生产的红色零件的工程号JNO; (5)求至少用了供应商S1所供应的全部零件的工程号JNO。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报