数据库系统及应用08.ppt_第1页
数据库系统及应用08.ppt_第2页
数据库系统及应用08.ppt_第3页
数据库系统及应用08.ppt_第4页
数据库系统及应用08.ppt_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

第八章 数据库应用系统开发,一个完整的数据库应用系统在逻辑上包括用户界面和数据库访问链路,数据库在C/S或B/S双层结构中位于服务器端,构成整个数据库应用系统的后端数据库,满足客户端连接数据库和存储数据的需要,它并不具备图形用户界面的设计功能。,8.1 数据库应用结构,集中式应用结构 文件服务器结构 客户/服务器结构 互联网应用结构,数据库应用结构,1. 集中式应用结构,按键信息,终端字符,终端1,终端N,终端2,图1 大型机结构的数据库访问,大型机,客户端,数据库,应用程序,文件,文件请求,工作站1,工作站N,工作站2,应用程序,应用程序,应用程序,数据库,网络文件服务器,图2 文件服务器结构的数据库访问,2. 文件服务器结构,客户端,3. 客户/服务器结构,服务器,请求,结果,工作站1,工作站N,工作站2,客户端,图3 客户/服务器结构的数据库访问,应用程序,应用程序,应用程序,数据库,客户机/服务器模式(简称C/S)是以网络环境为基础、将计算应用有机地分布在多台计算机中的结构。 服务器(Server),客户机(Client)。 服务器负责数据的存储、检索与维护,而客户机负责提供GUI接口,承担诸如处理与显示检索所得的数据、解释和发送用户的要求等任务。,基于客户机/服务器模式的数据库系统,客户机/服务器系统基本由三个部分组成: 客户机。客户机是一个面向最终用户的接口或应用程序,它通过向服务器请求数据服务,然后做必要的处理,将结果显示给用户。 服务器。服务器的主要功能是建立进程和网络服务地址,监听用户的调用,处理客户的请求,将结果返回给客户和释放与客户的连接。 连接件。客户机与服务器之间的连接是通过网络连接实现的,对应用系统来说这种连接更多的是一种软件通信工程(如网络协议等)。,客户机/服务器系统的组成,客户端应用系统,在客户机上可以有自己专用的局部数据库,在客户端需要安装客户端组件(Client Utility),也需要配置数据源。 为了优化远程数据访问,应当遵循二个基本原则: 完全在服务器上执行查询,不要直接检索数据并在本地处理; 尽量减少与数据库服务器的连接次数和网上传输的数据量。,三层结构的客户机/服务器系统,表示层,功能层,数据层,表示层 表示层由客户机实现。表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。 大部分的应用逻辑被移植到应用服务器上。 功能层 功能层由应用服务器实现。功能层相当于应用的本体,它是应用逻辑处理的核心,是具体业务的实现。 数据层 数据层就是DBMS,驻留在数据库服务器上,负责管理对数据库数据的存取操作。,4. 互联网应用结构,客户端,数据库服务器,请求,页面,个人机1,个人机N,个人机2,图4 互联网计算环境下的数据库访问,请求,结果,Web服务器,浏览器,浏览器,浏览器,应用程序,数据库,浏览器/服务器模式,在Internet和Intranet上的浏览器/ 服务器(简称B/S),而B/S是一种基于Hyperlink(超链接)、HTML(超文本标记语言)、Java 的三层或多层C/S结构,客户端仅需要单一的浏览器软件,通过浏览器可访问几个应用平台,形成一种一点对几点、多点对多点的结构模式。 早期的B/S系统也是两层结构。,浏览器/Web服务器/DB的三层体系结构,Web服务器与数据库服务器的接口方式,表示层:存在于客户端(Client),只须安装一个Web浏览器软件(例如Internet Explorer或Navigator)。 Web服务器:作为一个HTTP服务器,处理HTTP协议,接受请求并按照HTTP格式生成响应;执行服务器端脚本(如VBScript、JavaScript等);对于数据库应用,能够创建、读、修改、删除(CRUD)视图实例。Web服务器通过对象中间件技术(Java、DCOM、CORBA等),在网络上寻找对象应用程序,完成对象之间的通信。 数据层:存在于数据库服务器上,安装有DBMS,提供SQL处理、数据库管理等服务。,B/S模式与C/S模式相比有许多优点: B/S是一种瘦客户机模式,客户端软件仅需安装浏览器。 B/S具有统一的浏览器客户端软件,易于管理和维护。 无须开发客户端软件。 B/S应用的开发效率高,开发周期短,见效快。 平台无关性。 开放性。,浏览器/服务器的工作原理和过程,目前应用广泛的浏览器/服务器模式系统主要是通过浏览器以超文本的形式向Web服务器提出访问数据库的请求,Web服务器接受客户请求后,激活对应的(Common Gateway Interface ,公共网关接口)程序将超文本HTML语言转化为SQL语法,将这个请求交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理结果集返回给CGI程序。CGI再将结果集转化为HTML,并由Web服务器转发给请求方的浏览器。,浏览器/服务器的工作原理和过程,在中间层上不但可采用公共网关接口CGI,而且可以采用ISAPI、NSAPI、JDBC、Java的RMI(远程方法调用)和IDL(界面接口语言)、CORBA的ORB(Object Request Brocker,对象请求处理)等技术。,浏览器/服务器的工作方式,简单式 即基于浏览器的浏览器/服务器模式,利用HTML页面在用户的计算机上表示信息。 有时也可使用Java Applet(Java小应用程序)、ActiveX 和Java Bean(Java豆)来加强表达能力。,交互式 在这种方式中,浏览器显示的不只是静态的和服务器端传送来的被动的页面信息。在打开与服务器的连接及传输数据以前,HTML页面显示供用户输入的表单、文本域、按钮,通过这些内容与用户交互。HTTP服务器将用户输入信息传递给客户服务器程序或脚本进行处理,Web服务器再从DBMS服务器中检索数据,然后把结果组成新页面返回给浏览器,最后中断浏览器和服务器的本次连接。这个模型允许用户从各种后端服务器中请求信息。,分布式 这种模型将机构中目前的已有设施与分布式数据源结合起来,最终会代替真正开放的客户机/服务器应用程序。它无需下载HTML页面,客户程序是由可下载的Java编写的,并可以在任何支持Java的浏览器(目前流行的IE或Navigator)上执行Applet。当HTTP服务器将含有Java Applet的页面下载到浏览器时,Applet在浏览器中运行并通过构件(Component)支持的通信协议(IIOP,DCOM)与传输服务器上的小服务程序(Servlet)通信会话。这些小服务程序按构件的概念撰写,它收到信息后,经过JDBC、ODBC或本地方法向数据库服务器发出请求,数据库服务器接到命令后,再将结果传送给Servlet,最后将结果送至浏览器显示出来。,可以看出,这里已出现了一个比较明晰的中间层,客户端的应用程序已分为两层: GUI界面(Applet) 中间层软件 小应用程序除了支持如HTTP、TCP/IP和安全套接字层(SSL)外,它可以和其他服务器通信以便提供对各种数据库的访问。,浏览器/服务器的实施方案,目前,在浏览器上发布信息常用的文件格式有两种:HTML文件与Java Applet类。 HTML文件只能发布超文本格式的信息。DHTML(动态标记语言)和XML(可扩展标记语言)。有人认为XML是从关系模型以来对数据库应用的最重要的发展。 Java Applet类嵌入在HTML文件中,可发布图形信息。,浏览器/服务器的实施方案,CGI阶段 脚本语言阶段 组件技术阶段,动态网页发展的阶段,CGI 是英文“Common Gateway Interface”的缩写,代表服务器端的一种通用(标准)接口。每当服务器接到客户更新数据的要求以后,利用这个接口去启动外部应用程序来完成各类计算、处理或访问数据库的工作,处理完成后将结果返回Web服务器,再返回浏览器,外部应用程序是用C+、Perl、Java或其他语言编写的程序,程序运行在独立的地址空间中。 CGI是微软为了扩展其主打WEB服务器产品IIS,为高级编程人员提供的一项特定技术,使得编程人员可以在服务器级上使用底层的API(应用编程接口)编程,扩展IIS功能,按照程序设计者的意图完成WEB应用。,CGI阶段,CGI示意图,后来出现了“ISAPI”或“NSAPI” ISAPI 是英文“ Internet server application programming interface ”的缩写,字面的翻译为:英特网服务器应用编程接口。其功能与CGI相同,但技术方面有些改进。外部应用程序改用动态链接库(DDL),被载入Web服务器的地址空间运行,并且用“线程”代替“进程”,因而显著地提高了运行效率。 对于程序员来说,直接使用“应用编程接口”是一件令人兴奋的事情。,出现了许多杰出的脚本语言,如ASP、PHP、JSP等。脚本语言的出现大大简化了动态网站开发的难度。 JSP与ASP的程序结构非常类似。主要的特点是在传统的HTML网页文件中加入Java程序片断(Scriptlet)和使用各种各样的JSP标志(Tag),构成JSP网页。,脚本语言阶段,ASP.NET和Java(J2EE)技术是这个阶段的代表。这是一个由类和对象(组件)组成的完全面向对象的系统,采用编译方法和事件驱动方式运行。 系统具有高效、高可靠、高可扩展的特点。,组件技术阶段,在C/S结构中,图形用户界面的设计工作通常使用可视化开发工具Visual Basic和Delphi等,在B/S结构中,常使用ASP、.net、JSP等来实现。,8.2 数据库访问接口,DBMS应用系统中使用SQL编程来访问和管理数据库中数据。常用的数据库的连接方法有: ODBC OLE DB ADO JDBC Native Call,ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(Windows Open Services Architecture, WOSA)中有关数据库的一个组成部分,它建立了一组规范。 它应用数据通信方法、数据传输协议、DBMS等多种技术定义了一个标准的接口协议,允许应用程序以SQL作为数据存取标准,来存取不同的DBMS管理的数据。,1. ODBC,ODBC为数据库应用程序访问异构型数据库提供了统一的数据存取接口API(应用程序编程接口),应用程序不必重新编译、连接就可以与不同的DBMS相连,这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 目前支持ODBC的有SQL Server、DB/2和 Oracle等10多种流行的DBMS。,ODBC是一个分层体系结构,由四部分 构成: ODBC数据库应用程序(Application) 驱动程序管理器(Driver Manager) DBMS驱动程序(DBMS Driver) 数据源(Data Source),ODBC结构模型,应用程序 主要功能是:调用ODBC函数,递交SQL语句给DBMS,检索出结果,并进行处理。应用程序要完成ODBC外部接口的所有工作。 应用层提供图形用户界面(GUI)和事务逻辑,它是使用诸如Visual Basic、 Java及C+这样的语言编写的程序。应用程序利用ODBC接口中的ODBC功能与数据库进行操作。,应用程序的操作包括: 连接数据库,向数据源发送SQL语句; 为SQL语句执行结果分配存储空间,定义所读取的数据格式; 读取结果; 处理错误; 向用户提交处理结果; 请求事务的提交和回退操作; 断开与数据源的连接。,驱动程序管理器 驱动程序管理器是一个动态连接库 (DLL),用于连接各种DBS的DBMS驱动程序(如SQL Server、Oracle、Sybase等驱动程序),主要管理应用程序和DBMS驱动程序之间的交互作用。,驱动程序管理器的主要功能如下: 为应用程序加载DBMS驱动程序。 检查ODBC调用参数的合法性和记录ODBC函数的调用。 不同驱动程序的ODBC函数提供单一的入口。 调用正确的DBMS驱动程序。 提供驱动程序信息。 当一个应用程序与多个数据库连接时,驱动程序管理器能够保证应用程序正确地调用这些DBS的DBMS,实现数据访问,并把来自数据源的数据传送给应用程序。,DBMS驱动程序 应用程序不能直接存取数据库,其各种操作请求要通过ODBC的驱动程序管理器提交给DBMS驱动程序,通过驱动程序实现对数据源的各种操作,数据库的操作结果也通过驱动程序返回给应用程序。应用程序通过调用驱动程序所支持的函数来操纵数据库。 驱动程序是一个动态连接库(DLL)。当应用程序调用函数进行连接时,驱动程序管理器加载驱动程序。,驱动程序完成以下任务: 建立应用程序与数据源的连接。 向数据源提交用户请求执行的SQL语句。 根据应用程序的要求,将发送给数据源的数据或是从数据源返回的数据进行数据格式和类型转换。 把处理结果返回给应用程序。 将执行过程中DBS返回的错误转换成ODBC定义的标准错误代码,并返回给应用程序。 根据需要定义和使用光标。,ODBC的数据源管理 数据源(Data Source Name,简称DSN)是驱动程序与DBS连接的桥梁,数据源不是DBS,而是用于表达一个ODBC驱动程序和DBMS特殊连接的命名。 创建数据源最简单的方法是使用ODBC驱动程序管理器。在连接中,用数据源名来代表用户名、服务器名、所连接的数据库名等,可以将数据源名看成是与一个具体数据库建立的连接。,数据源分为以下三类: 用户数据源:用户创建的数据源,称为“用户数据源”。此时只有创建者才能使用,并且只能在所定义的机器上运行。任何用户都不能使用其他用户创建的用户数据源。 系统数据源:所有用户和在Windows下以服务方式运行的应用程序均可使用系统数据源。 文件数据源:文件数据源是ODBC 3.0以上版本增加的一种数据源,可用于企业用户,ODBC驱动程序也安装在用户的计算机上。,Access数据库系统DSN的配置方法 单击添加后弹出对话框,选择数据源为 Driver do Microsoft Access (*.mdb)单击完成。 这时弹出一个 “ODBC Microsoft Access安装”的对话框,在对话框的数据源名文本输入框中输入配置的DSN文件名,如果test_dsn,然后单击 “选择”按钮。 这时将弹出对话框,在对话框的数据库名中输入 “c:test.mdb”,或是从右边的目录浏览器中选择“驱动器C”- “test.mdb” 。选择数据库完成后,单击确定按钮将回到第二步界面。 单击“确定”,请注意,这时在系统数据源列表框中出现了“test” 项。Access数据库系统DSN配置完成。,SQL Server数据库系统DSN的配置方法 在弹出的对话框中的驱动程序中选择SQL Server项。 单击“完成”,这时将弹击一个对话框,在对话框的名称文本输入框中输入要配置的DSN文件名。 单击“下一步”,此时我们如果在第二步时选择的是通过IP地址连接服务器,请选择客户端配置选项,调出配置对话框。 单击“下一步”,在“改变默认的数据库”的复选框中打勾,并选择test数据库。 单击“下一步”。 单击“完成”。 单击“测试数据库”按钮以进行测试, 单击“确定”,这时在系统数据源列表框中出现了“test” 项,SQL Server数据库系统DSN配置完成。,Oracle数据库系统DSN的配置方法 在弹出的对话框中的驱动程序中选择Oracle in Ora92。 单击“完成”,这时将弹击一个对话框: Data Source Name中输入框中输入要配置的DSN文件名 TNS Service Name中输入框中输入Oracle服务名 User中输入登录用户名。 单击“测试数据库”按钮以进行测试, 单击“确定”,这时在系统数据源列表框中出现了“test” 项, Oracle数据库系统DSN配置完成。,OLE DB是一组“组件对象模型”(COM)接口,是一种数据访问的技术标准,封装了ODBC的功能,目的是提供统一的数据访问接口。OLE DB将传统的数据库系统划分为多个逻辑部件,部件间相对独立又相互通讯。,2. OLE DB,1)消费者(Consumers): 消费者是使用OLE DB对存储在数据提供者中的数据进行控制的应用程序。,2)提供者(Providers): 提供者是暴露OLE DB的软组件。提供者大致分两类: 数据提供者(Data Providers),数据提供者是提供数据存储的软组件, 服务提供者(Service Providers),位于数据提供者之上,它是从过去的DBMS中分离出来且能独立运行的功能组件这些组件使得数据提供者提供的数据能以表格形式向外表示,并实现数据的查询和修改功能。,3)业务组件(Business Component): 业务组件是利用数据服务提供者专门完成某种特定业务信息处理的、可重用的功能组件。,ADO(ActiveX Data Objects,ActiveX数据对象)技术则是一种良好的解决方案,它构建于OLE DB API之上,提供一种面向对象的、与语言无关的应用程序编程接口。ADO的应用场合非常广泛,而且支持多种程序设计语言,不仅兼容所有的数据库系统,从桌面数据库到网络数据库等,ADO提供相同的处理方法。,3. ADO,ADO对象模型,ADO对象模型,每个Connection、Command、Recordset和Field对象都有Properties集合。, Connection对象 该对象主要负责与数据库建立连接和执行SQL语句。,属性 ConnectionString 方法 Open Execute Close,ADO直接连接数据库,参数: Provider指明驱动程序 Datasource指明数据库在哪里 User ID 指明用于连接数据库的用户名 Password指明用于连接数据库的密码,ConnStr= “Provider=Microsoft.Jet.OLEDB.4.0;“&_ “Data Source=“ &_ “ Server.MapPath(“databaseUser.mdb“) &“,例1:连接ACCESS,ConnStr= “Provider=SQLOLEDB.1;“ &_ “Initial Catalog=“,例2:连接SQL Server,ConnStr= “Provider=OraOLEDB.Oracle.1;“ &_ “Persist Security Info = True“,例3:连接Oracle,系统DSN(Data Source Name) Conn.ConnectionString=“DSN=test“ 利用数据库专用接口 Conn.ConnectionString= “DRIVER=Microsoft Access Driver (*.mdb);“&_ “DBQ=“& server.MapPath(“databaseUser.mdb“) &“,利用ODBC连接, RecordSet对象 该对象是ADO中使用最为普遍的对象,主要记录了对数据库表查询的结果。 如 select * from users 查询的结果即存放了一张结果表。,属性 Fields Eof 方法 MoveNext MoveFirst,结果表属性(列)的集合,是否在结果表的末尾,如果是 则为True,否则为False,移动到结果表的下一条记录,移动到结果表的第一条记录,首先,建立与数据库的连接 Connection,并打开(Open)该连接。 其次,利用Connection的Execute方法执行相应的 “Select * from 表名 where 条件” 语句, 并把结果赋给 RecordSet 对象 最后,利用 RecordSet 一条一条把结果显示出来。,利用RecordSet显示表中记录的步骤, 昵称密码 性别头像 “& _ “& Rs.Fields(“sName“) &“ “& _ “& Rs.Fields(“sPassword“) &“ “& _ “& Rs.Fields(“sSex“) &“ “& _ “ “& _ “ Rs.movenext while end %,例4:显示表中的记录,步骤: 建立与数据库的连接 Connection ,并打开该连接。 利用Connection的Execute方法执行相应的 “Insert into 表名() values()” 语句。,如何向表中插入数据呢?,例5:插入记录,步骤: 建立与数据库的连接 Connection ,并打开该连接。 利用Connection的Execute方法执行相应的 “Update 表名 Set 列名1=值1 where 条件” 语句。,如何修改表中的数据呢?,例6:修改记录,步骤: 建立与数据库的连接 Connection ,并打开该连接。 利用Connection的Execute方法执行相应的 “delete from 表名 where 条件” 语句。,如何删除表中的数据呢?,例7: 删除记录, Command对象 Command对象是对数据存储执行命令的对象。 Record对象 Stream对象 Stream对象用于访问节点的内容。 集合 ADO对象库中有一些集合,每个集合都有零个或更多个与其关联的对象的拷贝。 ADO常数 当使用ADO时,会发现有许多预先定义的用于众多选项的常数,比如定义光标类型和锁类型的常数。,ADO支持开发C/S和B/S应用程序的关键功能包括: 独立创建对象。使用ADO不再需要浏览整个层次结构来创建对象,因为大多数的ADO对象可以独立创建。这个功能允许用户只创建和跟踪需要的对象,这样,ADO对象的数目较少,所以工作集也更小。 成批更新。通过本地缓存对数据的更改,然后在一次更新中把它们全部写到服务器。, 支持带参数和返回值的存储过程。 不同的游标类型。包括对SQL Server和Oracle这样的数据库后端特定的游标的支持。 可以限制返回行的数目和其它的查询目标来进一步调整性能。 支持从存储过程或批处理语句返回的多个记录集。,提供者与驱动程序的区别,JDBC(Java Database Connectivity)是SUN公司针对Java语言提出的与数据库连接的API标准。与ODBC类似,JDBC是特殊类型的API,这些API支持对数据库的连接和基本的SQL功能,包括建立数据库连接、执行SQL语句、处理返回结果等。与ODBC不同的是,JDBC为单一的Java语言的数据库接口。,4. JDBC,JDBC驱动程序管理器,JDBC-Net驱动程序, JDBC-ODBC桥接驱动程序。 JDBC基于X/Open的SQL调用级接口(CLI,这是ODBC的基础),JDBC可以保证JDBC API在其他通用SQL

温馨提示

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

评论

0/150

提交评论