数据处理是计算机应用的主要领域。任何计算机应用系统都离不开数据处理。计算机应用系统的数据处理大都需要借助数据库来实现数据存储、数据访问、数据分析和数据管理。通常将基于数据库进行数据处理的计算机应用系统称为数据库应用系统。在进行数据库应用系统开发时,开发者应清楚本系统属于哪类数据库应用系统,本系统应采用哪类数据库系统架构方案,数据库应用系统开发有哪些阶段。
在当今信息化时代中,各个行业都采用了数据库应用系统实现业务信息化处理。例如,在企业信息化应用中,无论是面向内部业务管理的ERP(企业资源计划)信息系统,还是面向外部客户服务的CRM(客户关系管理)信息系统,它们都是以数据库为基础的信息系统。数据库应用系统主要有如下几种类型。
业务处理系统(Transaction Process System,TPS)是一类利用数据库应用程序对机构日常业务活动(如订购、销售、支付、出货、核算等)信息进行记录、计算、检索、汇总、统计等数据处理,为机构操作层面提供业务信息化处理服务,并提高业务处理效率的信息系统。典型的业务处理系统有银行柜台系统、股票交易系统、商场POS(终端销售)系统等。
业务处理系统使用数据库来组织、存储和管理业务数据,其处理方式分为联机业务处理和业务延迟批处理。在联机业务处理中,业务功能需在线执行,业务数据在系统中实时获得,即以在线联机方式进行业务处理,如银行ATM(自动柜员机)系统。在业务延迟批处理中,业务功能可以支持客户机脱机处理,然后按特定时间在服务器集中批量处理,如银行账目交换批处理业务,它通常是在夜间以批处理方式完成的。
管理信息系统(Management Information System,MIS)是一类以机构职能管理为目标,利用计算机软硬件、网络通信、数据库等IT技术,实现机构职能整体信息化管理,以达到规范化管理和提高机构工作效率的目的,并支持机构职能服务的信息系统。典型的管理信息系统有人力资源管理系统、企业CRM系统、企业财务管理系统等。
机构的管理信息系统通常采用统一规划的数据库来组织、存储和管理机构各个部门数据,实现部门之间信息的共享和交换,并实现机构的人员管理、物资管理、资金管理、生产管理、计划管理、销售管理等部门协同工作。
决策支持系统(Decision Support System,DSS)是以管理科学、运筹学、控制论和行为科学为基础,以计算机技术、数据库技术、人工智能技术为手段,解决特定领域决策管理问题,为管理者提供辅助决策服务与方案的信息系统。该系统能够为管理者提供所需的数据分析、预测信息和决策方案,帮助管理者明确决策目标和识别问题,建立预测或决策模型,提供多种决策方案,并且对各种方案进行评价和优选,通过人机交互功能进行分析、比较和判断,为正确的决策提供必要的支持,从而达到支持决策的目的。典型的决策支持系统有防汛抗旱决策支持系统、疫情精准防控决策支持系统、电力市场营销决策支持系统等。
在不同应用需求场景中,数据库应用系统架构设计与实现方案是不同的。典型的数据库应用系统架构主要有集中式架构(客户/服务器架构、浏览器/服务器架构)和分布式架构。
在一些多用户共享访问数据库的应用系统中,可以将应用系统各构件部署在客户机和服务器中,从而实现各自分担任务的并行处理。在这类数据库应用系统中,运行DBMS软件及数据库的服务器被称为数据库服务器,运行计算机应用程序的计算机被称为客户机。客户端应用程序将数据访问请求通过网络协议传送到数据库服务器;数据库服务器接收请求,对数据库进行数据操作处理,并将数据处理结果通过网络应答消息返回给客户端应用程序。DBMS软件集中部署在一个服务器中,支持多个不同客户端应用程序共享访问数据,其系统架构如图1-7所示。
在客户/服务器(C/S)架构的具体应用中,还可细分为2层C/S架构和3层客户/服务器架构。在2层客户/服务器架构的数据库应用系统中,应用程序部署在客户机上,DBMS软件及数据库部署在数据库服务器上,应用程序与数据库服务器通过网络通信实现数据处理功能。在3层客户/服务器架构的数据库应用系统中,应用程序GUI(图形用户界面)组件部署在客户机上,应用程序业务逻辑组件部署在应用服务器上,DBMS软件及数据库部署在数据库服务器上。各个层次组件均通过网络通信实现请求/响应方式的功能处理。当数据库应用系统的用户规模较小时,一般采用2层客户/服务器架构,这样可以实现低成本的系统开发。当数据库应用系统的用户规模较大时,建议采用3层客户/服务器架构,这样可以满足高负载、高性能处理要求。
图1-7 客户/服务器架构
a)2层C/S架构 b)3层C/S架构
客户/服务器架构的特点:数据库应用系统的数据集中管理,应用分布处理。客户端应用程序通过网络协议访问数据库服务器,同时也实现数据库共享访问。
客户/服务器架构的优缺点:客户/服务器架构的数据库应用系统通过各层计算机分担处理任务,可提高整个系统的处理能力,但客户/服务器架构的数据库应用程序更新在运维中较为麻烦,通常只适合机构内部的业务应用数据管理。
面向公众服务的数据库应用系统大都采用基于浏览器/服务器架构。在这类数据库应用系统中,应用系统页面部署在Web服务器上,应用程序业务逻辑组件部署在应用服务器上,DBMS软件及数据库集中部署在数据库服务器上。客户机不需要安装任何应用程序组件,在浏览器输入应用系统首页网址就可以访问数据库应用系统登录页面。用户在Web页面表单提交的数据操作请求,通过应用服务器程序将SQL命令发送给数据库服务器处理,数据库服务器执行SQL命令,对数据库进行数据操作处理,并将数据操作结果返回给应用程序,其系统架构如图1-8所示。
图1-8 浏览器/服务器架构
浏览器/服务器架构的特点:数据库应用系统各组件均部署在服务器上,数据集中管理,应用分布处理。用户在客户机中只需要使用浏览器就可以通过互联网访问数据库应用系统。
浏览器/服务器架构的优缺点:浏览器/服务器架构的数据库应用系统通过各层服务器分担处理任务,可支持系统处理能力水平扩展;用户在任何地点使用浏览器均可方便地访问数据库应用系统;系统功能维护与升级均在服务器端完成,客户端不需要维护,可以非常方便地实现系统更新维护;不过浏览器/服务器架构的数据库应用系统在互联网环境中需要考虑更多安全技术手段,以确保应用系统的数据安全。
以上几种架构的数据库应用系统均是将数据集中存储在单个数据库服务器进行数据管理的,这种集中式数据库应用系统仅适合用户规模和数据存储规模均不大的应用场景。在大规模、跨地区的信息系统中,如大型跨国银行系统,集中式数据库应用系统难以满足业务处理要求,这些信息系统的数据库应用系统必须采用分布式架构。在分布式架构中,数据库系统由分布于多个服务器的数据库节点组成。分布式DBMS提供一致性存取手段来管理多个服务器上的数据库,使这些分布的数据库在逻辑上可被视为一个完整的数据库,而物理上它们是分散在各个服务器上的数据库。分布式架构如图1-9所示。
图1-9 分布式架构
分布式架构的特点:分布式架构既实现数据分布,又实现处理分布。在分布式架构中,各服务器的数据库节点在逻辑上是一个整体,但物理分布在计算机网络的不同服务器上。每个数据库服务器通过网络,既支持多个本地客户机访问,也支持远程客户机访问。在系统网络中的每一个数据库服务器都可以独立地存取与处理数据,并执行全局应用。
分布式架构的优缺点:满足跨地区的大型机构及企业等组织对数据库应用的需求,其处理性能强,但数据库的分布处理与维护需要解决较多的安全性、复杂性相关技术难题。
数据库应用系统是一类典型的计算机应用系统,按照软件工程思想,其生命周期可分为系统需求分析、系统设计、系统实现、系统测试、系统运行与维护等阶段。数据库应用系统在生命周期各阶段的任务活动如下。
在数据库应用系统需求分析阶段,系统分析人员与用户交流,按照需求工程方法获取业务需求、系统功能需求、系统非功能需求、数据需求等信息。
(1)需求信息收集
需求信息收集一般是以机构职能和业务流程为主干线,从高层至低层逐步展开,从业务功能需求和用户使用要求中收集系统数据的需求信息。
(2)需求信息分析
对收集到的需求信息应做分析整理工作。采用面向对象分析方法或结构化分析方法,建模业务需求,描述业务流程及业务中数据联系的形式,并进一步建模系统功能需求与数据需求。
(3)系统需求规格说明书
系统需求分析阶段的主要成果是系统需求分析报告文档,也称为系统需求规格说明书。它作为系统开发的重要技术文档支持系统后续开发。针对数据库应用系统,需求分析报告文档除了给出系统功能需求、系统非功能需求(如性能需求、安全需求)外,还需要给出系统的数据需求,并且定义详尽的数据字典。
在数据库应用系统设计阶段,系统设计人员依据系统需求文档,开展系统总体设计和详细设计。其设计内容主要包括系统架构设计、软件功能结构设计、功能模块逻辑设计、系统数据库设计、系统接口设计等。
其中,系统数据库设计又分为数据库架构、概念数据模型、逻辑数据模型、物理数据模型设计。数据架构师在进行系统数据库设计时,通常会采用一些专业的数据库建模工具来完成数据库的各类模型设计。
概念数据模型是一种面向用户现实世界的数据模型,主要用来描述现实世界中各事物对象之间的数据关系。它使数据库设计人员在设计的初始阶段,可以摆脱计算机系统及DBMS的具体技术问题约束,集中精力进行系统数据建模,描述数据及数据之间的联系。在此之后,概念数据模型还必须转换成逻辑数据模型,考虑采用特定数据模型的数据库设计方案。
逻辑数据模型的主要目标是把概念模型转换为特定DBMS所支持的数据模型,如关系数据模型或对象数据模型等。逻辑数据模型设计的输入要素包括:概念模式、数据实体、约束条件、数据模型类型等。逻辑数据模型设计的输出信息包括:DBMS可处理的模式和子模式,即数据库逻辑结构、数据库表逻辑结构等。同样,逻辑数据模型需进一步转换为物理数据模型,才能在具体DBMS中实现。
物理数据模型设计是指针对逻辑数据模型给出一个最适合DBMS应用场景的物理结构设计方案。物理数据模型设计的输入要素包括:数据库逻辑结构、数据库表逻辑结构、硬件特性、操作系统和DBMS的约束、运行要求等。物理数据模型设计的输出信息主要包括:物理数据库结构、数据存储方式、存储空间位置分配及数据存取访问方法等。
在数据库应用系统实现阶段,按照系统设计方案实现数据库应用系统工程,分别进行应用程序编写、DBMS安装部署、数据库及其数据对象创建实现等方面的工作。其中数据库的实现工作如下。
(1)创建数据库对象
根据物理数据模型设计,采用DBMS提供的数据定义语言编写出数据库创建SQL程序。在DBMS服务器中,执行数据库创建SQL程序。当该SQL程序成功执行后,即可建立实际的数据库对象。
(2)准备测试数据
在数据库对象建立后,开发人员需要准备数据库测试数据,供数据库测试使用。在数据库应用系统进入测试之前,还需做好以下几项工作:设计数据库重新组织的可行方案;制定系统故障恢复措施与系统安全处理规范。
在数据库应用系统测试阶段,按照系统需求规格要求,设计测试用例。使用测试用例对系统进行功能测试、性能测试、集成测试、数据库测试等操作,找出系统的缺陷。针对系统测试中发现的问题,通过调试手段找出错误原因和位置,然后进行改正,以解决系统设计与实现的缺陷。
针对数据库的测试,则是依据系统数据需求对软件系统的数据库结构、数据库表及其之间的数据约束关系进行测试,同时也完成数据库表的数据插入、数据更新、数据删除、数据查询测试,数据库表多用户并发访问测试,数据库触发器测试,数据库存储过程测试,以保证数据库系统的数据完整性与一致性。
数据库应用系统通过测试后,便可投入业务运行。系统运行使用过程中,可能存在用户操作异常、系统故障等问题,也可能因业务增长、业务流程变化等,原有系统不再适应用户要求。在这些情况下,DBA都必须对系统进行运行维护,其主要工作如下。
(1)维护数据库系统安全性与完整性
按照制定的安全规范和故障恢复措施,当系统出现安全问题时,及时调整用户授权和更改密码。及时发现系统运行时出现的错误信息,迅速修复数据库缺陷,确保系统正常运行。定期进行数据库备份处理,一旦发生故障,立即使用数据库的备份数据予以恢复。
(2)监控与优化数据库系统运行性能
使用DBMS提供的性能监测与分析工具,实时监控数据库系统的运行性能状况。当数据库的存储空间或响应时间等性能下降时,分析其原因,并及时采取措施优化数据库系统性能。例如,采用调整数据库系统配置参数、整理磁盘碎片、调整存储结构或重建数据库索引等方法,使数据库系统保持高效率的正常运作。
(3)扩展数据库系统处理能力
当业务数据量增长到一定程度后,原有数据库系统的处理能力就难以保证业务要求。因此,适时地对原有数据库系统的计算能力、存储容量、网络带宽进行扩展是十分必要的。
课堂讨论:本节重点与难点知识问题
1)什么是数据库应用系统?数据库应用系统主要有哪几种类型?
2)数据库应用系统有哪些架构模式?各适合什么应用场景?
3)数据库应用系统的生命周期有哪几个阶段?每个阶段主要有什么活动?
4)在数据库应用系统设计阶段,系统的数据库设计包括哪些内容?
5)在数据库应用系统实现阶段,为什么要准备测试数据?
6)在数据库应用系统投入运行后,为什么还需要DBA维护数据库系统?