湖南工学院计算机系.ppt_第1页
湖南工学院计算机系.ppt_第2页
湖南工学院计算机系.ppt_第3页
湖南工学院计算机系.ppt_第4页
湖南工学院计算机系.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理,湖南工学院计算机系,数据库原理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(/建立与数据库的接,数据库原理,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的协助下,用JDBCODBC桥接器实现。那么,为什么需要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.连接件客户机与服务器之间的连接是通过网络连接实现的,对应用系统来说这种连接更多的是一种软件通信工程(如网络协议等)。三层CS结构如图7-5所示,它将应用功能分成表示层、功能层和数据层三部分,分别由客户机应用服务器和数据库服务器实现。其解决方案是:对这三层进行明确分割,并在逻辑上使其相互独立。,数据库原理,1.表示层表示层由客户机实现。表示层是应用的用户接口部分;它担负着用户与应用间的对话功能。它接受用户的输入请求,显示应用输出的数据。2.功能层功能层由应用服务器实现。功能层相当于应用的本体,它是应用逻辑处理的核心,是具体业务的实现。表示层和功能层之间的数据交互要尽可能简洁。应用服务器一般和数据库服务器有密切的数据交往。3.数据层数据层就是DBMS,驻留在数据服务器上;,数据库原理,负责管理对数据库数据的存取操作。它接受应用服务器提出的SQL请求,完成数据的存储、访问和完整性约束检查等。DBMS必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统(RDBMS)。因此,一般从功能层传送到数据层的要求大都使用SQL语言。与二层CS结构相比,三层CS结构有明显的优点:伸缩性好,具有灵活的硬件系统构成;提高了程序的可维护性,各层相对独立,可以并行开发;有利于严密的安全管理。,数据库原理,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语法:位于标签内的程序代码;ServerSideInclude语句:用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基于XOpen的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桥。理论上,桥可以访问任何常见的数据库产品。,数据库原理,7.5数据库系统的多层体系结构,在构建多层应用软件体系时应当考虑到以下问题:开发平台的选择。中间件的选择。面向对象技术的使用。安全问题的解决。,数据库原理,实现多层结构时经常需要使用的重要的Java技术包括:JavaBeansCOR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论