《(精品)数据库原理-不错的教程.ppt》由会员分享,可在线阅读,更多相关《(精品)数据库原理-不错的教程.ppt(266页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库概述数据库概述数据库系统本质上是一个用计算机存储记录的系统。数据库本身可被看作为一种电子文件柜;也就是说,它是收集计算机数据文件的仓库或容器。系统用户可以对这些文件执行一系列的操作,例如:v向数据库中增加新的空文件v向现有文件中插入数据v从现有文件中检索数据v更改现有文件的数据v删除现有文件中的数据v删除数据库中的现有文件数据库的性质q数据库描述了现实世界中的某些方面,构成了现实世界中的一个微小世界。q数据库是一个逻辑上紧密相连的数据集。该数据集中的数据具有某些固有的语义含义。q数据库是为某个特定目标设计、建立和使用的,它拥有确定的用户组和这些用户组感兴趣的预定的应用。Database
2、Management System信息、数据与数据处理q信息与数据信息是现实世界事物的存在方式或运动状态的反映。数据是将现实世界中的各种信息记录下的、可以识别的符号,是信息的载体,信息的具体表现形式。q数据处理数据处理实际上就是利用计算机对各种形式的数据进行处理。它包括:数据采集、整理、编码和输入,有效地把数据组织到计算机中,有计算机对数据进行一系列存储、加工、计算、分类、检索、传输、输出等操作过程。数据处理的目的是从大量的、原始的数据中抽象和推导出对人们有价值的信息以作为行动和决策的依据。在数据处理的一系列活动中,数据搜集、分类、组织、编码、存储、检索、传输和维护等操作为基本操作,我们将这些
3、基本操作环节称为数据管理。Database Management System数据库管理系统q数据库管理系统DBMS(DatabaseManagementSystem)是计算机程序的集合,它被数据库用户用来创建和维护数据库,因此,它是一个通用软件系统。数据库管理系统一般应具有的功能包括:定义、创建、操作和维护数据库。定义数据库涉及描述存储在数据库中数据的数据类型、描述这些数据的数据结构和描述这些数据所具有的各种语义限制。创建数据库则是在数据库管理系统的控制下把这些数据存储在某种存储介质上。数据的操作则包括如查询、更新和生成报表等一系列处理功能。Database Management Syste
4、m数据管理的进展q人工管理阶段数据不保存没有专用的软件对数据进行管理只有程序的概念,没有文件的概念数据面向程序q文件系统阶段数据以文件的形式长期保存数据的逻辑结构与物理结构有了区别文件形式多样化程序与数据之间有一定的独立性q数据库系统阶段数据共享面向全组织的复杂的数据结构数据独立性可控数据冗余度统一的数据控制功能数据安全性控制数据完整性控制并发控制数据恢复Database Management System数据库方法与文件处理方法q数据库的自说明性质数据库系统中,不仅含有数据库本身,而且还有完整的有关数据库的定义描述。定义被存放在数据字典(DataDictionary)之中,其内容包括每个文件
5、的结构、数据项的类型及存储格式、数据项上应有的语义限制等。存放在数据字典中的数据称为元数据(Metadata)。q程序与数据的独立在传统文件处理中,数据文件结构是嵌入在存取程序之中的,对文件结构的任何改变,都需要对存取这些文件的所有程序也做相应修改。因此说,文件处理中程序与数据是紧密关联的。而在数据库系统中,数据库管理系统存取程序是独立于任何特定文件的,数据文件结构作为数据字典的一部分被存储,是独立于存取程序的。允许程序于数据独立、程序于操作独立的性质被称为数据抽象(DataAbstraction)。数据库管理系统为用户提供的数据抽象包含数据的概念描述(ConceptualRepresenta
6、tion)。概念描述中只使用逻辑概念来描述数据,不包含任何有关数据是如何存储的细节。q数据的多视图q数据共享和多用户事务处理Database Management System数据库管理概述q什么是数据库系统数据集成共享硬件软件数据库管理器数据库服务器数据库管理系统(DBMS)用户q什么是数据库持久数据:我们说数据库中的数据是持久的,是因为一旦数据进入数据库被DBMS接受,就只有向DBMS提出某些明确的请求时,才能从数据库中删除数据。数据库是一个持久数据的集合,这些数据用于某企业的应用系统中。q为什么用数据库数据管理和数据库管理数据库方法的优点数据共享减少冗余避免不一致提供事务支持保持完整性增
7、强安全性平衡相互冲突的请求加强标准化Database Management System数据库系统用户qDBA(DatabaseAdministrator)这类人员全面负责数据库系统的管理维护和正常使用。DBA的具体职责是:1.决定数据库的内容和结构。2.决定数据库的存储结构和存取策略。3.定义数据的安全性要求和完整性约束条件。4.监督控制数据库的使用和运行。5.数据库系统的改进和重组。q数据库设计者q终端用户临时用户初级用户熟练用户q系统分析员和应用程序员q系统软件工作人员数据库管理系统软件的设计和实现者工具开发者操作与维护人员Database Management System数据描述q现
8、实世界存在于人们头脑之外的客观世界。q信息世界现实世界在人们头脑中的反映。实体(entity)实体集(entityset)属性(attribute)键(key)q机器世界信息世界中的信息在机器世界中一数据形式存储。字段(field)记录(record)文件(file)键(key)Database Management System数据之间的联系q现实世界中,事务是相互联系的,这种联系在信息世界中对应为实体的联系。实体的联系有两类:一类是实体内部的联系,反映在数据上是同一记录内部各字段间的联系;另一类是实体与实体间的联系,反映在数据上就是记录之间的联系。q数据库技术不但要考虑记录内部的联系,而且
9、还要考虑记录之间的联系。q实体间的联系一对一联系(1:1)一对多联系(1:m)多对多联系(n:m)Database Management System逻辑数据和物理数据q物理数据描述指存放在存储设备上的存储方式,物理数据是实际存放在存储设备上的数据。例如物理联系、物理结构、物理文件、物理记录等术语,都是用来描述存储数据的细节。逻辑数据描述指程序员或用户用以操作的数据形式,是抽象的概念。例如逻辑联系、逻辑结构、逻辑文件、逻辑记录等术语,都是用户观点的数据描述。q在数据库系统中,逻辑数据与物理数据之间可以差别很大。用户看到的数据结构和数据,与存储器中的数据结构和数据可能完全不同。数据库管理软件的功
10、能之一就是要把逻辑数据转换成物理数据,或者把物理数据转换成逻辑数据。Database Management System数据模型q数据模型(DataModel)是一组可用来描述数据库结构的概念集。数据库结构是指存储在数据库中的数据的类型、数据之间的联系以及数据上应有的语义限制。数据模型也包括数据操作,描述在数据库上可执行的检索与更新。另外,数据操作也可以包括用户定义的操作(User-DefinedOperation)。Database Management System数据模型分层q概念层(Conceptual-Level)现实世界的第一层抽象。又称为“概念数据模型”。为终端用户所使用。完全不
11、涉及信息在计算机系统中的表示,只是用来描述某个特定组织所关心的信息结构。q表示层(Representational-Level)或实现层(Implementation-Level)现实世界的第二层抽象。又称为“基本数据模型”或“结构数据模型”。可以为终端用户理解,不涉及到数据的具体组织。直接面向数据库的逻辑结构,具有严格的形式化定义,以便于计算机系统中的实现。q物理层(Physical-Level)描述数据在计算机中如何存储。Database Management System模式与实例q在数据库模型中,很重要的一点是要区别数据库描述和数据库本身。数据库描述称为数据库模式(DatabaseSc
12、hema)。数据库模式是在数据库设计时被说明的,其结构由不被经常修改的数据结构描述。q数据库中的数据是可以经常被修改的。数据库中某一时刻的数据称为该数据库的数据库状态,或称为数据库值(Occurrence),也可以称为数据库实例(Instance)集合。在一个给定的数据库状态中,每一个模式结构都有其自己的当前值集。每次对数据库中数据项的插入、删除和修改,都是将数据库从一个状态改变到另一个状态。q区别数据库模式和数据库状态是重要的。当我们定义一个新数据库时,我们仅仅只是对DBMS描述了数据库模式,这时的数据库状态是“空”,即没有数据。当对数据库第一次装载时,就获得了数据库的“初始状态”。从此以后
13、,每个对数据库的更新操作都使其获得了数据库的另一个状态。DBMS有责任保证每个数据库状态都是有效状态(ValidState)。也就是说,DBMS要保证新获得的状态中数据库模式的结构和语义限制说明都是正确的。q对DBMS说明一个正确的模式极为重要。DBMS将模式存放在字典之中,DBMS的软件就可以在任何需要的时候引用该模式,获得对数据库中数据的解释。模式有时也被称为内涵(Intension),而数据库状态被称为该模式的外延(Extension)。Database Management System数据独立性q数据库系统中,应尽可能避免应用程序依赖于数据的情况。这至少基于如下两条原因:不同的应用程
14、序对相同的数据会从不同角度来看。DBA必须有权改变物理表示和访问技术以适应变化的需要而不必改变现有的应用程序。q数据独立性:应用程序不会因物理表示和访问技术的改变而改变。q数据独立性包括两个方面:物理独立性和逻辑独立性。Database Management System数据模型q数据模型的三要素数据结构:对实体类型和实体间联系的表达和实现。数据操作:对数据库的检索和更新两类操作。数据的约束条件:给出数据及其联系所具有的制约和依赖规则。这些规则用于限定数据库的状态及状态的变化,以保证数据库中数据的正确、有效和安全。q概念模型实体联系模型(EntityRelationshipModel,简记为E
15、R模型)q三种主要的数据模型层次模型网状模型关系模型面向对象模型Database Management System实体联系模型q实体联系模型直接从现实世界中抽象出实体类型和实体间联系,然后用实体联系图(ER图)表示数据模型。设计ER图的方法称为ER方法。qER图是直观表示概念模型的有力工具。在ER图中:用矩形框表示实体集,框内写上实体名。用椭圆形框表示属性,属性名写在框内,属性与实体集之间用无向边连接。用菱形框表示实体集之间的联系,菱形框内写上联系名。用线段分别与有关实体集相连接,在线段边上标上联系的种类(1:m,m:n或1:1),若实体集之间的联系也具有属性,则把属性和菱形边也用线段连接上
16、。Database Management System关系模型中的主要术语q关系模型:用二维表格结构来表示实体与实体间的联系的模型为关系模型(RelationModel);q属性:在二维表格中的列(字段、数据项),称为属性(Attribute),列值称为属性值;属性值的取值范围为值域(Domain);q关系模式:在二维表格中的行定义(记录的型),称为关系模式;q元组(tuple)与关系;在二维表格中行(记录的值),称为元组;元组的集合称为关系;q主键(PrimeKey):又称主码,它能唯一识别标识元组的属性和属性的组合,且不含有多余的属性。q外键(ForeignKey):它在其特定表内不是主键
17、,但它可以是主键的一部分;它在该特定表外一定有个关联表存在;并且它在该特定表中值和在关联表中有相同的值域。它也可由一个或多个属性组成。Database Management System关系模型中的主要术语(图解)Database Management System数据库系统体系结构q三级体系结构q外模式q概念模式q内模式q映象q数据库管理员q数据库管理系统q数据通信管理器q客户服务器体系结构q工具q分布式处理Database Management System三级体系结构qANSI/SPARC体系结构分为三层:即内模式、概念模式和外模式。这种三级结构有时也称为“数据抽象的三个级别”。广义地讲
18、:内模式(存储模式)是最接近物理存储的也就是,数据的物理存储方式;外模式(用户模式)是最接近用户的也就是,用户所看到的数据视图;概念模式(公共逻辑模式,或有时称逻辑模式)是介于前两者之间的间接的层次。q注意到外模式是单个用户的数据视图,而概念模式是一个部门或企业的数据视图。换句话说,“外部视图”(即外模式)会有许许多多,每一个都或多或少地抽象表示整个数据库的某一部分,而“概念视图”(概念模式)只有一个,它包含对现实世界数据库的抽象表示(大多数用户只对整个数据库的某一部分感兴趣)。同样,“内部视图”(即内模式)也只有一个,表示数据库的物理存储。Database Management System
19、数据库系统体系结构用户A1外部视图A外部视图B用户A2用户B1用户B2用户B3主语言DSL主语言DSL主语言DSL主语言DSL主语言DSL概念视图数据库管理系统(DBMS)外模式A外模式B概念模式外模式/概念模式间的映象AA外模式/概念模式间的映象BA概念模式/内模式间的映象存储结构定义(内模式)用户界面由数据库管理员建立并维护的模式和映象Database Management System外模式q外模式就是单个用户的数据视图。一个用户可以是应用程序员或任一最终用户(这里DBA是一个特例,与其他用户不同,DBA还要了解概念模式和内模式)。每个用户都有其自己要使用的语言。对于应用程序员,可能会使
20、用常规的编程语言(如PL/I、C+、Java)或其他专用语言。这些专用语言通常被称作“第四代”语言(4GL)。对于最终用户,其使用的语言或者是一种查询语言或是某一特定目的的语言,这些语言可能是表格驱动的或菜单驱动的,可处理用户的请求并由在线的应用程序来支持。重要的是所有这些语言都包含数据子语言即数据库对象和操作的整个语言的一个子集。数据子语言嵌入在相应的主语言中。主语言负责提供各种非数据库的功能,如局部变量、计算操作、逻辑分支,等等。一个指定系统可以支持多种主语言和多种数据库子语言。理论上,任何特定的数据子语言至少包含两个子语言数据定义语言(DDL)和数据操纵语言(DML)。数据定义语言支持对
21、数据库对象的定义或说明;数据操纵语言支持对这些对象的操作和处理。Database Management System外模式qANSI/SPARC对用户视图的术语为外部视图。外部视图就是特定用户所看到的数据库的内容(即,对那些用户来说,外部视图就是数据库)。q通常,外部视图包括许多外部记录类型的值(不必和存储记录一样)。用户数据子语言是根据外部记录来定义的。q每个外部视图都是通过外模式来定义的,外模式包括外部视图中的各种外部记录类型的基本定义。外模式是使用用户数据子语言的DDL部分来写的(因此有时DDL也当作外部数据定义子语言)。此外,在外模式和其下面的概念模式之间要定义映象。Database
22、Management System概念模式q概念视图表示数据库的全部信息内容,其形式要比数据的物理存储方式抽象些。通常,它与任何特定用户观察数据的方式都很不同。广义上讲,概念视图更接近于实际数据,而不像某一用户所看到的数据,这些数据受到特定语言或可能使用的硬件限制。q概念视图由许多概念记录类型的值构成。概念记录既不和外部记录相同,也不和存储记录相同。Database Management System概念模式q概念视图是由概念模式定义的。概念模式包括各种概念记录型的定义。概念模式是用另一种数据定义语言来写的,即概念数据定义语言。如果可以实现物理记录的独立性,那么概念视图根本不涉及物理表示和访问
23、的技术它们只定义信息的内容。如果概念视图以这种方式真正地实现数据独立性,那么根据这些概念模式定义的外模式也会有很强的独立性。q概念视图是整个数据库内容的视图,概念模式是该视图的定义。在概念模式中的定义应包括许多额外的特征,诸如安全性和完整性约束。Database Management System内模式q体系结构的第三层是内模式。内部视图是整个数据库的底层表示;它由许多内部记录型中每一类型的许多值组成。“内部记录”是ANSI/SPARC对存储记录的称谓。内部视图与物理层仍然不同,因为它并不涉及物理记录的形式即物理块或页也不考虑具体设备的柱面或磁道大小。q内部视图由内模式来描述,内模式不仅定义各
24、种存储记录,而且也说明存在什么索引,存储记录怎么表示,存储记录是在什么物理队列中,等等。q内模式是用另一种数据定义语言内部数据定义语言来写的。Database Management System映象q除了三级模式本身,ANSI/SPARC的体系结构中还含有一定的映象关系即概念模式/内模式间的映象和外模式/概念模式间的映象。一般地讲:概念模式/内模式的映象定义了概念视图和存储的数据库的对应关系;它说明了概念记录和字段在内部层次怎样表示。如果数据库的存储结构改变了也就是说,如果改变了存储结构的定义那么概念视图/内模式的映象必须进行相应的改变,以便概念模式能够保持不变。换句话说,为了保持数据的物理独
25、立性,内模式变化所带来的影响必须与概念模式隔离开来。外模式/概念模式间的映象定义了特定的外部视图和概念视图之间的对应关系一般地讲,这两层之间存在的差异情况与概念视图和存储模式之间存在的差异情况是类似的。Database Management System数据独立q三级模式结构给出了数据独立(DataIndependence)的概念。数据独立是指在三级模式中,对某一模式的修改,不会引起其相邻模式的修改。q很显然,就像概念模式/内模式的映象是物理独立性的关键,外模式/概念模式的映象是逻辑独立性的关键。如果用户和用户的应用程序能相对于数据库物理结构的改变而保持不变,系统就提供了物理独立性。同样地,如
26、果用户和用户的应用程序对于数据库逻辑结构的改变(即在概念或公共逻辑层的改变)能保持不变,系统就提供了逻辑独立性。q在三级模式结构中,数据字典必须包括有如何在各个模式之间完成需求和数据间映射的信息。DBMS有专门软件按照字典中的映射说明完成其映射功能。由于数据独立性,某一模型的修改不会引起相邻模式的改变,被改变的只是其映射。三级模式结构提供了真正的逻辑和物理数据独立性。但是,两级映射给查询和程序的执行增加了负担,降低了DBMS的效率。Database Management System用户q用户是指使用数据库的应用程序或联机终端用户。编制应用程序的语言仍然是COBOL,FORTRAN,C等高级程
27、序设计语言。在数据库技术中,这些语言称为宿主语言(hostlanguage),或简称为主语言。qDBMS提供了数据操作语言(Datamanipulationlanguage,简记为DML)供用户或程序员使用。DML可自成系统在终端上直接对数据库进行操作(称为自含型DML,或交互型DML);也可嵌入在主语言中使用(称为嵌入型DML),此时主语言是经过扩充、能处理DML语句的语言。q用户界面(userinterface)是用户和数据库系统间的一条分界线,在界线下面,用户是不可知的。用户界面定在外部级上,用户对于外模式是可知的。Database Management SystemDBMS语言qDBM
28、S语言可以分为完成数据库描述的数据定义语言DDL(DataDefinitionLanguage)和完成数据库中数据存取的数据操作语言DML(DataManipulationLanguage)。数据定义语言通常被DBA或数据库设计者用来定义模式。DBMS提供DDL的编译程序处理DDL语句,以识别模式结构的描述,并将这些描述存于数据库字典中。q在DBMS中,对概念模式和内模式有明显的语言维护。一般DDL只用于概念模式描述。内模式的描述由存储定义语言SDL(StorageDefinitionLanguage)完成。两个模式之间的映射可以在这两类语言的任一类中加以实现。一个完整的三级模式结构,还应有描
29、述用户视图,以及用户视图到概念模式的映射,这是由视图定义语言VDL(ViewDefinitionLanguage)完成的。Database Management SystemDBMS语言q一旦数据库模式被定义,数据库中被装人数据,用户就要使用数据操作语言来存取这些信息。DML包括的典型操作是查询、插入、删除和修改。DML语言有两种类型。一种称为高级或非过程DML,该语言允许用户用一种简洁的方式来说明其复杂的操作需求。很多DBMS允许高级DML语句以交互式或以嵌入在通用程序设计语言的方式被使用。低级的或过程性DML必须被嵌入在通用程序设计语言中使用。过程型的DML语言从数据库中检索出单个记录,然
30、后处理。所以,它需要使用程序设计语言中的结构语句,例如循环,去处理从数据库中检索出来的记录集。由于这个性质,过程型DML也被称为基于记录的DML语言。高级DML语言,如SQL,能够在一个DML语句中检索和处理一组记录,因此被称为基于集合的DML。高级DML常常只是说明要从数据库中检索什么样的记录,而不必说明如何去检索到这些记录。Database Management System数据库语言和接口q不论是高级还是低级DML语言,只要是以嵌入方式使用,那么被嵌入的通用程序设计语言被称为主语言(HostLanguage),DML语言本身被称为数据子语言(DataSubLanguage)。在较新的面向
31、对象系统中,主语言与子语言都被综合在一个语言之中,如C+。另一方面,以独立的交互方式使用的高级DML被称为查询语言。q当前的DBMS中并不真的具有上述不同类型的语言,而是提供一种包括概念模式定义、视图定义、数据操作和存储定义的综合性语言,其典型的例子是SQL关系数据库语言。虽然存储定义语言SDL正在逐渐从SQl语言中移出,但SQL语言仍然是DDL、VDL、DML和SDL的组合。Database Management SystemDBMS界面q基于菜单的界面用户使用称为菜单的一组选择表项来完成自己的需求。菜单使用户不必记忆查询语言命令和语法说明,而是通过由系统显示的菜单,一步步选择下去,达到最终
32、的处理目的。下拉式菜单是基于窗口用户界面的通用技术,它将数据库功能以非结构方式展现在用户面前,它是一般用户喜爱的界面之一。q图形界面图形界面是在图形窗口中显示数据库的模式结构,用户通过图例来说明其查询。在很多情形,图形界面是以与菜单界面相结合的方式供用户使用。图形界面要求用户使用如鼠标一类的点击设备来选择模式结构部分。Database Management SystemDBMS界面q基于FORM的界面FORM界面是在用户显示器上给用户展现一个具体的FORM,用户可以在此FORM上的各个数据项栏填人新数据完成对数据库记录的插入、修改。也可以在FORM的某些栏处填人内容,以实现对数据库的查询。FO
33、RM界面通常是为初级用户设计和实现。很多DBMS都有专门的FORM说明语言帮助程序员说明一个FORM。有些系统还允许终端用户交互地在屏幕上设计自己的FORM。q自然语言界面该界面接受英语或其它语言的检索申请。一般自然语言界面有其自己的“模式”,这个模式与数据库的概念模式相似。界面使用该模式中的单词或一组标准短语来解释用户申请,如果这个解释成功,界面生成一个高级查询并且将其提交给DBMS处理。若解释失败,系统则启动一个对话,帮助用户更明确地说明他的申请。Database Management SystemDBA界面q大多数数据库系统都含有仅供DBA使用的特权命令,这些命令包括创建帐号、设置系统参
34、数、获取权力、改变模式以及重新组织数据库数据结构等等。Database Management System数据库管理员q数据管理员是根据企业的数据制定策略和政策决策的人,数据库管理员对执行这些决定提供必要的技术支持。因此,数据库管理员负责在技术层的全局控制。通常,数据库管理员的任务至少包括下列内容:定义概念模式定义内模式与用户联络定义安全性和完整性约束定义转储和重载机制监控系统性能并响应不断变化的请求Database Management System数据库管理员q定义概念模式数据管理员的工作是决定数据库中存放的信息换句话说,是确定对企业有用的实体和实体的相关信息。这一过程通常是指数据库的逻辑
35、设计(有时也称概念设计)。一旦数据管理员在抽象的层次上决定了数据库的内容,数据库管理员就使用概念数据定义语言创建相应的概念模式。模式的目标形式(已编译的)由数据库管理系统在响应访问要求时使用。源形式(未编译的)作为系统用户的参考文档。注意:在实际中,事情不像前面所说的那样能够清楚地区分。某些情况下,数据管理员可能直接创建概念模式。另外,数据库管理员也可以做逻辑设计。q定义内模式DBA也决定数据库中数据表示的问题。这一过程通常叫做物理设计。完成物理设计之后,DBA必须使用内部数据定义语言创建相应的存储结构定义(内模式)。此外,DBA必须定义相应的概念模式内模式的映象。实际上,概念数据定义语言或内
36、部数据定义语言更多的可能是指前者会包括定义映象的方法,但是两方面功能(创建模式,定义映象)要清楚地分开。像概念模式一样,每个内模式和相应的映象都会以源形式和目标形式存在。Database Management System数据库管理员q与用户联络为了确保用户需要的数据可用,并可以使用外部数据定义语言来编写(或帮助用户写)必要的外模式,DBA要负责与用户的联络(如前所述,一个指定的系统可以支持几个不同的外部数据定义语言)。此外,相应的外模式概念模式的映象也需要定义。实际上,外部数据定义语言会包括说明映象的方法,但是,模式和映象要清楚地分开。每个外模式和相应的映象都以源形式和目标形式两种方式存在。
37、与用户联络的其他方面还包括考虑应用程序的设计;提供技术培训;帮助决定问题和解决问题;及类似的专业服务。q定义安全性和完整性约束q定义转储和重载机制一旦企业采用了数据库系统,它就非常依赖于对系统的正确操作。如果数据库的任何部分遭到破坏人为引起的或硬件错误或系统错误必须能够以最小的代价恢复数据,且尽量减小对系统的影响。例如,未被破坏数据的访问并不受影响等。DBA必须定义和执行一个恰当的破坏控制计划。这些计划典型地应包括预先的对数据库卸载或转储到备份存储设备上并且当需要时从最近的转储中恢复数据库。q监控系统性能并响应不断变化的请求DBA负责组织系统,以得到对企业最佳的性能,并根据需求的改变来做相应的
38、调整(或调节)。Database Management System数据库管理系统q数据库管理系统(DBMS)是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,因此可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。q在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS,它们在用户接口、系统功能等方面也常常是不相同的。q用户对数据库进行操作,是由DBMS把操作从应用程序带到
39、外部级、概念级,再导向内部级,进而操纵存储器中的数据。DBMS的主要目标是使数据作为一种可管理的资源来处理。DBMS应使数据易于为各种用户共享,应该增进数据的安全性、完整性和可用性,并提供高度的数据独立性。Database Management SystemDBMS的主要功能q数据库的定义功能DBMS提供数据定义语言(DDL)来定义数据库的三级结构,包括外模式、概念模内模式及其相互之间的映象,定义数据的完整性约束、保密限制等约束。因此,在DBMS中应包括DDL的编译程序。q数据库的操纵功能DBMS提供数据操纵语言(DML)实现对数据的操作。基本的数据作有四种:检索(查询)、插入、删除和修改,后
40、三种又称为更新操作。DML有两类:一类是嵌入在COBOL,C等宿主语言中使用,称为宿主型(或嵌入型)DML;另一类是可以独立地交互使用的DML,称为自含型(或交互型)DML。因而在DBMS中应包括DML的编译程序或解释程序。Database Management SystemDBMS的主要功能q数据库的保护功能DBMS对数据库的保护主要通过四方面实现,因而在DBMS中应该包括这四个子系统。(1)数据库的并发控制。数据库技术的一个优点是数据共享,但多个用户同时对同一个数据的操作可能会破坏数据库中的数据,或者用户读了不正确的数据。并发控制子系统能防止上述情况发生,正确处理好多用户、多任务环境下的并
41、发操作。(2)数据库的恢复。在数据库被破坏或数据不正确时,系统有能力把数据库恢复到最近某个正确的状态。(3)数据完整性控制。保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。(4)数据安全性控制。防止未经授权的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。Database Management SystemDBMS的主要功能q数据库的维护功能这一部分包括数据库的初始数据载入、转换、转储、数据库的改组以及性能监视分析等功能。这些功能分别由各个实用程序完成。q数据字典(datadictionary,DD)DD管理首数据库三级结构的定义。对数据库的操作都要通过D
42、D才能进行。现在有的大型系统中,把DD单独抽出来自成一个系统,成为一个软件工具,使之成为一个比DBMS更高级的用户与数据库之间的接口。上面是一般的DBMS所具备的功能,通常在大、中型计算机上实现的DBMS功能较强、较全,在微型计算机上实现的DBMS功能较弱。应该注意,应用程序并不属于DBMS范围。应用程序是用宿主语言和DML编写的。程序中DML语句由DBMS执行,而其余部分仍由主语言编译程序完成。Database Management SystemDBMS系统组成模块DBA用户特权命令DDL语句预编译查询编译交互式查询宿主语言编译编译后的(套装的)事务DML编译DML语句运行数据库处理器并发控
43、制/备份/恢复子系统存储的数据DDL编译系统目录/数据字典存储的数据库ADCBEDatabase Management SystemDBMS系统组成模块DBMS的组成模块如图所示。数据库和DBMS字典通常存储在磁盘上,对磁盘的操作由操作系统(OperatingSystem)控制。DBMS的高级存储数据管理员(StoredDataManager)控制对磁盘上数据库信息的存取,而不问其是数据库数据还是字典数据。图中虚线和标记为A、B、C、D、E的存取是在存储数据管理员控制之下进行的。存储数据管理员使用基本的OS功能完成磁盘和计算机主存之间的低层数据转换。但是主存储器内缓冲区数据转换工作也是由该数据
44、管理员控制完成的。一旦数据被存入主存储器缓冲区,DBMS的其它模块就可以使用这些数据。DDL编译器处理DDL中说明的模式定义,并且将这些定义存入DBMS的字典中。字典信息包括:文件的名字,每个文件的存储细节,模式之间的映射信息,语义限制说明。DBMS软件通过查询字典获取这些信息。运行数据库处理器(Run-TimeProcessor)处理运行时数据库的存取。它接受检索和更新操作,然后在数据库上运行。对磁盘的存取由存储数据管理员完成。查询编译器(QueryCompiler)处理以交互式方式输入的高级查询。查询编译器对查询做语法分析,然后生成对运行数据库处理器的调用,完成对数据库的检索。预编译器(P
45、recompiler)抽取用宿主语言编写的程序中的DML命令。将这些命令送给DML编译器,由DML编译器生成对数据存取的目标代码。程序的其余部分送给主语言编译器。DML编译生成的存取目标代码与程序的其它部分连接起来形成一个套装的事务,其执行代码包括对运行数据库处理器的调用。Database Management SystemDBMS对数据的存取q当一个应用程序通过DBMS读取一组数据记录时,在DBMS内部发生了一系列动作。其过程步骤举例如下:用户A(或应用程序A)用某种特定的数据操作语言向DBMS发出一个存取请求命令,命令给出想要读的记录。DBMS接受这个请求并解释它。DBMS依次检查外模式、
46、外/概念映象,概念模式、概念/内映象以及存储结构定义等。DBMS对存储数据库执行必要的存取操作。DBMS按外模式导出用户程序需要的记录形式,然后把数据从系统缓冲区送到用户A的工作区。Database Management System数据库系统实用软件除了DBMS的软件模块外,大多数DBMS都还有数据库实用软件,用来帮助DBA运行数据库系统。典型的实用软件如:q装载装载(Loading)软件用于将已存在的数据文件(例如正文文件、顺序文件)的数据直接装入数据库中。装载软件的通常方法是将当前的数据文件格式和要装入的数据库文件格式都告诉装载软件,由装载软件自动地转换数据,然后存人数据库中。随着数据库
47、的应用越来越广泛,在一个组织中,常常还需要将一个数据库中的数据转换成另一个数据库中的数据。对此,数据库开发商也提供了相应的装载软件产品。只要给出源数据库的存储模式和目的数据库的存储模式,该产品就可以生成合适的装载程序,完成不同数据库之间的数据装载。q备份备份(Backup)软件是为运行的数据库拷贝一个完全相同的备份。通常的方法是把整个数据库卸到磁带上去。一旦数据库系统遭受损坏,就可以利用备份将数据库恢复到运行状态。q文件重组织文件重组织(FileReorganization)软件是为了加强数据的执行效果,将已有的数据库文件重新组织成另一个不同的文件。q性能监视性能监视(PerformanceM
48、onitoring)软件监视数据库的运行状况,并且对DBA提供相应的统计数据。DBA使用这些统计数据判定是否要对数据库重新组织,以提高系统的执行效率。Database Management System数据库系统实用软件q其它还可能有的实用软件包括排序文件、数据压缩、用户存取监视等其它功能软件。另一个有用的实用软件是扩展的数据字典系统。在这个字典系统中,除了存储模式和语义限制的信息之外,数据字典还可以存储其它信息,如设计决策、使用标准、应用程序描述以及用户信息等。这些信息可以直接地由用户或DBA存取。Database Management System通信功能qDBMS也要有与通信软件的接口,
49、其功能是允许用户用计算机终端、工作站、本地的微型机、小型机对远程数据库系统存取。所有这些终端、工作站、微机等都是通过数据通信硬件(如电话线、网络、无线通信设备等)与数据库相连。很多商用DBMS都有与DBMS工作的通信软件包。q另外,分布式DBMS可管理物理上分布的多个机器上的数据。此时为连接这些机器,通信网是必需的。常见的通信网是局域网(LAN),但也可以是其它类型的网。客户服务器结构是指应用程序和数据库存取运行在不同的机器上。应用程序运行的机器站点被称为客户,而数据存取和存储运行的一台机器被称为服务器。开发商可以提供各种不同的客户服务器组合。Database Management Syste
50、m客户/服务器体系结构q数据库系统的全部目的是支持开发和执行数据库应用程序。从较高层来看,数据库系统可以看作是由两个非常简单的部分组成:一个服务器(也称为后端)和一组客户(也称为前端)。说明如下:服务器就是指DBMS本身,它支持所有DBMS的基本功能数据定义,数据操纵,数据安全性,等等,尤其是提供了对内模式、概念模式和外模式的支持。在这样的上下文中,“服务器”一词就是DBMS的另一个称谓。客户是指在DBMS上运行的各种应用程序用户编写的应用程序各嵌入的程序,即DBMS厂商或某第三方厂商所提供的应用程序。对服务器来说,用户编写的应用程序和嵌入的程序之间没有什么不同它们都使用相同的服务器接口,即外