Database 版 (精华区)
一 客户/服务器的概念
在“创建多用户应用程序”中,可以看到在文件服务器环境下,
如何使用 Microsoft Jet 和 DAO 来建立应用程序。切记,在文件
服务器数据库结构中,服务器上是没有数据库引擎的,服务器很少
提供对网络文件的访问。简单的文件服务器结构对于成功地实现由
小到中等规模的应用程序来说,是比较理想的。
但是,有些应用程序的需求已超出文件服务器数据库系统的能
力。例如,一旦某个应用程序超出了并发事件的确定阈值,或者需
要利用一些高级的功能,例如触发器,那么客户/服务器结构可能会
更好些。如果除此之外,还要求许多文件服务器数据库系统不能适
应的性能、安全性、数据集成度和管理问题的话,可以考虑使用客
户/服务器结构。
1 文件服务器与客户/服务器的比较
在文件服务器数据库配置中,Microsoft Jet 数据库引擎驻留
在每个用户的工作站上,而包含所有数据的数据文件则驻留在服务
器上。当应用程序需要数据时,工作站上的数据库引擎会处理该查
询,然后在网络驱动器上发一个对特定数据的请求。由于在数据文
件中所有请求的数据必须从服务器发送到工作站,所以这会产生很
大的网络通讯量。
在客户/服务器配置中,数据库引擎和应用程序需求的数据都驻
留在网络服务器上。数据库引擎仅仅在一台机器(即服务器)上运
行,而不是在每一个工作站上都运行它的副本。工作站以 SQL 语句
格式向服务器简单地发出高级请求,检索指定的数据,并传回给客户。
2 客户/服务器的工作方式
要更好地比较客户/服务器与文件服务器的不同,可用下面的
Visual Basic 代码:
Dim dbs As Database
Dim rstTest As Recordset
Dim strName As String
Set dbs = DBEngine(0).OpenDatabase ("mydb.mdb")
Set rstTest = dbs.OpenRecordset ("mytable")
strName = rstTest!LastName
在文件服务器数据库应用程序中,将执行以下操作:
(1) Microsoft Jet 打开文件 mydb.mdb,该操作所需时间和资源
都比较少。
(2) 在工作站上运行的 Microsoft Jet DLL 在数据库文件中查找
关于 MyTable 表的信息。它所引起的磁盘读取和机器内存操
作,其代价都不昂贵。
(3) Microsoft Jet 把 MyTable 表的详细信息载入工作站内存,
如字段的数量、字段的数据类型、可用的索引以及数据库文件
中第一个数据页的位置信息。
(4) 在工作站上运行着的 Microsoft Jet 备份从磁盘上把实际的
数据读出来,并使应用程序可访问这些数据。
而在客户/服务器系统中,这些操作按下面的方式进行:
(1) 和前面列表中的步骤 1 和步骤 2 一样,Microsoft Jet 先打
开 mydb.mdb 文件,从文件中检索某些信息,然后在本地工作
站的内存中建立一些结构。
(2) 在 Microsoft Jet 加载 MyTable 之后,它知道这是与 ODBC
数据库的一个链接,然后试图创建与 ODBC 服务器的连接。这
是相对代价昂贵的操作,大概要花几秒钟。
(3) 当 ODBC 服务器接收到连接请求之后,它便不考虑内存和其它
资源,并为随后的请求作好准备。然后用连接来响应请求。
(4) Microsoft Jet 向服务器发出对 MyTable 数据的请求,该
MyTable 数据是用 DAO 代码请求的。
(5) 服务器把请求的数据返回给 Microsoft Jet,然后客户应用程
序可以使用这些数据。
3 客户/服务器的优点
对许多数据库应用程序来说,客户/服务器结构提供了如下的一
些优点:
* 因为只有单一的数据库服务器与数据交互(而不是文件共享
数据库的多个备份),所以操作更可靠、更强健。
* 因为数据库服务器与文件共享数据库不同而更具可测量性。
如果更多的用户添加到系统中,那么估计系统满足更多的需
求的能力会更容易些。
* 极大地提高了某些操作的性能,特别是当用户工作站是只有
很慢的处理器和较少的 RAM 的低档计算机时。例如,在高
档服务器上运行一个很大的查询,可能比在典型工作站上快
好几倍。
* 因为数据传输更有效,所以减少了网络的通讯量。只传输应
用程序所需的数据。
* 任务准则特性,例如事务日志、先进的备份功能、冗余磁盘
阵列和错误恢复工具。
※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: space.hit.edu.c]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.229毫秒