276.数据库的连接方式
1.简介
1.1ODBC数据库接口
ODBC即开放式数据库互连(Open DataBase Connectivity),是微软公司推出的一种实现应用程序和关系数据库之间通信的接口标准。符合标准的数据库就可以通过SQL语言编写的命令对数据库进行操作,但只针对关系数据库。目前所有的关系数据库都符合该标准(如SQL Server,Oracle,Access,Excel等)。
ODBC本质上是一组数据库访问API(应用程序编程接口),它由一组函数调用组成,核心是SQL语句,其结构如图1.8所示。
图1.8 ODBC数据库接口
1.2OLE DB数据库接口
OLE DB即数据库链接和嵌入对象(Object Linking and EMBedding DataBase)。OLE DB是微软提出的基于COM思想且面向对象的一种技术标准,其目的是提供一种统一的数据访问接口来访问各种数据源。
这里所说的“数据”除了标准的关系型数据库中的数据之外,还包括邮件数据、Web上的文本或图形、目录服务(Directory Services)、主机系统中的文件和地理数据以及自定义业务对象等。
OLE DB标准的核心内容就是,提供一种相同的访问接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型,其结构如图1.9所示。
图1.9 OLE DB数据库接口
1.3ADO数据库接口
ADO(ActiveX Data Objects)是微软公司开发的基于COM的数据库应用程序接口,通过ADO连接数据库,可以灵活地操作数据库中的数据。
图1.10所示为应用程序通过ADO访问SQL Server数据库接口。从图中可看出,使用ADO访问SQL Server数据库有两种途径:一种是通过ODBC驱动程序,另一种是通过SQL Server专用的OLE DB Provider,后者有更高的访问效率。
ado整合了odbc oledb
图1.10 ADO访问SQL Server的接口
1.4ADO.NET数据库接口
ASP.NET使用ADO.NET数据模型。该模型从ADO发展而来,但它不只是对ADO的改进,而是采用了一种全新的技术。主要表现在以下几个方面。
(1)ADO.NET 不是采用 ActiveX 技术,而是与.NET框架紧密结合的产物。
(2)ADO.NET 包含对 XML标准的完全支持,这对于跨平台交换数据具有重要的意义。
(3)ADO.NET 既能在与数据源连接的环境下工作,又能在断开与数据源连接的条件下工作。特别是后者,非常适合于网络应用的需要。因为在网络环境下,保持与数据源连接,不符合网站的要求,不仅效率低,付出的代价高,而且常常会引发多个用户同时访问带来的冲突。因此ADO.NET系统集中主要精力来解决在断开与数据源连接的条件下的数据处理问题。
ADO.NET 提供了面向对象的数据库视图,并且在ADO.NET 对象中封装了许多数据库属性和关系。最重要的是,ADO.NET 通过多种方式封装和隐藏了很多数据库访问的细节。用户可以完全不知道对象在与 ADO.NET 对象交互,也不用担心数据移动到另外一个数据库或者从另一个数据库获得数据的细节问题。图1.11所示为ADO.NET 架构总览。
图1.11 通过ADO.NET访问数据库的接口模型
1.5JDBC数据库接口
在JDBC API中有两层接口:应用程序层和驱动程序层,前者使开发人员可以通过SQL调用数据库和取得结果,后者处理与具体数据库驱动程序相关的所有通信。
使用JDBC接口对数据库操作有如下优点:
(1)JDBC API与ODBC十分相似,有利于用户理解。
(2)使编程人员从复杂的驱动器调用命令和函数中解脱出来,而致力于应用程序功能的实现。
(3)JDBC支持不同的关系数据库,增强了程序的可移植性。
使用JDBC的主要缺点:访问数据记录的速度会受到一定影响;此外,JDBC结构中包含了不同厂家的产品,这给数据源的更改带来了较大麻烦。
1.6数据库连接池技术
网络环境下的数据库应用,由于用户众多,使用传统的JDBC方式进行数据库连接,系统资源开销过大,这成为制约大型企业级应用效率的瓶颈,而采用数据库连接池技术对数据库连接进行管理,可以大大提高系统的效率和稳定性。
2.模式
2.1客户-服务器(C/S)模式应用系统
对于一般的数据库应用系统,除了数据库管理系统外,需要设计适合普通人员操作数据库的界面。目前,流行的开发数据库界面的工具主要包括Visual BASIC、Visual C++、Visual FoxPro、Delphi、PowerBuilder等。数据库应用程序与数据库、数据库管理系统之间的关系如图1.12所示。
图1.12 数据库应用程序与数据库、数据库管理系统之间的关系
应用程序和数据库管理系统可以运行在同一台计算机上(单机方式),也可以运行在网络方式下。在网络方式下,数据库管理系统在网络上的一台主机上运行,应用程序可以在网络上的多台主机上运行,即一对多的方式。例如,用Visual Basic开发的客户-服务器(C/S)模式的学生成绩管理系统的学生信息输入界面如图1.13所示。
图1.13 C/S模式的学生成绩管理系统界面
2.2 三层客户-服务器(B/S)模式应用系统
基于Web的数据库应用采用三层客户-服务器模式,也称为B/S结构。第一层为浏览器,第二层为Web服务器,第三层为数据库服务器。浏览器是用户输入数据和显示结果的交互界面。用户在浏览器表单中输入数据,然后将表单中的数据提交并发送到Web服务器。Web服务器应用程序接收并处理用户的数据,通过数据库服务器,从数据库中查询需要的数据(或把数据录入数据库)并返回给Web服务器。Web服务器再把返回的结果插入HTML页面,传送到客户端,在浏览器中显示出来。三层客户-服务器结构如图1.14所示。
图1.14 三层客户-服务器结构
例如,用ASP.NET开发的三层客户-服务器(B/S)模式的学生成绩管理系统的学生信息更新页面如图1.15所示。
图1.15 B/S模式的学生成绩管理系统页面