程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> MicrosoftJet的多客戶模型--多客戶環境下VB數據庫編程之(1)

MicrosoftJet的多客戶模型--多客戶環境下VB數據庫編程之(1)

編輯:VB綜合教程
1.多客戶環境下數據庫的儲存方式。在客戶/服務器系統中,應用程序一般分為兩種情況:一種是把整個應用程序放到網絡服務器上,允許多個用戶打開數據庫。在這種情況下,用戶可以共享組成應用程序的所有數據庫對象,包括存儲數據的表。另一種是把應用程序分為兩個數據庫(雙數據庫):一個是包括應用程序數據表的後端數據庫,另一個是包含應用程序其它對象(查詢、窗體、報表、宏和模塊)的前端數據庫,前端數據庫還可以管理臨時對象。後端數據庫放到網絡服務器上,而前端數據庫分發給用戶,使來自後端數據庫的連接表作為前端數據庫對象的基礎。在多用戶環境中,雙數據庫方法具有較為明顯的優勢,因為應用程序不必建立可可能與另一個用戶發生沖突的臨時表。因此,在用戶工作站上存儲前端數據庫,可以避免對臨時對象的爭用;同時,由於在本地存儲靜態對象,因而當應用程序運行時,可以使網絡通信量減少到最小。
  
  2.靜態部件與動態部件。應用程序中的部件可以歸為兩類,即靜態部件和動態部件。
  
  (1)靜態部件:應用程序中相對穩定,即不經常改變的部分。常用的靜態部件是組成調用MicrosoftJet宿主程序的動態鏈接庫(.dll)和可執行文件(.exe),例如VisualBasic,MicrosoftAccess,MicrosoftExcel等。此外,應用程序中的部件,如窗體、報表和程序代碼等,也屬於靜態部件。
  
  靜態部件不經常改變,因而是工作站存儲的理想選擇。為了獲得最佳性能,通常把靜態對象安裝在本地工作站上。這種情況下,當應用程序的設計變更時,必須對本地工作站上的對象進行更新。但是,如果用戶工作站的磁盤空間不夠用,或者希望能更好地控制靜態部件的變更,則可以把靜態部件存儲在網絡服務器上。這樣做會明顯增加網絡的通信量和降低應用程序的性能,但可以使應用程序更易於管理。當然,如果可能的話,最好把靜態部件存儲在用戶端。
  
  把部件移到工作站上,將會給應用程序的管理帶來一些麻煩。例如,當需要修改應用程序的靜態對象時,例如修改表的結構或程序代碼,必須有相應的機制來更新每個工作站上所有受影響的部件。當工作站較多時,這種操作相當費時費力。為了解決個問題,可以使用下兩種方法:
  
  ·在啟動應用程序時檢查部件的最新版本。例如,應用程序的啟動代碼可以把本地數據庫中靜態對象的修改日期與服務器的中央數據庫中的日期進行比較,如果發現服務器對象的日期較新,則自動輸入對象的最新版本,使本地數據庫保持最新。
  
  ·用MicrosoftJet的復制功能使對象同步。例如,可以建立數據庫的復本並把它們存儲在工作站上,然後就可以通過復制功能自動使對象同步。“數據庫復本”在後面將講到。
  
  (2)動態部件:是一些文件,由在多用戶環境中用戶訪問的實際數據組成。這些文件
  
  包括MicrosoftJet數據庫(.mdb)文件、外部數據庫文件(如MicrosoftFoxPro數據庫文件)或存儲在數據庫服務器上的ODBC數據庫文件。和靜態部件一樣,應用程序動態部件的存放位置同樣可能是決定應用程序總體性能的主要因素。例如,假定把應用程序的數據文件放置在網絡服務器上,而且應用程序必須在沒有索引的表中查找一個記錄。在這種情況下,MicrosoftJet必須對整個表進行順序掃描以查找匹配結果,這意味著必須把整個表從服務器傳送到引擎的工作站。當表很大時,這種操作可能需要較長的時間。同時,由於用戶在執行查找時長時間地等待響應,而網絡上大量的通信還會輪流地降低其他用戶的速度,所以這個問題會更加復雜。為了緩解這種情況,可以給應用程序要查找的列添加索引。但是,添加索引又可能會增加網絡通信量,而且降低了並發和性能。這就是說,通過網絡訪問文件顯然比在本地計算機上訪問文件慢,在多用戶環境中實現數據庫系統實際上是以犧牲系統性能為代價的。因此,為了減小網絡的通信量,最好將某些應用程序的部件存儲在本地工作站上。例如,假定應用程序使用一套存儲郵政編碼或零件編號表,而這些表不經常改變,則可以把它們移到本地工作站上,以避免網絡訪問。
  
  3.MicrosoftJet多用戶模型。MicrosoftJet多用戶數據庫應用程序由幾個重要部件構成。在每個用戶的工作站上都有MicrosoftJet的一個拷貝在運行,如果使用雙數據庫方法,則通常靜態部件會駐留在每個用戶的計算機上,而動態部件會駐留在網絡服務器上。除此之外,多用戶應用程序具有下列文件:一個工作組信息文件,它可以集中駐留在網絡服務器上,也可以駐留在每個用戶工作站上;每個數據庫有一個鎖定信息文件(.1db),它駐留在與數據庫相同的文件夾內。
  
  1).工作組信息文件
  
  工作組信息文件是一個MicrosoftJet數據庫,用來存儲用戶、組和密碼信息以及用戶設置的各種選項信息。在多用戶環境中,工作組信息文件的位置是很重要的。可以把工作組信息文件放在每個本地工作站上,也可以把它放在網絡服務器上。如果把它存儲在本地機上,則必須在變更安全性設置值時采取必要的步驟對它進行更新。
  
  2).鎖定信息文件
  
  鎖定信息文件(.1db)用來存儲數據庫中所有當前鎖定記錄的信息。在打開數據庫時,如果鎖定信息文件不存在,則MicrosoftJet數據庫引擎會自動建立該文件。MicrosoftJet為每個以共享模式打開的MicrosoftJet數據庫文件建立一個鎖定信息文件。該文件與打開的相應數據庫同名,但文件名後綴為.1db。例如,與Northwind.mdb相對應的鎖定信息文件名叫Northwind.1db。鎖定信息文件與數據庫存儲在相伺的文件夾中。在數據庫關閉時,MicrosoftJet會刪除.1db文件。在多用戶環境中,則在所有用戶都退出應用程序時將其刪除。
  
  MicrosoftJet支持下列文件服務器和點對點網絡:
  .MicrosoftWindowsNT和Windows95網絡
  .BanyanVINES5.52
  .DECnet4.1
  .LANtastic5.0
  .NovellNetWare3.x和4.x
  .OS/2LANManager2.1和2.2
  
  一般來說點對點網絡不能很好的滿足多用戶數據庫系統的要求,大多數應用程序要求運行在有專用的文件服務器的網絡上。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved