第7章数据库应用结构与数据访问接口•7.1数据库应用结构•7.2数据访问接口7.1数据库应用结构•数据库应用结构是指数据库运行的软、硬件环境。通过这个环境,用户可以访问数据库中的数据。•四种最常见的应用结构:•集中式结构•文件服务器结构•客户/服务器结构•互联网应用结构7.1.1集中式应用结构应用程序数据库大型机按键信息终端字符终端1终端N终端2客户端优点是可以实现集中管理,安全性好。缺点是费用昂贵,不能真正划分应用程序的逻辑。7.1.2文件服务器结构•优点在于实现的费用比较低廉,而且配置非常灵活。缺点是,由于所有的应用处理都要在客户端完成,因此客户端的个人计算机必须要有足够的能力。应用程序数据库网络文件服务器文件文件请求工作站1工作站N工作站2客户端应用程序应用程序7.1.3客户/服务器结构•优点:应用程序或应用逻辑可以根据需要划分在服务器和客户工作站中,同时减少了网络流量。应用程序数据库服务器数据请求结果工作站1工作站N工作站2客户端应用程序应用程序7.1.4互联网应用结构•优点:最终用户应用软件的安装和维护都非常简单,客户端不再需要安装、配置应用软件的工作。这些工作只需在Web服务器上完成,从而减少客户端与服务器端软件配置的不一致以及不同版本应用软件所带来的问题。客户端应用程序数据库数据库服务器页面请求页面个人机1个人机N个人机2数据请求结果Web服务器浏览器浏览器浏览器7.2数据访问接口•7.2.1ODBC•7.2.2OLEDB和ADO•7.2.3ADO为OLEDB带来了什么?7.2.1ODBC•ODBC(开放的数据库互连,OpenDataBaseConnectivity)是Microsoft公司开发的一套开放的数据库系统应用程序接口规范,•它为应用程序提供了一套高层调用接口规范和基于动态链接库的运行支撑环境。•使用ODBC开发数据库应用程序时,应用程序使用的是标准的ODBC接口和SQL语句,数据库的底层操作由各个数据库管理系统的驱动程序完成。ODBC体系结构DBMS1.SQL(专用)DBMSm.SQL(专用)…ODBCAP1ODBCAPnODBCODBCAPIDriverDBMS1DBMSmDB1DBmODBC.SQL(通用)驱动程序管理器SQLServer驱动程序Oracle驱动程序SQLServer数据源Oracle数据源建立ODBC数据源•利用控制面板建立•ODBC数据源类型•用户数据源•系统数据源•文件数据源7.2.2OLEDB和ADO•OLEDB是一系列直接处理数据的接口。它建立在COM之上,是Microsoft提供的一种在不同数据进程间进行通信的方式。•ADO和OLEDB实际上是同一种技术的两种表现形式。OLEDB提供的是通过COM接口的底层数据接口,而ADO提供的是一个对象模型,它简化了应用程序中使用OLEDB获取数据的过程。•OLEDB定义了三种类型的数据访问组件:•数据提供者•数据消费者•服务组件OLEDB库中包含的核心组件•DataConversionLibrary:支持从一种数据类型转换到另一种数据类型。•RowPosition对象:保留记录集中对当前行的跟踪。此功能允许其他组件约定它们当前使用的是什么数据。•RootEnumerator:允许搜索已知OLEDB数据提供者的注册信息。•IdataInitialize接口:包含允许使用数据源的功能。•IDBPromptInitialize接口:包含允许应用程序使用DataLink属性对话框的功能。使用ADO和OLEDB获取数据的体系结构前端应用程序ADOOLEDB提供者提供者提供者提供者VSAM/ISAME-mail消息目录服务ODBC提供者文件系统关系数据库7.2.3ADO为OLEDB带来了什么?•ADO是建筑在OLEDB之上的高层接口集。•ADO是介于OLEDB底层接口和应用程序之间的接口,它避免了开发人员直接使用OLEDB底层接口的麻烦。•ADO简化了OLEDB模型。OLEDB是一个面向API的调用,ADO在OLEDB上面设置了另外一层。•ADO层是面向对象的API,它只需开发者掌握几个简单对象的方法和属性,比在OLEDBAPI中直接调用函数要简单的多。ADO对象模型ConnectionErrorCommandParameterRecordsetFieldPropertyPropertyPropertyProperty各对象作用•Connection对象:包含了与数据源连接的信息。•Command对象:包含了与一个命令相关的信息。•Recordset对象:包含了从数据源得到的记录集。•Field对象:包含了记录集中的某个记录的字段信息。•Property对象:ADO对象的属性。•Parameter对象:与命令对象相关的参数。•Error对象:包含了由数据源产生的Errors集合中的扩展的错误信息。•JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。•一、JDBC的用途•简单地说,JDBC可做三件事:与数据库建立连接、发送SQL语句并处理结果。下列•代码段给出了以上三步的基本示例:•Connectioncon=DriverManager.getConnection(jdbc:odbc:wombat,login,•“password”);//DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。DriverManager类跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立链接•Statementstmt=con.createStatement();//创举一个statement用于执行sql语句•ResultSetrs=stmt.executeQuery(“SELECTa,b,cFROMTable1”);//为了执行Statement对象,被发送到数据库的SQL语句将被作为参数提供给Statement的方法,ResultSet往往包含的是查询的结果集,此接口抽象运行了SELECT语句的结果提供了逐行访问结果的方法•while(rs.next()){•intx=rs.getInt(a);•Strings=rs.getString(b);•floatf=rs.getFloat(c);•}•