VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - Microsoft Jet的多客户模型--多客户环境下VB数据库编程之(1)
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:10133, 日期:2001-02-16
Microsoft Jet的多客户模型--多客户环境下VB数据库编程之(1)
1.多客户环境下数据库的储存方式。在客户/服务器系统中,应用程序一般分为两种情况:一种是把整个应用程序放到网络服务器上,允许多个用户打开数据库。在这种情况下,用户可以共享组成应用程序的所有数据库对象,包括存储数据的表。另一种是把应用程序分为两个数据库(双数据库):一个是包括应用程序数据表的后端数据库,另一个是包含应用程序其它对象(查询、窗体、报表、宏和模块)的前端数据库,前端数据库还可以管理临时对象。后端数据库放到网络服务器上,而前端数据库分发给用户,使来自后端数据库的连接表作为前端数据库对象的基础。在多用户环境中,双数据库方法具有较为明显的优势,因为应用程序不必建立可可能与另一个用户发生冲突的临时表。因此,在用户工作站上存储前端数据库,可以避免对临时对象的争用;同时,由于在本地存储静态对象,因而当应用程序运行时,可以使网络通信量减少到最小。

2.静态部件与动态部件。应用程序中的部件可以归为两类,即静态部件和动态部件。

(1)静态部件:应用程序中相对稳定,即不经常改变的部分。常用的静态部件是组成调用Microsoft Jet宿主程序的动态链接库(.dll)和可执行文件(.exe),例如Visual Basic,Microsoft Access,Microsoft Excel等。此外,应用程序中的部件,如窗体、报表和程序代码等,也属于静态部件。

静态部件不经常改变,因而是工作站存储的理想选择。为了获得最佳性能,通常把静态对象安装在本地工作站上。这种情况下,当应用程序的设计变更时,必须对本地工作站上的对象进行更新。但是,如果用户工作站的磁盘空间不够用,或者希望能更好地控制静态部件的变更,则可以把静态部件存储在网络服务器上。这样做会明显增加网络的通信量和降低应用程序的性能,但可以使应用程序更易于管理。当然,如果可能的话,最好把静态部件存储在用户端。

把部件移到工作站上,将会给应用程序的管理带来一些麻烦。例如,当需要修改应用程序的静态对象时,例如修改表的结构或程序代码,必须有相应的机制来更新每个工作站上所有受影响的部件。当工作站较多时,这种操作相当费时费力。为了解决个问题,可以使用下两种方法:

·在启动应用程序时检查部件的最新版本。例如,应用程序的启动代码可以把本地数据库中静态对象的修改日期与服务器的中央数据库中的日期进行比较,如果发现服务器对象的日期较新,则自动输入对象的最新版本,使本地数据库保持最新。

·用Microsoft Jet的复制功能使对象同步。例如,可以建立数据库的复本并把它们存储在工作站上,然后就可以通过复制功能自动使对象同步。“数据库复本”在后面将讲到。

(2)动态部件:是一些文件,由在多用户环境中用户访问的实际数据组成。这些文件

包括Microsoft Jet数据库(.mdb)文件、外部数据库文件(如 Microsoft FoxPro数据库文件)或存储在数据库服务器上的ODBC数据库文件。和静态部件一样,应用程序动态部件的存放位置同样可能是决定应用程序总体性能的主要因素。例如,假定把应用程序的数据文件放置在网络服务器上,而且应用程序必须在没有索引的表中查找一个记录。在这种情况下,Microsoft Jet必须对整个表进行顺序扫描以查找匹配结果,这意味着必须把整个表从服务器传送到引擎的工作站。当表很大时,这种操作可能需要较长的时间。同时,由于用户在执行查找时长时间地等待响应,而网络上大量的通信还会轮流地降低其他用户的速度,所以这个问题会更加复杂。为了缓解这种情况,可以给应用程序要查找的列添加索引。但是,添加索引又可能会增加网络通信量,而且降低了并发和性能。这就是说,通过网络访问文件显然比在本地计算机上访问文件慢,在多用户环境中实现数据库系统实际上是以牺牲系统性能为代价的。因此,为了减小网络的通信量,最好将某些应用程序的部件存储在本地工作站上。例如,假定应用程序使用一套存储邮政编码或零件编号表,而这些表不经常改变,则可以把它们移到本地工作站上,以避免网络访问。

3.Microsoft Jet多用户模型。Microsoft Jet多用户数据库应用程序由几个重要部件构成。在每个用户的工作站上都有Microsoft Jet的一个拷贝在运行,如果使用双数据库方法,则通常静态部件会驻留在每个用户的计算机上,而动态部件会驻留在网络服务器上。除此之外,多用户应用程序具有下列文件:一个工作组信息文件,它可以集中驻留在网络服务器上,也可以驻留在每个用户工作站上;每个数据库有一个锁定信息文件(.1db),它驻留在与数据库相同的文件夹内。

1).工作组信息文件

工作组信息文件是一个Microsoft Jet数据库,用来存储用户、组和密码信息以及用户设置的各种选项信息。在多用户环境中,工作组信息文件的位置是很重要的。可以把工作组信息文件放在每个本地工作站上,也可以把它放在网络服务器上。如果把它存储在本地机上,则必须在变更安全性设置值时采取必要的步骤对它进行更新。

2).锁定信息文件

锁定信息文件(.1db)用来存储数据库中所有当前锁定记录的信息。在打开数据库时,如果锁定信息文件不存在,则Microsoft Jet数据库引擎会自动建立该文件。Microsoft Jet为每个以共享模式打开的Microsoft Jet数据库文件建立一个锁定信息文件。该文件与打开的相应数据库同名,但文件名后缀为.1db。例如,与Northwind.mdb相对应的锁定信息文件名叫Northwind.1db。锁定信息文件与数据库存储在相伺的文件夹中。在数据库关闭时,Microsoft Jet会删除.1db文件。在多用户环境中,则在所有用户都退出应用程序时将其删除。

Microsoft Jet支持下列文件服务器和点对点网络:
.Microsoft WindowsNT和Windows95网络
.Banyan VINES 5.52
.DECnet4.1
. LANtastic 5.0
. Novell NetWare3.x 和4.x
. OS/2 LAN Manager 2.1 和2.2

一般来说点对点网络不能很好的满足多用户数据库系统的要求,大多数应用程序要求运行在有专用的文件服务器的网络上。