数据库应用系统技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 认识数据库应用系统

1.1.1 系统的台前幕后

锦衣华服上“淘宝”,一饱口福找“点评”,星行夜归叫“滴滴”,下榻留宾有“携程”……数据库应用系统扶持起一个个创新企业,如影随形地伴我们衣食住行;手机银行、电子政府、数字化医院、智能工厂……数据库应用系统更新了传统业务模式,支撑起各领域的现代化。

1.系统的呈现形式

我们在工作和生活中会遇到形形色色的数据库应用系统,它们的面貌和功能各不相同,开发技术也五花八门。但对用户来说,主要有以下三种呈现形式。

① 客户端程序。在客户/服务器(Client/Server,C/S)结构的分布式软件系统中,用户需要使用专门的客户端程序,并通过它访问远程服务器。它可能以软件形式呈现,如专门的业务系统、微信客户端、银行ATM机上的存取款软件等,还可能以其他交互形式呈现。例如,智能音箱采用语言交互,不停车收费系统自动识别车牌号作为输入,生产线自动采集设备状态信息并进行自动控制等。图1.1是几个客户端程序示例。

② 网站。在浏览器/服务器(Browser/Server,B/S)结构的分布式软件系统中,用户无须安装专门软件,使用浏览器通过HTTP等网络协议可以直接访问Web服务器上运行着的网站,从而获取信息服务。例如,搜索引擎、电子商务、电子政务、在线学习等网站(见图1.2)。

img

图1.1 客户端程序(左为专门业务系统、中为ATM机、右为智能音箱)

img

图1.2 网站(左为搜索引擎、中为电子商务网站、右为电子政务网站)

③ 移动应用。移动应用(APP,Application的缩写)是指基于智能手机、平板电脑、笔记本电脑等移动终端的应用软件。随着移动设备的智能化程度提高,APP已不仅仅是Web应用的补充,而且正逐渐成为信息系统不可缺少的一种应用方式。图1.3显示了几个移动端APP的页面效果。

img

图1.3 APP(左为微信、中为滴滴出行、右为慕课学习)

2.系统的概念和原理

我们面对的各种系统虽然呈现形式和功能可能不同,但它们的基本原理是一致的。下面我们了解一下它们幕后涉及的一些基本概念和原理。

(1)信息和数据

信息是对客观世界中各种事物的运动状态和变化的反映,是客观事物之间相互联系和相互作用的表征。信息是一个相对抽象的概念,它的载体是数据。

数据是反映客观事物的性质、属性及其相互关系的一种表示形式,它可以是文本、数字,甚至图像、声音等各种可以识别的符号。数据可以按使用目的组织成某种数据结构。数据本身并没有价值,当它与某种应用场景结合或经过处理并为人所用时,便成为信息,从而蕴含了价值。

在一些描述中,数据和信息两个概念常被赋予相同的含义:从存储和处理的角度看,它是数据;从管理和利用的角度看,它是信息。例如,一个电影信息系统需要处理影院、电影和观众等信息,这些信息在计算机中以各种数据形式存储,如电影名用文本字符串、票价用数值、首映日期用时间、海报用图片等。

(2)数据库和数据库管理系统

数据库(DataBase,DB)是一种提供集中管理和利用方式的数据集合。数据库管理系统(DataBase Management System,DBMS)是一种管理数据库的系统软件,一般由商业软件公司或开源社区开发。

相对于简单的文件数据管理方式,数据库具有很多优势:数据冗余少;保证数据的完整性和安全性;支持多用户共享使用;应用程序与数据独立,便于程序的开发和维护。

随着信息来源和应用的多样化,针对结构化、半结构化或非结构化的数据集合,发展了相应的数据库技术。各种业务处理信息可抽象为结构化数据,而关系数据库是支持结构化数据管理的经典技术。关系数据库有坚实的数学理论基础,有许多专门的数据库管理软件(如MySQL、Oracle、SQL Server等)可提供完善的管理功能。由于互联网应用产生了大规模的半结构或非结构化数据,因此非关系型数据库应运而生。非关系型数据库没有统一的架构,但它们普遍具有高性能、弹性扩展、灵活性更强的特点,各种数据库管理系统(如MongoDB、Redis、Neo4J、Cassandra等)适合不同的应用场景。

(3)数据库应用系统

从控制论的观点来看,系统是一些部件为了某种目标而有机结合的一个整体。数据库应用系统是以数据库为基础,以信息管理和利用为目标的人机系统,一般包含信息采集、存储、传输、处理、输出、反馈和管理等功能。

从技术角度看,一个数据库应用系统主要包括以下部分。

① 数据库:集中存储和管理系统中的信息。

② 应用软件:面向用户信息服务需求,采用程序设计语言和各种支持技术所开发的软件,是用户使用系统的交互环境,根据环境和功能需要有多种呈现方式。

③ 支持环境:包括硬件和软件。硬件包括计算机、移动终端、网络、存储、输入/输出及其他各种硬件设备,它们构成了系统的基础设施。软件包括操作系统、数据库管理系统、软件开发工具与环境等,它们提供信息系统开发和运行的支持环境。

④ 文档:在系统开发过程中形成的技术文档、系统使用说明、系统运维的规章制度等,是系统使用和维护的依据。

数据库应用系统大多是人机系统,因此人也是系统的重要组成部分。

① 用户:使用系统完成业务工作的人员。系统为不同类别的用户提供相应的功能,各类用户在自己的权限范围内操作。

② 系统管理员:保障系统正常运行和数据安全的专职或兼职管理人员,如系统管理员、数据库管理员等。

③ 系统开发者:参与系统开发的人员,既包括专业开发人员,如产品经理、需求分析和设计人员、系统架构师、程序员等,也包括参与开发的项目领导、管理和业务人员代表。

如图1.4所示为电影分享系统的系统架构。在信息中心设有数据库服务器(存储和管理数据)、Web服务器(发布Web应用程序);观众在能够接入Internet的计算机或移动设备上访问网站或使用APP,查询电影信息和观看电影;管理员维护电影信息和汇总观影情况。

img

图1.4 电影分享系统的系统架构

1.1.2 系统的应用类型

数据库应用系统已经成为组织机构开展各类业务活动的基础,直接为其战略目标服务。从层次化管理的角度看,一个组织一般包含三个管理层次:业务层、管理层和决策层。各层次人员根据自身职责不同需要不同的信息服务,所使用的系统类型也不同(见表1.1)。下面结合各类人员的信息服务需求从系统开发的角度介绍数据库应用系统的类型。

表1.1 不同管理层次的信息系统需求

img

1.在线事务处理(OnLine Transaction Processing,OLTP)系统

业务层人员主要承担日常的业务处理工作,工作流程明确,单调重复。在线事务处理系统可支持业务处理,替代烦琐的手工重复劳动,提高业务处理效率和准确性。例如,在线学习系统提供学生选课、教师登记成绩、教务员管理课程等业务处理功能。我们日常接触的网站购物、超市收银、火车订票等也都是在线事务处理系统。

(1)在线事务处理系统的结构

在线事务处理系统结构简单,一般由数据库和业务处理程序构成(见图1.5)。

img

图1.5 在线事务处理系统基本结构

① 数据库:集中存储和管理面向某类业务的数据。例如,电影分享系统需要的各种信息,如电影类型、电影、导演等都集中存放在一个数据库中。

② 业务处理程序:是用程序设计语言编写的应用软件,实现对数据库的读写访问和数据处理功能,支持用户的业务活动。例如,电影分享系统支持用户查询和观影、管理员维护电影信息等。

(2)在线事务处理系统的特点

在线事务处理系统的信息结构化强,处理流程明确,一般分为5步:数据输入、数据查询、数据处理、数据更新、结果输出或报表生成。

在线事务处理系统一般用于专门性业务,帮助用户实现日常业务活动的自动化。由于业务运行对系统的依赖度很高,因此要求系统具有较高的可靠性、一定的实时性,并保证数据完整性。在线事务处理系统一旦出现故障,就有可能导致业务停滞。

2.在线分析处理(OnLine Analytical Processing,OLAP)系统

管理层人员负责计划、管理和调控组织的业务活动,从而实现组织的短期目标。在线分析处理系统通过对历史数据进行分析来辅助管理和决策,为管理层决策提供信息依据。例如,在线学习系统中教务员汇总分析学生学习进展和成绩,用户进行飞机票比价,超市对客户的消费模式进行分析,银行对客户使用信用卡风险进行分析与预测等,都属于在线分析处理系统的范畴。

(1)在线分析处理系统的结构

在线分析处理系统一般由数据源、数据仓库、OLAP服务器和前端工具构成(见图1.6)。

img

图1.6 在线分析处理系统基本结构

① 数据源。数据仓库的数据来源,既可以是多个事务型数据库,也可以是各类数据文件。

② 数据仓库。数据仓库是在线分析处理系统的核心。与支持频繁读写的事务型数据库不同,它存储海量的、只读的、用于分析的数据集合。这些数据是根据主题分析需要对大量的历史数据进行抽取、清理并转换后获得的。按照数据范围不同,数据仓库可以分为企业级和部门级,后者也称为数据集市。

与数据库相比,数据仓库中的数据具有以下主要特性。

➢ 面向主题。事务型数据库的数据组织面向事务处理任务,各个业务系统之间可能各自分离;而数据仓库中的数据是按照一定的主题域进行组织的。主题是指用户使用数据仓库进行决策时所关心的重点,一个主题通常与多个事务型信息系统相关。例如,保险公司分析的主题有保险项目、客户、索赔等;零售超市分析的主题有商品、顾客、厂家、促销活动等。

➢ 数据集成。事务型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的;而数据仓库中的数据是在对原有分散的数据库数据进行抽取、清理的基础上经过系统加工、汇总和整理后得到的,必须消除源数据中的不一致,以保证数据仓库内的信息是关于整个组织的、一致的全局信息。

➢ 数据稳定。事务型数据库中的数据通常随着业务活动实时更新;而一旦某个数据进入数据仓库以后,一般不再改变并将长期保留。针对数据仓库的操作主要是数据查询,只需要定期加载和更新。

➢ 反映历史变化。事务型数据库主要关心当前某个时间段内的数据;而数据仓库中的数据通常是从过去某一时刻到目前的海量历史数据,反映某个主题下的业务发展历程。

③ OLAP服务器。OLAP服务器对某类分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度和多层次的分析,从而发现趋势。

④ 前端工具。前端工具产生分析结果,主要包括各种报表、查询、数据分析、数据挖掘工具,以及基于数据仓库的应用开发工具。其中,数据分析工具主要针对OLAP服务器,报表和数据挖掘工具直接针对数据仓库。

(2)在线分析处理系统的特点

在线分析处理系统通过多维的方式对海量历史数据进行查询和复杂的分析,并提供直观易懂的分析结果。它主要应用在决策支持方面,对时间的要求不太严格,对系统可靠性、数据完整性等要求不高。

3.知识处理系统(Knowledge Processing System,KPS)

决策层人员负责为组织制定中长期发展规划和战略,或者根据专业知识对领域问题进行诊断和方案推荐。该层要求信息系统根据历史业务数据或专家知识分析得到的隐藏知识来进行趋势预测或推荐处理方案,从而辅助决策。

知识通常被定义为领域规律或专门技能,是以经验为基础累计的智力资本。以知识发现和知识应用为目标的系统统称为知识处理系统,是大数据时代的利器。它关注探索性的数据分析,从大量数据中获取隐含的、未知的,但又具有潜在应用价值的信息关系或模式。例如,在线学习系统根据大数据对生源和学习效果进行分析,对延迟毕业学生学习状态进行分析,以便了解关键因素,确定改进教学的方法;电商平台通过推荐系统分析用户行为和销售等大数据,以便自动进行商品推荐;农业专家系统根据专业知识和历史数据对病虫害进行诊断和防治方案推荐等。

(1)知识处理系统的结构

知识处理系统可能有多种不同结构,但一般包含以下三个阶段的工作:数据准备、数据挖掘、结果表达和解释(见图1.7)。首先将从各种数据源获得的数据进行清理、选择和集成后存放到数据库或数据仓库中,将专家提供的知识和规则存放到知识库中;数据挖掘引擎通过一定的分析算法并使用知识库中的规则对数据进行分析,发现数据之间潜在的相关性、趋势或模式;系统对分析结果进行评估后以一定的文字、图、表等形式表达出来,用户进一步对结果进行解释,形成有用的知识。

img

图1.7 知识处理系统的基本结构

数据挖掘的主要分析方法如下。

① 分类。首先从数据中选出已经分好类的训练集,运用分类算法建立分类模型,然后用分类模型对未分类数据进行分类。例如,将信用卡申请者分类为低、中、高风险。

② 聚类。聚类是指对相似的数据进行分组。聚类和分类的区别是,它不依赖于预先定义好的类,不需要训练集。例如,一些特定症状的聚集可能预示了一个特定的疾病;又如,对用户手机上网的行为进行聚类分析,通过客户分群,进行精准营销。

③ 估计。估计一个连续分布的数量值。例如,根据购买模式估计一个家庭的孩子数和家庭年收入。

④ 预测。一般通过分类或估计得出模型,然后用于对未知变量进行预测。例如,航空公司通过分析客流、燃油等变化趋势,对不同航线制定精细的销售策略。

⑤ 关联。发现一个事件导致另一个事件的相关性,确定哪些事情将一起发生。例如,大量客户在超市购买商品A时也购买商品B,将它们摆放在一起可以增加销量;电商平台根据用户的浏览轨迹、收藏行为、购买行为等信息,自动向用户推荐相关产品。

(2)知识处理系统的特点

数据挖掘基于大数据、数理统计、人工智能、可视化、并行计算等技术的支持,提供预测性而不是回顾性的模型,获得隐藏的和意外的知识,对决策产生价值。知识处理系统的使用效果与数据挖掘分析方法的使用、领域知识库的构建密切相关。在云计算、大数据等技术的支持下,知识处理系统的应用日益广泛。