《数据库技术-国防科学技术大学10#¥-第十章 数据库应用开发课件》由会员分享,可在线阅读,更多相关《数据库技术-国防科学技术大学10#¥-第十章 数据库应用开发课件(26页珍藏版)》请在金锄头文库上搜索。
1、第十章 数据库应用开发,数据库应用开发概述,传统的数据库应用编程方式是“主语言SQL” 数据库应用程序的C/S结构 C/S结构面临的直接问题是如何将数据库前端应用程序(客户端)与后端程序(服务器端,包含DBMS)连接起来?,数据库应用开发概述,“胖客户端”和“瘦客户端”。 将后端的数据处理功能与应用逻辑、规则的实现功能相分离,引入数据库应用程序的“三层结构” 根据上述思想,可以进一步分离实现数据格式的一致化、数据访问的优化、分布式服务管理甚至负载均衡等功能,数据库应用系统体现出四层甚至多层结构。 针对两层、三层或者多层结构的数据库应用开发,开发厂商提供了多种编程环境和开发技术,C/S结构的数据
2、库应用,C/S(客户/服务器)结构的数据库应用将整体功能进行分割,分别部署在网络的不同计算机上。 按照各自实现功能的不同,网络环境中的计算机可以分为客户机(Client)和服务器(Server),C/S结构的数据库应用,客户机主要实现的功能包括:管理用户接口、从用户处接受数据、处理部分应用逻辑(如数据合法性检查)、产生数据库请求、向服务器发送数据库请求、从服务器接收结果并格式化接收到的结果。,C/S结构的数据库应用,服务器负责接收客户机提交的请求,并进行相应的数据操作,将产生的结果返回给客户端,还要提供完善的安全保护及对数据的完整性处理等操作,并允许多个客户同时访问数据库。服务器实现的功能主要
3、包括:从客户机接受数据库请求、处理数据库请求、格式化结果并传送给客户机、执行完整性检查、提供访问控制、执行恢复以及优化查询和更新处理。,C/S结构的数据库应用,功能在客户端与服务器端之间的合理分布,不仅取决于功能本身,也取决于应用系统的性能要求和开发人员的经验。 C/S结构的应用由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快;软件功能和人机交互界面设计个性化,具有直观、简单、方便的特点,可以满足客户个性化的功能要求;C/S结构的应用具有较强的事务处理能力,能实现复杂的业务流程。C/S结构的应用具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。,B/S结构的数据库应
4、用,C/S结构缺点:比如开发成本较高、用户界面风格不一、使用繁杂、不利于推广使用、维护复杂、升级麻烦等。B/S结构,即Browser/Server(浏览器/服务器)结构,客户端(Client)完全通过WWW浏览器实现,在数据管理层(DBMS Server)和用户界面层(Browser)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。利用中间件将整个应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次,B/S结构的数据库应用,中间件提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部
5、署和管理的平台。 因此,在某些技术文档中,习惯上把中间层称为应用服务器。 这种三层结构在层与层之间相互独立。 三个层次的划分是从逻辑上分的,具体的物理划分方法可以有多种组合。,B/S结构分类,三层结构,B/S结构分类,多层结构,B/S结构分类,在进行B/S结构的数据库应用开发时,要根据Web网站的规模、用户访问量以及要求的响应时间来规划网站的结构模式。 对于B/S三层结构的数据库应用而言,开发难度小、发周期短,在访问量较低、信息量不大、系统稳定性要求不是很高的情况下,可以采用三层结构模式; 但是对于大型的门户网站或大型的电子商务网站,由于用户访问量非常大,并且对系统的安全性以及稳定性要求都十分
6、严格,因此适合采用B/S多层结构模式来开发数据库应用系统。,B/S与C/S的比较,首先,C/S结构的客户端是专门的应用程序;而B/S结构的客户端是统一的浏览器软件; C/S结构的应用程序是建立在局域网的基础上的,而B/S结构的应用程序是建立在广域网的基础上的; C/S结构的应用程序一般面向相对固定的用户群,对信息安全的控制能力很强,而B/S结构的应用程序建立在广域网之上,对安全的控制能力相对弱;,B/S与C/S的比较,C/S结构的应用程序可以更加注重流程,可以对权限进行多层次校验,对系统运行速度可以较少考虑,而B/S结构的应用程序对安全以及访问速度应予以更多的考虑; C/S结构的应用程序的构件
7、可重用性不如B/S结构,因此B/S结构的系统维护代价相对较小,,B/S与C/S的比较,B/S结构在数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点不强,与C/S结构相比较有相当的差距, 另外,B/S结构在构造业务逻辑复杂的应用方面也存在着较大的困难相对于发展已经非常成熟的C/S技术而言,还缺乏完全成熟的开发工具和技术。 B/S结构与C/S结构各具优缺点,因此,这两种结构在实际开发过程中往往需要配合使用。,B/S结构应用系统的优化,除B/S体系结构外,还有多种因素影响着应用系统的性能: 1、 数据库的连接 2、 对象的加载与卸载 3、 线程的使用 通过Web服务器结合具体中间件
8、,可以提供数据库连结pooling、线程pooling的技术支持,甚至有的还可以提供对象的pooling支持,因此可以有效地减少B/S应用程序需要取得这些资源的时间。,网络环境下的数据库访问技术,ODBC及其结构 JDBC及其结构,Web数据库应用开发技术,Web数据库就是以后台数据库为基础的,利用中间件技术和计算机网络技术,通过浏览器完成数据存储、查询等操作的系统。 数据库与计算机网络这两种技术的结合即成为今天广泛应用的Web数据库(也称为网络数据库),Web数据库应用开发技术,通常,Web数据库的环境由硬件元素和软件元素组成。 硬件元素包括Web服务器、客户机、数据库服务器和网络; 软件元
9、素包括:在客户机中,必须有能够解释执行HTML代码的浏览器软件(如IE,Netscape等);在Web服务器中,必须具有Web服务器软件(如IIS、Apache等),必须具有可以生成HTML代码的程序,如ASP,CGI等;在数据库服务器中,必须具有能完成数据定义和操作功能的DBMS软件,如Oracle,SQL Server等。,Web数据库连接技术,连接数据库的常用方法有:ODBC、JDBC、DAO、RDO、ADO以及各个数据库厂商专用的数据库连接方法等。 其他几种技术从本质上说是对ODBC的一种扩展。,CGI技术,公共网关接口CGI(Common Gateway Interface)是一种编
10、程标准,它规定了Web服务器调用其它可执行程序(CGI程序)的接口协议标准。,CGI技术,CGI程序也称为CGI脚本,它接受Web浏览器发送给Web服务器的信息,并进行处理,然后将结果再送回给Web服务器及Web浏览器。更明确的说,CGI仅是在Web Server上可执行的脚本文件,而脚本文件的工作就是接收并处理来自于客户浏览器的Html文件中的信息,执行相应的应用逻辑,包括对数据库的操作,最后动态产生并传回客户端浏览器所需的页面文件。CGI程序可以用任何程序设计语言编写,ASP技术,ASP(Active Server Page)技术是由微软开发的脚本语言技术,嵌入在IIS中,ASP是Web服
11、务器端的开发环境,ASP中的命令和Script语句由服务器负责解释执行,执行的结果即动态生成的Web页面将送到浏览器; 由于ASP是在服务器端解释执行,开发者可以不必考虑浏览器是否支持ASP,JSP技术,JSP(Java Server Page)是是一种在服务器端运行的页面脚本,很类似于ASP(ActiveServerPage)。 在JSP脚本文件中包含HTML标记、Servlet标记和JSP语法。 Servlet是一种在服务器端运行的Java Application。 JSP能结合JavaBeans技术来扩充网页中程序的功能。从JSP中访问数据库通常就是通过JavaBean来实现的。,PHP
12、技术,PHP与ASP、JSP一样,也是一种服务器端内置式的脚本语言环境,PHP代码嵌入在HTML页面文件中构成PHP脚本,由服务器端负责解释执行。 PHP借鉴了C、Java和Perl等语言的语法,并加入了各种自己的特征。借助与C+相似的形式,引用类的概念,提高了代码的可重用性;PHP具有丰富的函数接口,尤其在支持数据库访问与操作方面的性能较好,支持现今大部分流行的数据库服务器, PHP对数据库的操作比较简单,并且使用PHP所编写的应用在平台之间的移植性较好。,数据库应用开发环境,目前很多应用开发环境既保持了传统的编程语言在数值运算方面的强大性能,又具有对数据库操作的丰富功能,甚至在有些环境中,编程人员可以不需要编写任何代码便可以创建一个简单的数据库应用。不仅如此,目前不少应用开发环境在Web数据库应用开发上提供了强有力的支持。 PowerBuilder Delphi C+Builder,