第7章数据库应用编程.ppt

上传人:本田雅阁 文档编号:3503185 上传时间:2019-09-04 格式:PPT 页数:58 大小:1.55MB
返回 下载 相关 举报
第7章数据库应用编程.ppt_第1页
第1页 / 共58页
第7章数据库应用编程.ppt_第2页
第2页 / 共58页
第7章数据库应用编程.ppt_第3页
第3页 / 共58页
第7章数据库应用编程.ppt_第4页
第4页 / 共58页
第7章数据库应用编程.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《第7章数据库应用编程.ppt》由会员分享,可在线阅读,更多相关《第7章数据库应用编程.ppt(58页珍藏版)》请在三一文库上搜索。

1、数据库应用技术,第七章 数据库应用编程,目录,7.1 数据库应用系统体系结构 集中式结构 C/S结构 B/S结构 7.2 数据库接口 7.3 数据库访问编程技术 7.4 业务应用系统的多层架构,数据库应用系统,数据库应用系统:利用DBMS以及其他编程工具,结合行业或部门实际应用需求,开发出以数据处理为主要用途的,适合使用的应用系统。 数据库应用系统的部署 服务器和工作站、通过网络连接 系统软件和应用软件 各个组成部分的相互关系,构成一个数据库应用系统的体系结构,集中式结构,开发简单 维护容易 主机能够提供较高的计算能力和储存能力 成本高昂,集中式结构-文件服务器模式,使用文件方式存储数据库中的

2、数据 应用程序在微机上访问共享数据 结构简单,但效率较低,且存在并发问题 早期的系统(如Foxpro)使用较多,客户端/服务器结构,C/S结构优点,开放性: 支持异构型结构 充分利用不同的计算资源 分布性 可扩展性强 数据一致性强 编程方便 编程相对简单 计算效率较高 界面更加友好,C/S结构缺点,缺点 应用程序安装、分发、升级困难 客户端可直接访问数据库,存在安全隐患 连接数少,并发和吞吐量小 不适当的应用程序增大网络传输量 存在集中结点,依赖于服务器 改进: 更加合理的应用程序 细致的安全性措施 使用存储过程等,C/S结构编程工具,常见的通用编程语言,带有GUI设计能力和数据库接口即可 如

3、C/C+,在Windows下扩展MFC进行GUI设计,使用ODBC等接口访问数据库。 其他如 VB,Delphi,C#,Power Builder 界面编程和业务逻辑编程没有明确区分 适用于Intranet应用,浏览器/服务器结构,Web服务器是飞速发展的Internet上最典型的应用模式 静态网站 Web服务器以文件为载体 通过网络的HTPP协议传送内容 在客户端使用浏览器显示HTML内容 动态网站 使用Web服务器存取数据库的内容,从而能够存储用户操作数据,网站内容可以随时变化,传统的文件型WEB服务器,B/S结构,HTTP请求 (表单),服务器端,客户端,数据库,HTTP回应 (由数据库

4、数据拼成的HTML页面),SQL,ODBC,SQL,B/S结构特点,无需安装客户端 程序分发,升级容易 客户端不能直接访问数据库,更加安全 并发规模大 支持Internet及Intranet,B/S结构的关键技术,数据库服务器 应用服务器 应用服务器的主要指标是提供基本的WWW服务,支持各种数据库访问技术,易于管理和配置应用系统。 应用服务器访问数据库服务器使用和C/S结构类似的接口方式 应用表示方式 应用服务器根据用户的请求从数据库服务器中提取相关数据生成中间文件,通过HTTP协议传送到浏览器。 使用的标记语言有3种:HTML、DHTML及XML。 还有其他的表示方式,如json 浏览器 在

5、Internet环境中常用的浏览器包括Microsoft的Internet Explorer(简称IE),目前占有率较高的还有Firefox,Safari,Chrome等。 它们都支持Internet的标准通信协议,但在一些细节方面,还具有很多不相互兼容的地方,这些也给程序员造成了一定的麻烦。,B/S结构编程,Web服务器端 CGI、SAPI 脚本语言 PHP、ASP、JSP、Ruby 浏览器端 HTML CSS JavaScript Flash等,Web数据库访问技术,CGI(Common Gateway Interface) 是Web服务器运行时外部程序的规范,按照CGI编写的程序可以扩展

6、服务器的功能,完成服务器本身不能完成的工作,外部程序执行时可以生成HTML文档,并将文档返回Web服务器。 CGI程序的常用语言:Perl、C/C+、VB、Delphi CGI的缺点: 每个CGI程序应用是作为一个独立外部应用来运行的,与服务器上其他程序竞争处理器资源,这将导致运行速度减慢; 不提供状态管理功能,浏览器每次请求都需要一个连接的建立与释放过程,效率较低。,Web数据库访问技术,SAPI(Server Application Programming Interface ) 服务器端应用程序编程接口:与CGI功能相同,也可用于实现扩展服务器功能。实际是一组用于完成特定功能的很复杂的函

7、数、消息和结构 ,包含在一个扩展名为DLL的动态连接库文件中。 与CGI相比,性能上有了很大的提高,但开发需编程方面的专门知识。,脚本语言,脚本语言(Script )是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。 以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则 特点: 语法和结构通常比较简单 学习和使用通常比较简单 通常以容易修改程序的“解释” 方式运行 程序的开发产能优于运行效能,Web数据库访问技术,PHP(PHP: Hypertext Preprocessor) 优点:开源、灵活、简单易学、跨平台、有良好数

8、据库交换能力的开发语言;与Apache及其扩展库紧密结合;良好的安全性。 不足:缺少企业级的支持;难以支持复杂业务逻辑; LAMP = Linux + ApacheMysql + Php,Web数据库访问技术,ASP(Activex Server Pages) 由微软创建的Web应用开发标准,ASP服务器已经包含在IIS服务器中,使用VBScript作为开发语言。 优点: 安装配置方便,开发简单易学;开发工具功能强大。 不足: ASP使用了COM组件因而导致大量的安全问题; 只能应用于Windows平台。 .Net、ASP、C#关系 .net是一个开发和运行平台,可以兼容多种语言,可在不同应用

9、场景发布。 C#是一种融合Java和C+特性的语言,是.net上的典型语言 ASP.net是继承ASP的web程序开发和应用平台。在ASP.net上可以使用C#、VB.net,J#等多种语言。,Web数据库访问技术,JSP (Java Server Pages) & J2EE JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。 优点:可移植性好,支持多种平台;强大的可伸缩性;多样化与强大的工具支持。 不足

10、:安装配置管理较为复杂;运行速度较慢;,Web数据库访问技术,J2EE(Java 2 Platform, Enterprise Edition) J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。 J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了 开发多层应用的费用和复杂性 J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。 适合开发大型应用系统,B/S结构编程的一些难点问题,无状态的HTTP协议与Session 连接池 分页 权限

11、控制 HTML的功能有限,C/S架构与B/S架构对比,高级体系结构-中间件,中间件(middleware)是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。 降低DB服务器工作量和网络流量; 实现业务逻辑 软件可复用; 易于应用程序升级; 提供更高级别的安全性,高级体系结构-RIA,RIA(Rich Internet Applications) 富互联网应用具有高度互动性、丰富用户体验以及功能强大的客户端。 用户界面可以显示和操作更为复杂的嵌入在客户端的数据模型 它可以操作客户端的计算和非同步的发送接收数据。 HTML只给用户提供了非常有限的界面控制元素,而R

12、IA的用户界面提供了灵活多样的界面控制元素 主要技术 Ajax,JavaScript Flash,Silverlight XML,Json RPC ,SaaS,7.2 数据库接口,直接驱动连接 优点:效率高 通过抽象层连接 数据库网关 通用的数据库接口协议和编程模式,为什么需要通用的数据库接口,程序员需要使用不同的程序接口、DBMS方言、网络协议 这将导致程序的通用性、灵活性、可维护性大大降低。 最重要的是增大程序员的学习难度和实际 数据库移植的“神话”,常见的通用数据库接口,ODBC(开放数据库互连) MFC(Microsoft基础类)ODBC类 JDBC ADO(ActiveX数据对象)

13、OLE DB(对象链接嵌入数据库) DAO(数据访问对象) 主要用于桌面型数据库Access RDO(远程数据对象),开放数据库互连-ODBC,ODBC是80年代末出现的技术,它为编写关系数据库的客户软件提供了统一的接口。ODBC只提供单一的API,可用于处理不同数据库的客户应用程序。使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信。 基于X/Open 与 ISO/IEC 的数据库CLI标准和SQL语言 ODBC 2.0, 3.0, 3.1, 3.51 现在已经被广泛应用,并逐渐成为关系数据库接口的标准。 ODBC仅限于关系数据库,ODBC的组成,应用程序 驱动

14、程序管理器 DBMS驱动程序 数据源 用户想要存取的数据来源、操作系统、协议以及其他信息的组合。,ODBC的优点,通用性,DBMS透明性 工业标准,得到大部分DBMS支持 可移植性,支持不同的操作系统 包括Windows、Unix/Linux 提供不同的符合性级别 驱动程序支持相应的符合性级别,不表示DBMS能够实现相应的操作。 Core级别、 LEVEL1、 LEVEL2,ODBC的MFC类,ODBC为关系数据库提供了统一的接口,但是ODBC API十分复杂。在MFC中,提供了一些类, 对ODBC API进行封装,为ODBC编程提供了一个面向对象的方法。 MFC ODBC类在使用上比ODBC

15、 API容易,但是损失了ODBC API对低层的灵活控制,因此,MFC ODBC类属于高级数据库接口。,OLE DB与ADO,OLE DB 也属于低层的数据库编程接口,OLE DB结合了ODBC对关系型数据库的操作功能,并进行了扩展,可以访问非关系型数据库源。 OLE DB对ODBC进行了两个方面的扩展:一是提供了一个数据库编程的OLE接口,即COM;二是提供了一个可用于关系型和非关系型数据源的接口。,OLE DB与ADO,OLE DB的客户程序和供应程序,OLE DB与ADO,ADO是ActiveX Data Object的缩写,它建立在OLE DB之上,为操作OLE DB数据源提供了一套高

16、层次自动化接口。 ADO实际上是一个OLE DB客户程序 ,使用ADO的应用程序要间接地使用OLE DB。 ADO提供了一种数据库编程对象模型,类似于DAO的对象模型,但比DAO有更高的灵活性。ADO简化了OLE DB,属于高层的数据库接口。另外同OLE DB相比,能够使用ADO的编程语言更多。,OLE DB与ADO,ADO同OLE DB、数据库应用以及数据源之间的关系,各种访问接口的比较,Java Data Base Connectivity,JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。 JDBC为工具/数据

17、库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,JDBC驱动程序的类型,JDBC-ODBC桥 将JDBC调用转化为ODBC调用的“桥梁”,通过ODBC驱动程序来提供JDBC对数据库的访问。 本机API,部分Java驱动(Native-API Partly-Java Driver) 将JDBC调用转换为基于客户端API的调用。 网络纯Java驱动(Net-Protocol All-Java Driver) 将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。 本地协议纯Jav

18、a驱动 (Native-Protocol All-Java Driver) 将JDBC调用转换为特定数据库直接使用的网络协议,这一类驱动程序通常由数据库厂商自己开发。,7.3数据库访问编程技术,嵌入式 直接将SQL嵌入宿主语言(如C)中,使用预编译器 函数API 典型的如ODBC 面向对象 典型的如MFC for ODBC,ADO,JDBC 面向组件 如各种直观的开发工具,Delphi等,数据库编程接口的基本功能,连接到数据库 直接执行SQL语句 执行复杂SQL语句 能够使用程序变量作为SQL语句的参数 能够使用游标等类似机制将查询结果传送到程序变量中 事务处理 错误处理,使用ODBC的访问方

19、法,句柄 Handle 环境句柄 连接句柄 语句句柄,使用ODBC的访问方法,基本流程: 申请环境句柄 申请连接句柄 连接DSN 执行SQL 断开DSN 释放连接句柄 释放环境句柄,使用ODBC的访问方法,直接执行SQL 申请语句句柄 执行SQL语句 关闭/释放语句句柄 执行复杂SQL 申请语句句柄 准备SQL Prepare 参数绑定SQL Bind Parameter 列绑定 SQL Bind Col 执行 SQL Execute 取结果集 SQL Fetch(循环) 释放/关闭语句句柄,ADO:面向对象的访问方法,用Connection对象连接数据库 用RecordSet对象控制数据 用

20、Command对象执行数据库操作,ADO编程:Connection对象,Connection对象用于建立和管理应用程序与数据源间的连接,也可用它来执行一个命令。 创建Connection 连接数据源 执行SQL查询 Connection对象的Execute方法,ADO编程: RecordSet对象,Recordset对象是一个记录的集合,是按字段(或列)和记录(或行)的形式构成的二维表。 Recordset对象相当于一个游标 每个Recordset对象表示表中的记录或运行一次查询所得到的结果。可以在非显式打开Connection对象的情况下,打开一个Recordset对象(如执行一次查询),或

21、者创建一个Connection对象,然后在该Connection对象上打开多个Recordset对象。 使用Recordset对象,可以在记录一级上对数据库中的数据进行各种操作,如增删记录、更新数据、在记录中移动等。,ADO编程: Command对象,Command对象用于对数据源执行指定的命令,这些命令可以是SQL语句、表、存储过程或其他数据提供者支持的文本格式。 Connection对象提供客户端应用程序与数据库之间的连接通道,Recordset对象用来记录由数据库取得的数据集对象,Command对象则用来传递信息,它可以对数据库提出查询信息,把符合要求的数据存放在Recordset对象中

22、返回。,脚本语言连接数据库:PHP,n“;,脚本语言连接数据库:PHP,while ($line = mysql_fetch_array($result, MYSQL_ASSOC) echo “tn“; foreach ($line as $col_value) echo “tt$col_valuen“; echo “tn“; echo “n“; / 释放结果集 mysql_free_result($result); / 关闭连接 mysql_close($link); ?,7.4 业务应用系统的多层架构,在软件架构中,基于数据库的业务应用系统通常被划分为多个软件层次 优点: 1、开发人员可以

23、只关注整个结构中的某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化; 5、利于各层逻辑的复用。 缺点: 1、系统性能降低。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。 2、可能会导致级联的修改。必须事先充分全面设计。 3、各层间的通信机制必须完备,J2EE的多层架构,客户端层组件 应用客户端程序和浏览器 Web 层组件 Java Servlet Java Server Pages(JSP) 业务层组件 Enterprise JavaBeans(EJB) 企业信息系统层组件: DB、

24、ERP,微软推荐的三层结构,表现层(UI) 展现给用户的界面层,即用户在使用一个系统的时候他的所见所得。 业务逻辑层(BLL) 多个数据访问构成一个完整的,符合业务规则的操作集合。 业务规则的制定、业务流程的实现。 数据访问层(DAL) 操作数据库,对数据进行增、删、改、查。 也叫做持久层,MVC架构,模型层(Model)负责表达和访问商业数据,执行商业逻辑和操作。 视图层(View)负责显示模型层的内容。 控制层(Controller)负责定义应用程序的行为 。,数据库持久化与ORM,持久化(Persistence),把数据(特别是以面向对象方式形成的数据)保存到可永久保存的存储设备中(如磁盘)。 持久化的主要应用是将内存中的数据存储在关系型数据库中,或者磁盘文件中、XML数据文件中等。 ORM是一种常见的持久化技术,对象关系映射ORM,ORM是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,实现程序对象到关系数据库数据的映射。 ORM通过使用描述类与对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 映射关系 每个类映射一个表 类的简单数据类型的属性映射表中的一个字段 类之间关系映射为表之间的外键关联,一个开发架构实例,源自: http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1