




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理 湖南工学院计算机系 数据库原理PrinciplesofDatabase第7章数据库系统的访问 数据库原理 第7章数据库系统的访问 本章要点 章主要对几种常见的数据库访问技术 如固有调用 ODBC JDBC OLEDB DAO ADO ADO NET以及基于XML的数据库访问等 进行介绍 数据库原理 第7章数据库系统的访问 7 1数据库的访问接口 7 2客户机 服务器模式的数据库系统 7 3浏览器 服务器模式的数据库系统 7 4JAVA访问数据库的技术 7 5数据库系统的多层体系结构 数据库原理 7 1数据库的访问接口 所谓访问接口是指分布式环境中保证操作系统 通信协议 数据库等之间进行对话 互操作的软件系统 访问接口的作用是保证网络中各部件 软件和硬件 之间透明地连接 即隐藏网络部件的异构性 尤其保证不同网络 不同DBMS和某些访问语言的透明性 即下面三个透明性 网络透明性 服务器透明性 语言透明性 数据库原理 应用系统访问数据库的接口方式有多种 本节介绍固有调用 ODBC和JDBC 7 1 1固有调用每个数据库引擎都带有自己的包含用于访问数据库的APl函数的动态链接库DLL 应用程序可利用它存取和操纵数据库中的数据 如果应用程序直接调用这些动态链接库 就说它执行的是 固有调用 因为该调用对于特定的数据库产品来说是 固有 专用 的 固有调用接口的优点是执行效率高 由于是 固有 编程实现较简单 但它的缺点也是很严重的 不具通用性 数据库原理 7 1 2ODBCODBC是 开放数据库互连 OpenDatabaseConnectivity 的简称 ODBC是Microsoft公司提出的 当前被业界广泛接受的应用程序通用编程接口 API 标准 它以X Open和ISO IEC的调用级接口 CLI 规范为基础 用于对数据库的访问 我们可以用如下图示7 1来说明ODBC概念 ODBC实际上是一个数据库访问函数库 使应用程序可以直接操纵数据库中的数据 数据库原理 图7 1ODBC概念图 数据库原理 1 ODBC结构ODBC结构由四个主要成分构成 应用程序 驱动程序管理器 驱动程序 数据源 其构成及体系结构说明如下 应用程序 驱动程序管理器 DriverManager 驱动程序 数据源其体系结构图如下图7 2所示 数据库原理 图7 2ODBC的体系结构图 数据库原理 ODBC的API一致性级别分为三级 核心级 扩展1级和扩展2级 核心级包括最基本的功能 包括分配 释放环境句柄 数据库连接 执行SQL语句等 核心级函数能满足最基本的应用程序要求 扩展1级在核心级的基础上增加了一些函数 通过它们可以在应用程序中动态地了解表的模式 可用的概念模型类型及它们的名称等 扩展2级在扩展1级的基础上又增加了一些函数 通过它们可以了解到关于主关键字和外来关键字的信息 表和列的权限信息 数据库中的存储过程信息等 并且还有更强的游标和并发控制功能 数据库原理 2 ODBC接口函数按功能 分配和释放内存 连接 执行SQL语句 接收结果 事务控制 错误处理和其他事项 ODBC的基本流程控制是 初始化SQL处理终止 在初始化阶段分配环境 包括分配环境句柄 连接句柄和语句句柄 与服务器连接 在SQL处理阶段执行SQL语句和检索操作 在终止阶段释放语句句柄 环境句柄 连接句柄 与服务器断开 数据库原理 具体用SQL语句来执行实现数据源的连接与断开代码片段如下SQL语句的执行 main ASDasd 说明asd是一个环境型变量 LZJlzj 说明lzj是一个连接型变量 JDKjdk 说明jdk是一个语句句柄变量 RETCODEretcode 说明retcode是一个返回变量 SQLAllocEnv asd 分配一个环境句柄 SQLAllocConnect asd lzj 分配一个连接句柄 SQLConnect lzj 学生 SQL NTS NULL 0 NULL 0 连接数据源 SQLAllocStmt lzj jdk 分配一个语句句柄 retcode SQLExecDirect jdk SELECT FROMS SQL NTS 执行语句 结果集处理 SQLDisconnect lzj 断开数据源 SQLFreeStmt jdk SQL DROP 释放一个语句句柄 SQLFreeConnect lzj 释放一个连接句柄 SQLFreeEnv asd 当应用完成后 释放环境句柄 数据库原理 4 有准备地执行SQL语句的函数 SQL语句预备函数其格式如下 SQLPrepare jdk szSqlStr cbSqlStr 其中 参数hstmt是一个有效的语句句柄 参数szSqlStr和cbSqlStr分别表示将要执行的SQL语句的字符串及其长度 SQL语句执行函数其格式如下 SQLExecute jdk 其中参数jdk是一个有效的语句句柄 SQL语句查询结果的获取 while RETCODE IS SUCCESSFUL retcode retcode SQLFetch jdk 数据库原理 if RETCODE IS SUCCESSFUL retcode do rcGetData SQLGetData jdk 1 SQL C CHAR szBuffer sizeof szBuffer cbValue DISPLAY MEMO szBuffer cbValue 显示 while rcGetData SQL NO DATA FOUND 数据库原理 7 1 3JDBC1 JDBC概述JDBC JavaDatabaseConnectivity 是一种可用于执行SQL语句的JavaAPI ApplicationProgrammingInterface 应用程序设计接口 它由一些Java语言编写的类 接口组成 JDBC给数据库应用开发人员 数据库前台工具开发人员提供了一种标准的应用程序设计接口 使开发人员可以使用纯Java语言编写完整的数据库应用程序 而且因为JDBC基于X Open的SQL调用级接口 CLI 这是ODBC的基础 JDBC可以保证JDBCAPI在其他通用SQL级API 包括ODBC 之上实现 这意味着所有支持ODBC的数据库不加任何修改就能够与JDBC协同合作 数据库原理 通过使用JDBC 开发人员可以很方便地将SQL语句传送给几乎任何一种数据库 Java具有健壮 安全 易用等特性 而且支持自动网上下载 本质上是一种很好的数据库应用的编程语言 它所需要的是Java应用如何同各种各样的数据库连接 JDBC正是实现这种连接的关键 DBC扩展了Java的能力 如使用Java和JDBCAPI就可以公布一个Web页 页面中带有能访问远端数据库的Applet 数据库原理 2 JDBC的基本功能JDBC具有如下三个基本功能 同数据库建立连接 向数据库发送SQL语句 处理数据库返回的结果 下面我们以一段JAVA程序示例介绍这三个主要功能 connectioncon DriveManager GetConnection jdbc odbc people examle password 建立与数据库的接 数据库原理 Statementstmt con createstatement 建立语句对象ResultSetrs stmt executeQuery SELECTa b cFROMTable1 运行SQL语句 返回数据 库操作结果while rs next intx getInt a 获得数据库表记录a项的值strings getstring b 获得数据库表记录b项的值floatf getFloat c 获得数据库表记录c项的值 数据库原理 3 JDBCAPI的特点 在SQL水平上的API 与SQL的一致性那么JDBC是怎么保证与SQL一致性的呢 JDBC允许使用从属于DBMS的系统的任何查询语句 一般认为ANSISQL112EntryLever标准功能比较完备 并且 是被广泛支持 可在现有数据库接口之上实现 提供与其他Java系统一致的Java界面 JDBC的基本API在最大可能上简单化 数据库原理 使用静态的通用数据类型 使一般情形简单化 多种方法 多种功能4 JDBC与ODBC和其他API的比较 JDBC一种底层的APIJDBC是一种底层API 这意味着它将直接调用SQL命令 JDBC完全胜任这个任务 而且比其他数据库互联更加容易实现 同时它也是构造高层API和数据库开发工具的基础 高层API和数据库开发工具应该是用户界面更加友好 使用更加方便 更易于理解的 但所有这样的API将最终被翻译为象JDBC这样的底层API 目前两种基于JDBC的高层API正处在开发阶段 数据库原理 SQL语言嵌入Java的预处理器 实现从关系数据库到Java类的直接映射 JDBC和ODBC及其他API的比较为什么不直接从Java中直接使用ODBC呢 因为可以从Java中使用ODBC 但最好在JDBC的协助下 用JDBC ODBC桥接器实现 那么 为什么需要JDBC呢 要回答这个问题 有这么几个方面 ODBC并不适合在Java中直接使用 其次 完全精确地实现从C代码ODBC到JavaAPI写的ODBC的翻译也并不令人满意 数据库原理 ODBC并不容易学习 它将简单特性和复杂特性混杂在一起 甚至对非常简单的查询都有复杂的选项 而JDBC刚好相反 它保持了简单事物的简单性 但又允许复杂的特性 JDBC这样的JavaAPI对于纯Java方案来说是必须的 总而言之 JDBCAPI是能体现SQL最基本抽象概念的 最直接的Java接口 它建构在ODBC的基础上 因此 熟悉ODBC的程序员将发现学习JDBC非常容易 JDBC两层模型和三层模型 数据库原理 JDBC支持两层模型 如图7 4 也支持三层模型访问数据库 图7 4两层结构的客户 服务方式 数据库原理 如图7 5所示 在三层模型中 命令将被发送到服务的 中间层 而 中间层 将SQL语句发送到数据库 数据库处理SQL语句并将结果返回 中间层 然后 中间层 将它们返回用户 图7 5三层结构的客户 服务方式 数据库原理 7 2客户机 服务器模式的数据库系统 客户机服务器模式 简称C S 是以网络环境为基础 将计算应用有机地分布在串台寸算机中的结构 其中的一个或多个计算机规划服务 称为服务器 Servers 其他的计算机则接受服务 称为客户机 Clients 从用户的角度看 客户机 服务器系统基本由五个部分组成 客户机 服务器 客户和服务器之间的连接 数据库原理 1 客户机客户机是指面向最终用户的接口或应用程序 它通过向服务器请求数据服务 然盾做必要的处理 将结果显示给用户 客户机耙大部分数据处理工作留给服务器 让服务器的高档硬件和软件充分施展它们的特长 并且减少了网络上的信息传输量 2 服务器服务器的主要功能是建立进程和网络服务地址 监听用户的调用 处理客户的请求 将结果返回给客户和释放与客户的连接 服务器可以是大型机 中小型机密微机工作站 服务器要求配有高性能处理器 数据库原理 3 连接件客户机与服务器之间的连接是通过网络连接实现的 对应用系统来说这种连接更多的是一种软件通信工程 如网络协议等 三层C S结构如图7 5所示 它将应用功能分成表示层 功能层和数据层三部分 分别由客户机 应用服务器和数据库服务器实现 其解决方案是 对这三层进行明确分割 并在逻辑上使其相互独立 数据库原理 1 表示层表示层由客户机实现 表示层是应用的用户接口部分 它担负着用户与应用间的对话功能 它接受用户的输入请求 显示应用输出的数据 2 功能层功能层由应用服务器实现 功能层相当于应用的本体 它是应用逻辑处理的核心 是具体业务的实现 表示层和功能层之间的数据交互要尽可能简洁 应用服务器一般和数据库服务器有密切的数据交往 3 数据层数据层就是DBMS 驻留在数据服务器上 数据库原理 负责管理对数据库数据的存取操作 它接受应用服务器提出的SQL请求 完成数据的存储 访问和完整性约束检查等 DBMS必须能迅速执行大量数据的更新和检索 现在的主流是关系数据库管理系统 RDBMS 因此 一般从功能层传送到数据层的要求大都使用SQL语言 与二层C S结构相比 三层C S结构有明显的优点 伸缩性好 具有灵活的硬件系统构成 提高了程序的可维护性 各层相对独立 可以并行开发 有利于严密的安全管理 数据库原理 7 3浏览器 服务器模式的数据库系统 7 3 1Web数据库的体系结构浏览器 服务器模式的数据库体系是利用Web服务器和ActiveServerPages 简称ASP 作为数据库操作的中间层 将客户机 服务器模式的数据库结构与Web密切结合 从而形成具有三层或多层Web结构的浏览器 服务器模式的数据库体系 见图1 前端采用基于瘦客户机的浏览器技术 Navigator或IE 通过服务器 Microsoft的IIS或NetscapeFastTrack 及中间件访问数据库 中间件驻留在WEB服务器上 负责管理Web服务器和 数据库原理 数据库服务器之间的通信并提供应用程序服务 数据库服务器管理数据库中的数据 客户发出HTTP请求 Web服务器以HTML页面向用户返回查询结果 ClientBrowser WebServer MiddleWare DataBaseServer HTTP请求 HTML页面 图7 6Web数据库技术体系结构 数据库原理 由此可见 WebServer承担了传接任务中的很大一部分 而Client端却是很少的一部分 这就是所谓的 胖服务器 瘦客户端 模式 7 3 2技术实现为了能对数据库实现安全管理 必须对相应的用户指定相应的权限 如 只读 可读 写等 所以在编程中应对某一用户名进行权限设置 ASP是一个服务器的脚本环境 在这里可以生成和运行动态的 交互的 高性能的Web服务器应用程序 ASP能够把HTML Script ActiveX组件等有机结合在一起 形成一个能够在服务器上运行的应用程序 并把按用户要求专门制作的标准HTML页面送给客户端浏览器 数据库原理 基于ASP访问Web数据库的工作原理如下 图7 7基于ASP访问Web数据库的工作原理图 数据库原理 ASP页面的结构包括下面四个部分 普通的HTML文件标记 VBScript JavaScript或Perl脚本语言 ASP语法 位于标签内的程序代码 Server SideInclude语句 用 Include语句嵌入其他Web页面 ASP文件是以 asp为扩展名的 代替先前的 html或 htm ASP文件应用程序不仅仅只有一个 asp文件 它还包括Global asa文件 inc文件以及其它一些资源文件 ASP除了可使用VBScript JavaScript等脚本语言外 它还提供了六个内建对象 Request Response ObjectContext Server Session Application 它们组成了ASP的基本框架 ADO ActiveXDataObject 是ASP内置组件 ADO存取数据源通常所必须进行的工作如图7 8所示 每个步骤并不都是绝对必要的 视情况自行增减 数据库原理 图7 8ADO程序开发模式 数据库原理 7 4JAVA访问数据库的技术 7 4 1JDBC技术JDBC JavaDatabaseConnectivity 是SUN公司针对Java语言提出的与数据库连接的API标准c与ODBC类似 JDBC是特殊类型的API 这些APl支持对数据库的连接和基本的SQL功能 包括建立数据库连接 执行SQL语句 处理返回结果等 与ODBC不同的是 JDBC为单一的Java语言的数据库接口 数据库原理 JDBC的结构同样有一个JDBC驱动程序管理器作为Java应用程序与数据库的中介 它把对数据库的访问请求转换和传送给下层的JDBC Net驱动程序 或者转换为对数据库的固有调用 JDBC基于X Open的SQL调用级接口 CLI 这是ODBC的基础 JDBC可以保证JDBCAPI在其他通用SQL级API 包括ODBC 之上实现 JDBC主要有两种接口 分别是面向程序开发人员的JDBCAPI和面向底层的JDBCDriverAPI JDBCAPl支持数据库访问有两种方式 两层模式和三层模式 数据库原理 7 4 2JSP的数据库访问技术JSP JavaServerPages 是由SUN公司倡导 许多公司参与建立的一种动态网页技木际准 在传统的网页HTML文件 btm html 中加入Java程序片段 Scripfiet 和JSP标记 Tag 就构成了JSP网页 jsp JSP可以轻松地与多种数据库相连 通过JSP网页可以添加 删除 修改和浏览数据库中的数据 JSP连接数据库可以通过两种方法 一种是通过JDBCDriver 另一种是通过JDBC ODBC桥 数据库原理 在对数据库访问方面 ASP使用ODBC通过ADO连接数据库 而JSP通过JDBC技术连接数据库 目标数据库采用一个JDBC驱动程序 使得Java可以用标准的方式访问数据库 JDBC不使用服务器端的数据源 只要有JDBC驱动程序 Java就可以访问数据库了 如果一个特定的数据库没有JDBC驱动程序 而只有ODBC驱动程序 Java也提供JDBC ODBC桥来将JDBC调用转化为ODBC调用 所有的Java编译器都带有一个免费的JDBC ODBC桥 理论上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《企业顾问聘用合同》模板
- 退休教师座谈会校长致辞:芳华虽逝情不减桃李满园共此心
- 计算机组成原理 课件 2 运算方法和运算部件
- 巡视工作业务培训课件
- 巡察感悟课件
- 岫岩安全技能培训中心课件
- 输电线路砍剪树木课件
- 尾板车安全操作培训总结课件
- 9.1.2 第1课时 余弦定理
- 双方轮流抚养子女离婚协议:监护权与教育责任明确
- 人工气道气囊压力监测
- 外科品管圈提高外科腹部手术后早期下床的执行率课件
- 消毒记录登记表14079
- 东芝电梯CV180故障诊断
- GB/T 31186.1-2014银行客户基本信息描述规范第1部分:描述模型
- 生物质资源及其开发利用课件
- 调查研究方法与调研报告写作讲义课件
- 卡西欧PROTREKPRW-6000使用手册
- 关于开具无犯罪记录证明的函(模板)
- 初中综合实践课程
- 大金D型水冷螺杆机说明书
评论
0/150
提交评论