您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第2章 关系数据库系统
第二章关系数据库系统2.1概述2.1.1关系数据库系统关系数据库是以关系模型为基础的数据库管理系统。它具有简单灵活的数据模型、较高的数据独立性、能提供良好性能的接口并有坚实的数学理论基础等优点,是目前广泛使用的数据库系统。2.1.2关系数据模型关系数据模型是由关系数据结构、关系操作集合和关系的完整性约束三大要素组成。1.关系数据结构在关系数据模型中,采用单一的数据结构——关系。现实世界的实体及实体间的各种联系均用关系来表示。在用户看来,关系就是一个二维表。2.关系操作集合在关系数据模型中,常用的关系操作一般分为两部分(1)与数据查询有关的操作,包括选择、投影、连接、除、并、交、差等;(2)与数据更新有关的操作,包括插入、删除、修改等。其中查询的表达能力是其中最主要的部分。关系操作的特点是面向集合的操作方式,即操作的对象和结果都是集合。而非关系数据模型的数据操作是面向记录的操作方式,即每次操作的对象和结果都是一个记录。关系数据库语言通常分为三类:关系代数语言:使用关系运算来表示各种查询操作。关系演算语言:使用数理逻辑中的谓词演算来表示各种查询结果。关系演算按谓词变元的基本对象是元组还是域变量又分为元组关系演算语言和域关系演算语言。结构化查询语言SQL:一种介于关系代数和关系演算之间的语言。3.关系的完整性约束关系模型的完整性通常由一组完整性规则来定义,关系模型的完整性规则实际上是对关系的某种约束条件。关系模型中通常可分为三类完整性约束,即实体完整性、参照完整性和用户定义的完整性。2.2关系数据模型的数据结构2.2.1关系数据模型的数据结构及有关术语现实世界的实体及实体间的各种联系均用关系来表示。在用户看来,关系就是一个二维表。如:学号姓名性别年龄所在系籍贯20020001张刚男20计算机北京20020002王小明男18自动化天津20020003李莉女19计算机河北20020004赵华男18计算机天津学生1.关系一个关系对应一个二维表,每个表必须有一个表名,称为关系名。2.属性和域表中的每一列(或字段),称为属性。对表中每个属性必须起一个名字,即属性名。属性列中的值称为属性值,属性值的取值范围称为域。3.关系模式对关系的描述称为关系模式。一般表示为:关系名(属性1,属性2,…,属性n)如上例中关系模式为:学生(学号,姓名,性别,年龄,所在系,籍贯)实际上关系模式是指对表结构的定义和描述,包括表名及表中有哪些属性列、各个属性的名、数据类型和宽度等。4.元组和分量关系中的一行,称为一个元组。元组中的每一个属性值,称为该元组的一个分量。5.侯选码和主码在一个关系中,如果存在某个属性可以唯一标识该关系的元组,这个属性称为该关系的侯选码。若一个关系中有多个侯选码,则选定其中一个为主码。6.主属性和非主属性一个关系中所有侯选码中的诸属性称为主属性,不包含在任何侯选码中的属性称为非主属性。2.2.2关系的形式化定义从数学的观点定义关系称为关系的形式化定义。下面从集合论的角度给出关系形式化的定义。1.域一组具有相同数据类型的值的集合。2.笛卡儿积给定一组域D1、D2、……、Dn(这些域中也可以有相同的),则D1、D2、……、Dn的笛卡尔积为:D1×D2×…×Dn={(d1、d2、……、dn)|di∈Di,i=1,2,…,n}其中每一个元素(d1、d2、……、dn)称为一个n元组,简称元组。元素中的每一个值di叫做一个分量。若Di(i=1,2,…n)为有限集,其基数为mi(i=1,2,…n),则D1×D2×…×Dn的基数n为:M=∏mii=1例如:D1=教师集合={王刚,张华,李莉}D2=课程集合={数学,英语}D3=教室集合={101,102}则D1×D2×…×Dn={(王刚,数学,101),(王刚,数学,102),(王刚,英语,101),(王刚,英语,102),(张华,数学,101),(张华,数学,102),(张华,英语,101),(张华,英语,102),(李莉,数学,101),(李莉,数学,102),(李莉,英语,101),(李莉,英语,102)}其中(王刚,数学,101)、(王刚,数学,102)等都是元组。王刚、数学、101等都是分量。该笛卡尔积的基数为3×2×2=12,即D1×D2×D3一共有12个元组,也可以用二维表表示,如图:教师课程教室王刚数学101王刚数学102王刚英语101王刚英语102张华数学101张华数学102张华英语101张华英语102李莉数学101李莉数学102李莉英语101李莉英语1023.关系D1×D2×…×Dn的一个子集称为在域D1、D2、…、Dn上的一个关系。例如,在上图的笛卡尔积中,根据授课的实际情况,选出其中的一个子集,如下图所示,便构成了一个关系(该关系名为授课)授课教师课程教室王刚数学101张华数学101李莉英语102需指出的是:从数学角度所研究的关系理论中,一个关系中的元组个数可以是无限的,即无限关系。另外,由于笛卡尔积不满足交换率,因此,当关系作为关系数据模型的数据结构时,必须给予如下的限定和扩充:•在关系模型中的关系必须是有限关系,因为计算机无法处理无限数据;•通过为关系的每个列附加一个不同的属性名,用来标识关系中的诸列,从而可以取消关系元组中分量间的有序性,使关系中的属性列可以任意交换。2.2.3关系的分类和性质在关系数据库中,关系通常有三种类型,即基本关系(又称基本表和基表)、查询表和视图(表)。基本表是数据库中实际存在的用来存储数据的表;查询表是用来临时存放查询结果的表;视图是由基本表和其他视图导出的表,它并不存放数据,因此是虚表。基本关系应具有以下6条基本性质:列是同质的,即每一列中的分量是同一类型的数据,来自同一个域;不同的列可以出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名;列的顺序无所谓,即列的次序可以任意交换;任意两个元组不能完全相同;行的顺序无所谓,即行的次序可以任意交换;每一个分量必须是不可分的数据项,即不允许表中有表。职工表姓名应发工资扣除工资实发工资基本津贴公积金医保001张华100020020010990002王刚1200250220121018003李莉8001501808762工资表不满足关系性质的表2.3关系数据模型的完整性关系数据模型的完整性通常由一组完整性规则来定义,关系数据模型的完整性规则实际上是对关系的某种约束条件。关系数据模型中通常可分为三类完整性约束,即实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系数据模型必须满足完整性约束条件,应由关系数据库管理系统自动支持,而用户定义的完整性是应用领域要遵守的约束条件,体现了具体领域中的语义约束,用户可利用关系数据库管理系统或开发工具提供的相应功能实现。【例2.1】设在学生信息数据库中,有如下四个关系:学生(学号,姓名,性别,年龄,所在系,籍贯,专业号)专业(专业号,专业名)课程(课程号,课程名,学分)选修(学号,课程号,成绩)其中用下划线标出的属性为关系的主码。2.3.1实体完整性实体完整性规则是对关系中主属性的约束。实体完整性规则是:若属性A是基本关系R的主属性,则属性A不能取空值。特别说明:实体完整性规则规定关系中所有主属性不能为空值,而不是主码不能为空值。说明:•实体的完整性是针对基本关系而言的,一个基本表通常对应现实世界的一个实体集。•现实世界的实体是可以区分的,即它们具有某种唯一性标志。•主属性不能取空值。2.3.2参照完整性现实世界中的实体之间往往存在某种联系,在关系模型中实体和实体间的联系都是通过关系来描述的,这种联系在关系数据模型中通常反映在关系和关系之间存在着参照关系。【例2.2】设在学生信息数据库中,有学生和专业两个关系:学生(学号,姓名,性别,年龄,所在系,籍贯,专业号)专业(专业号,专业名)学生关系专业关系专业号参照关系图【例2.3】在学生信息数据库中,有学生、课程和选修三个关系:学生(学号,姓名,性别,年龄,所在系,籍贯,专业号)课程(课程号,课程名,学分)选修(学号,课程号,成绩)学生关系选修关系课程关系学号课程号参照关系图参照完整性规则:若属性F是关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每一个元组在F上的值必须为:①或者取空值(F的每个属性值均为空);②或者取S中某个元组的主码值。2.3.3用户定义的完整性用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如:某个属性必须取唯一值,某个属性的取值范围必须在0~100之间,某些属性值之间应满足一定的函数关系等。2.4关系代数关系代数是关系数据操纵语言的一种传统表达方式,它是以集合代数为基础发展起来的,其运算对象和运算结果均为关系。关系代数也是一种抽象的查询语言,它通过关系运算表达查询。关系代数运算有四类:集合、关系、比较和逻辑。其运算符分别如下:集合运算符:∪(并)、∩(交)、-(差)、×(广义笛卡尔积)关系运算符:σ(选择)、∏(投影)、(连接)、÷(除)。比较运算符:﹤(小于)﹥(大于)≤(小于等于)≥(大于等于)﹦(等于)≠(不等于)逻辑运算符:∧(与)、∨(或)、(非)。1.并运算(union)假设有n元关系R和n元关系S,它们的相应属性取自同一个域,则它们的并仍然是一个n元关系,它由属于关系R或者属于关系S的元组组成,并记为:R∪S2.4.1传统的集合运算例:4.1例4.2ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RsABCa1b1c1a1b2c2a2b2c1a1b3c2R∪S2.差运算(difference)假设有n元关系R和n元关系S,它们的相应属性取自同一个域,则n元关系R和n元关系S的差仍然是一个n元关系,它由属于关系R而不属于关系S的元组组成。记为:R-S例:4.3ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1例4.4RSR-S3.交运算(intersection)假设有n元关系R和n元关系S,它们的相应属性取自同一个域,则它们的交仍然是一个n元关系,它由属于关系R且又属于关系S的元组组成。记为:R∩S例:4.5ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b2c2a2b2c1例4.6RSR∩S4.广义笛卡尔积假设有m元关系R和n元关系S,则R与S的笛卡尔积记为R×S,它是一个m+n元组的集合(即m+n元关系),其中每个元组的前m个分量是R的一个元组,后n个分量是S的一个元组。R×S是所有具备这种条件的元组组成的集合。例:4.7ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1R.AR.BR.CS.AS.BS.Ca1b1C1a1b2c2a1b1C1a1b3c2a1b1C1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1例4.8RSR×S2.4.2专门的关系运算专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个记号。(1)设关系模式为R(A1,A2,…,An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。(2)若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列。t[A]=(t[Ai1],t[Ai2]…,t[Aik])表示元组t在属性列A上诸分量的集合。A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。(3)R为n目关系,S为m目关系。tr∈R,ts∈S,trts称为元组的连接(Concatenation)。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S
本文标题:第2章 关系数据库系统
链接地址:https://www.777doc.com/doc-3357043 .html