数据库第2章 关系数据库基础_第1页
数据库第2章 关系数据库基础_第2页
数据库第2章 关系数据库基础_第3页
数据库第2章 关系数据库基础_第4页
数据库第2章 关系数据库基础_第5页
已阅读5页,还剩162页未读 继续免费阅读

下载本文档

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

文档简介

1、Page 1第2章 关系数据库基础1970年的6月,Edgar Frank Codd在 Communications of ACM 上发表了A Relational Model of Data for Large Shared Data Banks (大型共享数据库数据的关系模型) 1973年IBM启动了System R的项目,研究关系型数据库的实际可行性 1979年,RSI发布了可用于DEC PDP-11计算机上的商用ORACLE产品Page 2第2章 关系数据库基础 关系数据库采用关系数据模型,已经历了30多年的发展,从理论到技术都已经非常成熟,是目前广泛使用的主流数据库系统,也是数据库课

2、程要讲授的主要内容。本章主要包括关系的基本概念、关系数据模型、关系完整性约束和关系代数等内容。 Page 3本章学习目标 深刻理解关系的定义和关系的基本性质,理解相应的概念和术语;深刻理解关系模型及其三个要素;深刻理解关系完整性约束;掌握关系代数的基本运算和应用;了解SQL Server的基本架构和基本构成;掌握SQL Server数据库的存储结构和建立数据库的方法。Page 4本章重点难点本章学习的重点是围绕关系数据模型的基本概念、深刻理解关系数据模型的三个要素和关系完整性约束,为以后设计、使用和管理关系数据库奠定一个良好基础。 本章学习的难点是理解关系完整性约束的概念及其作用。 Page

3、52.1 关系概念 关系通俗的讲就是二维表格,也是人们在日常生活中最常见到的表格数据。关系的基本概念源于数学。关系的形式定义,以及相关的概念和术语。 Page 6关系的定义在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念。Page 7单一的数据结构关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构二维表从用户角度看,关系模型中数据的逻辑结构是一张二维表 Page 8域(Domain)域是一组具有相同数据类型的值的集合。

4、例如:整数、实数1,10之间的整数长度为8的字符串集合男,女介于2007年7月1日到2008年2月29日之间的日期Page 9域中所包含的值的个数称为域的基数(用m表示)。关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟 m1=3D2=男,女 m2=2D3=47,28,30 m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域名无排列次序,如D2=男,女=女,男Page 10笛卡尔积(Cartesian Product)笛卡尔积域上面的一种集合运算。给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,

5、dn)diDi,i1,2,n所有域的所有取值的一个组合不能重复Page 11给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,dn)diDi,i1,2,n例:给出三个域D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业D3=POSTGRADUATE=李勇,刘晨,王敏D1D2D3 ?笛卡尔积(Cartesian Product)Page 12D1D2D3 (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏), (张清玫,信息专业,李勇), (张清玫,信息专业

6、,刘晨), (张清玫,信息专业,王敏), (刘逸,计算机专业,李勇), (刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏), (刘逸,信息专业,李勇), (刘逸,信息专业,刘晨), (刘逸,信息专业,王敏) D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业D3=POSTGRADUATE=李勇,刘晨,王敏笛卡尔积(Cartesian Product)Page 13元组(Tuple) 笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组。D1D2D3 (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (

7、张清玫,计算机专业,王敏), (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (张清玫,信息专业,王敏), 笛卡尔积(Cartesian Product)Page 14分量(Component)笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量。D1D2D3 (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏), (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (张清玫,信息专业,王敏), 笛卡尔积(Cartesian Product)Page 15基数(Cardinal number)若Di(i1,2,n)为有限集,其

8、基数为mi(i1,2,n),则D1D2Dn的基数M为:笛卡尔积(Cartesian Product)Page 16笛卡尔积(Cartesian Product)D1D2D3 (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏), (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (张清玫,信息专业,王敏), (刘逸,计算机专业,李勇), (刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏), (刘逸,信息专业,李勇), (刘逸,信息专业,刘晨), (刘逸,信息专业,王敏) D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALI

9、TY=计算机专业,信息专业D3=POSTGRADUATE=李勇,刘晨,王敏D1D2D3的基数:22312即共有12个元组Page 17笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。Page 18笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。笛卡尔积(Cartesian Product)Page 19 笛卡尔积(Cartesian Product)Page 20关系(Relation)关系 D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为 R(D1,D2,Dn)R:关系

10、名n:关系的目或度(Degree)Page 21 关系(Relation)D1D2D3 (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏), (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (张清玫,信息专业,王敏), (刘逸,计算机专业,李勇), (刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏), (刘逸,信息专业,李勇), (刘逸,信息专业,刘晨), (刘逸,信息专业,王敏) 从D1D2D3中取出有实际意义的元组来构造关系:SAP (SUPERVISOR,SPECIALITY,POSTGRADUATE)假设:导师与专业:1:1导

11、师与研究生:1:nSAP (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (刘逸,信息专业,王敏) Page 22关系(Relation)关系中的每个元素是关系中的元组,通常用t表示。关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。 Page 23关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。关系(Relation)Page 24关系(Relation)候选码(Candidate key)若一个关系有多个候选码,则选定其中一个为主码(Primary key)在最简单的情况下,候选码只包含一个

12、属性在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)候选码的诸属性称为主属性(Prime attribute)不包含在任何侯选码中的属性称为非码属性(Non-key attribute) Page 25下面是一个全码的例子:假设有教师授课关系TCS,分别有三个属性教师(T)、课程(C)和学生(S)。一个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听。在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属性的组合是关系TCS的候选码,称为全码,T,C,S都是主属性。Page 26关系(

13、Relation)主码(Primary Key)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码Page 27关系(Relation)三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示Page 28关系(Relation)三类关系基本关系(基本表或基表)查询表查询结果对应的表Page 29关系(Relation)三类关系基本关系(基本表或基表)查询表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据Page 30关系(Relation)无限关系在数据库系统中是无意义的。因此限定关系必须是有限集合。笛卡尔积不满足交换律,但关系满足交换律,即(d

14、1,d2 ,di ,dj ,dn)=(d1,d2 ,dj ,di ,dn) (i,j = 1,2,n)Page 31关系(Relation)基本关系的性质列是同质的(Homogeneous)每一列中的分量是同一类型的数据,来自同一个域。Page 32关系(Relation)基本关系的性质不同的列可出自同一个域每一列称为一个属性。不同的属性要给予不同的属性名。Page 33关系(Relation)两个域:人(PERSON)=张清玫,刘逸,李勇,刘晨,王敏专业(SPECIALITY)=计算机专业,信息专业SAP关系的导师属性和研究生属性都从PERSON域中取值为了避免混淆,必须给这两个属性取不同的

15、属性名,而不能直接使用域名。定义:导师属性名为SUPERVISOR-PERSON(或SUPERVISOR)研究生属性名为POSTGRADUATE-PERSON(或POSTGRADUATE)Page 34关系(Relation)基本关系的性质列的顺序无所谓遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列。也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序。Page 35关系(Relation)基本关系的性质任意两个元组的候选码不能相同Page 36关系(Relation)基本关系的性质行的顺序无所谓遵循这一性质的数据库产品(如ORACLE),插

16、入一个元组时永远插至最后一行。但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了元组的顺序。Page 37关系(Relation)基本关系的性质分量必须取原子值每一个分量都必须是不可分的数据项。Page 382.2 关系数据模型 关系数据模型就是用关系来表示现实世界中实体以及实体和实体之间的联系的数据模型。 Page 39关系数据模型的三要素关系数据结构关系数据操作关系数据完整性约束Page 40关系数据结构如何表示现实世界中的实体及其联系?在关系数据模型中,现实世界中的实体及实体与实体之间的联系均用关系来表示。 Page 41关系操作集合在关系上能进行哪些操作?传统的集合运

17、算专门的关系运算关系数据操作 Page 42关系模式关系模式是对关系的描述元组集合的结构元组语义以及完整性约束条件属性间的数据依赖关系集合属性构成属性来自的域 属性与域之间的映象关系Page 43关系模式关系模式可以形式化地表示为: R(U,D,DOM,F)R 关系名U 组成该关系的属性名集合D 属性组U中属性所来自的域DOM 属性向域的映象集合F 属性间的数据依赖关系集合Page 44关系模式例:导师和研究生出自同一个域人取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域。DOM(SUPERVISOR)= DOM(POSTGRADUATE)= PERSONPage 45关

18、系模式关系模式通常可以简记为 R (U) 或 R (A1,A2,An)R 关系名A1,A2,An 属性名注:域名及属性向域的映象常常直接说明为 属性的类型、长度Page 46基本的关系操作查询选择、投影、连接、除、并、差、交、笛卡尔积等数据更新插入、删除、修改查询的表达能力是其中最主要的部分Page 47关系操作的特点集合操作方式,即操作的对象和结果都是集合一次一集合非关系数据模型的数据操作方式一次一记录基本的关系操作Page 48关系代数语言 关系演算语言元组关系演算语言域关系演算语言关系数据语言的分类用对关系的运算来表达查询要求用谓词来表达查询要求Page 49具有关系代数和关系演算双重特

19、点的语言典型代表:SQL(Structured Query Language)关系数据语言的分类SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能。Page 50关系的完整性实体完整性参照完整性用户定义的完整性关系的三类完整性约束关系模型的完整性规则对关系的某种约束条件关系的两个不变性应用领域需要遵循的约束条件Page 51实体完整性实体完整性规则(Entity Integrity)若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。空值(null)表示“不知道”或“不存在”的值。例如:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)其中P

20、OSTGRADUATE为主属性(假设研究生不会重名),因此不能取空值。Page 52实体完整性实体完整性规则规定基本关系的所有主属性都不能取空值。例如:选修(学号,课程号,成绩)“学号、课程号”为主码中的主属性,因此这两个属性都不能取空值。Page 53实体完整性遵守实体完整性规则的原因:实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此主属性不能取空值。Page 54在关系模型中实

21、体及实体间的联系都是用关系来描述的,因此存在着关系与关系间的引用。例1:学生实体与专业实体间的联系学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)参照完整性Page 55参照完整性Page 56例2:学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)参照完整性Page 57 参照完整性Page 58例3:学生实体及其内部的领导联系学生(学号,姓名,性别,专业号,年龄,班长)参照完整性Page 59外码(Foreign Key)设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码K

22、s相对应,则称F是基本关系R的外码。基本关系R称为参照关系(Referencing Relation)基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation)参照完整性Page 60例1:学生实体与专业实体间的联系学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)参照完整性例2:学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)例3:学生实体及其内部的领导联系学生(学号,姓名,性别,专业号,年龄,班长)Page 61参照完整性外码(Foreign Ke

23、y)目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上。外码并不一定要与相应的主码同名。但当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。Page 62参照完整性参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。Page 63参照完整性学生关系中每个元组的“专业号”属性只取下面两类值:(1)空值,表示尚未给该学生分配专业;(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该

24、学生不可能分配到一个不存在的专业中。例1:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)Page 64参照完整性例2:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)“学号”和“课程号”是选修关系中的主属性,只能取相应被参照关系中已经存在的主码值。Page 65参照完整性例3:学生(学号,姓名,性别,专业号,年龄,班长)(1)空值,表示该学生所在班级尚未选出班长;(2)非空值,这时该值必须是本关系中某个元组的学号值。“班长”属性值可以取两类值:Page 66用户定义的完整性用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体

25、应用所涉及的数据必须满足的语义要求。Page 67用户定义的完整性例如:课程(课程号,课程名,学分)用户定义的完整性规则:“课程名”属性必须取唯一值“课程名”属性也不能取空值“学分”属性只能取值1,2,3,4Page 68用户定义的完整性关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。Page 692.3 关系代数 关系代数是实现关系操作的一种方法,是理解关系操作的基础。 传统的集合运算并运算交运算差运算广义笛卡尔积专门的关系运算选择运算投影运算连接运算除运算Page 70关系模型与其他模型相比,最有特色的是它的数据库语言。这种语言灵活方

26、便、表达能力和功能都很强。目前关系数据库所使用的语言一般都具有定义、查询、更新和控制一体化的特点,而查询是最主要的部分。所以说,关系数据库的核心部分是查询,故又称为查询语言,而查询的条件要使用关系运算表达式来表示。因此,关系运算是设计关系数据语言的基础。按表达查询的方法不同,关系运算可分为关系代数和关系演算两大类。 关系代数Page 71关系代数的分类及其运算符关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,简称关系代数。它是由IBM在一个实验性的系统上实现的,称为ISBL(Information System Base Language)语言。ISBL的每个语句

27、都类似于一个关系代数表达式。关系代数的运算对象是关系,运算结果也是关系,关系代数用到的运算符主要包括四类:集合运算符:(并),-(差),(交),X(广义笛卡尔积);专门的关系运算符:(选择),(投影),(连接),*(自然连接),(除);算术比较运算符:(大于),(大于等于),(小于),(小于等于),=(等于),(不等于);逻辑运算符:(与),(或),(非)Page 722.3 关系代数关系代数一种抽象的查询语言,用对关系的运算来表达查询。Page 732.3 关系代数关系代数运算的三大要素运算对象:关系运算结果:关系运算符:四类Page 742.3 关系代数集合运算符专门的关系运算符将关系看成

28、元组的集合运算是从关系的“水平”方向即行的角度来进行运算不仅涉及行而且涉及列Page 752.3 关系代数关系代数运算符表 集合运算符-并差交笛卡尔积专门的关系运算符选择投影连接除运算符含义运算符含义Page 762.3 关系代数算术比较符逻辑运算符辅助专门的关系运算符进行操作。Page 772.3 关系代数关系代数运算符表比较运算符 大于大于等于小于小于等于等于不等于逻辑运算符 非与或运算符含义运算符含义Page 78专门的关系运算表示记号(1) 设关系模式为R(A1,A2,An)它的一个关系设为R;tR表示t是R的一个元组;tAi则表示元组t中相应于属性Ai的一个分量 Page 79专门的

29、关系运算表示记号(2) 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或属性组。tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。Page 80专门的关系运算表示记号(3) R为n目关系,S为m目关系。tr R,tsS, tr ts称为元组的连接。它是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。Page 81专门的关系运算表示记号(4) 给定一个关系R(X,Y),X和Y为属性组。当tX=x时,x在R中的象集(I

30、mages Set)为: Yx=tY|t R,tX=x 它表示R中属性组X上值为x的诸元组在Y上分量的集合。 Page 82传统的集合运算假设1:R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域t是元组变量,tR表示t是R的一个元组Page 83并(Union)传统的集合运算RS = t|t Rt S 仍为n目关系,由属于R或属于S的元组组成Page 84并ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS 传统的集合运算Page 85差(Difference)R -S = t|

31、tRtS 仍为n目关系,由属于R而不属于S的所有元组组成传统的集合运算Page 86差ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S 传统的集合运算Page 87交(Intersection) RS = t|t Rt S 仍为n目关系,由既属于R又属于S的元组组成传统的集合运算RS = R (R-S)Page 88ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S 交传统的集合运算Page 89假设2:R是n目关系,包含k1个元组S是m目关系,包含k2个元

32、组传统的集合运算Page 90笛卡尔积(Cartesian Product) RS = tr ts |tr R tsS 列:(n+m)列的元组的集合。元组的前n列是关系R的一个元组;后m列是关系S的一个元组。行:k1k2个元组传统的集合运算Page 91ABCa1b1c1a1b2c2A2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1传统的集合运算笛卡尔积

33、Page 92专门的关系运算选择投影连接除Page 93选择(Selection) 选择又称为限制(Restriction)从关系R中选择满足给定条件的诸元组,是从行的角度进行的运算。 Page 94选择(Selection) 选择运算记作: F(R) = t|tRF(t)= 真F:选择条件,是一个逻辑表达式,取“真”或“假”值,其基本形式为:X1Y1:比较运算符(,或)X1 ,Y1等:属性名、常量、简单函数,属性名也可以用它的序号来代替在基本的选择条件上还可以进行非( )、与()、或()运算Page 95选择(Selection) 选择运算实例设有一个学生-课程数据库,包括学生关系Stude

34、nt、课程关系Course和选修关系SC。Page 96选择(Selection) Student学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISPage 97选择(Selection)SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS例1 查询信息系(IS系)全体学生。Sdept = IS (Student)或5 =IS (Student)结果:Page 98选择(Selection)例2 查询年龄小于20岁的学生Sage 20(

35、Student) 或4 20(Student)结果:SnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19ISPage 99投影(Projection)从R中选择出若干属性列组成新的关系,是从列的角度进行运算。投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。Page 100投影(Projection)投影运算记作: A(R) = tA | t R A:R中的属性列Page 101投影(Projection)投影运算实例Student学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept950

36、01李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISPage 102投影(Projection)例3 查询学生的姓名和所在系Sname,Sdept(Student)或2,5(Student)结果:SnameSdept李勇CS刘晨IS王敏MA张立ISPage 103投影(Projection)例4 查询学生关系Student中都有哪些系 Sdept(Student)结果:SdeptCSISMAPage 104连接(Join)连接也称为连接从两个关系的笛卡尔积中选取属性间满足一定条件的元组。Page 105连接(Join)A和B:分别为R和S上度数相等且可比的

37、属性组:比较运算符连接运算记作:R S = | tr Rts StrAtsB ABtr tsPage 106连接(Join)两类常用连接运算等值连接(equijoin)自然连接(Natural join)Page 107连接(Join)等值连接(equijoin)为“”的连接运算称为等值连接从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:R S = | tr Rts StrA = tsB A=Btr tsPage 108连接(Join)自然连接(Natural join)自然连接是一种特殊的等值连接:两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉

38、若R和S具有相同的属性组B ,则自然连接为: R S = | tr Rts StrB = tsB tr tsPage 109连接(Join)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 ABRSPage 110连接(Join)例5 ABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52S一般连接R S CEAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310Page 111连接(Join)例5 ABCa1b15a1b26a2b38a2b412RBEb13b27

39、b310b32b52SAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32等值连接R S R.B=S.BPage 112自然连接 R S连接(Join)例5 ABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52S ABCEa1b153a1b267a2b3810a2b382Page 113连接(Join)外连接 如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。Page 114连接(Join)ABCa1b15a1b26a2b38a2b412RBEb13b27b310

40、b32b52SR和S的外连接Page 115连接(Join)左外连接右外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)Page 116连接(Join)ABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52SR和S的左外连接Page 117连接(Join)ABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52SR和S的右外连接Page 118除(Division)同

41、时从行和列角度进行运算RSPage 119除(Division) 给定关系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 = tr X | tr RY (S) Yx Yx:x在R中的象集,x = trXPage 120BCDb1c2d1b2c1d1b2c3d2ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1RS除(Division) 例

42、6求RS =? Page 121除(Division)在关系R中,A可以取四个值a1,a2,a3,a4 a1的象集为 (b1,c2),(b2,c3),(b2,c1)a2的象集为 (b3,c7),(b2,c3)a3的象集为 (b4,c6)a4的象集为 (b6,c6)S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3) 只有a1的象集包含了S在(B,C)属性组上的投影所以 RS =a1 Page 122BCDb1c2d1b2c1d1b2c3d2Aa1ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1RS除(Division) 例6RSPag

43、e 123综合举例以学生-课程数据库为例 Student学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISPage 124课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64综合举例CoursePage 125综合举例SC学 号Sno课 程 号Cno成 绩Grade9500119295001285950013889500229095002380Page 126综合举例例7

44、 查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系K:求: Sno,Cno(SC)KCno 1 3Page 127综合举例Sno.Cno(SC)学 号Sno课 程 号Cno成 绩Grade9500119295001285950013889500229095002380SnoCno950011950012950013950022950023Page 128综合举例Cno(K)=1,3SnoCno95001195001295001395002295002395001象集1,2,395002象集2,3Sno.Cno(SC)K=95001Cno 1 3Page 129综合举例例 8 查询选

45、修了2号课程的学生的学号 Sno(Cno=2(SC) 95001,95002学 号Sno课 程 号Cno成 绩Grade9500119295001285950013889500229095002380Page 130综合举例例9 查询至少选修了一门其直接先行课为5号课的课程的学生姓名。查询选修了课程号为2的学生姓名。Page 131综合举例学 号Sno课 程 号Cno成 绩Grade9500119295001285950013889500229095002380课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理2

46、7PASCAL语言64学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISPage 132综合举例 Sname(Cno=2(SC Student) Page 133综合举例 Sname(Cpno=5(Course SC Student) 或Sname(Cpno=5(Course) SC Sno,Sname(Student) Page 134综合举例例10 查询选修了全部课程的学生号码和姓名Page 135综合举例学 号Sno课 程 号Cno成 绩Grade9500119295

47、001285950013889500229095002380课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19ISPage 136综合举例Sno,Cno(SC)Cno(Course) Sno,Sname(Student) Page 137小结关系数据的形式化定义域笛卡尔积关系关系模式关系完整性实体完整性参照完整性关系代数并、

48、差、交、笛卡尔积、投影、选择、连接、除Page 1382.4 关系数据库管理系统SQL Server介绍 目前广泛使用的是关系数据库管理系统,其中微软公司的SQL Server、甲骨文公司的Oracle、赛贝斯公司的Sybase和IBM公司的DB2等大型数据库管理系统占领了市场的大部分份额。Page 139SQL Server的基本结构SQL Server的最新版本是SQL Server 2012。现在的数据库管理系统已经不仅仅包含数据的存储、管理、操作和查询功能,它还提供越来越多的各种数据服务功能。 Page 140SQL Server 2005安装 SQL Server2005的版本SQL

49、 Server 2005 Enterprise EditionSQL Server 2005 Developer Edition SQL Server 2005 Standard EditionSQL Server 2005 Workgroup EditionSQL Server 2005 Express Edition 具有高级服务的 SQL Server 2005 Express Edition Page 141SQL Server的数据库数据库文件含义一个数据库保存为1个或多个文件,这些文件称为数据库文件。类型主数据文件:存放数据库的启动信息、存放数据每个数据库必有一个主数据文件。扩展名

50、是.mdf。次数据文件:用于存放数据。一个数据库可没有或有多个次数据文件。扩展名是.ndf事务日志文件事务日志记录了SQL Server所有的事务和由这些事务引起的数据库的变化。其作用:可恢复所有未完成的事务。 每个数据库可有一个或多个日志文件。扩展名是.ldf数据库文件数据库文件的文件名默认情况下主数据文件名为:数据库名.mdf 事务日志文件名为:数据库名_Log.ldf用户自定义数据库文件的存放位置默认情况下,存放在:c:program files Microsoft SQL Server MSSQL.1 MSSQL data用户自定义文件组目的SQL Server允许将多个数据库文件组成

51、一个组。以便于管理和分配数据。类型主文件组:包括主数据文件、没有指明组的其它文件次文件组:用户自定义文件组数据库文件和文件组必须遵循的规则一个文件或文件组只能被一个数据库使用一个文件只能属于一个文件组日志文件不能属于文件组数据库结构如下图所示: 数据库物理上表现为数据库文件数据文件日志文件主数据文件次数据文件1次数据文件2主文件组次文件组次数据文件1次数据文件2日志文件1日志文件2逻辑上表现为数据库对象系统数据库SQL 2005在安装时,会创建5个系统数据库。 Master数据库是SQL Server系统最重要的数据库,它记录了SQL Server的所有系统信息。Model数据库用作在 SQL

52、 Server 实例上创建的所有数据库的模板 。对 model 库的修改将应用于以后创建的所有数据库。 Page 147Master master数据库位于Sql Server的核心,如果该数据库被损坏,Sql Server将无法正常工作。因此请大家千万不要对master作任何操作。 Master数据库中的内容主要有:所有的登录名或用户ID所属的角色。所有的系统配置设置。服务器中的数据库的名称及相关信息。数据库中的位置。SQL server如何初始化。用于存储系统重要信息的特殊的系统表。二、系统数据库Msdb数据库是代理服务数据库,为其警报、任务调度和记录操作员的操作提供存储空间。 Tempd

53、b数据库是一个临时数据库,它为所有的临时表、临时存储过程及其它临时操作提供存储空间。 Resource 数据库是一个只读数据库。包含SQL Server 2005的系统对象,这些系统对象在物理上保存在Resource 数据库中,但在逻辑上,它们出现在每个数据库的 sys 架构中。 物理文件名为 Mssqlsystemresource.mdf。默认情况下,此文件位于 c: Program Files Microsoft SQL Server MSSQL.1 MSSQL Data Mssqlsystemresource.mdf Page 149tempdb tempdb数据库,是一个临时性的数据库

54、,它存在于Sql Server会话期间,一旦Sql Server关闭,tempdb数据库将丢失。当Sqlserver得新启动时,将重建全新的、空的tempdb数据库,以供使用。其作用是保存数据库运行过程中生成的临时数据以供用户使用。 对于tempdb,我们只需关注其大小的设置。Page 150SQL Server实例在每台服务器上运行的SQL Server称为一个SQL Server实例。一个企业在网络上运行的多个SQL Server实例可以统一进行管理。每个SQL Server实例都有自己的系统数据库,可以建立多个用户数据库。创建用户数据库创建数据库的方法使用界面创建(熟悉)简单、方便使用命

55、令创建(掌握)命令方式、较复杂但它是兼容语法,一旦学会它,可套用到其它数据库系统中;在程序中执行的某些动作必须使用命令。Page 152建立数据库建立数据库的命令CREATE DATABASE 建立操作系统文件、申请物理存储空间 在物理上和逻辑上都建立了一个新的数据库在数据库中创建各种数据库对象 Page 153CREATE DATABASE的常用格式 CREATE DATABASE database_name ON , ,. , FILEGROUP filegroup_name , ,. LOG ON , ,. CREATE DATABSE 数据库名 ON PRIMARY ( NAME =

56、逻辑文件名, FILENAME = 磁盘文件名 ,SIZE = 初始大小 ,MAXSIZE = 最大容量|unlimited ,FILEGROWTH = 增长量 ) , n , FILEGROUP () , n LOG ON ( NAME = 逻辑文件名, FILENAME = 磁盘文件名 ,SIZE = 初始大小 ,MAXSIZE = 最大容量|unlimited ,FILEGROWTH = 增长量 ) , n 主文件组次文件组次文件组的次数据文件主文件组的次数据文件n主数据文件主数据文件日志文件n日志文件1日志文件1Page 155CREATE DATABASE的常用格式要建立的数据库的名

57、称,数据库名称必须唯一,并且符合标识符的规则。CREATE DATABASE database_name ON , ,. , FILEGROUP filegroup_name , ,. LOG ON , ,. Page 156CREATE DATABASE的常用格式指定用来存储数据库的操作系统文件(存储在磁盘上的数据文件),该关键字后跟以逗号分隔的项列表。 CREATE DATABASE database_name ON , ,. , FILEGROUP filegroup_name , ,. LOG ON , ,. Page 157CREATE DATABASE的常用格式用于定义对应的操作系

58、统文件的属性。包括:PRIMARY(NAME = logical_file_name,FILENAME = os_file_name, SIZE = size, MAXSIZE = max_size | UNLIMITED, FILEGROWTH = growth_increment) CREATE DATABASE database_name ON , ,. , FILEGROUP filegroup_name , ,. LOG ON , ,. 为数据库指定主文件。一个数据库只能有一个主文件,如果没有指定PRIMARY,那么CREATE DATABASE语句中列出的第一个文件将成为主文件。

59、Page 158CREATE DATABASE的常用格式用于定义对应的操作系统文件的属性。包括:PRIMARY(NAME = logical_file_name,FILENAME = os_file_name, SIZE = size, MAXSIZE = max_size | UNLIMITED, FILEGROWTH = growth_increment) CREATE DATABASE database_name ON , ,. , FILEGROUP filegroup_name , ,. LOG ON , ,. 为定义的操作系统文件指定逻辑名称logical_file_name,该名称将由SQL Server管理和引用。该名称在数据库中必须

温馨提示

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

评论

0/150

提交评论