欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据库访问技术介绍.ppt

    • 资源ID:5985850       资源大小:317KB        全文页数:39页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库访问技术介绍.ppt

    2023/9/11,第8章数据库访问技术介绍,本章要点,ODBC工作原理及使用方法ADO模型的层次结构使用ADO技术访问数据库的方法ADO.Net的体系结构的组成及工作原理,2023/9/11,6.1 ODBC的使用,6.1.1 ODBC概述 ODBC(Open Database Connectivity,开放数据库互连)是一个数据库编程接口,它是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。应用程序可以通过调用ODBC的接口函数访问不同类型的数据库,一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。,2023/9/11,也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。一个完整的ODBC由下列几个部件组成:应用程序(Application)。ODBC管理器(Administrator):该程序主要任务是管理安装的ODBC驱动程序和管理数据源。驱动程序管理器(Driver Manager):驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。ODBC API。ODBC 驱动程序:是一些DLL,提供了ODBC和数据库之间的接口。数据源:数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。,2023/9/11,各部件之间的关系如图6-1所示。,图6-1 ODBC部件关系图,2023/9/11,应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。6.1.2 ODBC数据源的配置 ODBC数据库驱动程序使用Data Source Name(DSN)定位和标识数据库,DSN 包含数据库配置、用户安全性和定位信息,且可以获取 Windows NT 注册表项中或文本文件的表格。通过 ODBC,可以创建三种类型的 DSN:用户DSN、系统DSN或文件DSN。,2023/9/11,下面介绍一下这几个名词。DSN:根据MICROSOFT的官方文档,DSN的意思是“应用程序用以请求一个连到ODBC数据源的连接(CONNECTION)的名字”,换句话说,它是一个代表ODBC连接的符号。它隐藏了诸如数据库文件名、所在目录、数据库驱动程序、用户ID、密码等细节。因此,当建立一个连接时,你不用去考虑数据库文件名、它在哪儿等等,只要给出它在ODBC中的DSN即可。用户DSN:是为特定用户建立的DSN,只有建立这个DSN的用户才能看到并使用它。系统DSN:这种DSN可以被任何登录到系统中的用户使用。上面的两种情况,DSN的细节都储存在系统的注册表中。文件 DSN:这种 DSN用于从文本文件中获取表格,提供了对多用户的访问。,2023/9/11,6.2 ADO的使用,6.2.1 ADO技术概述6.2.1.1 ADO概述 ADO是微软的一项技术,是ActiveX Data Objects 的缩写。它是微软的Active-X组件,结合了OLE DB易于使用的特性以及在诸如Remote Data Objects(RDO)和Data Access Objects(DAO)的模型中容易找到的通用特性。ADO的思想就在于为不同的应用程序访问相同的数据源创建一个更高层的公用层。尽管存在数据结构和组织间的物理位置的不同,编程的接口应该是一样的。ADO 2.0还具有了新的特性:包括事件处理,记录集的延续,分层目录结构指针和数据成形,分布式事务处理,多维数据,远程数据服务(RDS),以及对C+和Java的支持的增强,并且在Visual Studio 6.0中的任何开发工具中都得到了支持。,2023/9/11,6.2.1.2 用ADO实现访问数据库 ADO主要包括以下七个对象:Connection:连接对象,建立一个与数据源的连接,应用程序通过连接对象访问数据源,连接是交换数据所必需的环境。Command:命令对象,定义对数据源进行操作的命令,以执行相应的动作,通过以建立的连接,该对象可以以某种方式来操作数据源,一般情况下,该命令对象可以在数据源中添加、删除或更改数据,也可以检索数据,还可完成较复杂的查询功能。Recordset:记录集对象,用于表示来自数据库或命令执行结果集的对象,并可通过该对象控制对数据源数据的增、删、改。Error:错误对象,用来描述数据访问错误的细节。Field:字段(域)对象,用来表示Recordset对象的字段。,2023/9/11,Parameter:参数对象,表示Command对象的命令参数,参数可以在命令执行之前进行更改。Property:属性对象,用来描述对象的属性,每个ADO对象都有一组惟一的属性来描述或控制对象的行为。属性有两种类型:内置的和动态的。内置属性是ADO对象的一部分并且随时可用,动态属性由数据源提供者添加到ADO对象的属性集合中,仅在该提供者被使用时才能存在。使用ADO访问数据库的基本步骤通常都是以下五步:创建数据库源名;创建数据库链接;创建数据对象;操作数据库;关闭数据对象和连接。,2023/9/11,以下示例采用的均是ASP文件中VBSCRIPT脚本语言编写的代码:(1)创建数据库源名称,即创建和配置ODBC数据源,该步骤在上一节已详细讲述。(2)创建数据库连接 语法如下:Set Conn=Server.CreateObject(ADODB.CONNECTION)这条语句创建了数据库连接对象Conn。创建数据库连接之后,必须打开该连接才能访问数据库,打开连接使用下面的语句:Conn.Open dsn_name,username,password 其中“dsn_name”为数据源名称。Username和password为访问数据库的用户名和密码,均为可选参数。,2023/9/11,例如假设已经定义了一个访问Access数据库系统DSN,数据源名称为acce_dsn,访问数据库的代码如下:Set Conn=Server.CreateObject(ADODB.CONNECTION)Conn.Open acce_dsn 如果数据源acce_dsnl是访问SQL Server数据库的,并且用户名和密码分别为sa和123456,那么访问数据库代码应为:Set Conn=Server CreateObject(ADODB.CONNECTION)Conn.Open acce_dsnl,sa,123456 在ADO中还可以不通过ODBC而直接与Access数据相连,这种方法在个人主页中大量使用(因为其用户无法进行服务器ODBC设置操作),我们这里只简单提一下方法:Connection.Open provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:test.mdb,2023/9/11,(3)创建数据对象RecordSet保存的是数据库命令结果集,并标有一个当前记录。以下是创建方法:Set RecordSet=Conn.Execute(sqlStr)这条语句创建并打开了对象RecordSet,其中Conn是先前创建的连接对象,SqlStr是一个字符串,代表一条标准的SQL语句,例如:SqlStr=SELECT*FROM authors Set RecordSet=Conn.Execute(SqlStr)这条语句执行后,对象RecordSet中就保存了表authors中的所有记录。(4)操作数据库 Execute方法的参数是一个标准的SQL语句串,所以我们可以利用它方便地执行数据插入、修改、删除等操作,例如:,2023/9/11,SqlStr=DELETE FROM authors Conn.Execute(SqlStr)/执行删除操作 SqlStr=UPDATE authors SET salary=3 WHERE id=FZ0001 Conn.Execute(SqlStr)/执行修改操作(5)关闭数据对象和连接 在使用ADO对象对数据库的操作之完成之后,一定要关闭它,因为它使用了服务器的资源,如果不释放将导致服务器资源浪费并影响服务器性能。通过调用方法close实现关闭以释放资源,例如:Conn.Close 使用ADO技术访问数据库实例:一个用户身份验证程序,参见P183。,2023/9/11,6.3 ADO.NET简介,6.3.1 ADO.NET技术的设计目标 ADO.NET是由微软ActiveX Data Object(ADO)升级发展而来的,它是微软公司下一代数据访问标准。在创建 ADO.NET 时具有以下设计目标:(1)利用当前的 ADO 知识(2)支持 N 层编程模型(3)集成 XML 支持6.3.2 ADO.NET的体系结构 ADO.NET是由一系列的数据库相关类和接口组成的,它的基石是XML技术,所以通过ADO.Net不仅能访问关系型数据库中的数据,而且还能访问层次化的XML数据。,2023/9/11,ADO.NET提供了两种数据访问的模式:一种为连接模式(Connected),另一种为非连接模式(Disconnected)。ADO.NET中的DataSet类是非连接模式的核心,数据集对象(DataSet)以XML的形式存放数据。在ADO.NET体系结构中还有一个非常重要的部分就是数据提供者对象(Data Provider),它是访问数据库的必备条件。通过它,可以产生相应的数据集对象;同时它还提供了连接模式下的数据库访问支持。6.3.2.1 ADO.NET组件的总体结构 设计 ADO.NET 组件的目的是为了从数据操作中分解出数据访问。ADO.NET 的两个核心组件会完成此任务:DataSet 和.NET Framework 数据提供程序,后者是一组包括 Connection、Command、DataReader 和 DataAdapter 对象在内的组件。,2023/9/11,ADO.NET DataSet 是 ADO.NET 的断开式结构的核心组件。它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关 DataTable 对象中数据的关系信息组成。ADO.NET 结构的另一个核心元素是.NET Framework 数据提供程序,其组件的设计目的相当明确:为了实现数据操作和对数据的快速、只进、只读访问。Connection 对象提供与数据源的连接。Command 对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader 从数据源中提供高性能的数据流。最后,DataAdapter 提供连接 DataSet 对象和数据源的桥梁。DataAdapter 使用 Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 Data Set 中数据的更改与数据源保持一致。,2023/9/11,图6-8 ADO.NET组件,.NET Framework 提供了四个.NET Framework 数据提供程序:SQL Server.NET Framework 数据提供程序、OLE DB.NET Framework 数据提供程序、ODBC.NET Framework 数据提供程序和 Oracle.NET Framework 数据提供程序。如图6-8所示:,2023/9/11,图6-9显示了ADO.Net总体的体系结构:,图6-9 ADO.NET的体系结构,2023/9/11,图6-10显示了 ADO.NET 应用程序的基本结构:,图6-10 ADO.NET应用程序基本结构示意图,2023/9/11,图6-11显示了使用ADO.NET组件访问数据库的组织结构:,图6-11 ADO.NET组件访问数据库结构示意图,2023/9/11,6.3.2.2 ADO.NET DataSet结构 DataSet 对象是支持 ADO.NET 的断开式、分布式数据方案的核心对象。DataSet 是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。它可以用于多个不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 表示包括相关表、约束和表间关系在内的整个数据集。图6-12将显示 DataSet 对象模型:,2023/9/11,图6-12 DataSet对象模型,2023/9/11,DataSet 中的方法和对象与关系数据库模型中的方法和对象一致。DataSet 也可以按 XML 的形式来保持和重新加载其内容,并按 XML 架构定义语言(XSD)架构的形式来保持和重新加载其架构。DataTableCollection 一个 ADO.NET DataSet 包含 DataTable 对象所表示的零个或更多个表的集合。DataTableCollection 包含 DataSet 中的所有 DataTable 对象。DataTable 在 System.Data 命名空间中定义,表示内存驻留数据表。它包含 DataColumnCollection 所表示的列和 ConstraintCollection 所表示的约束的集合,这些列和约束一起定义了该表的架构。DataTable 还包含Dat aRowCollection 所表示的行的集合,而DataRowCollecti on 则包含表中的数据。除了其当前状态之前,Data Ro w 还会保留其当前版本和初始版本,以标识对行中存储的值的更改。,2023/9/11,DataRelationCollection DataSet 在其 DataRelationCollection 对象中包含关系。关系由 DataRelation 对象来表示,它使一个 DataTable 中的行与另一个 DataTable 中的行相关联。关系类似于可能存在于关系数据库中的主键列和外键列之间的联接路径。DataRelation 标识 DataSet 中两个表的匹配列。关系使您能够在 DataSet 中从一个表导航至另一个表。DataRelation 的基本元素为关系的名称、相关表的名称以及每个表中的相关列。关系可以通过一个表的多个列来生成,方法是将一组 DataColumn 对象指定为键列。当关系被添加到 DataRelationCollection 中时,如果已对相关列值作出更改,它可能会选择添加一个 UniqueKeyConstraint 和一个 ForeignKeyConstraint 来强制完整性约束。,2023/9/11,ExtendedProperties DataSet(以及 DataTable 和 DataColumn)具有Ex tendedProperties 属性。ExtendedProperties 是一个Prop ertyCollection,您可以在其中放置自定义信息,例如用于生成结果集的 SELECT 语句或表示数据生成时间的日期/时间戳。ExtendedProperties 集合与 DataSet(以及 DataTable 和 DataColumn)的架构信息一起进行保持。6.3.2.3.NET Framework数据提供程序.NET Framework 数据提供程序用于连接到数据库、执行命令和检索结果。利用它可以直接处理检索到的结果,或将其放入 ADO.NET DataSet 对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。.NETFrame work 数据提供程序在设计上是轻量的,它在数据源和代码之间创建了一个最小层,以便在不以功能为代价的前提下提高性能。,2023/9/11,表6-3概括了组成.NET Framework 数据提供程序的四个核心对象。表6-3 数据提供程序的四个核心对象,2023/9/11,.NET Framework 包括 SQL Server.NET Framework 数据提供程序(用于 Microsoft SQL Server 7.0 版或更高版本)、OLE DB.NET Framework 数据提供程序和 ODBC.NET Framework 数据提供程序。(1)SQL Server.NET Framework 数据提供程序 SQL Server.NET Framework 数据提供程序使用它自身的协议与 SQL Server 通信。由于它经过了优化,可以直接访问 SQL Server 而不用添加 OLE DB 或开放式数据库连接(ODBC)层,因此它是轻量的,并具有良好的性能。SQL Server.NET Framework 数据提供程序只能访问 Microsoft SQLSe rver 7.0 或更高版本。它位于 命名空间中。使用时应用程序中应包含命名空间。,2023/9/11,(2)OLE DB.NET Framework 数据提供程序 OLE DB.NET Framework 数据提供程序通过 COM Interop(COM互操作性,可以使.NET程序在不修改原有COM组件的前提下方便的访问COM组件)使用本机 OLE DB 启用数据访问。OLE DB.NET Framework 数据提供程序支持本地事物和分布式事务两者。对于分布式事务,默认情况下,OLE DB.NET Framework 数据提供程序自动登记在事务中,并从 Windows 2000 组件服务获取事务详细信息。若要使用 OLE DB.NET Framework 数据提供程序,所使用的 OLE DB 提供程序必须支持 OLE DB.NET Framework 数据提供程序所使用的 OLE DB 接口中列出的 OLE DB 接口。,2023/9/11,表6-4 显示已经用 ADO.NET 进行测试的OLE DB提供程序。表6-4 ADO.NET的OLE DB提供程序,2023/9/11,OLE DB.NET Framework 数据提供程序类位于 System.Data.OleDb 命名空间中。使用时应用程序中应包含 System.Data.OleDb命名空间。(3)ODBC.NET Framework 数据提供程序 ODBC.NET Framework 数据提供程序通过 COM interop 使用本机 ODBC 驱动程序管理器(DM)启用数据访问。ODBC 数据提供程序支持本地事物和分布式事务两者。对于分布式事务,默认情况下,ODBC 数据提供程序自动登记在事务中,并从 Windows 2000 组件服务获取事务详细信息。表6-5显示了用 ADO.NET 测试的 ODBC 驱动程序。,2023/9/11,ODBC.NET Framework 数据提供程序类位于Syste m.Data.Odbc 命名空间中。使用时应用程序中应包含Sys tem.Data.Odbc 命名空间。,表6-5 ODBC驱动程序,2023/9/11,(4)Oracle.NET Framework 数据提供程序 Oracle.NET Framework 数据提供程序通过 Oracle 客户端连接软件启用对 Oracle 数据源的数据访问。该数据提供程序支持 Oracle 客户端软件 8.1.7 版和更高版本。它支持本地事物和分布式事务。Oracle.NET Framework 数据提供程序要求必须先在系统上安装 Oracle 客户端软件(8.1.7 版或更高版本),才能使用它连接到 Oracle 数据源。Oracle.NET Framework 数据提供程序类位于Syste m.Data.OracleClient 命名空间中,并包含在System.Data.OracleClient.dll 程序集中。在编译使用该数据提供程序的应用程序时,将需要同时引用 System.Data.dll 和 System.Data.OracleClient.dll。使用时应用程序中应包含 System.Data.OracleClient 命名空间。,2023/9/11,6.3.2.4 选择.NET Framework 数据提供程序 根据应用程序的设计和数据源,选择合适.NET Framework 数据提供程序可以提高应用程序的性能、功能和完整性。下面说明各个.NET Framework 数据提供程序的优点和限制。SQL Server.NET Framework 数据提供程序:建议用于使用 Microsoft SQL Server 7.0 或更高版本的中间层应用程序或者用于使用 Microsoft 数据引擎(MSDE)或 Microsoft SQL Server 7.0 或更高版本的单层应用程序。OLE DB.NET Framework 数据提供程序:建议用于使用 Microsoft SQL Server 6.5 或较早版本的中间层应用程序,或任何支持 OLE DB.NET Framework 数据提供程序所使用的 OLE DB 接口中所列 OLE DB接口,2023/9/11,(不要求 OLE DB 2.5 接口)的 OLE DB 提供程序。对于 Microsoft SQL Server 7.0 或更高版本,建议使用 SQL Server.NET Framework 数据提供程序。建议用于使用 Microsoft Access 数据库的单层应用程序。不建议将 Microsoft Access 数据库用于中间层应用程序。ODBC.NET Framework 数据提供程序:建议用于使用 ODBC 数据源的中间层应用程序或者用于使用 ODBC 数据源的单层应用程序。Oracle.NET Framework 数据提供程序:建议用于使用 Oracle 数据源的中间层应用程序或者用于使用Ora cle 数据源的单层应用程序。Oracle.NET Framework 数据提供程序位于 命名空间中,并包含在 程序集中。在编译使用该数据提供程序的应用程序时,需要同时引用 和。,2023/9/11,6.3.3 ADO.NET数据对象介绍(1)Connection对象 Connection对象主要用于建立与数据源的活动连接。一旦建立了连接,其他独立于连接细节(但依赖于活动连接)的对象,如Command对象,就可以使用连接在数据源上执行命令。每个.NET数据提供者都有其自己特定于提供者的连接类,您可以对它们进行实例化,这样的版本实现IdbConnection接口,可通过System.Data命名空间得到。例如,SqlConnection和OleDbConnection都实现IdbConnection接口。该接口表示与数据源的惟一会话,提供基本的连接操作,允许用户随意关闭、打开或更改连接。,2023/9/11,通常,通过显式调用Open()方法建立连接。一旦它完成了自己的任务,例如用数据源中的关系数据填充DataSet对象,就可以显式调用Close()方法来关闭连接。不再使用连接时,最好确保始终显式关闭连接,以减少对服务器资源的任何不必要的浪费。如果由于某种原因没有显式关闭连接,则由Garbage Collector找到未被引用的Connection对象,将其收集起来。然而,不需要时最好显式关闭连接,因为这样可确保保存对数据所做的所有更改。(2)Command对象 Command对象负责使用SQL语句查询数据源。,2023/9/11,命令可以采取多种形式:可以设法通过简单的SQL查询字符串或存储过程更新、修改或检索数据源数据。如果对数据库执行命令后返回结果,Command对象就可以把结果填充在DataReader中,作为标题值返回(例如按影响行的数目),或者以参数的形式返回结果。所有的.NET数据提供者Command类都实现IdbComman接口。可用于执行命令的3个默认函数是:ExecuteReader,返回填充后的对象DataReader。ExecuteScalar,返回标量值。ExecuteNonQuery,返回被执行命令影响到的行的数目。(3)DataReader对象 DataReader对象从数据库中读取每个记录,提供对数据库快速不缓冲的只读的顺序访问。此外,DataReader有一种访问数据库的非常简洁的方法:它把进来的数据流视作集合,循环经过数据,一次加载一行,就像我们处理数组一样,从而减少了系统的额外工作,并提高了应用程序的性能。,2023/9/11,(4)DataAdapter对象 DataAdapter用于断开连接的环境,因为它提供了两个非常有用的方法,即Fill()和Update()方法。Fill()方法同步保存数据源中的数据与DataSet中的数据。Updata()方法用DataSet中修改过的数据更新数据源,这种更新可以是从添加一个行到添加新表的任意操作。第7章提供有关DataAdapter及DataSet的更多信息。,2023/9/11,(5)DataSet DataSet是ADO.NET离线访问的核心。这个类代表关系数据的内存内的离线容器,数据由任意类型的外部数据源生成(XML文件、Access数据库等)。应用程序可以用数据不断地填充它,除非最终耗尽系统内存或本地磁盘空间。有时,它可以表示DataTable对象形式的很多表,这些对象又可以代表任意数目的列、行和关系,分别表示为DataColumn、DataRow、Constraint和DataRelation对象。DataSet可以保存提供给独立于数据源的关系数据模型的数据,并把自己表现为关系数据结构,同时与数据源断开连接。由于DataSet无法了解到连接到什么数据源,因此可以像处理应用程序的本地数据一样有效地工作,从而可把数据存储在外部数据源或文件中。,

    注意事项

    本文(数据库访问技术介绍.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开