一、无ODBC时代

一般来讲不同的数据库厂商都有自己的数据库开发包,这些开发包支持两种模式的数据库开发;

1.预编译的嵌入模式(例如Oracle的ProC,SQL Server的ESQL)

2.API调用(例如Oracle的OCI)

预编译的嵌入模式:所有的SQL语句要写在程序内部,并遵守一定的规则,然后由数据库厂商的预编译工具处理后形成C代码,最后由C编译器进行编译

API调用:数据库厂商提供了开发包,你通过各种API函数就可以连接数据库,执行查询、修改、删除、操纵光标,执行存储过程

两者的对比:预编译的缺点就在于无法生成动态的SQL语句;API调用给程序更多自由,但只能针对同一种数据库。

从上图中看出,那些相对独立的软件供应商而言,经常要为每一个DBMS编写一个版本的应用程序(比如,针对数据库1的版本、数据库2的版本、数据库3的版本...)同时,多种数据库之间的互连访问成为一个突出的问题!

为解决这个问题,由三十多家著名的软件公司组成了一个组织,这个组织的目的是定义执行SQL的共同基础,以使其成员的产品都可以使用它来彼此交流数据。

二、ODBC时代  ---  DBMS(数据库管理系统)

在1994年,微软发布了针对Windows操作系统设计,实现上述标准的“这个产品”,并将这个产品正式成为开放数据库连接(Open Data Base Connection),即ODBC。基本思想如下图:

传统方式对比。如下图

图中,应用程序1、2、3采用公共接口API进行访问的,如下图所示:

如上图简化了开发维护难度,应用程序的目标代码能使用于不同的DBMS,把应用程序与底层网络环境和DBMS分开,ODBC开放驱动程序管理模块,来接纳各个DBMS供应商(ORACLE、SYBASE、DB2等)提供符合ODBC规范标准的驱动程序,结构如下图:

2.2_Database Interface:ODBC基本概念的更多相关文章

  1. 2.4_Database Interface ODBC数据库驱动程序类型(单层与多层)

    两大类:单层驱动程序和多层驱动程序 1.单层数据库驱动程序 早期的xBASE数据库系统的驱动程序就属于单层驱动程序. 单层驱动程序不仅要处理ODBC函数调用,还要解释执行SQL语句,执行数据库管理系统 ...

  2. 转:Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念

    Cocoa 是在Mac OS X系统上原生的一个编译环境.他包含两个框架,其实就是一系列的类库,Foundation和AppKit. 在你的iPhone等掌上设备上,使用的则是他的一个子类 - Coc ...

  3. Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念

    转自:http://blog.csdn.net/hou_cocoa/article/details/6187418 Cocoa 是在Mac OS X系统上原生的一个编译环境.他包含两个框架,其实就是一 ...

  4. 2.5_Database Interface ODBC数据源及案例

    分类 用户数据源 用户创建的数据源,称为“用户数据源”.此时只有创建者才能使用,并且只能在所定义的机器上运行.任何用户都不能使用其他用户创建的用户数据源. 系统数据源 所有用户在Windows下以服务 ...

  5. 2.3_Database Interface ODBC组成原理

    从某种意义上来讲,ODBC实际上主要是一个数据库的访问库(API),它包含访问不同数据库所要求的ODBC驱动程序.应用程序要操作不同类型的数据库,只要调用ODBC所支持的函数,动态链接到不同的驱动程序 ...

  6. J2EE之13个规范标准概念

    主要是关于j2EE十三个规范的总结. java基础知识 首先java分为三类:J2ME.J2SE.J2EE. 依据开发软件的大小和量级他们的作用分别不同,J2ME是开发为机顶盒.移动电话和PDA之类嵌 ...

  7. 面向对象编程语言中的接口(Interface)

    在大多面向对象的编程语言中都提供了Interface(接口)的概念.如果你事先学过这个概念,那么在谈到“接口测试”时,会不会想起这个概念来!?本篇文章简单介绍一下面向对象编程语言中的Interface ...

  8. python:面向对象编程之Zope.interface安装使用

    持续学习python+django中... 一.接口简述 在我们所熟知的面向对象编程语言中,大多提供了接口(interface)的概念.接口在编程语言中指的是一个抽象类型,是抽象方法的集合:它的特点如 ...

  9. ODBC、OLEDB、ADO、SQL的关系

    对于一个刚接触数据库的菜鸟来说(比如我),总是搞不清SQL.ADO.OLE DB.ODBC,大脑中一片混乱,好像懂了,又好像没懂,非常的苦恼,今天下了点功夫研究了一下,贴出来,其中肯定有好多错误,希望 ...

随机推荐

  1. C Primer Plus--结构和其他数据类型(2)

    目录 枚举类型 enumerated type 枚举默认值 为枚举指定值 命名空间 namespace typedef关键字 * () []修饰符 typedef与这三个运算符结合 函数与指针 函数指 ...

  2. Spring重定向

    1.使用HttpServletResponse的sendRedirect()方法. 示例: @PostMapping("/user/product/id") public void ...

  3. windows环境下安装nginx

    (1)下载 官网:http://nginx.org/en/docs/windows.html 下载:http://nginx.org/en/docs/windows.html 点击:nginx/Win ...

  4. Windows server 2012 英文系统 中文软件显示乱码的问题

    1.安装语言包   Start -> Control Panel -> Language 如果没有中文,请点击 Add a language 添加可能需要 联网下载语言包,按照要求下载即可 ...

  5. python list 和 tuple详解

    list------------------------------------------------------------------------ Python内置的一种数据类型是列表:list ...

  6. flask 开发用户登录注册功能

    flask 开发用户登录注册功能 flask开发过程议案需要四个模块:html页面模板.form表单.db数据库操作.app视图函数 1.主程序 # app.py # Auther: hhh5460 ...

  7. PhpStorm使用sftp实现代码自动上传服务器

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/huihui940630/article/ ...

  8. [转]详解Linux(centos7)下安装OpenSSL安装图文方法

    OpenSSL是一个开源的ssl技术,由于我需要使用php相关功能,需要获取https的文件所以必须安装这个东西了,下面我整理了两种关于OpenSSL安装配置方法. 安装环境:  操作系统:CentO ...

  9. 利用Termux在Android手机上运行PHP

    从 阮一峰 博客看到 [Termux 入门教程:架设手机 Server 下载文件] 想测试下,在可以跑PHP吗?经测试PHP完美运行,并且可用使用PHP内置WEB服务器,搭建网站访问:因为对linux ...

  10. svg复用方式<g>, <defs>, <symbol>, <use>

    svg复用元素的方式主要有 <g>, <defs>, <symbol>, <use> 1. <g> group, 分组,定义一组元素,初始不 ...