1第一章数据库系统概论1.1数据处理技术发展经历数据(data)是人们描述客观事物及其活动的抽象符号表示,是人们相互之间进行思想文化交流的工具。数据处理(dataprocessing)是人们利用手工或机器对数据进行加工的过程。对数据进行的查找、统计、分类、修改、变换等运算都属于加工。1.1.1人工管理阶段计算机只能用于科学和工程计算,计算机专业人员按用户计算要求编制出二进制代码程序,并把需要处理的少量数据以二进制的形式穿孔在程序代码之后,上机运算时同程序一起输入到内存中,运行程序时读取数据并处理,最后把运算结果输出出来。1.1.2文件管理阶段数据与程序在存储位置上完全分开,数据被单独组织成文件保存到外部存储器上,数据文件既可以为某个程序单独使用,也可以为多个不同的程序在不同的时间所使用。即数据文件可以被任何程序重复利用。1.1.3数据库管理阶段1.数据结构化2.数据共享3.数据相对独立4.数据粒度小5.数据操作界面独立6.数据由DBMS统一管理DBMS是运行在操作系统之上的数据库管理系统软件,由它实施对外存上的数据库进行统一管理,并负责执行在DBMS之上开发的应用程序对数据库的全部操作。DBMS除了同操作系统配合按照用户的要求存取数据库中的数据外,主要还具有以下四个方面的管理控制功能。(1)安全性控制(2)一致性控制(3)并发性控制(4)数据库恢复1.1.4分布式数据库管理阶段分布式数据库系统通过计算机网络和通信线路可以把分布在不同地域的、不同局域网环境下的、不同类型的数据库系统连接和统一管理起来。分布式数据库系统既支持客户的局部应用,又支持客户的全局应用。1.2概念数据模型1.2.1ER模型的有关概念1.实体实体(entity)是现实世界中存在的、可以相互区别的事物或活动。2实体集(entityset)是指同一类实体的集合。实体型(entitytype)是对同类实体的共有特征的抽象定义。对于同一类实体,根据人们的不同认识和需要,可能抽取出的特征有所不同,因而定义出的实体型就可能不同。如你可以把人的姓名、出生日期、性别、身高、体重等特征定义为人的实体型。实体值(entityvalue)就是符合实体型定义的、对一个实体的具体描述。2.联系联系(relationship)是指实体之间的相互关系,它通常表示一种活动。如一张订单、一个讲座、一场比赛、一次选课等都是联系。联系集(relationshipset)是同一类联系的集合。如一次展销会上的全部订单、一次会议安排中的全部讲座、一次比赛活动中的所有比赛场次、一个班级同学的所有选课等都是相应的联系集。联系型(relationshiptpe)是对同类联系的共有特征的抽象定义。联系元数就是一个联系中所涉及的实体型的个数。若涉及到两个实体型则称为二元联系,若涉及到三个实体型则称为三元联系,等等。特殊地,若涉及到的两个实体型对应同一个实体则为一元联系。实体和联系的异同实体和联系实际上没有什么本质的区别,它们都是由相应的特征标识的,都具有型和值的概念,只不过在联系中含有较多的联系特征,如在选课联系中含有学生号、课程号等联系特征,通过联系特征与其他实体发生联系。3.属性属性(attribute)是描述实体或联系中的一种特征,一个实体或联系通常具有多个特征,需要多个相应属性来描述。码(key)或称键、关键字、关键码等,是实体间相互区别的一种唯一标识。如人是实体,每个人的身份证号就是这种唯一标识,因为每个人的身份证号都不会相同。域(domain)是实体中相应属性的取值范围。4.联系分类联系分类(relationshipclassify)是讨论两个实体型(含联系型在内)之间的联系的类别。按照一个实体型中的实体个数与另一个实体型中的实体个数的对应关系,可分类为1对1联系、1对多联系、多对多联系这三种情况。(1)1对1联系若一个实体型中的一个实体至多与另一个实体型中的一个实体发生关系,同样另一个实体型中的一个实体至多与该实体型中的一个实体发生关系,则这两个实体型之间的联系被定义为1对1联系,简记为1:1。(2)1对多联系若一个实体型中的一个实体与另一个实体型中的任意多个实体(含0个)发生关系,而另一个实体型中的一个实体至多与该实体型中的一个实体发生关系,则这两个实体型之间的联系被定义为1对多联系,简记为1:n。(3)多对多联系若一个实体型中的一个实体与另一个实体型中的任意多个实体(含0个)发生关系,反过来也一样,另一个实体型中的一个实体与该实体型中的多个实体(含0个)实体发生关系,则这两个实体型之间的联系被定义为多对多联系,简记为m:n。1.2.2ER模型ER模型(entityrelationshipmodel)是人们描述数据及其联系的概念数据模型,是数3据库应用系统设计人员和普通非计算机专业用户进行数据建模和勾通与交流的有力工具,使用起来非常直观易懂、简单易行。1.ER模型中的基本构件ER模型是一种用图形表示数据及其联系的方法,所使用的图形构件(元件)包括矩形、菱形、椭圆形和连接线。矩形表示实体,矩形框内写上实体名。菱形表示联系,菱形框内写上联系名。椭圆形表示属性,椭圆形框内写上属性名。连接线表示实体、联系与属性之间的所属关系或实体与联系之间的相连关系。2.各种联系的ER图表示对于1对1、1对多和多对多三种联系,对应的ER图如图1-2-5所示,其中每个实体或联系未画出相应的属性框和连线。联系实体1实体2联系实体1实体2联系实体1实体2n111nm图1-2-5三种联系的ER图1.3.1层次数据模型层次模型是一个树型结构模型,整棵树中有并且只有一个根结点,其余结点都是它的孩子或子孙;每个结点(除根结点外)只能有一个双亲结点(或称父结点),但可以有一个或多个孩子结点,当然也允许没有任何孩子结点,无孩子结点被称为叶子结点;每个结点对应一个记录型,即对应概念模型中的一个实体型,每对结点的父子联系隐含为1对多的联系(包括1对1联系)。1.3.2网状数据模型网状模型是一个图结构模型,它是对层次模型的扩展,允许有多个结点无双亲,同时也允许一个结点有多个双亲。层次模型成为网状模型中的一种最简单的情况。1.3.3关系数据模型关系数据模型有着坚实的理论支持,它是建立在集合论、数理逻辑、关系理论等数学理论基础之上的。并且关系数据模型结构简单,符合人们的逻辑思维方式,很容易被人们所接受和使用,很容易在计算机上实现,很容易从概念数据模型转换过来。1.关系数据模型的定义关系模型是一种简单的二维表格结构,概念模型中的每个实体和实体之间的联系都可以直接转换为对应的二维表形式。每个二维表称做一个关系,一个二维表的表头,即所有列的标题称为关系的型(结构),其表体(内容)称做关系的值。关系中的每一行数据(记录)称做一个元组,每一列数据称做一个属性,列标题称做属性名。同一个关系中不允许出现重4复元组(即两个完全相同的元组)和相同属性名的属性(列)。2.关系数据模型应用举例关系模型不仅容易表示概念模型中的每个实体,而且容易表示每一种类型的联系,它们都同样对应一个关系,该关系中必定包含相联系的每个实体的各一个码。3.关系型的关系定义在以关系模型为数据库逻辑结构建立的数据库系统中,所有数据都是以关系(表)的形式定义和保存的,特别是所有关系的定义(即结构,它是关系的型)也同样是以关系的形式定义和保存的。为了区别于一般的保存数据的关系,把保存关系定义的关系称为该数据库的元关系、元数据、系统数据、数据字典等,它提供了数据库中所有关系的模式(即关系的型)。元关系是在用户建立数据库应用系统时,由DBMS根据该数据库中每个关系的模式自动定义的。4.关系模型中的查询和更新在关系模型的数据库中进行查询和更新运算是非常灵活与方便的,用户即可以在每个关系上进行,也可以在相关的若干个关系上进行,相关的关系是靠关系之间共同使用的相同属性来实现的,该相同属性被称为连接属性或关联属性。如对于学生选课关系模型,既可以分别在学生、课程、选课这三个单独的关系上进行查询和更新,也可以通过它们之间的连接属性学号和课程号把两个或三个关系连接起来进行查询和更新。5.关系数据模型的特点采用关系模型建立数据库系统具有以下特点,也称为优点。(1)数据结构单一(2)采用集合运算(3)数据完全独立(4)数学理论支持1.3.4对象数据模型在面向对象模型中,对象也有型和值的区别,对象型(又称为类)是对具有共同特征的事物的抽象定义(描述),对象值就是对象型中的一个具体事物(实体)。如学生对象型由所含的属性特征和行为特征的定义组成,学生对象值表示某个具体的学生,他符合对象型的定义。对象具有封装性、继承性和多态性,这些特性都是传统数据模型中的记录所不具备的,这也是面向对象模型区别于传统数据模型的本质特征。1.4数据库系统简介1.4.1数据库系统构成数据库系统(databasesystem,简称DBS)是指安装了数据库和数据库管理系统的计算机系统。数据库管理系统在计算机操作系统的支持下对保存于外部设备上的、由物理数据文件所组成的数据库进行有效地管理、维护和使用。在数据库管理系统之上通常需要有数据库应用系统开发工具软件,应用程序员使用它,或者直接使用由DBMS所提供的数据库语言和开发环境编制程序建立数据库应用系统。数据库应用系统通常提供可视化操作界面供终端用户使用,进行日常数据处理工作。1.4.2数据库系统用户使用数据库系统通常包括四种类型的用户。5第一种是数据库管理员(DBA),他负责整个数据库系统的建立、管理、运行、维护、监控等系统性工作,以及用户登记、存取数据权限分配等服务性工作。第二种是数据库设计员,他根据数据库在某一方面的应用,通过同相关业务人员一起进行需求分析,建立概念数据模型和逻辑数据模型,搜集和整理数据,利用计算机中的数据库管理系统和数据库定义语言或操作界面建立相应的数据库应用系统。第三种是应用程序员,它根据已有的数据库系统,利用VisualBasic、PowerBuilder、Delphi等数据库应用系统开发工具编制程序开发出功能丰富、操作简便、满足用户需求的应用系统,供终端用户使用。第四种是终端用户,他是使用数据库的最广泛群体,是建立数据库为之服务的对象。如银行出纳员、窗口售票员、仓库管理员、住宿登记员等都是相应数据库系统的终端用户。1.4.3数据库体系结构在数据库的三级模式结构中,中间层叫做模式(schema)、或概念模式、逻辑模式、全局模式等。它是对整个数据库逻辑结构和特征的描述,用户以DBMS支持的逻辑数据模型为基础,以DBMS提供的模式描述(定义)语言(DDL—datadescription/definitionlanguage)为工具给出数据库中所有实体型和联系的定义,以及给出对数据的安全性、有效性等规则要求。三级模式中的最下层叫做内模式(internalschema)、或存储模式、物理模式等。它是对整个数据库的存储结构和特征的描述,用户通常以DBMS和OS支持的存储结构和特征为依托,以DBMS提供的内模式描述(定义)语言(DSDL—datastoragedescription/definitionlanguage)为工具给出全局模式所对应的存储结构和特征的定义。在非关系模型中,内模式定义必须由用户给出,但在关系模型中,则往往省略此定义,而由DBMS自行确定。数据库中的数据根据内模式定义还不能直接存储,还必须交由操作系统去处理,由操作系统同外部设备打交道,控制存储空间的分配和存取数据的过程。三级模式的最上层叫做外模式(externalschema)、或子模式、应用模式、局部模式等。它是对数据库在某个方面局部应用所涉及数据的逻辑结构和特征的描述,它是终端用户和应用程序员所见到的数据库,被称为数据视图,它是整个数据库模式的一个子集,所有外模式定义的逻辑综合就得到整个模式的定义。外模式通常由用户利用所使用的计算机高级语言或开发工具定义,或利用DBMS所提供的数据库语言定义。1.4.4DBMS的主要功能1.数据定义和操纵DBMS提供数据定义语言DDL和数据操纵语言DML(dat