数据库连接技术:嵌入式 SQL、ODBC 与 JDBC 详解
1. 嵌入式 SQL 与动态 SQL 概述
嵌入式 SQL 是将 SQL 与过程语言能力相结合的早期商业解决方案。它允许用宿主语言编写的计算机程序连接到关系型数据库管理系统(RDBMS),并执行几乎所有的 SQL 操作,如数据的检索和修改、数据库对象的创建与删除、权限的授予与撤销等。
动态 SQL 是嵌入式(静态)SQL 的逻辑扩展,它使我们能够在运行时构建和执行 SQL 语句。动态 DML 和 DDL 语句相对容易实现,因为它们不需要将数据返回给宿主程序。而动态查询标准则更为复杂,实现起来也更具挑战性。大多数现代编程语言将其实现的复杂性委托给语言的内部机制,从而减轻了程序员的负担。
虽然很多资料表明动态 SQL 通常比嵌入式 SQL 效率低,但在不同的实际场景中,这一结论并不一定成立。理解 SQL 语句处理的一般五个步骤,是在特定情况下正确使用嵌入式/动态 SQL 的关键。随着新数据库技术的兴起,嵌入式/动态 SQL 逐渐过时,但由于大量遗留的编程代码,它仍然有一定的市场。此外,嵌入式 SQL 在一些现代技术中也有应用,例如嵌入式数据库。
2. SQL API 与 SQL/CLI 标准
在执行单个 SQL 语句之前,提交该语句的客户端应用程序必须与 RDBMS 建立连接。连接可以通过多种机制实现,从专有调用级接口到如今流行的 Java 数据库连接(JDBC)和 .NET 提供程序等。
2.1 SQL/CLI 标准的发展
SQL/CLI 标准由 SQL 访问组(SAG)的一个小组委员会创建。SAG 成立于 1989 年,其目的是“定