数据库的运行与维护
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库的运行与维护
1.数据库的运行
要使数据库系统投入并保持正常运行,需要许多人做许多工作。这里主要讨论作为计算机系统的一个组成部分的DBMS及其数据库与其他系统部件的接口关系、系统的工作原理。
1.1运行环境的构成
数据库的运行除了DBMS与数据库外,还需要各种系统部件协同工作。首先必须有各种相应的应用程序,其次各应用程序与DBMS 都需要在操作系统(OS)支持下工作。在有远程通信的情况下,则需要数据通信管理部件的支持。图1-1描绘了一个数据库运行环境的典型部件。其中,DBCS(数据库控制系统)是与各用户程序
APP接
i
口的模块;DBSS(数据库存储系统)操作存储数据库并与OS或DBMS 自己的标准存取方法(AM)接口;各应用程序和DBMS部件都在OS的管理程序(supervisor)的管理下工作。对于一个给定的DBMS,不一定就有名为“DBCS”或“DBSS”的系统,在这里它们是一般性术语,但绝大多数DBMS都有相当的功能部件。在网络或分布式环境下,还需要数据通信管理系统(DCMS)的支持。
图1-1 数据库系统运行环境
通常,系统初启时,应用程序与DBMS都不活动,一旦事务达到系统,OS管理程序就调度用户事务所需要的应用程序运行。当应用程序要求存取数据库时,向DBMS发出请求。DBCS接受应用程序请求,并考察外部模式与概念模式,以确定需要什么概念记录来满足请求,然后调用DBSS存取存数模式,转换概念记录成存储记录,并经OS传递请求给相应的AM,再由AM实现物理数据库的存取和数据I/O。
1.2运行环境的类型
数据库运行环境的组成与用户环境的类型紧密相关。可以用两种不同的用户环境:一种是数据库为一个或少数单个用户的专用而建立;另一种是针对整个组织建立的集成数据库。在前一种环境下,常
常只有一个用户存取数据库,且在给定时刻只有一个用户需求必须满足,因而一个程序活动就成完成(当然,这并不意味着系统只能服务于一种应用需求)。在后一种环境下,任何时刻都可能有多个用户同时对数据库施加各种类型的操作,因而有许多程序活动并发执行。这种情况还可以分为所有应用集中在一起而形成的集中式的系统和应用分散在不同的地理位置的分散式或分布式系统。它们对数据库运行可施加不同的影响,因而要求OS、DBMS及DCMS等的不同支持。
当前数据库应用主要是联机事务处理(OLTP)和联机分析处理(OLAP),顾故分别有作业型(operational)和决策型(executive)两种运行环境。作业型环境支持预先程序设计和重复执行的事务处理、频繁的数据存取、当前的日常数据、联机的数据库维护、宿主语言与简单方便的用户接口。决策型环境主要是面向计划、决策、分析的,它支持多关键字及较复杂的布尔查询,提供大量历史数据的综合、推导与提炼。不同环境的设计要求不一样,它们所要求的数据库管理软件支持也不尽相同。
1.3处理方式
数据库系统运行时可以以多种处理方式支持用户。最简单的一种是批处理,用户一次性地提交任务的输入数据和程序以及说明的控制信息,应用程序执行时依次与DBMS打交道,并对数据库进行存取,直至整个任务完成后输出其结果。
较普遍使用的是联机交互式处理。在这种方式下,用户随时联机地输入请求,在请求的处理期间,用户一直保持与数据库系统联系,
不断进行“会话”以交换信息。联机处理又可进一步分为单任务处理和多任务处理。如上所述,单任务处理在同一时刻只有一个程序存取数据库,这种方式一般只适用于个人数据库系统。单任务处理方式不能适应多个用户并行存取数据库的要求,虽然它也可以服务于多个用户,但用户的请求只能一个一个地执行,平均用户等待时间长。多任务处理允许同时有多个应用程序是活跃的,但这并不意味着一定支持多个应用并发存取数据库。现代DBMS一般都属于这种处理方式的。
多道联机处理数据库系统结构如图1-2所示。在这种系统中,各事务往往由一个“事务处理监控器”(transaction processing monitor,TPM)管理,它本身在操作系统控制下运行。当用户消息到达系统时,它根据消息标示符查找每一个用户消息与所使用的程序的对照表,从而在程序库(PB)中找出相应的应用程序,并为其建立一个事务来处理该消息。
图1-2 数据库的多道联机方式
现代数据库一般都是以多道联机处理方式来服务用户的。用户可以以两种方式来使用数据库,一种是编程方式,另一种是交互方式,下面分别介绍这两种方式的实现过程。
1.3.1编程使用方式
对于支持编程使用方式的数据库系统,用户可以用高级程序设计语言,如C、FORTRAN、Cobal、Pascal等来编写程序,在这种程序中嵌入数据库操作语言如SQL的语句(故又称嵌入式使用),从而使应用程序可直接存取数据库。这种方式的实现如图1-3所示,其中DBRM(database request module)为相应SQL语句的语法结构块,“应用计划”就是实现DBRM中SQL语句的数据库存取操作序列。
图1-3 数据库的使用编程方式
与编程式使用相对的是交互使用方式。典型的交互使用方式,用户即席打入查询(即数据库操作命令),如图1-4所示,查询经由DBMS 的重要部件“查询处理器”进行语法分析,产生一个该查询的语法树。语法树经编译处理(包括预处理、逻辑计划生成和优化及物理计划生成),产生物理查询计划,即对数据库的实际操作序列。再由执行引擎执行查询计划的每一步。
图1-4 数据库的交互使用方式
1.4用户请求的实现过程
用户请求实现模型是一个层次结构,它包含了三层软件、四层接口和物理数据库。图1.5给出了一个通用的实现模型。
用户处理接口
逻辑记录接口
存储记录接口
物理记录接口
图1-5 实现模型层次结构
三层软件是:第一次是应用软件层,它直接支持最终用户,使他们能够对数据的请求来存取数据库。它将用户的数据请求转换成逻辑存取命令而嵌入在主语言程序或专门的查询中。第二层主要是数据库管理软件,还可能作为集成数据管理软件的部件而包括一些应用支撑软件,它们将逻辑存取命令转换成存储数据的存取命令。第三层是存取方法,它一般是操作系统的一部分,也包括DBMS的一些专门扩充和接口,它将存储记录命令转换成物理记录(块)操作,并执行物理记录接口上的数据传输。
第四层接口是:用户处理接口、逻辑记录接口、存储记录接口和物理记录接口。用户处理接口支持最终用户,使之能以不同的处理方式来处理数据,如此处理、联机处理和报告生成等。用户处理接口可