数据库设计附加3(中间件技术).ppt

上传人:za****8 文档编号:16590738 上传时间:2020-10-16 格式:PPT 页数:36 大小:548.50KB
返回 下载 相关 举报
数据库设计附加3(中间件技术).ppt_第1页
第1页 / 共36页
数据库设计附加3(中间件技术).ppt_第2页
第2页 / 共36页
数据库设计附加3(中间件技术).ppt_第3页
第3页 / 共36页
点击查看更多>>
资源描述
华中科技大学 电子与信息工程系 2020/10/16 1 中间件技术 华中科技大学 电子与信息工程系 2020/10/16 2 本章重要概念 ( 1) 中间件的定义和作用 ( 2) ODBC分层的体系结构:应用程序 , 驱动程序管理 器 , DB驱动程序 , ODBC数据源 。 ( 3) ODBC接口:应用程序基本流程 , ODBC句柄 , ODBC 连接 , SQL语句的执行 。 ODBC两套符合性级别 。 典型 的 DB应用系统开发工具 。 ( 4) JDBC的基本功能, JDBC的结构, JDBC接口。 华中科技大学 电子与信息工程系 2020/10/16 3 前言 对于那些相对独立的软件供应商而言,经常要为每一个 DBMS编写一个版本的应用程序,或者为每个要访问的 DBMS 编写针对 DBMS的代码。这就意味着,大量的资源都耗在了 编写和维护 DB的访问上,更不用说应用程序了。此时应用 程序的评价标准不再是质量,而是它能否在给定的 DBMS中 访问数据库。 这就需要开放的数据库连接,就是人们需要用一种新的方 法来访问不同的数据库。为此,在 C/S系统中必须广泛使 用中间件技术,以隐藏各种复杂性,屏蔽各种系统之间的 差异。 ODBC技术和 JDBC技术就是这种优秀的中间件技术。 华中科技大学 电子与信息工程系 2020/10/16 4 10.1.1 中间件的定义 定义 10.1 中间件( middleware)是分布 式环境中保证操作系统、通信协议、数据 库等之间进行对话、互操作的软件系统。 华中科技大学 电子与信息工程系 2020/10/16 5 10.2.2 中间件的作用 中间件的作用是保证网络中各部件(软件 和硬件)之间透明地连接,即隐藏网络部 件的异构性,尤其保证不同网络、不同 DBMS和某些访问语言的透明性,即下面三 个透明性。 网络透明性:能支持所有类型的网络 。 服务器透明性:不管服务器上的 DBMS是何种型 号( ORACLE、 SYBASE、 DB2等),一个好的中 间件都能通过标准的 SQL语言与不同 DBMS上的 SQL语言连接起来。 语言透明性:客户机可用任何开发语言进行发 送请求和接受回答,被调用的功能应该像语言 那样也是独立的。 华中科技大学 电子与信息工程系 2020/10/16 6 10.2.1 ODBC概念 应用程序 应用程序 应用程序 公共接口 A P I 网络软件 SYB A SE D B2O RA C L ESQL S e rv e rFo x p ro Open Database Connectibvity 华中科技大学 电子与信息工程系 2020/10/16 7 10.2.2 ODBC的体系结构(一) OD BC 数据库应用程序 S QL S e rv e r 驱动程序 Ora c le 驱动程序 DB2 驱动程序 S y b a se 驱动程序 F o x p ro 驱动程序 驱动程序管理器 S QL S e rv e r 数据源 Ora c le 数据源 F o x p ro 数据源 S y b a se 数据源 DB2 数据源 DB DB DB DB DB 华中科技大学 电子与信息工程系 2020/10/16 8 10.2.2 ODBC的体系结构(二) 应用程序的主要功能是:调用 ODBC函数,递交 SQL 语句给 DBMS,检索出结果,并进行处理。 驱动程序管理器是一个动态连接库( DLL),用于 连接各种 DBS的 DBMS驱动程序(如 Oracle、 Foxpro、 Sybase等驱动程序),管理应用程序和 DBMS驱动 程序之间的交互作用(通信)。 应用程序通过调用驱动程序所支持的函数来操纵 数据库。驱动程序也是一个动态连接库( DLL)。 华中科技大学 电子与信息工程系 2020/10/16 9 10.2.2 ODBC的体系结构(三) 网络环境下基于单层驱动程序的 ODBC结构 工作站 OD BC 数据库应用程序 驱动程序管理器 单层驱动程序(包含数据库引擎) 数据库文件( * DBF ) 网络 文件服务器 华中科技大学 电子与信息工程系 2020/10/16 10 10.2.2 ODBC的体系结构(四) 基于多层驱动程序的 ODBC结构 OD BC 数据库应用程序 驱动程序管理器 多层驱动程序 客户端网络支撑软件 客户端 (网络) S QL 请求 数据库服务器 操作结果 数据库软件( * DBF ) 数据库引擎 服务器网络支撑软件 华中科技大学 电子与信息工程系 2020/10/16 11 10.2.2 ODBC的体系结构(五) 基于网关机制的多层驱动程序的 ODBC结构 OD BC 数据库应用程序 客户端网络支撑软件 客户浏览器 (网络) 数据库引擎 WW W 服务器 数据库 驱动程序管理器 数据库网关 服务器网络支撑软件 驱动程序 数据库服务器 华中科技大学 电子与信息工程系 2020/10/16 12 10.2.2 ODBC的体系结构(六) 用户数据源:用户创建的数据源,称为“用户数 据源”。此时只有创建者才能使用,并且只能在 所定义的机器上运行。任何用户都不能使用其他 用户创建的用户数据源。 系统数据源:所有用户和在 Windows NT下以服务 方式运行的应用程序均可使用系统数据源。 文件数据源:文件数据源是 ODBC 3.0以上版本增 加的一种数据源,可用于企业用户, ODBC驱动程 序也安装在用户的计算机上。 华中科技大学 电子与信息工程系 2020/10/16 13 10.2.3 ODBC的特性 ODBC是一个调用层的接口 ODBC定义了标准的 SQL语法 ODBC提供一个驱动程序管理器来管理并同时访问 多个 DBMS系统 华中科技大学 电子与信息工程系 2020/10/16 14 10.3.1 ODBC应用程序的基本流程 分配环境句柄 分配连接句柄 与服务器连接 分配语句句柄 初始化 释放环境句柄 S QL 处理 释放语句句柄 语句处理和检索部分 与服务器断开 释放连接句柄 终止 相应的函数名 S QLA ll o c En v S QLA ll o c Co n n e c t S QL Co n n e c t S QLA ll o c S tm t S QL Ex e c Dire c t (直接执行函数) S QL P re p a re (语句预备函数) S QL Ex e c u te (语句执行函数) S QL Disc o n n e c t S QL F re e En v S QL F re e Co n n e c t S QL F re e S t m t 华中科技大学 电子与信息工程系 2020/10/16 15 10.3.2 ODBC句柄(一) 应用程序 环境句柄 (只有一个) 连接句柄 连接句柄 连接句柄 语句句柄 语句句柄 语句句柄 华中科技大学 电子与信息工程系 2020/10/16 16 10.3.2 ODBC句柄(二) henv hdbc hstmt 环境句柄 (定义 DB应用环境 ) 连接句柄 (定义一个 DB连接 ) 语句句柄 (定义一个 SQL语句 ) 华中科技大学 电子与信息工程系 2020/10/16 17 10.3.3 数据源的连接与断开 (1) 连接数据源的函数 连接数据源的函数有三个,但最有效、最通用的是下面一 种格式: SQLConnect( hdbc, szDSN, cbDSN, szUID, cbUID, szAuthStr, cbAuthStr)。其中,参数 hdbc是一 个已经分配的连接分配; 参数 szDSN和 cbDSN分别表示系统所要连接的数据源名称及 其长度; 参数 szUID和 cbUID分别表示用户标识符及其长度; 参数 szAuthStr和 cbAuthStr分别表示权限字符串及其长度。 (2) 断开数据源函数 其格式如下: SQLDisconnect( hdbc)其中,参数 hdbc是 要断开的连接句柄。 华中科技大学 电子与信息工程系 2020/10/16 18 10.3.4 SQL语句的执行(一) main() HENV henv; *说明 henv是一个环境型变量 * HDBC hdbc; *说明 hdbc是一个连接型变量 * HSTMT hstmt; *说明 hstmt是一个语句句柄变量 * RETCODE retcode; *说明 retcode是一个返回变量 * SQLAllocEnv( &henv); *分配一个环境句柄 * SQLAllocConnect( henv, &hdbc); *分配一个连接句柄 * SQLConnect( hdbc, 学生 , SQL_NTS, NULL, 0, NULL, 0); *连接数据源 * SQLAllocStmt( hdbc, &hstmt); *分配一个语句句柄 * retcode=SQLExecDirect( hstmt, SELECT * FROM S, SQL_NTS); *执行语 句 * *结果集处理 * SQLDisconnect( hdbc); *断开数据源 * SQLFreeStmt( hstmt, SQL_DROP) *释放一个语句句柄 * SQLFreeConnect( hdbc); *释放一个连接句柄 * SQLFreeEnv( henv); *当应用完成后,释放环境句柄 * 华中科技大学 电子与信息工程系 2020/10/16 19 10.3.4 SQL语句的执行(二) 有准备地执行 SQL语句的函数 (1) SQL语句预备函数 其格式如下: SQLPrepare( hstmt, szSqlStr, cbSqlStr)。其中,参数 hstmt是一个有效的语句句柄, 参数 szSqlStr和 cbSqlStr分别表示将要执行的 SQL语句 的字符串及其长度。 (2) SQL语句执行函数 其格式如下: SQLExecute( hstmt)。其中参数 hstmt 是一个有效的语句句柄。 华中科技大学 电子与信息工程系 2020/10/16 20 10.3.5 查询结果的获取 while( RETCODE_IS_SUCCESSFUL( retcode) retcode=SQLFetch( hstmt); if( RETCODE_IS_SUCCESSFUL( retcode) do rcGetData = SQLGetData( hstmt, 1, SQL_C_CHAR, szBuffer, sizeof( szBuffer), &cbValue); DISPLAY_MEMO( szBuffer, cbValue); *显示 * while( rcGetData!=SQL_NO_DATA_FOUND); 华中科技大学 电子与信息工程系 2020/10/16 21 10.4 ODBC的符合性级别 ODBC使得我们能够访问任何数据源而不必修改应用程 序。但在实际使用中存在着一些问题。由于 DBMS厂商提供 的 SQL不同(不是指形式上,而是功能上有多有少),有 的 SQL功能在某厂商的 DBMS上没有实现,则 ODBC就不可能 为应用程序完成这一功能;有的 SQL功能是 SQL标准新增加 的,而 DBMS厂商没有及时跟上,则 ODBC同样也无法完成新 功能。对于具体 DBMS不支持的 SQL功能, DBMS要通报给应 用程序。而从 ODBC本身来讲,它最好支持完全的 SQL,这 样才能做到应用程序不用修改就可以访问不同的数据源。 华中科技大学 电子与信息工程系 2020/10/16 22 10.4.1 API符合性的三个级别 核心级 API 1级 API 2级 API 华中科技大学 电子与信息工程系 2020/10/16 23 10.4.2 SQL符合性的三个级别 最小级 SQL 核心级 SQL 扩展级 SQL 华中科技大学 电子与信息工程系 2020/10/16 24 10.4.3 ODBC API与 SQL CLI之间的协 调 Microsoft公司于 1991年 11月提出了一个关于 ODBC的体 系结构,并在 1992年发布了 ODBC 1.0规范,随后以软 件开发工具包( SDK)形式出版并发行了这种面向 SQL 的 API。 数据库公司国际财团 SQL Access Group( SAG)和标准 化组织 X Open在 1992年联合出版了一个规范,该规范 定义了调用级界面( Call Level Interface), CLI) 标准。 1993年, Microsoft公司推出了 ODBC 2.0规范,并于 1994年出版了 ODBC 2.0 SDK。 Microsoft在 1998年出版的 ODBC 3.0规范中,作了一些 修改,目的是更进一步接近 SQL标准。 SQL3(即 SQL99)的第三部分介绍了 SQL CLI。 华中科技大学 电子与信息工程系 2020/10/16 25 10.4.4 典型的数据库应用系统开发工 具 PowerBilder Delphi Visual Basic Developer 2000 华中科技大学 电子与信息工程系 2020/10/16 26 10.5.1 Java简介 Java语言 Java的工作方式 Java的特性 Java的应用程序和小程序 华中科技大学 电子与信息工程系 2020/10/16 27 10.5.2 JDBC的提出 JDBC是执行 SQL语句的 Java API。 JDBC是“ Java DataBase Connectivity” ( JDBC数据库连接 )的缩写。 JDBC原来 是 Java Soft公司设计的 Java语言的数据库访问 API。最初 的 Java语言本身并没有访问 DB的能力, JDBC是第一个支持 Java语言的标准的数据库 API。 1996年夏天, Sun公司推出 了 JDBC工具。现在 JDBC驱动程序已经被大多数主流数据库 所用。 JDBC由一组用 Java语言编写的类与接口组成。 JDBC扩充了 Java的应用范围,用 Java与 JDBC API可以发布 一种包含远程数据库信息的 Applet(小应用程序)的 WWW 页面。 华中科技大学 电子与信息工程系 2020/10/16 28 10.5.3 JDBC的基本功能 建立与数据库的连接 发送 SQL语句 处理结果 华中科技大学 电子与信息工程系 2020/10/16 29 10.5.4 JDBC与 CGI的比较 J a v a 应用程序 CG I 脚本W e b 服务器 数据库 J a v a 应用程序 JD BC 服务器 数据库 华中科技大学 电子与信息工程系 2020/10/16 30 10.6.1 JDBC数据库设计方法 J av a 应用程序 ( ap p li catio n ) J DB C 客户机 DB MSDB 服务器 DB MS 专用协议 应用程序 ( ) 客户机 应用程序 ( ) 应用程序 ( ) 客户机 服务器服务器 专用协议 J a va W e b 服务 JD B C 应用服务器 DB MSDB 服务器 DB MS 专用协议 J av a 小应用程序 ( ap p let ) 客户机 HTT P R MI 调用 服务 应用服务器 服务器 专用协议 服务 应用服务器 服务服务 应用服务器 服务器服务器 专用协议 小应用程序 ( ) 客户机 调用 小应用程序 ( ) 客户机 小应用程序 ( ) 客户机 调用 华中科技大学 电子与信息工程系 2020/10/16 31 10.6.2 保持一致性的措施 允许将任何查询字符串传递给基础 DBMS驱 动器,这意味着应用可以自动地使用尽可 能多的 SQL功能,但这会使某些 DBMS系统接 收到某种错误的查询。 采用 ODBC风格的方法,提供表示几种常见 的 SQL差别的标准 JDBC语法。 对于复杂应用,借助于 DatabaseMetaData 接口,提供关于 DBMS的描述性信息,使应 用能适应每个 DBMS的需求与能力。 华中科技大学 电子与信息工程系 2020/10/16 32 10.6.3 JDBC驱动程序 本地库 Java实现 网络协议 Java驱动程序 本地协议 Java驱动程序 JDBC-ODBC桥驱动程序 华中科技大学 电子与信息工程系 2020/10/16 33 10.7.1 JDBC API的目标 为 Java定义一个“调用层”( call-level) 的 SQL接口 遵循 SQL2标准 JDBC应建立在现存的数据库接口上 必须保证这个接口与 Java系统的其他部分 保持一致 使基本的 API尽量简单 尽量保持强大的、静态的类型 华中科技大学 电子与信息工程系 2020/10/16 34 10.7.2 JDBC API接口概貌 JDBC接口分为两个层次,一个是面向程序开发人员的 JDBC API,另外一个是底层的 JDBC Driver API。一般来说, 应用程序层是数据库应用程序开发者使用的,驱动程序层 是驱动厂家实现的。对于应用程序开发者来说只要求 JDBC API所提供的接口能保证与 JDBC相符合。而对于驱动程序 层则要负责开开发数据库接口和支持 JDBC应用程序层调用 的编码。每一个驱动程序层都必须实现 4个组要的接口, 应用程序层和驱动程序层用一个类桥接。这 4个接口分别 是 Driver、 Connection、 Statement和 ResultSet。 Driver 接口建立与数据库的连接,大多数应用程序中, Driver接 口功能是通过驱动程序管理器( DriverManager)类实现 的,提供给使用者的另一层的抽象。 华中科技大学 电子与信息工程系 2020/10/16 35 小 结(一) ODBC和 JDBC是当今 C/S数据库环境中使用广泛也是 著名的中间件。 目前,使用 ODBC API几乎可以将所有平台上的关 系型数据库连接起来。 ODBC的体系结构由四个部 分构成。其中驱动程序管理器和 DBMS的驱动程序 都是动态链接库( DLL),由一系列函数构成。 ODBC接口由一系列调用函数组成,应用程序分成 初始化、 SQL处理和终止三个部分,每一部分使用 ODBC函数都有严格的规定和顺序。 ODBC API和 SQL CLI这两个标准正在朝统一的方向迈进。 华中科技大学 电子与信息工程系 2020/10/16 36 小 结(二) JDBC是基于 ODBC的 SQL Java接口,它既保持了 Java语言自身的特点,也保留了 ODBC的基本设计 功能,熟悉 ODBC的程序员可以非常容易地学习 JDBC。 JDBC是一种“低级”的接口,它直接调用 SQL命令,但又可以作为构造高级接口和工具的基 础。 ODBC和 JDBC的出现,为数据库的发展指明了道路, 会在今后的 Web数据库发展中运用得越来越广泛。 同时, ODBC和 JDBC技术的发展将影响到 Web数据库 的发展,甚至可能成为下一代技术的主流。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!