AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > Delphi

第十八章 Delphi客户服务器应用开发(二)

51自学网 http://www.51zixue.net

18.1.4.1 本地型数据库接口 

  本地型数据库是伴随微机的产生而产生的。dBASEII作为最早的并仍在使用的系统之一就是典型的本地型数据库。 

  本地型数据库管理系统的数据存放在一个本地硬盘上。DBMS接受来自用户或用户程序的命令。这些命令通常是系统特有的数据库管理语言。命令被转换为简单的磁盘访问命令,并交付文件系统来处理。然后DBMS接收来自磁盘上的数据,并加以处理。

  在本地型DBMS应用中,数据库引擎(DBE)运行于工作站上。图18.2暗示数据是存放在工作站的局部驱动器上,其实在网络中,数据还可存放在文件服务器上。这里数据库引擎使用典型的文件I/O调用和记录封锁技术来直接读写数据。 

  存放数据的文件位于网络中的某个服务器上时,DBMS的行力与单机情况无异。 网络操作系统负责对服务器的管理,因此对DBMS而言,对服务器的使用就象使用局部的驱动器一样。

  当用户发出命令,请求DBMS读取数据库中的数据时,该请求首先由工作站(客户)的网络驱动程序处理,它负责把请求从网络上传到所需的服务器网络文件系统。服务器操作系统从适当的磁盘卷上找到数据,并发回等待中的工作站驱动程序。最后,数据回传给DBMS,这样DBMS使用这些数据就象使用本地存储的数据一样。网络情况下的接口比单机情况下接口的处理增加了通信开销,正常情况下这种额外开销不会影响用户的响应时间,除非在网络通信的高峰期间或DBMS要求大数据量传递。

  对于本地型DBMS其大部分工作都在工作站一侧完成,即使数据存储在文件服务器上,其对数据的处理仍然要在工作站上进行。这种方式的最主要的一个缺点是无论查询需要多么少的数据,都需要首先将查询中的所有数据通过网络传到工作站,然后由工作站负责选出满足查询条件的数据,不难想象,当几个用户同时操作数据库时,数据库网络的带宽会很快阻塞。

  在这一方式下,工作站不仅要负责所有用户界面管理,还要负责所有数据处理的工作。在当今的数据库应用中,尤其是那些功能强且使用简便的系统,用户界面的处理开销是相当大的,象Windows这样的图形环境,处理上的额处开销会更大。为此而升级工作站是很得不偿失的。

 

18.1.4.2 客户/服务器型数据接口

 

  由于服务器硬件技术逐年迅速地提高,数据库在处理模式上在近五年内发生了改变。本地型DBMS逐渐让位给客户/服务器型DBMS,尤其是在大中型企业中更是这样。

  正如名字所暗示的,客户/服务器是将处理工作分散到工作站和服务器上去处理,服务器不仅负责存取数据,还要对数据作一定的处理工作,这样在数据发送给工作站之前即求得查询结果集,从而在大部分情况下可大大减少网络传输的开销,因此,也减轻了工作处理负担,从而只需关心用户界面的处理工作即可。

  服务器处理数据带来的另一个好处是,当服务器中数据库引擎使用了缓冲机制时,多个工作站可以从中受益。例如,一用户查询了某数据,当另一用户要查询同样的数据时,即可从服务器缓冲中直接得到结果,从而免去很多开销。

  客户/服务器系统的成功与否在很大程度上依赖于服务器硬件质量和容量。用户越多,服务器的处理负担越重,相应服务器硬件性能也要跟得上,否则就会导致响应时间比本地型数据库还要差的结果。  

  处理工作,而工作站负责用户界面处理工作 

  客户和服务器间的数据库接口要比本地型系统复杂得多。它有几个转换级负责命令和结果集在工作站和服务器间的传送。图18.5给出了客户/服务器数据库接口的详细情况。 

  客户/服务器的前端应用程序实际上不直接与数据库引擎打交道。每个客户服务器提供一个数据库通信接口,该数据库通信接口运行于前端。这些接口也称为数据库通信API等。数据库通信接口的工作流程如下:

  ① 前端应用程序发送命令给数据库通信接口。

接口通过网络把命令传给数据库引擎。

 ③ 数据库引擎在服务时上做查询或更新操作之类的工作,通过网络文件系统访问物理数据。

  ④ 数据库引擎将结果返送给工作站上的通信接口。

  ⑤ 前端从接口上接到结果后,显示或按用户要求做其它处理。 

  客户/服务器型比本地型DBMS更接近ODBC的原理。因为由前端向数据库的命令发送和由数据库向前端结果的返回都是透明的,并不需知道具体传送方式如何,各系统存在差别地方是:客户/服务器系统在管理工作站和服务器间通信的方式不同,彼此会不兼容。此外,对于本地型DBMS缺乏读取不同类型数据源的能力的问题。这些问题在IDAPI中得到了有效解决。 

18.1.4.3 Borland Delphi 的解决方案 

  IDAPI是通过BDE(Borland Database Engine)SQL Links,来解决本地型数据库接口和客户/服务器型数据库接口的兼容问题的,见图13.1

  Delphi 的数据库特性使你能很容易构造数据库应用程序。这些应用程序能访问Visual dBASEParadoxLocal InterBase Server for Windows等本地数据库和OracleSybaseInformixSQL ServerRemote InterBase Server等客户/服务器数据库。

BDEBorland公司支持Delphi 2.0 Client/Server SuiteParadox for WindowsVisual dBASE for Windows等产品的核心数据库引擎和互连软件。BDE 提供了丰富和强壮的特性支持客户/服务器应用的开发。

  提供支持多种数据库如dBASEParadoxTextInterBaseOracleSybaseMicrosoft SQL Server以及任何ODBC数据源的统一和一致的应用程序编程接口(API)。开发者能不用修改数据库应用就能访问不同的数据库站点和数据库格式:

  BDE是用于开发客户/服务器数据库应用的理想工具,数据库应用程序既可访问本地数据库又可访问远程数据库

允许数据库用直接和灵活地访问数据源

BDE对于ParadoxdBASE文件格式来是高性能的数据库引擎

  支持使用ISAM(Indextd Sequential Access Method)SQLQBE访问数据

  BDE是数据集成化引擎,提高跨不同数据库的共享服务。支持不同数据库格式的相互转化,如dBASEOracle表、从InterBaseParadox拷贝数据甚至建立InterBase Oracle表之间的一对多关系

  BDE查询引擎为SQLQBE和面向集合访问提供一致性的查询语言。支持用户定义和访问基本SQL的服务器和基于文件数据库的能力

  BDE支持全32位功能,如多线程,抢占式多进程,长文件名和UNC,用户可在后台执行多个查询,多个数据库应用可访问同一个数据库文件

 

  BDE的体系结构是基于数据库驱动程序的,它提供了各种共享服务:

  ● 缓冲区管理(Buffer Manager)

  ● 排序引擎

  ● OS服务

  ● 内存管理

  ● BLOB快速存取

  ● SQL查询引擎

  ● SQL产生器

  ● 数据库重构

  ● 表的批处理

  ● 数据转换服务

  ● 连接服务

  ● 内存数据库服务

  ● SQL驱动程序服务

  ● 系统管理

  ● 语言管理

 

  ParadoxdBASE和文本数据库BDE包含的数据库驱动程序支持对标准数据源的一致性访问。用户可以增加ODBC驱动和Borland SQL Links产品以支持对SQL 服务器的数据访问,如InterBase OracleSybase等。此外BDE给予Windows 95Windows NT应用开发者以直接、独立共享的对多种数据源的高级访问。

<

 

 

 
上一篇:第十八章 Delphi客户服务器应用开发(三)  下一篇:第十七章 SQL编程(二)