天天看點

Microsoft資料引擎 MSDE 介紹

Microsoft資料引擎MSDE
[ 作者:佚名轉貼自:不知點選數:4114更新時間:2004-1-29文章錄入:zhengjialon ]
Microsoft資料引擎 MSDE 介紹

概述

建立應用程式的開發人員面臨着這樣一個選擇:在衆多的資料庫選項中,應該選擇哪一種技術?在選擇一種資料庫技術之前,開發人員需要考慮很多因素。比如,該應用程式需要支援多少個使用者?所有的使用者是否會同時通路資料庫系統?該應用程式的開發涉及到哪些費用?如果該應用程式的需求随着時間的推移而發生變化,該技術是否允許對該資料庫的功能和規模進行擴充?

直到最近,Microsoft推出了兩種資料庫管理方案:MicrosoftJet(即MicrosoftAccess資料引擎,該引擎随同Access和MicrosoftVisualStudio釋出)和MicrosoftSQLServer。由于每一種技術方案都有自身的優勢,同時又存在某些局限性,是以,以前如果要求開發人員選擇這樣一種資料庫技術:使它既滿足從桌面到資料中心環境下運作,而資料庫應用程式又适應長期和短期需要,一般而言是很困難的。由于基于Jet的解決方案具有易于使用和開發成本低的優點,是以,對于桌面或者共享的應用程式而言,它是一種很不錯的選擇。然而,開發人員發現:随着應用系統規模的擴大,在他們将Jet應用程式移植到SQLServer的平台之前,需要對程式代碼進行大量的修改。值得開發人員高興的是:随着一個與SQLServer相容的資料引擎—Microsoft資料引擎(MSDE)的釋出,開發人員可以選用一種新的方式來建立基于桌面和共享環境的資料庫應用程式。利用MSDE,開發人員可以建立自由分布的桌面和共享的資料庫解決方案。當需要對系統的規模進行擴充時,采用這種解決方案的資料庫應用程式可以很容易地移植到SQLServer中。

資料引擎涉及哪些技術

從本質上講,一個處于運作狀态的“資料引擎”就是一個核心程序。一個資料庫管理系統,比如Access或者SQLServer,将利用這個核心程序來存儲和管理資料庫中的資料。從這種意義上講,我們通常可以把一個資料引擎看作是一個沒有相應的圖形管理工具的資料庫管理系統。資料引擎主要有兩種作用:一是用來存儲資料,二是用來處理其它對象對存儲的資訊所送出的請求。我們通常把用來檢索或者更新資料的請求稱作資料庫查詢。

通常,資料引擎與自定義資料庫應用程式一起對客戶機應用程式送出的資料庫請求進行響應。自定義資料庫應用程式是用某種開發工具,比如MicrosoftVisualStudio建立的。在這種情況下,由于自定義的資料庫應用程式已經包含了内置的工具對底層的資料庫進行管理,是以,在資料引擎中,就沒有必要包含圖形工具來對資料庫進行管理了。此外,由于資料引擎具有容易分布的特點,開發人員可以将相應的資料引擎包含到自定義應用程式中,在應用程式的安裝過程中,使用者可以通過選取該引擎元件而将其安裝到系統中。

Microsoft資料引擎

Microsoft資料引擎(MSDE)與SQLServer完全相容,在以VisualStudio6.0或者Access2000為開發工具所建立的桌面和共享的資料庫解決方案中,該引擎可以用來對資料庫進行處理。對于VisualStudio6.0或者Access2000開發人員來說,他們可以在不單獨對MSDE進行注冊的情況下釋出使用MSDE建立的資料庫應用程式。MSDE用到了SQLServer提供的一些技術,并且與SQLServer7.0完全相容。在Access2000中,MSDE是代替Jet(Access2000資料庫使用的預設引擎)的理想選擇。此外,對于VisualStudio6.0開發人員而言,如果他們想建立自定義的資料庫應用程式,并且希望在這些自定義的應用程式中使用與SQL相容的的資料庫,那麼,他們可以通過采用MSDE作為資料引擎的方式來達到這一目的。MSDE與SQL的相容性意味着:開發人員可以對現有的以MSDE作為資料引擎、桌面和共享的資料庫應用程式代碼不作任何修改,就可以将其移植到SQLServer中。

MSDE以提供某種服務的方式在背景運作。在此,服務指的是以背景程序運作的應用程式。服務與其它的應用程式的運作方式有所不同。比如,隻要使用者通過從“開始”菜單選取“啟動”選項,對應的應用程式就可以投入運作。但對于服務而言,如MSDE,情況就不是這樣。它們的啟動和關閉通常是由作業系統來完成的。以MSDE作為資料引擎的桌面和共享的資料庫應用程式通常具有以下限制:在資料庫應用程式存活期間,MSDE服務應該處于運作狀态。一般而言,使用服務的對象是其它應用程式,而不是終端使用者。一般情況下,服務在背景運作,當它接收到客戶機應用程式向它送出的處理請求時,它就轉去執行相應的請求。對于MSDE來說,這些請求是一些将要對資料庫執行的操作。由于使用服務的對象是客戶機應用程式,而不是終端使用者,是以服務不需要有使用者界面。在Access2000中建立的一個工程或者一個VisualBasic應用程式可以直接與某個服務進行互動。對于MSDE而言,這些客戶機應用程式充當了使用者界面。

MSDE的特性:

*完全與MicrosoftSQLServer7.0以及以前的版本相相容。

*對于VisualStudio6.0或者MicrosoftOffice2000開發人員而言,他們可以将基于MSDE的資料庫應用程式免費釋出給最終使用者。

*可以在Windows95,Windows98,WindowsNT,以及Windows2000(Intel和Alpha)平台上運作。

*具有客戶機/伺服器的體系結構(MSDE在資料庫伺服器,而不是在客戶機上執行對資料庫的操作)。

*以提供服務的方式在背景運作。

*在資料庫的開發過程中,開發人員不需要為該引擎建立相應的使用者界面。其它應用程式,比如用Access2000或者VisualBasic開發的自定義應用程式需要為資料庫提供相應的使用者界面.

Jet4.0

Jet4.0是在MicrosoftAccess2000中使用的預設的資料引擎。在VisualStudio6.0開發工具包中,也包含了這一引擎。Jet是基于檔案的資料庫管理系統。這種類型的資料庫管理系統具有如下特點:系統中的資料庫包含在一個獨立的資料庫檔案中,并且對資料庫的讀寫操作是由客戶機控制的。Jet可以在多使用者的環境下使用,并且開發人員還能夠将采用Jet作為引擎的資料庫應用程式擴充為桌面和共享的資料庫應用程式。MicrosoftAccess為Jet資料引擎提供了一個易于使用的界面。開發人員還可以利用VisualBasic或者其它開發工具來建立自定義的前端應用程式,在這些應用程式中,包含了以Jet作為引擎的資料庫。

SQLServer

SQLServer是一個基于客戶機/伺服器模式的資料庫管理系統。與基于檔案的資料庫中使用的引擎不同,在基于客戶機/伺服器模式的資料庫管理系統中,資料引擎将負責管理資料庫的讀寫操作。由于這一特性,基于客戶機/伺服器模式的資料庫管理系統,比如SQLServer,可以在很大的程度上提高系統能夠處理的并發使用者數和資料量。目前,企業中使用的大型資料庫應用程式需要支援的并發使用者數和處理的資料量在不斷增加,SQLServer就是為滿足這一迫切需要而設計的。這些資料庫應用程式包括在今天已經實作和在将來還需要進一步改進的企業管理系統和決策支援系統。SQLServer具有各種發行版本,以滿足在不同的環境下對處理的資料量、并發使用者數和硬體的不同要求。

資料庫與SQL的相容性

資料庫與SQL的相容性指的是,資料庫在多大程度上與用來進行資料庫通信的ANSI結構化查詢語言(ANSI-SQL)行業标準保持一緻。MSDE和SQLServer兩者都遵從Transact-SQL(T-SQL)中定義的語言規範,而Jet則沒有采用這種規範。與此不同的是,Jet定義并實作了它自己的一套查詢語言。在這種查詢語言中,Jet可以調用VisualBasic應用程式(VBA)中的函數過程。Transact-SQL是一套定義完善的語言,開發人員可以通過這種語言來進行資料庫應用程式和資料庫伺服器之間的通信,并能夠對資料庫伺服器進行程式設計處理。Transact-SQL是ANSI-SQL的一個超集,利用Transact-SQL,開發人員可以通過對伺服器進行程式設計的方式來使伺服器執行一些定制的事務邏輯處理。使用者可以通過在用戶端調用這些以事件或者消息的方式驅動的事務邏輯處理過程,而實際執行時,這些邏輯處理過程則是在伺服器上完成的。MSDE與Transact-SQL的語言規範保持一緻意味着:MSDE中的對象不加修改就能夠在SQLServer中運作。是以,在這一點上,MSDE要優越于Jet。

如何選擇資料引擎

如果你手頭的資料庫應用程式的功能和規模已經不能滿足資料庫系統的需求,你可能準備建立一個基于功能強大的資料引擎的應用程式,也可能打算通過使用一個新的資料引擎來代替原來的引擎的方式對現有的資料庫應用程式進行移植,不管你采用哪一種方式,對現有的條件和計劃使用的每一種資料引擎的特性進行一定的了解是非常重要的。那麼,你到底應該選擇哪種資料引擎呢?如果你希望建立桌面和共享的資料庫應用程式,那麼,你可以考慮用MSDE來代替Jet。在本節中,我們讨論了在開發的過程中很多資料庫應用程式對系統提出的需求,另外,我們還提供了一些建議,以告訴開發人員如何選擇一個合适的資料引擎,使該引擎能夠在最大程度上滿足他們将要建立的工程需求。

資料庫應用程式的需求

表1列出了在企業環境下運作的資料庫應用程式的需求,并說明了每一種資料引擎在多大程度上能夠滿足這些需求。如果你的應用程式在目前(或者在将來會)具有在表1最左邊的一列中所給出的任何需求,你就應該考慮用MSDE來代替Jet作為資料庫的引擎了。

在哪些情況下應選擇MSDE作為資料庫系統的引擎

在以下兩種情況下,我們可以選用MSDE作為資料庫應用程式的引擎。一是用MSDE代替Jet來移植現有的資料庫應用程式,以提高它的可伸縮性。二是以MSDE作為引擎來建立桌面和共享的資料庫應用程式,當系統的規模擴大時,這些資料庫能夠很容易地移植到SQLServer。

MSDE與SQLServer的相容性

MSDE資料引擎與SQLServer完全相容。是以,在MSDE中建立的表格、存儲過程、觸發器,以及其它資料庫對象在不進行任何修改的情況下就可以在SQLServer資料庫中運作。但是,在Jet中建立的對象,比如查詢對象,就不能在不進行任何修改的情況下移植到SQLServer資料庫中運作。如果希望在将來把目前建立的資料庫應用程式移植到SQLServer中,或者現有的資料庫應用程式在處理的并發使用者數、資料量或者在其它某一方面已經或者将要超過Jet引擎的限制,那麼,應該選擇MSDE作為應用程式的資料引擎。采用這種解決方案,你可以在不修改任何代碼的情況下,毫不費力地在将來某一天将自己的資料庫應用程式移植到SQLServer。

基于伺服器的處理

與Jet不同,MSDE不是一個基于檔案的資料引擎,是以以MSDE作為引擎的資料庫應用程式不會受到基于檔案的資料庫對處理的資料量的限制。由于在基于檔案的資料庫中,對資料庫的操作是在客戶機上進行的,是以這種類型的資料庫影響了應用程式的性能。而在基于伺服器的資料庫系統中,比如在SQLServer和MSDE中,用來對客戶機應用程式送出的請求進行處理的操作是在伺服器上完成的,在對請求處理完畢後,伺服器将相應的結果傳回給送出請求的客戶機應用程式。采用這種處理方式,大大減少了網絡的負荷,并且,它還可以使使用者在沒有較高配置終端的情況下,以能夠被接受的速度通路資料庫。

當多個使用者在同時使用一個基于檔案的資料庫時,每一個使用者都必須打開同樣的檔案以從中讀寫資訊。由于每一個使用者隻有輪到了他的順序才能對資料庫檔案執行相應的操作,是以,基于檔案的資料庫就會成為影響系統性能的一個瓶頸。基于伺服器的資料庫管理系統專門設計用來解決客戶機應用程式通路資料庫管理系統時所遇到的這一問題,是以它可以提高系統的性能。

當客戶機應用程式分布在網絡上的不同機器時,在客戶機處理資料的方式會使基于檔案的資料庫系統的性能進一步下降。當一個基于檔案的共享資料庫放在網絡中的一個檔案伺服器上時,如果客戶機應用程式向檔案伺服器送出一個查詢請求以對共享資料庫執行相應的操作,即使執行該請求的結果隻産生一條記錄,檔案伺服器也需要将該請求中包含的所有源資料通過網絡傳遞給送出請求的客戶機應用程式。在基于伺服器的資料庫中,資料引擎将在伺服器上執行客戶機應用程式送出的所有處理請求,在處理完畢後,隻将處理的結果傳回給客戶機。在這種模式下,應用程式在帶寬較窄的網絡連接配接上仍然能夠以較好的性能來通路伺服器上的資料庫。

如果你的資料庫應用程式分布在網絡上、多個使用者需要同時通路你的資料庫、或者使用者隻能通過一條帶寬較窄的網絡連接配接進行通路,隻要存在以上的任何一種情況,你就應該選用MSDE作為你的資料庫應用程式的引擎。

安全性

雖然MSDE和Jet都允許對表格或者存儲過程這些獨立的資料庫對象進行必要的保護,但在WindowsNT或者Windows2000平台上運作的MSDE資料庫可以利用Windows2000提供的安全機制來保護資料庫對象,但Jet資料庫卻不具備這種特性。

如果你希望在資料庫應用程式中利用Windows2000中提供的這種安全機制,那麼你應該選擇MSDE作為你的資料引擎。

授權

任何注冊了Office2000專業版或者學習版的客戶,或者任何注冊了在VisualStudio6.0企業版或者專業版中包含的工具元件的使用者都可以免費獲得MSDE,這些工具元件包括:

*VisualStudio6.0,專業版和企業版

*VisualBasic6.0,專業版和企業版

*VisualC++(r)6.0,專業版和企業版

*VisualInterDev(tm)6.0專業版

*VisualJ++(r)6.0,專業版

*VisualFoxPro(r)6.0專業版

對于那些采用MSDE作為資料引擎來建立桌面和共享的資料庫解決方案的開發人員而言,隻要他們對下面的軟體進行了注冊,就可以獲得授權免費釋出他們建立MSDE解決方案。這些需要注冊的軟體産品包括:

*MicrosoftOffice2000開發版

*MicrosoftVisualStudio6.0專業版或者企業版中的相關工具元件(在本節的前面列出了這些工具元件)

對于那些以MicrosoftOffice或者VisualStudio作為開發工具的開發人員而言,如果他們在應用程式中包含了以Jet作為引擎的資料庫,他們也被授權免費釋出這些資料庫。但是,以Jet作為引擎的桌面和共享的資料庫應用程式卻不能友善地移植到SQLServer中。如果開發費用是影響建立資料庫應用程式的一個重要因素,把MSDE作為資料庫的引擎是你最好的選擇。

MSDE小結

如果開發人員希望建立桌面或者共享的資料庫應用程式,并且計劃在将來對這些資料庫應用程式的功能和規模進行擴充,那麼,選用MSDE作為資料引擎将具有以下優點:從近期來看,能夠降低系統的開發費用,從遠期來看,又提供了最為友善的方式,以對目前建立的資料庫應用程式進行移植。當你所在組織的規模擴大後對資料庫系統的功能和性能提出新的需求時,你可以在不修改現有資料庫應用程式中的任何代碼的情況下,将它完全移植到基于SQLServer的平台上運作。此外,由于MSDE與SQL完全相容,開發人員可以使用同樣的資料通路語言在規模相對較小的MSDE資料庫系統和規模較大的SQLServer資料庫系統之間實作無縫轉換。

在哪些情況下選用Jet

對于一些特殊的資料庫系統而言,以Jet4.0作為引擎也是一個很不錯的選擇。在這一節中,我們将讨論在哪些情況下應該選用Jet作為資料庫引擎。

分布性

在采用Jet作為引擎的資料庫系統中,由于資料庫包含在一個獨立的檔案中,是以備份和釋出資料庫的工作就變得非常容易。雖然在資料庫系統的運作過程中,其它檔案會通過諸如VisualBasic或者MicrosoftAccess這種類型的應用程式來通路Jet資料庫檔案,但由于開發人員對這些檔案之間的相關性進行了良好的定義,是以,通路資料庫檔案的操作不會占用系統大量的存儲空間或者使用大量的處理器資源。與Jet資料庫相比,MSDE資料庫比較難于釋出和安裝。是以,如果希望簡化資料庫的釋出和安裝的過程,選用Jet作為資料庫的引擎是一個很不錯的選擇。

開發費用

開發人員可以将基于Jet4.0的資料庫随同用下面的工具開發的資料庫應用程式一起發行:

*MicrosoftOffice2000

*MicrosoftAccess2000

*VisualStudio6.0任何版本中的相關工具元件(在文章的前面部分列出了這些元件)

如果開發費用是建立資料庫應用程式時要考慮的重要因素,選用Jet作為資料引擎是一個很不錯的選擇。

可伸縮性

MSDE和Jet資料庫都可以在桌面和共享的資料庫應用程式中運作。對于有些資料庫應用程式而言,它們所處理的資料量可能永遠也不會超過2GB,并且所支援的使用者數也不會超過20個。如果你手頭有一個Jet資料庫應用程式,即使随着系統規模的增長,它所處理的資料量也不會很大,并且需要支援的使用者數也不夠多,那麼,将Jet作為現有資料庫的引擎仍不失為一個好的選擇.

對系統資源的需求

由于Jet資料庫經過了壓縮處理,是以在那些資源有限的平台上,選用Jet作為資料庫的引擎是合适的。在這篇文章所讨論的三種資料引擎中,以Jet作為引擎的資料庫占用的存儲空間和消耗的系統記憶體最少。如果使用的機器的磁盤空間或者系統記憶體非常有限,那麼選用Jet作為引擎将是非常明智的選擇。

與以前版本的相容性

Jet4.0對那些基于以前的版本的資料庫提供了最大的相容性。你可以将現有的多個不同版本Jet資料庫應用程式放在同一個系統中運作。隻要你不将SQLServer或者MSDE加入到資料庫系統中,那麼你現有的系統仍将是一個基于Jet/Access解決方案的資料庫系統。如果在你現有的一個Jet資料庫應用程式中調用了在Jet以前版本中定義的一個函數,或者調用了這樣一個函數:你需要進行大量的處理工作才能将該函數轉化到與SQL相容的資料庫中運作,那麼,采用Jet作為資料庫的引擎将比采用MSDE或者SQLServer7.0具有更大的優越性。

JET小結

對于那些在目前要求處理的資料量不大、需要支援的并發使用者數也不多,并且在将來也不會有很大增長的的資料庫管理系統而言,基于Jet的資料庫系統具有開發費用低、維護友善的優點,并且與以前版本的Jet資料庫系統具有最大的相容性。

在哪些情況下應選擇

SQLServer

看到這一節的标題,你可能想問:為什麼不以MSDE或者Jet作為引擎來開發所有的資料庫系統呢?對這個問題的答案是:基于Jet甚至是MSDE的資料庫系統在有些情況下已經不能滿足實際的需要了。在下面,我們對這些情況進行了說明。

資料庫的容量

基于MSDE的資料庫最多能存儲2GB大小的資料。基于Jet的資料庫中的每一個檔案能夠存儲的資料也無法超過2GB。由于Jet資料庫檔案可以通過互相連結的方式來增大存儲能力,是以最終存儲的資料量隻受到磁盤空間大小的限制。但是,管理多個資料檔案将是一項非常困難的工作。是以,如果你現有的資料庫的大小超過了2GB,或者是在将來會突破這一限制,那麼選用SQLServer作為資料庫系統的引擎将是最佳的選擇。

支援的并發使用者數

當資料庫系統需要支援的并發使用者數不超過5個時,采用MSDE作為資料庫的引擎将會獲得最優的系統性能。Microsoft極力推薦:為了使MSDE資料庫系統表現出優越的性能,系統所支援的并發使用者數不要超過5個。

從技術和授權的角度上來講,基于Jet的資料庫系統支援的使用者數可以達到255個,但在實際中,系統支援的使用者數最好不要超過20個。這樣的原因是:Jet資料庫系統采用基于檔案的方式來存儲資料,是以,随着連接配接的使用者數量的增加,需要對檔案執行讀寫操作的使用者數也将不斷增加,進而使系統的性能變差。

由于SQLServer可以支援成千上萬個并發使用者,是以可以在最大程度上滿足企業級資料庫系統的性能需求。是以,如果一個資料庫應用程式需要支援的使用者數超過了5個時,選用SQLServer将是最明智的選擇。

SQLServer小結

如果使用者要求一個獨立的資料庫處理的資料量超過2GB,并且使用者要求在通路資料庫系統時能夠獲得良好的性能,那麼,應該選用SQLServer作為資料庫系統的引擎。在所有的資料引擎中,SQLServer提供了最優越的性能和最好的可伸縮性。

對MSDE許可的解釋

任何注冊了Office2000專業版或者學習版的使用者,或者任何注冊了在VisualStudio6.0企業版或者專業版中包含的工具元件的使用者都可以免費獲得MSDE,這些工具元件包括:

*VisualStudio6.0,專業版和企業版

*VisualBasic6.0,專業版和企業版

*VisualC++(r)6.0,專業版和企業版

*VisualInterDev(tm)6.0專業版

*VisualJ++(r)6.0,專業版

*VisualFoxPro(r)6.0專業版

釋出MSDE解決方案所需的許可

如果VisualStudio6.0或者Office2000開發人員在他們建立的解決方案中使用MSDE,隻要他們遵守了在開發過程中所用到的其它軟體産品的最終使用者許可協定,就可以将他們的解決方案釋出給他們的客戶或者最終使用者,Microsoft不會因為開發人員使用了MSDE而收取相應的版權費。

當MSDE解決方案與SQLServer進行互操作時需要獲得的許可

如果開發人員釋出的基于MSDE的資料庫應用程式在運作的過程中需要與SQLServer進行互動,那麼,對于開發人員在客戶機上安裝的資料庫應用程式的每一份拷貝,他們需要擷取一份Microsoft客戶通路許可(CAL)。對于中心的SQLServer資料庫,開發人員也需要為安裝的每一個拷貝擷取一份許可。如果你想了解有關SQLServer7.0報價和授權許可的更詳細的資訊,請通路SQLServerWeb站點中的相關内容:

http://msdn.microsoft.com/isapi/gomscom.asp?Target=/sql/70/gen/pricing.htm

繼續閱讀