两大类:单层驱动程序和多层驱动程序

1.单层数据库驱动程序

早期的xBASE数据库系统的驱动程序就属于单层驱动程序。

单层驱动程序不仅要处理ODBC函数调用,还要解释执行SQL语句,执行数据库管理系统(DBMS)的功能,实际上他就是一个数据库管理系统。利用它所编写的数据库应用程序,有两种运行模式:

运行于单击环境桌面数据库应用产品,如下图所示

运行在网络环境下的文件服务器数据库应用产品,如下图所示:

这种的数据库软件,如FoxPro、Access、Paradox等。

PS:这种应用程序运行于网络环境时,将服务器作为文件服务器使用,要访问数据时,将整个数据库文件传送到应用程序主机一方进行处理,应用程序处理结束后,再将数据库送到服务器上。图中文件服务器的作用只是管理用户的访问操作和实现文件的存储管理。

2.多层的数据库驱动程序

如:Oracle、Sql Server数据库驱动程序就属于多层驱动程序。

多层驱动程序只处理应用程序的ODBC函数调用和数据转换,它将SQL语句传递给数据源,由数据库管理系统解释执行SQL语句,实现用户的各种操作请求。利用它所编写的的数据库应用程序,主要分为两层和三层模式的两种运行模式:

1.客户机/服务器结构(俗称:C/S),属于两层结构

客户机端软件:由应用程序、驱动程序管理器、多层数据库驱动程序和网络支撑软件组成。

服务器端软件:由数据库引擎、数据库数据库文件和网络支撑软件组成。

2.网关应用结构(俗称:B/S),属于三层结构

上图中,驱动程序把收到的SQL请求传送到数据库网关,由数据库网关再将这些请求传递给数据库管理系统。

数据库网关

  在Internet/Intranet网络中使用非常普遍,CGI(通用网关接口,即Common Gateway Interface的英文缩写)就是经常使用的一种。如图所示:

2.4_Database Interface ODBC数据库驱动程序类型(单层与多层)的更多相关文章

  1. (15)zabbix ODBC数据库监控

    概述 ODBC监控对应于Zabbix Web管理端中的Database monitor监控项类型. ODBC是用于访问数据库管理系统(DBMS)的C语言中间件API.ODBC由Microsoft开发, ...

  2. 2.3_Database Interface ODBC组成原理

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

  3. JDBC驱动程序类型

    JDBC驱动程序是什么? JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互. 例如,使用JDBC驱动程序,可以通过发送SQL或数据库命令,然后使用Java接收结果来打开数 ...

  4. 怎样配置visio的数据库驱动程序

    怎样配置visio的数据库驱动程序   百度师傅最快的到家服务,最优质的电脑清灰 在使用visio进行反向工程画数据库模型图时,需要进行数据库驱动程序的配置.下面以visio2003给大家演示怎样配置 ...

  5. 2.6_Database Interface JDBC及驱动类型

    JAVA语言参考ODBC,设计专用的数据库连接规范JDBC(JAVA Database Connectivity).目标是让Java开发人员在编写数据库应用程序时,可以有统一的接口,不依赖特定数据库A ...

  6. VS2010 MFC中 单独添加ODBC数据库记录集类(CRecordset)方法

    基于VS2010 MFC的项目是之前建好的,后来需要添加数据库. 方法分享于此. 1.  打开自己的项目,项目->添加类. 2. 选MFC ODBC使用者,点右下角的添加. 3. 点数据源. / ...

  7. 主流数据库字段类型转.Net类型的方法

    最近在阅读一些开源的代码,发现其中有些方法总结的很全面,至少在我做同样的事情时候,需要抓破脑袋想活着google,现在看到了这个关于主流数据库字段类型转.Net类型的方法,故收藏之,也顺便分享给那些能 ...

  8. 关于“System.Data.OleDb.OleDbException,外部数据库驱动程序 (1) 中的意外错误。”的解决方案

    网站之前运行一直很正常,但有一次用户在导入格式为xls的excel文件,发生了错误,跟踪错误后抛出如下的异常: 错误提示: 未处理System.Data.OleDb.OleDbException HR ...

  9. EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型

    EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型 EntityFrameworkCore Entity public class Entity { publ ...

随机推荐

  1. SDN阅读作业

    阅读文章<软件定义网络(SDN)研究进展>,并根据所阅读的文章,书写一篇博客,回答以下问题(至少3个): 1.为什么需要SDN?SDN特点? 随着网络规模的不断扩大,传统网络设备繁复的协议 ...

  2. python 操作redis,存取为字节格式,避免转码加

    这种情况连接数据库,对数据的存取都是字节类型,存取时还得转码一下 from redis import Redis # 实例化redis对象 rdb = Redis(host='localhost', ...

  3. RSA前台加密后台解密

    RSA解密时BadPaddingException java rsa 解密报:javax.crypto.BadPaddingException: Decryption error Java安全架构__ ...

  4. java查看线程的堆栈信息

    通过使用jps 命令获取需要监控的进程的pid,然后使用jstack pid 命令查看线程的堆栈信息. 通过jstack 命令可以获取当前进程的所有线程信息. 每个线程堆中信息中,都可以查看到线程ID ...

  5. mysql查询列定义,是否自增等

    SELECT ORDINAL_POSITION AS Colorder, Column_Name AS ColumnName, data_type AS TypeName, COLUMN_COMMEN ...

  6. [转]使用 curl 发送 POST 请求的几种方式

    HTTP 的 POST 请求通常是用于提交数据,可以通过这篇文章来了解各种提交方式:四种常见的 POST 提交数据方式.做 Web 后端开发时,不可避免地要自己给自己发请求来调试接口,这里要记录的内容 ...

  7. 《电子计算机机房设计规范》GB50174-93

    <电子计算机机房设计规范>GB50174-2008 http://gf.1190119.com/article-17886.htm 中华人民共和国国家标准 电子计算机机房设计规范 GB 5 ...

  8. Spring MVC -- MVC设计模式(演示4个基于MVC框架的案例)

    对于简单的Java Web项目,我们的项目仅仅包含几个jsp页面,由于项目比较小,我们通常可以通过链接方式进行jsp页面间的跳转. 但是如果是一个中型或者大型的项目,上面那种方式就会带来许多维护困难, ...

  9. 【Shell常用命令一】echo bash alias history 输出重定向 快捷键

    echo输出命令 echo [选项] [输出内容] -e : 支持反斜线控制的字符转换 赋予执行权限 直接运行 chmond 755 hello.sh ./hello.sh 通过bash调用执行脚本 ...

  10. java的单进程多线程模式

    java是单进程多线程模型,多线程依然可以充分利用多核(core)/多处理器(cpu) 单个cpu线程在同一时刻只能执行单一指令,也就是一个线程 单个线程同时只能在单个cpu线程中执行 Java中的所 ...