《数据库系统概念-第3章关系数据.ppt》由会员分享,可在线阅读,更多相关《数据库系统概念-第3章关系数据.ppt(97页珍藏版)》请在三一办公上搜索。
1、数据库系统教程,第3章 关系数据库,1,第3章 关系数据库,3.1 关系数据模型3.2 基本术语与形式化定义3.3 完整性约束3.4 关系代数,*,2,3.1 关系数据模型,关系数据模型源于数学。1970年IBM研究员博士在美国计算机学会会刊(Communication of the ACM)上发表了题为“A Relational Model of Data for Shared Data Banks”的论文,开创了数据库系统的新纪元。,*,3,关系模型,关系模型由三部分组成:数据结构操作集合完整性约束这三部分也称为关系模型三要素。,*,4,3.1.1 数据结构,关系数据模型用二维表来组织数据
2、。这个二维表在关系数据库中就称为关系。关系数据库就是表或者说是关系的集合。表是逻辑结构而不是物理结构。,*,5,学生关系模型,*,6,学生,3.1.2 数据操作,关系数据模型中的操作包括:传统的关系运算:并、交、差、广义笛卡尔乘积;专门的关系运算:选择、投影、连接、除;有关的数据操作:查询、插入、删除、更改。,*,7,操作特点,关系模型中操作的数据以及查询的结果都是完整的集合(或表),这些集合可以只包含一行数据,也可以是不包含任何数据的空集合。非关系模型数据库中典型的操作是一次一行或一次一个记录。集合处理能力是关系系统区别于其他系统的重要特征。,*,8,关系模型与非关系模型区别,在非关系模型中
3、,各个数据记录之间是通过指针等方式连接的,当要定位到某条记录时,需要用户自己按指针的链接方向逐层查找导航。在关系模型中,用户只需指定数据的定位条件,数据库管理系统就可以自动定位到该数据记录非导航。,*,9,层次模型查找示例,*,10,关系模型查找示例,*,11,关系操作,关系模型的数据操作主要包括:查询、插入、删除、更改关系数据库中的信息表示方式:表中的行列位置有明确的值逻辑层。,*,12,关系数据库的物理层,关系数据库在物理层也使用指针,但这些物理层的存储细节对用户来说都是不可见的,用户所看到的物理层实际上就是存放数据的数据库文件:文件名存放位置,*,13,关系语言特点,关系操作是通过关系语
4、言实现的,关系语言的特点是高度非过程化:用户不必关心数据的存取路径和存取过程,只需要提出数据请求,DBMS会自动完成用户请求的操作;用户没有必要编写程序代码来实现对数据的重复操作。,*,14,3.1.3 数据完整性约束,数据的完整性是指保证数据正确性的特征。数据完整性是一种语义概念,包括:与现实世界中应用需求的数据的相容性和正确性;数据库内数据之间的相容性和正确性。,*,15,数据完整性,数据完整性由一组完整性规则定义,关系模型的完整性规则是对关系的某种约束条件。在关系数据模型中将数据完整性分为三类:实体完整性参照完整性(引用完整性)用户定义的完整性,*,16,3.2 关系模型的基本术语与形式
5、化定义,3.2.1 基本术语3.2.2 形式化定义,*,17,3.2.1 基本术语,关系:关系就是二维表,二维表的名字就是关系的名字。属性:二维表中的每个列就称为一个属性(或叫字段),每个属性有一个名字属性名某一列的值属性值列的个数关系的元数。如果一个二维表有n个列,则称其为n元关系。,*,18,基本术语(续),值域:二维表中属性的取值范围称为值域。例如:“年龄”的取值为大于0的整数“性别”列的取值为男,女,*,19,基本术语(续),元组:二维表中的一行数据称为一个元组(记录值)。,*,20,5个元组,基本术语(续),分量:元组中的每一个属性值称为元组的一个分量。n元关系的每个元组有n个分量。
6、例:(0811101,李勇,21,男,计算机系),有5个分量,*,21,基本术语(续),关系模式:二维表的结构称为关系模式。设有关系名为R,属性分别为A1,A2,An,则关系模式可以表示为:R(A1,A2,An)如果将关系模式理解为数据类型,则关系就是该数据类型的一个具体值。,*,22,基本术语(续),关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。候选键:如果一个属性或属性集的值能够惟一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。,*,23,基本术语(续),主键:当一个关系中有多个候选键时,从中选择一个作为主键。每个关系只能有一个主键。主键也称为主码或主
7、关键字,用于惟一地确定一个元组。主键可以由一个属性组成,也可以由多个属性共同组成。,*,24,主键示例,学生(学号,姓名,性别,年龄,所在系),*,25,学号,选课(学号,课程号,成绩),学号,课程号,选课(学号,课程号,考试次数,成绩),学号,课程号,考试次数,基本术语(续),主属性:包含在任一候选键中的属性称为主属性。非主属性:不包含在任一候选键中的属性称为非主属性。选课(学号,课程号,成绩),*,26,学号,课程号,成绩,术语对比,*,27,3.2.2 形式化定义,定义笛卡尔积:设D1,D2,Dn为任意集合,定义笛卡尔积D1,D2,Dn为:D1 D2 Dn(d1,d2,dn)|di Di
8、,i1,2,n 其中每一个元素(d1,d2,dn)称为一个n元组,简称元组。元组中每一个di称为是一个分量。,*,28,笛卡尔积示例,D1计算机系,信息管理系 D2李勇,刘晨,吴宾D3男,女则D1 D2 D3笛卡尔积为:(计算机系,李勇,男),(计算机系,李勇,女),(计算机系,刘晨,男),(计算机系,刘晨,女),(计算机系,吴宾,男),(计算机系,吴宾,女),(信息管理系,李勇,男),(信息管理系,李勇,女),(信息管理系,刘晨,男),(信息管理系,刘晨,女),(信息管理系,吴宾,男),(信息管理系,吴宾,女),*,29,笛卡尔乘积实际就是二维表,*,30,关系的形式化定义,笛卡尔积D1,D
9、2,Dn的任意一个子集称为D1,D2,Dn上的一个n元关系。形式化的关系定义同样可以把关系看成二维表,给表中的每个列取一个名字,称为属性。n元关系有n个属性,一个关系中的属性的名字必须是唯一的。属性Di的取值范围(i1,2,n)称为该属性的值域。,*,31,示例,*,32,R(计算机系,李勇,男),(计算机系,刘晨,男),(计算机系,吴宾,女),对关系的限定,关系中的每个分量都是不可再分的最小属性表中列的数据类型是固定的,即列中的每个分量都是同类型的数据,来自相同的值域。不同列的数据可以取自相同的值域。关系表中列的顺序不重要。关系表行的顺序也不重要。同一个关系中的元组不能重复。,*,33,3.
10、3 完整性约束,数据完整性是指数据库中存储的数据是有意义的或正确的,和现实世界相符。3.3.1 实体完整性3.3.2 参照完整性3.3.3 用户定义的完整性,*,34,3.3.1 实体完整性,保证关系中的每个元组都是可识别的和惟一的。指关系数据库中所有的表都必须有主键,而且表中不允许存在如下记录:无主键值的记录。主键值相同的记录。,*,35,无主键值的情况,*,36,?,主键值重复情况,*,37,*,37,?,主键作用,当在表中定义了主键时,数据库管理系统会自动保证数据的实体完整性,即保证不允许存在主键值为空的记录以及主键值重复的记录。空值是特殊的标量常数,它代表未定义的或者有意义但目前还处于
11、未知状态的值。,*,38,3.3.2 参照完整性,也称为引用完整性。现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存在着关系与关系之间的引用。参照完整性就是描述实体之间的联系的。参照完整性一般是指多个实体或关系之间的关联关系。,*,39,示例1,学生(学号,姓名,班号,性别)班(班号,所属专业,人数),*,40,班号,班号,示例2,学生(学号,姓名,性别,专业)选课(学号,课程号,成绩)课程(课程号,课程名,学分),*,41,学号,学号,课程号,课程号,示例3,职工(职工号,姓名,直接领导职工号),*,42,直接领导职工号,职工号,?
12、,外键定义,设F是关系R的一个或一组属性,如果F与关系S的主键相对应,则称F是关系R的外键(Foreign Key),并称关系R为参照关系,关系S为被参照关系。关系R和关系S不一定是不同的关系。,*,43,关系的参照表示图,可以用图形化的方法形象地表达参照和被参照关系。,*,44,示例,*,45,说明,参照完整性规则就是定义外键与被参照的主键之间的引用规则。外键一般应符合如下要求:或者值为空;或者等于其所参照的关系中的某个元组的主键值。,*,46,3.3.3 用户定义的完整性,也称为域完整性或语义完整性。是针对某一具体应用领域定义的数据约束条件。反映某一具体应用所涉及的数据必须满足应用语义的要
13、求。实际上就是指明关系中属性的取值范围,防止属性的值与应用语义矛盾。,*,47,3.4 关系代数,关系代数是关系操作语言的一种传统表示方式,是一种抽象的查询语言。是一种纯理论语言,它定义了一些操作,运用这些操作可以从一个或多个关系中得到另一个关系,而不改变源关系。关系代数的操作数和操作结果都是关系,而且一个操作的输出可以是另一个操作的输入。,*,48,关系代数的运算,关系代数的运算对象是关系,运算结果也是关系。与一般的运算一样,运算对象、运算符和运算结果是关系代数的三大要素。关系代数的运算可分为以下两大类:传统的集合运算:并、交、差、笛卡尔积专门的关系运算:选择、投影、连接、除,*,49,运算
14、符,*,50,运算符(续),*,51,3.4.1 传统的集合运算,并运算(Union)交运算(Intersection)差运算(Except)广义笛卡尔积(Cartesian Product),*,52,并、交、差运算示意图,*,53,并运算,并(RS):设关系R与关系S均是n目关系,关系R与关系S的并记为:RSt|tR tS 其结果仍是n目关系,由属于R或属于S的元组组成。元组在新关系中的顺序不重要。,*,54,并运算示例,R,S,RS,*,55,交运算,交(RS):设关系R与关系S均是n目关系,关系R与关系S的交记为:RSt|tR tS 其结果仍是n目关系,由属于R并且也属于S的元组组成。
15、,*,56,差运算,差(RS):设关系R与关系S均是n目关系,关系R与关系S的差记为:RSt|tR tS 其结果仍是n目关系,由属于R但不属于S的元组组成。RSR-(R S),*,57,交、差运算示例,RS,RS,R,S,*,58,广义笛卡尔积,两个分别为n目和m目的关系R和关系S的笛卡尔积是一个(mn)列的元组的集合。元组的前n个列是R的一个元组,后m个列是S的一个元组。若R有K1个元组,S有K2个元组,则关系R和关系S的广义笛卡尔积有K1K2个元组,记做:RStrts|trR tsStrts表示由元组tr和ts前后有序连接而成的一个元组。任取元组tr和ts,当且仅当tr属于R且ts属于S时
16、,tr和ts的有序连接即为RS的一个元组。,*,59,笛卡尔积示例,*,60,3.4.2 专门的关系运算,选择运算(Select)投影运算(Project)连接运算(Join)除运算(Division),*,61,选择运算,从指定的关系中选择满足给定条件(用逻辑表达式表达)的元组而组成一个新的关系。,F(R)r|rR F(r)真,条件表达式,取逻辑“真”值或“假”值,*,62,选择运算示意图,F(R),*,63,选择运算示例,例.查询计算机系学生信息。Sdept计算机系(Student),有Student关系:,*,64,投影运算,从关系R中选择若干属性,并用这些属性组成一个新的关系。,A(R
17、)(t(A)|tR),属性列序列,*,65,投影运算示意图,投影,*,66,投影运算示例,例2.查询学生的姓名和所在系。sname,sdept(Student),有Student关系:,*,67,连接运算,连接运算用来连接相互之间有联系的两个关系,从而产生一个新的关系。连接运算具有如下几种形式:连接等值连接(连接的特例)自然连接外部连接(或称外连接)半连接,*,68,连接,A、B是关系R和S上语义相同的属性或属性组,是比较运算符。连接运算从R和S的广义笛卡尔积中选择R关系在A属性组上的值与S关系在B属性组上的值满足的元组。,*,69,等值连接,为“=”的连接成为等值连接。它是从关系R与S的笛卡
18、尔积中选取A,B属性值相等的那些元组:,*,70,自然连接,是一种特殊的等值连接,它去掉了等值连接结果中的重复的属性列。即若R与S具有相同的属性组B,则自然连接可记作:,*,71,原始数据,*,72,商品,销售,左外连接示例,半连接示例,等值连接与自然连接示例,数据,*,73,外连接,如果希望不满足连接条件的元组也出现在连接结果中,则可以通过外连接实现。外连接有三种:左外连接:右外连接:全外连接:,*,74,外连接含义,左(右)外连接:把连接符号左(右)边的关系中不满足连接条件的元组也保留到连接后的结果中,并在连接结果中将该元组所对应的右(左)边关系的各个属性均置成空值(NULL)。全外连接:
19、把连接符号两边的关系中不满足连接条件的元组均保留到连接后的结果中,并在连接结果中将不满足连接条件的各元组的相关属性均置成空值(NULL)。,*,75,左外连接示例,*,76,数据,全外连接示例,*,77,半连接,在两个关系之间执行连接操作,并将其结果投影在第一个操作关系的所有属性上。半连接的一个优点是可以减少必须参与连接的元组的数目。半连接操作的表达形式为:上述半连接是一个半连接,其他还有半等值连接、半自然连接等。,*,78,半连接示例,查询销售价格高于5000的商品的全部信息。(仅仅是想查看商品的信息),*,79,数据,除运算,设关系S的属性是关系R的属性的一部分,则RS为这样一个关系:此关
20、系的属性是由属于R但不属于S的所有属性组成;RS的任一元组都是R中某元组的一部分。但必须符合下列要求,即任取属于RS的一个元组t,则t与S的任一元组连接后,都为R中原有的一个元组。,*,80,除运算示意图,*,81,除运算的一般形式,设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则:R(X,Y)S(Y,Z)R(X,Y)Y(S),*,82,象集定义,设有关系R(X,Y),其中X,Y为属性(组),X=x在R上的象集是:Yx=tY|tR tX=x tY和tX分别表示R中的元组t在属性组Y和X上的分量的集合。,*,83,象集示例1,*,84,有元组:(0821101,张立,男,20
21、,信息管理系)设XSdept,Ssex,YSno,Sname,Sage,tX的一个值:x(信息管理系,男)则Yx为tXx(信息管理系,男)时所有tY的值:Yx=(0821101,张立,20),(0821103,张海,20),象集示例2,*,85,设XSno,YCno,Grade,则当X取“0811101”时,Y的象集为:Yx(C001,96),(C002,80),(C003,84),(C005,62),再讨论除法的一般形式,设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则:RStrX|tr R Y(S)Yx,*,86,除运算示例,至少选了“C001”和“C005”课程的学生
22、,*,87,关系代数优先级,运算投影选择乘积连接、除交并、差,优先级,高,低,*,88,关系代数综合示例,例5.查询选了C002号课程的学生的学号和成绩。Sno,Grade(Cno=C002(SC)例6.查询信息管理系选了C004号课程的学生的姓名和成绩。,*,89,或:,关系代数综合示例,例7查询选了第2学期开设的课程的学生的姓名、所在系和所选的课程号,*,90,或:,关系代数综合示例,例8.查询选了“高等数学”且成绩大于等于90分的学生的姓名、所在系和成绩。,*,91,或:,关系代数综合示例,例9.查询没选VB课程的学生的姓名和所在系。,*,92,或:,关系代数综合示例,例10.查询选了全部课程的学生的姓名和所在系。(1)选了全部课程的学生学号,*,93,(2)这些学生的姓名和所在系,关系代数综合示例,例11.查询计算机系选了第1学期开设的全部课程的学生的学号和姓名。,*,94,关系代数操作总结,*,95,关系代数操作总结(续),*,96,*,97,本章学习顺利结束,