标准编程接口

编程接口可能是标准化最明显的候选项。 事实上,早在开发 ODBC 时,ANSI 和 ISO 就已经提供了嵌入式 SQL 和 SQL 模块的标准。 尽管数据库 CLI 尚无标准,但 SQL 访问组(数据库供应商的行业联盟)在考虑是否创建一个标准;ODBC 的部分后来成为其工作基础。

ODBC 的其中一个要求是,单个应用程序二进制文件必须处理多个 DBMS。 因此,ODBC 不使用嵌入式 SQL 或模块语言。 尽管嵌入式 SQL 和模块语言中的语言是标准化的,但每种语言都与特定于 DBMS 的预编译程序相关联。 因此,必须为每个 DBMS 重新编译应用程序,并且生成的二进制文件应仅适用于单个 DBMS。 尽管这对于小型计算机和大型计算机领域中的小型应用程序而言,是可接受的,但在个人计算机领域中是不可接受的。 首先,就安排协调方面而言,向客户交付多个版本的大容量紧缩套装软件相当困难:其次,个人计算机应用程序通常需要同时访问多个 DBMS。

另一方面,可以通过位于每个本地计算机上的库或数据库驱动程序来实现调用级别接口;每个 DBMS 都需要不同的驱动程序。 由于新式操作系统可以在运行时加载此类库(例如 Microsoft Windows 操作系统上的动态链接库),因此单个应用程序不仅可以访问不同 DBMS 中的数据,而无需重新编译,还能同时访问多个数据库的数据。 随着全新数据库驱动程序的推出,用户只需在其计算机上安装这些驱动程序,而无需修改、重新编译或重新链接其数据库应用程序。 此外,调用级别接口非常适合 ODBC,因为 Windows(最初开发 ODBC 的平台)已经广泛使用了此类库。