第三章 Web开发中的数据访问技术
本章将首先介绍数据访问的一些基本概念和原理,再重点对.NET下的核心数据访问技术ADO.NET的各方面进行介绍,也涉及了Web开发中的数据绑定技术和O/R Mapping技术,之后介绍了如何使用事务机制来保证数据访问过程中的完整性。
3.1 数据访问概述
数据访问即是通过特定API,从数据库中获取和检索数据,保存和修改数据库中的数据,删除和清除数据库中的某些数据,以及进行一些额外的操作。一般而言,数据访问就是对数据库中的数据进行CRUD操作:Create(创建)、Retrieve(检索)、Update(更新)和Delete(删除)。
自从数据库技术诞生以来,数据访问技术就成为应用程序开发的一项重要技术。随着数据库技术的不断发展,数据访问技术也在不断进步。
3.1.1 数据访问技术的发展
从数据库技术诞生到现在,已经有了数十年的历史,相应地,从最早的读写磁盘文件开始,数据访问技术也不断地推陈出新,变得越来越丰富。
在数据库出现的早期,开发人员只需要了解正在使用的数据库产品的详尽知识。不同的数据库厂商会提供不同的访问接口——原生底层API,开发人员需要针对每种数据库学习不同的访问技术,比如 DB2 系统的 CLI Library 或是 Oracle 的 OCI Library,以及SQL Server的SQL-DMO等。后来,业界意识到,直接使用数据库各自API的方式来访问数据,需要针对不同数据库学习不同的API写法,对于迁移数据库平台和保证代码复用方面都不够理想。所以,通用的数据访问中间件技术孕育而生。ODBC(Open Database Connectivity:开放数据库连接)是最为著名的一个通用数据访问中间件技术。
类似地,在微软平台下的技术还有:DAO、RDO、OLE DB、ADO 和 RDS,以及和.NET平台共同推出的ADO.NET。非微软平台下,著名的有JDBC。
以上的数据访问技术是随着关系型数据库共同发展起来的。它们的一个显著特征就是这些中间件的API和对象模型,都和关系数据库的处理方式保持一致,都具有表、查询和数据集等概念。然而随着软件开发技术的不断发展,尤其面向对象技术的广泛运用,数据和程序之间出现了不协调。为了解决这个所谓的“阻抗匹配”问题,对象数据库被提了出来。对应对象数据库的访问技术实际上就是特定对象数据库产品所带(内置)的对象访问API。这种模式又有点类似早期的数据库底层API的形式了。解决了程序和数据不协调的问题,又出现了老问题——针对不同的对象数据库产品,需要学习不同API(当然对象数据库访问API的学习成本比关系数据库的原生底层API要低得多)。
由于关系数据库的性能、稳定性、市场份额和厂商支持都要比对象数据库好得多,很多软件系统也是构建于关系数据库上的。所以,为了既获得面向对象处理数据的优点,又能保持原有数据库平台的稳定,一种新的数据访问技术被提了出来——对象关系映射技术(O/R Mapping,有时候也称作O/R Mapper)。
但需要注意的是,对象关系映射技术(ORM)只是构建于原有面向关系数据库的数据访问中间件的一种技术,主要目的是用于协调程序代码的对象模型和数据库中数据,但是这种技术本质上还是一种中间件技术。
最后,我们可以得到下面的一个数据访问技术发展图(如图3-1所示)。
| 图3-1 |
| 回书目 上一节 下一节 |