Microsoft資料引擎(MSDE)之一

來源:互聯網
上載者:User
資料 Microsoft資料引擎 MSDE

概述
建立應用程式的開發人員面臨著這樣一個選擇:在眾多的資料庫選項中,應該選擇哪一種技術?在選擇一種資料庫技術之前,開發人員需要考慮很多因素。比如,該應用程式需要支援多少個使用者?所有的使用者是否會同時訪問資料庫系統?該應用程式的開發涉及到哪些費用?如果該應用程式的需求隨著時間的推移而發生變化,該技術是否允許對該資料庫的功能和規模進行擴充?
直到最近,Microsoft推出了兩種資料庫管理方案:Microsoft Jet (即Microsoft Access 資料引擎,該引擎隨同Access 和Microsoft Visual Studio發布) 和 Microsoft SQL Server。由於每一種技術方案都有自身的優勢,同時又存在某些局限性,因此,以前如果要求開發人員選擇這樣一種資料庫技術:使它既滿足從案頭到資料中心環境下運行,而資料庫應用程式又適應長期和短期需要,一般而言是很困難的。由於基於Jet的解決方案具有便於使用和開發成本低的優點,因此,對於案頭或者共用的應用程式而言,它是一種很不錯的選擇。然而,開發人員發現:隨著應用系統規模的擴大,在他們將Jet應用程式移植到SQL Server的平台之前,需要對程式碼進行大量的修改。值得開發人員高興的是:隨著一個與SQL Server 相容的資料引擎—Microsoft 資料引擎(MSDE)的發布,開發人員可以選用一種新的方式來建立基於案頭和共用環境的資料庫應用程式。利用MSDE,開發人員可以建立自由分布的案頭和共用資料庫解決方案。當需要對系統的規模進行擴充時,採用這種解決方案的資料庫應用程式可以很容易地移植到SQL Server中。
資料引擎涉及哪些技術
從本質上講,一個處於運行狀態的“資料引擎”就是一個核心進程。一個資料庫管理系統,比如Access 或者 SQL Server,將利用這個核心進程來儲存和管理資料庫中的資料。從這種意義上講,我們通常可以把一個資料引擎看作是一個沒有相應的圖形管理工具的資料庫管理系統。資料引擎主要有兩種作用:一是用來儲存資料,二是用來處理其它對象對儲存的資訊所提交的請求。我們通常把用來檢索或者更新資料的請求稱作資料庫查詢。
通常,資料引擎與自訂資料庫應用程式一起對客戶機應用程式提交的資料庫請求進行響應。自訂資料庫應用程式是用某種開發工具,比如Microsoft Visual Studio建立的。在這種情況下,由於自訂的資料庫應用程式已經包含了內建的工具對底層的資料庫進行管理,因此,在資料引擎中,就沒有必要包含圖形工具來對資料庫進行管理了。此外,由於資料引擎具有容易分布的特點,開發人員可以將相應的資料引擎包含到自訂應用程式中,在應用程式的安裝過程中,使用者可以通過選取該引擎組件而將其安裝到系統中。

Microsoft資料引擎
Microsoft 資料引擎(MSDE)與SQL Server完全相容,在以Visual Studio 6.0 或者Access 2000為開發工具所建立的案頭和共用資料庫解決方案中,該引擎可以用來對資料庫進行處理。對於Visual Studio 6.0 或者 Access 2000開發人員來說, 他們可以在不單獨對MSDE進行註冊的情況下發布使用MSDE建立的資料庫應用程式。MSDE用到了SQL Server提供的一些技術,並且與SQL Server 7.0完全相容。在Access 2000中,MSDE是代替Jet(Access 2000資料庫使用的預設引擎)的理想選擇。此外,對於Visual Studio 6.0開發人員而言,如果他們想建立自訂的資料庫應用程式,並且希望在這些自訂的應用程式中使用與SQL相容的的資料庫,那麼,他們可以通過採用MSDE作為資料引擎的方式來達到這一目的。MSDE與SQL的相容性意味著:開發人員可以對現有的以MSDE作為資料引擎、案頭和共用資料庫應用程式代碼不作任何修改,就可以將其移植到SQL Server中。
MSDE以提供某種服務的方式在後台運行。在此,服務指的是以後台進程啟動並執行應用程式。服務與其它的應用程式的運行方式有所不同。比如,只要使用者通過從“開始”菜單選取“啟動”選項,對應的應用程式就可以投入運行。但對於服務而言,如MSDE,情況就不是這樣。它們的啟動和關閉通常是由作業系統來完成的。以MSDE作為資料引擎的案頭和共用資料庫應用程式通常具有以下限制:在資料庫應用程式存活期間,MSDE服務應該處於運行狀態。一般而言,使用服務的對象是其它應用程式,而不是終端使用者。一般情況下,服務在後台運行,當它接收到客戶機應用程式向它提交的處理請求時,它就轉去執行相應的請求。對於MSDE來說,這些請求是一些將要對資料庫執行的操作。由於使用服務的對象是客戶機應用程式,而不是終端使用者,因此服務不需要有使用者介面。在Access 2000中建立的一個工程或者一個Visual Basic應用程式可以直接與某個服務進行互動。對於MSDE而言,這些客戶機應用程式充當了使用者介面。
MSDE的特性:
* 完全與Microsoft SQL Server 7.0 以及以前的版本相相容。
* 對於Visual Studio 6.0 或者 Microsoft Office 2000 開發人員而言,他們可以將基於MSDE的資料庫應用程式免費發布給終端使用者。
* 可以在Windows 95, Windows 98, Windows NT, 以及Windows 2000 (Intel 和 Alpha)平台上運行。
* 具有客戶機/伺服器的體繫結構(MSDE在資料庫伺服器,而不是在客戶機上執行對資料庫的操作)。
* 以提供服務的方式在後台運行。
* 在資料庫的開發過程中,開發人員不需要為該引擎建立相應的使用者介面。其它應用程式,比如用Access 2000 或者 Visual Basic開發的自訂應用程式需要為資料庫提供相應的使用者介面.

Jet 4.0
Jet 4.0是在Microsoft Access 2000中使用的預設的資料引擎。在Visual Studio 6.0 開發套件中,也包含了這一引擎。Jet是基於檔案的資料庫管理系統。這種類型的資料庫管理系統具有如下特點:系統中的資料庫包含在一個獨立的資料庫檔案中,並且對資料庫的讀寫操作是由客戶機控制的。Jet 可以在多使用者的環境下使用,並且開發人員還能夠將採用Jet作為引擎的資料庫應用程式擴充為案頭和共用資料庫應用程式。Microsoft Access為Jet資料引擎提供了一個便於使用的介面。開發人員還可以利用 Visual Basic或者其它開發工具來建立自訂的前端應用程式,在這些應用程式中,包含了以Jet作為引擎的資料庫。

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

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

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

資料庫應用程式的需求
表1列出了在企業環境下啟動並執行資料庫應用程式的需求,並說明了每一種資料引擎在多大程度上能夠滿足這些需求。如果你的應用程式在當前(或者在將來會)具有在表1最左邊的一列中所給出的任何需求,你就應該考慮用MSDE來代替Jet作為資料庫的引擎了。
在哪些情況下應選擇MSDE作為資料庫系統的引擎
在以下兩種情況下,我們可以選用MSDE作為資料庫應用程式的引擎。一是用MSDE 代替Jet來移植現有的資料庫應用程式,以提高它的延展性。二是以MSDE作為引擎來建立案頭和共用資料庫應用程式,當系統的規模擴大時,這些資料庫能夠很容易地移植到SQL Server。

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

基於伺服器的處理
與Jet不同,MSDE不是一個基於檔案的資料引擎,因此以MSDE作為引擎的資料庫應用程式不會受到基於檔案的資料庫對處理的資料量的限制。由於在基於檔案的資料庫中,對資料庫的操作是在客戶機上進行的,因此這種類型的資料庫影響了應用程式的效能。而在基於伺服器的資料庫系統中,比如在SQL Server和MSDE中,用來對客戶機應用程式提交的請求進行處理的操作是在伺服器上完成的,在對請求處理完畢後,伺服器將相應的結果返回給提交請求的客戶機應用程式。採用這種處理方式,大大減少了網路的負荷,並且,它還可以使使用者在沒有較高配置終端的情況下,以能夠被接受的速度訪問資料庫。
當多個使用者在同時使用一個基於檔案的資料庫時,每一個使用者都必須開啟同樣的檔案以從中讀寫資訊。由於每一個使用者只有輪到了他的順序才能對資料庫檔案執行相應的操作,因此,基於檔案的資料庫就會成為影響系統效能的一個瓶頸。基於伺服器的資料庫管理系統專門設計用來解決客戶機應用程式訪問資料庫管理系統時所遇到的這一問題,因此它可以提高系統的效能。
當客戶機應用程式分布在網路上的不同機器時,在客戶機處理資料的方式會使基於檔案的資料庫系統的效能進一步下降。當一個基於檔案的共用資料庫放在網路中的一個檔案伺服器上時,如果客戶機應用程式向檔案伺服器提交一個查詢請求以對共用資料庫執行相應的操作,即使執行該請求的結果只產生一條記錄,檔案伺服器也需要將該請求中包含的所有來源資料通過網路傳遞給提交請求的客戶機應用程式。在基於伺服器的資料庫中,資料引擎將在伺服器上執行客戶機應用程式提交的所有處理請求,在處理完畢後,只將處理的結果返回給客戶機。在這種模式下,應用程式在頻寬較窄的網路連接上仍然能夠以較好的效能來訪問伺服器上的資料庫。
如果你的資料庫應用程式分布在網路上、多個使用者需要同時訪問你的資料庫、或者使用者只能通過一條頻寬較窄的網路連接進行訪問,只要存在以上的任何一種情況,你就應該選用MSDE作為你的資料庫應用程式的引擎。

安全性
雖然MSDE和Jet都允許對錶格或者預存程序這些獨立的資料庫物件進行必要的保護,但在Windows NT 或者 Windows 2000平台上啟動並執行MSDE資料庫可以利用Windows 2000提供的安全機制來保護資料庫物件,但Jet資料庫卻不具備這種特性。
如果你希望在資料庫應用程式中利用Windows 2000中提供的這種安全機制,那麼你應該選擇MSDE作為你的資料引擎。
授權
任何註冊了Office 2000 專業版或者學習版的客戶, 或者任何註冊了在Visual Studio 6.0 企業版或者專業版中包含的工具組件的使用者都可以免費獲得MSDE,這些工具組件包括:
* Visual Studio 6.0, 專業版和企業版
* Visual Basic 6.0, 專業版和企業版
* Visual C++(r) 6.0, 專業版和企業版
* Visual InterDev(tm) 6.0 專業版
* Visual J++(r) 6.0, 專業版
* Visual FoxPro(r) 6.0 專業版
對於那些採用MSDE作為資料引擎來建立案頭和共用資料庫解決方案的開發人員而言,只要他們對下面的軟體進行了註冊,就可以獲得授權免費發布他們建立MSDE解決方案。這些需要註冊的軟體產品包括:
* Microsoft Office 2000 開發版
* Microsoft Visual Studio 6.0 專業版或者企業版中的相關工具組件(在本節的前面列出了這些工具組件)
對於那些以Microsoft Office 或者Visual Studio作為開發工具的開發人員而言,如果他們在應用程式中包含了以Jet作為引擎的資料庫,他們也被授權免費發布這些資料庫。但是,以Jet作為引擎的案頭和共用資料庫應用程式卻不能方便地移植到SQL Server中。如果開發費用是影響建立資料庫應用程式的一個重要因素,把MSDE作為資料庫的引擎是你最好的選擇。

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。