数据库开发技术标准教程
上QQ阅读APP看书,第一时间看更新

1.4 常见数据库访问接口

在数据访问层中,主要使用的数据库访问接口包括ODBC数据库接口、OLE DB数据库接口、ADO数据库接口、ADO.NET数据库接口、JDBC数据库接口等。

1. ODBC数据库接口

ODBC即开放式数据库互连(Open Database Connectivity),是一种实现应用程序和关系数据库之间通信的接口标准。1991年11月,Microsoft宣布了ODBC。1992年2月,Microsoft推出了ODBC SDK 2.0版。符合标准的数据库就可以通过SQL编写的命令对数据库进行操作,但只针对关系数据库。目前所有的关系数据库都符合该标准(如SQL Server、Oracle、Access等)。ODBC本质上是一组数据库访问API(应用程序编程接口),由一组函数调用组成,核心是SQL语句,其结构如图1.12所示。

图1.12 ODBC数据库接口

2. OLE DB数据库接口

OLE DB即数据库链接和嵌入对象(Object Linking and Embedding Data Base)。OLE DB是Microsoft推出的战略性的、通向不同的数据源的低级应用程序接口。OLE DB不仅包括Microsoft资助的标准数据接口开放数据库连通性(ODBC)的结构化查询语言(SQL)能力,还具有面向其他非SQL数据类型的通路。

OLE DB是微软提出的基于COM思想且面向对象的一种技术标准,目的是提供一种统一的数据访问接口访问各种数据源,这里所说的“数据”除了标准的关系型数据库中的数据之外,还包括邮件数据、Web上的文本或图形、目录服务(Directory Services),以及主机系统中的文件和地理数据以及自定义业务对象等。

OLE DB标准的核心内容是提供一种相同的访问接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型,其结构图如图1.13所示。

图1.13 OLE DB数据库接口

3. ADO数据库接口

ADO(ActiveX Data Objects)是微软公司开发的基于COM的数据库应用程序接口,通过ADO连接数据库,可以灵活地操作数据库中的数据。

图1.14展示了应用程序通过ADO访问SQL Server数据库接口。

图1.14 ADO访问SQL Server的接口

从图1.14可以看出,使用ADO访问SQL Server数据库有两种途径:一种是通过ODBC驱动程序,另一种是通过SQL Server专用的OLE DB Provider,后者的访问效率更高。

4. ADO.NET数据库接口

ASP.NET使用ADO.NET数据模型。该模型从ADO发展而来,但不只是对ADO的改进,而是采用了一种全新的技术。主要表现在以下几个方面。

ADO.NET不是采用ActiveX技术,而是与.NET框架紧密结合的产物。

ADO.NET包含对XML标准的完全支持,这对于跨平台交换数据具有重要的意义。

图1.15 通过ADO.NET访问数据库的接口模型

ADO.NET既能在与数据源连接的环境下工作,又能在断开与数据源连接的条件下工作。特别是后者,非常适合于网络应用的需要。因为在网络环境下,保持与数据源连接,不符合网站的要求,不仅效率低,付出的代价高,而且常常会引发由于多个用户同时访问时带来的冲突。因此ADO.NET系统集中主要精力用于解决在断开与数据源连接的条件下数据处理的问题。

ADO.NET提供了面向对象的数据库视图,并且在ADO.NET对象中封装了许多数据库属性和关系。最重要的是,ADO.NET通过很多方式封装和隐藏了很多数据库访问的细节。可以完全不知道对象在与ADO.NET对象交互,也不用担心数据移动到另外一个数据库或者从另一个数据库获得数据的细节问题。

ADO.NET的架构如图1.15所示。

5. JDBC数据库接口

JDBC代表Java与数据库的连接。从根本上说,JDBC是一种规范,提供了一套完整的、可移植的访问底层数据库的接口。

JDBC库包含的API为与数据库的使用相关联的任务,例如:

(1)连接到数据库;

(2)创建SQL语句;

(3)执行SQL语句,并查询数据库;

(4)查看和修改结果记录。

可以用Java来编写不同类型的可执行文件,例如:

(1)Java应用程序(Application);

(2)Java Applets;

(3)Java Servlets;

(4)Java Server Pages(JSP);

(5)Enterprise JavaBeans(EJBs)。

所有这些不同的可执行文件都可以使用JDBC驱动程序来访问数据库。JDBC提供了与ODBC相同的功能,允许Java程序包含与数据库无关的代码。JDBC开发模型如图1.16所示。

图1.16 JDBC开发模型

JDBC提供了如下多种不同的连接方式。

  • □ JDBC-ODBC连接桥:这种方式是以ODBC为基础的。由于Java应用程序和ODBC之间的通信比较麻烦,但ODBC作为一种数据库访问的标准应用是很广泛的,因此JDBC通过映射ODBC的功能调用就保证了原来使用ODBC的数据库也可以很方便地进行访问。
  • □ 本地API驱动:即把JDBC调用转换为对数据库接口的客户端二进制代码库的调用。但是这个接口库依赖于生产商,因为这里调用的不是数据库厂商提供的JDBC的接口实现。
  • □ 纯Java本地协议:即把JDBC调用映射为DBMS的网络监听协议的功能调用,监听程序监听到请求后执行相关的数据库操作,监听程序是由数据库厂商提供的。

JDBC不同的连接方式如图1.17所示。

图1.17 JDBC连接方式