1.3 数据库应用系统
数据库应用系统是数据库系统的重要组成部分,由应用程序工具开发,为用户提供数据库操作界面,显示数据库返回结果。数据库应用系统不胜枚举,例如,财务管理系统、人事管理系统、图书管理系统、网上购物、网上聊天和支付、网上银行等。从实现技术角度而言,它们都是以数据库为基础的计算机应用系统。
1.3.1 数据库应用系统架构
数据库应用系统分为B/S架构的应用系统和C/S架构的应用系统,这两种架构又称B/S结构和C/S结构。
1.B/S架构的应用系统
基于Web的数据库应用系统采用三层(浏览器/Web服务器/数据库服务器)模式,也称B/S架构,如图1.7所示。其中,浏览器(Browser)是用户输入数据和显示结果的交互界面,用户首先在浏览器表单中输入数据,然后将表单中的数据提交并发送到Web服务器,Web服务器接收并处理用户输入的数据,通过数据库服务器从数据库中查询需要的数据(或把数据输入数据库)并将其送回Web服务器,Web服务器把返回的结果插入HTML页面,传送给客户端并在浏览器中显示出来。
图1.7 B/S架构
目前,流行的开发数据库Web界面的工具主要有PHP、Java EE(Spring Boot)、ASP.NET(C#)等。使用PHP工具进行开发比较简单;Java EE(Spring Boot)则更专业,客户端和服务器端分别开发,操作便捷,功能分层方便。后文将介绍使用PHP开发的B/S架构的MySQL数据库网上商城商家管理系统,用Spring Boot+MyBatis开发的B/S架构的MySQL数据库网上商城商品管理系统。
2.C/S架构的应用系统
C/S架构的应用系统要求在客户端上安装应用程序。应用程序与数据库、数据库管理系统的关系如图1.8所示。
图1.8中表明,当应用程序需要处理数据库中的数据时,首先向数据库管理系统发送一个数据请求,数据库管理系统接收到这一请求后,对其进行分析,然后执行数据库操作,并把处理结果返回给应用程序。由于应用程序直接与用户交互,而数据库管理系统不直接与用户交互,因此应用程序被称为“前台”,而数据库管理系统被称为“后台”。由于应用程序向数据库管理系统提出服务请求,通常称为客户程序(Client),而数据库管理系统为应用程序提供服务,通常称为服务器程序(Server),因此又将这一操作数据库的模式称为(客户-服务器C/S)架构。
图1.8 应用程序与数据库、数据库管理系统的关系
应用程序和数据库管理系统可以运行在同一台计算机上(单机方式),也可以运行在网络环境中。在网络环境中,数据库管理系统在网络中的一台主机上运行,应用程序可以在网络上的多台主机上运行,即采用一对多方式。
目前,流行的开发客户端应用程序的工具主要有Visual C++、Visual C#、Qt、Visual Basic等。
移动客户端应用也非常流行,其本质仍然是C/S架构的应用系统。普通的C/S架构的数据库应用程序安装在PC上,而移动客户端App安装在移动端(手机)上。后续章节将以在Android平台开发网上商城App为例讲解MySQL数据库操作。
移动端也可通过浏览器运行B/S架构的应用程序。
1.3.2 应用系统的数据接口
客户端应用程序或应用服务器向数据库服务器请求服务时,必须先与数据库建立连接。虽然现有数据库管理系统几乎全部遵循SQL标准,但不同厂家开发的数据库管理系统有所差异,存在适应性和可移植性等方面的问题,因此,人们研究和开发了连接不同数据库管理系统的通用方法、技术和软件接口。
1.ODBC数据库接口
开放式数据库互连(Open Data Base Connectivity,ODBC)是微软公司推出的一种实现应用程序和关系数据库之间通信的接口标准,可以通过SQL语句对数据库进行操作。目前,所有的关系数据库都符合该标准。ODBC本质上是一组数据库访问(应用程序接口API),由一组函数调用组成,核心是SQL语句。
在具体操作时,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。因此,应用程序只需将数据源名提供给ODBC,ODBC即可建立与相应数据库的连接。
2.ADO.NET数据库接口
图1.9 通过ADO.NET访问
ADO.NET提供了面向对象的数据库视图,并且在其对象中封装了许多数据库属性和关系。重要的是,它通过多种方式封装和隐藏了数据库访问过程的许多细节。用户可以完全不了解对象在与ADO.NET对象交互,也不用担心数据库移动等细节问题。如图1.9所示,数据层是实现ADO.NET断开式连接的核心,从数据源读取的数据首先被缓存到数据集中,然后被程序或控件调用。数据源可以是数据库或XML数据。数据提供器用于建立数据源与数据集之间的联系,它能连接各种类型的数据源,并按要求将数据源中的数据提供给数据集,或者从数据集向数据源返回编辑后的数据。
3.JDBC数据库接口
Java数据库互连(Java Database Connectivity,JDBC)是以Java语言编写的用于数据库连接和操作的类和接口,可为多种关系数据库提供统一的访问方式。使用JDBC实现对数据库的访问主要通过4个组件:Java应用程序、JDBC驱动器管理器、驱动器和数据源。
在JDBC API中有两层接口:应用程序层接口和驱动程序层接口。前者使开发人员可以通过SQL调用数据库和取得结果,后者处理与具体数据库驱动程序的所有通信。
使用JDBC数据库接口操作数据库有如下优点。
(1)JDBC与ODBC十分相似,有利于用户理解。
(2)使编程人员从复杂的驱动器调用命令和函数中解脱出来,致力于应用程序功能的实现。
(3)JDBC支持不同的关系数据库,提高了程序的可移植性。
4.Web Service
Web Service使运行在不同计算机上的不同应用无须借助附加的、专门的第三方软件或硬件,即可相互交换数据或集成。它是自描述、自包含的可用网络模块,可以执行具体的业务功能。Web Service方便部署,为整个企业甚至多个组织之间的业务流程的集成提供了通用机制。