


Microsoft數(shù)據(jù)引擎 MSDE
創(chuàng)建應(yīng)用程序的開發(fā)人員面臨著這樣一個選擇:在眾多的數(shù)據(jù)庫選項中,應(yīng)該選擇哪一種技術(shù)?在選擇一種數(shù)據(jù)庫技術(shù)之前,開發(fā)人員需要考慮很多因素。比如,該應(yīng)用程序需要支持多少個用戶?所有的用戶是否會同時訪問數(shù)據(jù)庫系統(tǒng)?該應(yīng)用程序的開發(fā)涉及到哪些費用?如果該應(yīng)用程序的需求隨著時間的推移而發(fā)生變化,該技術(shù)是否允許對該數(shù)據(jù)庫的功能和規(guī)模進行擴充?
直到最近,Microsoft推出了兩種數(shù)據(jù)庫管理方案:Microsoft Jet (即Microsoft Access 數(shù)據(jù)引擎,該引擎隨同Access 和Microsoft Visual Studio發(fā)布) 和 Microsoft SQL Server。由于每一種技術(shù)方案都有自身的優(yōu)勢,同時又存在某些局限性,因此,以前如果要求開發(fā)人員選擇這樣一種數(shù)據(jù)庫技術(shù):使它既滿足從桌面到數(shù)據(jù)中心環(huán)境下運行,而數(shù)據(jù)庫應(yīng)用程序又適應(yīng)長期和短期需要,一般而言是很困難的。由于基于Jet的解決方案具有易于使用和開發(fā)成本低的優(yōu)點,因此,對于桌面或者共享的應(yīng)用程序而言,它是一種很不錯的選擇。然而,開發(fā)人員發(fā)現(xiàn):隨著應(yīng)用系統(tǒng)規(guī)模的擴大,在他們將Jet應(yīng)用程序移植到SQL Server的平臺之前,需要對程序代碼進行大量的修改。值得開發(fā)人員高興的是:隨著一個與SQL Server 兼容的數(shù)據(jù)引擎—Microsoft 數(shù)據(jù)引擎(MSDE)的發(fā)布,開發(fā)人員可以選用一種新的方式來創(chuàng)建基于桌面和共享環(huán)境的數(shù)據(jù)庫應(yīng)用程序。利用MSDE,開發(fā)人員可以創(chuàng)建自由分布的桌面和共享的數(shù)據(jù)庫解決方案。當(dāng)需要對系統(tǒng)的規(guī)模進行擴充時,采用這種解決方案的數(shù)據(jù)庫應(yīng)用程序可以很容易地移植到SQL Server中。
數(shù)據(jù)引擎涉及哪些技術(shù)
從本質(zhì)上講,一個處于運行狀態(tài)的“數(shù)據(jù)引擎”就是一個核心進程。一個數(shù)據(jù)庫管理系統(tǒng),比如Access 或者 SQL Server,將利用這個核心進程來存儲和管理數(shù)據(jù)庫中的數(shù)據(jù)。從這種意義上講,我們通常可以把一個數(shù)據(jù)引擎看作是一個沒有相應(yīng)的圖形管理工具的數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)引擎主要有兩種作用:一是用來存儲數(shù)據(jù),二是用來處理其它對象對存儲的信息所提交的請求。我們通常把用來檢索或者更新數(shù)據(jù)的請求稱作數(shù)據(jù)庫查詢。
通常,數(shù)據(jù)引擎與自定義數(shù)據(jù)庫應(yīng)用程序一起對客戶機應(yīng)用程序提交的數(shù)據(jù)庫請求進行響應(yīng)。自定義數(shù)據(jù)庫應(yīng)用程序是用某種開發(fā)工具,比如Microsoft Visual Studio創(chuàng)建的。在這種情況下,由于自定義的數(shù)據(jù)庫應(yīng)用程序已經(jīng)包含了內(nèi)置的工具對底層的數(shù)據(jù)庫進行管理,因此,在數(shù)據(jù)引擎中,就沒有必要包含圖形工具來對數(shù)據(jù)庫進行管理了。此外,由于數(shù)據(jù)引擎具有容易分布的特點,開發(fā)人員可以將相應(yīng)的數(shù)據(jù)引擎包含到自定義應(yīng)用程序中,在應(yīng)用程序的安裝過程中,用戶可以通過選取該引擎組件而將其安裝到系統(tǒng)中。
Microsoft數(shù)據(jù)引擎
Microsoft 數(shù)據(jù)引擎(MSDE)與SQL Server完全兼容,在以Visual Studio 6.0 或者Access 2000為開發(fā)工具所創(chuàng)建的桌面和共享的數(shù)據(jù)庫解決方案中,該引擎可以用來對數(shù)據(jù)庫進行處理。對于Visual Studio 6.0 或者 Access 2000開發(fā)人員來說, 他們可以在不單獨對MSDE進行注冊的情況下發(fā)布使用MSDE創(chuàng)建的數(shù)據(jù)庫應(yīng)用程序。MSDE用到了SQL Server提供的一些技術(shù),并且與SQL Server 7.0完全兼容。在Access 2000中,MSDE是代替Jet(Access 2000數(shù)據(jù)庫使用的缺省引擎)的理想選擇。此外,對于Visual Studio 6.0開發(fā)人員而言,如果他們想創(chuàng)建自定義的數(shù)據(jù)庫應(yīng)用程序,并且希望在這些自定義的應(yīng)用程序中使用與SQL兼容的的數(shù)據(jù)庫,那么,他們可以通過采用MSDE作為數(shù)據(jù)引擎的方式來達到這一目的。MSDE與SQL的兼容性意味著:開發(fā)人員可以對現(xiàn)有的以MSDE作為數(shù)據(jù)引擎、桌面和共享的數(shù)據(jù)庫應(yīng)用程序代碼不作任何修改,就可以將其移植到SQL Server中。
MSDE以提供某種服務(wù)的方式在后臺運行。在此,服務(wù)指的是以后臺進程運行的應(yīng)用程序。服務(wù)與其它的應(yīng)用程序的運行方式有所不同。比如,只要用戶通過從“開始”菜單選取“啟動”選項,對應(yīng)的應(yīng)用程序就可以投入運行。但對于服務(wù)而言,如MSDE,情況就不是這樣。它們的啟動和關(guān)閉通常是由操作系統(tǒng)來完成的。以MSDE作為數(shù)據(jù)引擎的桌面和共享的數(shù)據(jù)庫應(yīng)用程序通常具有以下限制:在數(shù)據(jù)庫應(yīng)用程序存活期間,MSDE服務(wù)應(yīng)該處于運行狀態(tài)。一般而言,使用服務(wù)的對象是其它應(yīng)用程序,而不是終端用戶。一般情況下,服務(wù)在后臺運行,當(dāng)它接收到客戶機應(yīng)用程序向它提交的處理請求時,它就轉(zhuǎn)去執(zhí)行相應(yīng)的請求。對于MSDE來說,這些請求是一些將要對數(shù)據(jù)庫執(zhí)行的操作。由于使用服務(wù)的對象是客戶機應(yīng)用程序,而不是終端用戶,因此服務(wù)不需要有用戶界面。在Access 2000中創(chuàng)建的一個工程或者一個Visual Basic應(yīng)用程序可以直接與某個服務(wù)進行交互。對于MSDE而言,這些客戶機應(yīng)用程序充當(dāng)了用戶界面。
MSDE的特性:
* 完全與Microsoft SQL Server 7.0 以及以前的版本相兼容。
* 對于Visual Studio 6.0 或者 Microsoft Office 2000 開發(fā)人員而言,他們可以將基于MSDE的數(shù)據(jù)庫應(yīng)用程序免費發(fā)布給最終用戶。
* 可以在Windows 95, Windows 98, Windows NT, 以及Windows 2000 (Intel 和 Alpha)平臺上運行。
* 具有客戶機/服務(wù)器的體系結(jié)構(gòu)(MSDE在數(shù)據(jù)庫服務(wù)器,而不是在客戶機上執(zhí)行對數(shù)據(jù)庫的操作)。
* 以提供服務(wù)的方式在后臺運行。
* 在數(shù)據(jù)庫的開發(fā)過程中,開發(fā)人員不需要為該引擎創(chuàng)建相應(yīng)的用戶界面。其它應(yīng)用程序,比如用Access 2000 或者 Visual Basic開發(fā)的自定義應(yīng)用程序需要為數(shù)據(jù)庫提供相應(yīng)的用戶界面.
Jet 4.0
Jet 4.0是在Microsoft Access 2000中使用的缺省的數(shù)據(jù)引擎。在Visual Studio 6.0 開發(fā)工具包中,也包含了這一引擎。Jet是基于文件的數(shù)據(jù)庫管理系統(tǒng)。這種類型的數(shù)據(jù)庫管理系統(tǒng)具有如下特點:系統(tǒng)中的數(shù)據(jù)庫包含在一個獨立的數(shù)據(jù)庫文件中,并且對數(shù)據(jù)庫的讀寫操作是由客戶機控制的。Jet 可以在多用戶的環(huán)境下使用,并且開發(fā)人員還能夠?qū)⒉捎肑et作為引擎的數(shù)據(jù)庫應(yīng)用程序擴充為桌面和共享的數(shù)據(jù)庫應(yīng)用程序。Microsoft Access為Jet數(shù)據(jù)引擎提供了一個易于使用的界面。開發(fā)人員還可以利用 Visual Basic或者其它開發(fā)工具來創(chuàng)建自定義的前端應(yīng)用程序,在這些應(yīng)用程序中,包含了以Jet作為引擎的數(shù)據(jù)庫。
SQL Server
SQL Server是一個基于客戶機/服務(wù)器模式的數(shù)據(jù)庫管理系統(tǒng)。與基于文件的數(shù)據(jù)庫中使用的引擎不同,在基于客戶機/服務(wù)器模式的數(shù)據(jù)庫管理系統(tǒng)中,數(shù)據(jù)引擎將負責(zé)管理數(shù)據(jù)庫的讀寫操作。由于這一特性,基于客戶機/服務(wù)器模式的數(shù)據(jù)庫管理系統(tǒng),比如SQL Server,可以在很大的程度上提高系統(tǒng)能夠處理的并發(fā)用戶數(shù)和數(shù)據(jù)量。當(dāng)前,企業(yè)中使用的大型數(shù)據(jù)庫應(yīng)用程序需要支持的并發(fā)用戶數(shù)和處理的數(shù)據(jù)量在不斷增加,SQL Server就是為滿足這一迫切需要而設(shè)計的。這些數(shù)據(jù)庫應(yīng)用程序包括在今天已經(jīng)實現(xiàn)和在將來還需要進一步改進的企業(yè)管理系統(tǒng)和決策支持系統(tǒng)。SQL Server具有各種發(fā)行版本,以滿足在不同的環(huán)境下對處理的數(shù)據(jù)量、并發(fā)用戶數(shù)和硬件的不同要求。
數(shù)據(jù)庫與SQL的兼容性
數(shù)據(jù)庫與SQL的兼容性指的是,數(shù)據(jù)庫在多大程度上與用來進行數(shù)據(jù)庫通信的ANSI結(jié)構(gòu)化查詢語言(ANSI-SQL)行業(yè)標(biāo)準(zhǔn)保持一致。MSDE 和 SQL Server兩者都遵從Transact-SQL (T-SQL)中定義的語言規(guī)范,而Jet則沒有采用這種規(guī)范。與此不同的是,Jet定義并實現(xiàn)了它自己的一套查詢語言。在這種查詢語言中,Jet可以調(diào)用Visual Basic應(yīng)用程序(VBA)中的函數(shù)過程。Transact-SQL是一套定義完善的語言,開發(fā)人員可以通過這種語言來進行數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)庫服務(wù)器之間的通信,并能夠?qū)?shù)據(jù)庫服務(wù)器進行編程處理。Transact-SQL是ANSI-SQL的一個超集,利用Transact-SQL,開發(fā)人員可以通過對服務(wù)器進行編程的方式來使服務(wù)器執(zhí)行一些定制的事務(wù)邏輯處理。用戶可以通過在客戶端調(diào)用這些以事件或者消息的方式驅(qū)動的事務(wù)邏輯處理過程,而實際執(zhí)行時,這些邏輯處理過程則是在服務(wù)器上完成的。MSDE與Transact-SQL的語言規(guī)范保持一致意味著:MSDE中的對象不加修改就能夠在SQL Server中運行。因此,在這一點上,MSDE要優(yōu)越于Jet。
如何選擇數(shù)據(jù)引擎
如果你手頭的數(shù)據(jù)庫應(yīng)用程序的功能和規(guī)模已經(jīng)不能滿足數(shù)據(jù)庫系統(tǒng)的需求,你可能準(zhǔn)備新建一個基于功能強大的數(shù)據(jù)引擎的應(yīng)用程序,也可能打算通過使用一個新的數(shù)據(jù)引擎來代替原來的引擎的方式對現(xiàn)有的數(shù)據(jù)庫應(yīng)用程序進行移植,不管你采用哪一種方式,對現(xiàn)有的條件和計劃使用的每一種數(shù)據(jù)引擎的特性進行一定的了解是非常重要的。那么,你到底應(yīng)該選擇哪種數(shù)據(jù)引擎呢?如果你希望創(chuàng)建桌面和共享的數(shù)據(jù)庫應(yīng)用程序,那么,你可以考慮用MSDE來代替Jet。在本節(jié)中,我們討論了在開發(fā)的過程中很多數(shù)據(jù)庫應(yīng)用程序?qū)ο到y(tǒng)提出的需求,另外,我們還提供了一些建議,以告訴開發(fā)人員如何選擇一個合適的數(shù)據(jù)引擎,使該引擎能夠在最大程度上滿足他們將要創(chuàng)建的工程需求。
數(shù)據(jù)庫應(yīng)用程序的需求
表1列出了在企業(yè)環(huán)境下運行的數(shù)據(jù)庫應(yīng)用程序的需求,并說明了每一種數(shù)據(jù)引擎在多大程度上能夠滿足這些需求。如果你的應(yīng)用程序在當(dāng)前(或者在將來會)具有在表1最左邊的一列中所給出的任何需求,你就應(yīng)該考慮用MSDE來代替Jet作為數(shù)據(jù)庫的引擎了。
在哪些情況下應(yīng)選擇MSDE作為數(shù)據(jù)庫系統(tǒng)的引擎
在以下兩種情況下,我們可以選用MSDE作為數(shù)據(jù)庫應(yīng)用程序的引擎。一是用MSDE 代替Jet來移植現(xiàn)有的數(shù)據(jù)庫應(yīng)用程序,以提高它的可伸縮性。二是以MSDE作為引擎來創(chuàng)建桌面和共享的數(shù)據(jù)庫應(yīng)用程序,當(dāng)系統(tǒng)的規(guī)模擴大時,這些數(shù)據(jù)庫能夠很容易地移植到SQL Server。
MSDE與SQL Server的兼容性
MSDE數(shù)據(jù)引擎與SQL Server完全兼容。因此,在MSDE中創(chuàng)建的表格、存儲過程、觸發(fā)器,以及其它數(shù)據(jù)庫對象在不進行任何修改的情況下就可以在SQL Server數(shù)據(jù)庫中運行。但是,在Jet中創(chuàng)建的對象,比如查詢對象,就不能在不進行任何修改的情況下移植到SQL Server數(shù)據(jù)庫中運行。如果希望在將來把當(dāng)前創(chuàng)建的數(shù)據(jù)庫應(yīng)用程序移植到SQL Server中,或者現(xiàn)有的數(shù)據(jù)庫應(yīng)用程序在處理的并發(fā)用戶數(shù)、數(shù)據(jù)量或者在其它某一方面已經(jīng)或者將要超過Jet引擎的限制,那么,應(yīng)該選擇MSDE作為應(yīng)用程序的數(shù)據(jù)引擎。采用這種解決方案,你可以在不修改任何代碼的情況下,毫不費力地在將來某一天將自己的數(shù)據(jù)庫應(yīng)用程序移植到SQL Server。
基于服務(wù)器的處理
與Jet不同,MSDE不是一個基于文件的數(shù)據(jù)引擎,因此以MSDE作為引擎的數(shù)據(jù)庫應(yīng)用程序不會受到基于文件的數(shù)據(jù)庫對處理的數(shù)據(jù)量的限制。由于在基于文件的數(shù)據(jù)庫中,對數(shù)據(jù)庫的操作是在客戶機上進行的,因此這種類型的數(shù)據(jù)庫影響了應(yīng)用程序的性能。而在基于服務(wù)器的數(shù)據(jù)庫系統(tǒng)中,比如在SQL Server和MSDE中,用來對客戶機應(yīng)用程序提交的請求進行處理的操作是在服務(wù)器上完成的,在對請求處理完畢后,服務(wù)器將相應(yīng)的結(jié)果返回給提交請求的客戶機應(yīng)用程序。采用這種處理方式,大大減少了網(wǎng)絡(luò)的負荷,并且,它還可以使用戶在沒有較高配置終端的情況下,以能夠被接受的速度訪問數(shù)據(jù)庫。
當(dāng)多個用戶在同時使用一個基于文件的數(shù)據(jù)庫時,每一個用戶都必須打開同樣的文件以從中讀寫信息。由于每一個用戶只有輪到了他的順序才能對數(shù)據(jù)庫文件執(zhí)行相應(yīng)的操作,因此,基于文件的數(shù)據(jù)庫就會成為影響系統(tǒng)性能的一個瓶頸。基于服務(wù)器的數(shù)據(jù)庫管理系統(tǒng)專門設(shè)計用來解決客戶機應(yīng)用程序訪問數(shù)據(jù)庫管理系統(tǒng)時所遇到的這一問題,因此它可以提高系統(tǒng)的性能。
當(dāng)客戶機應(yīng)用程序分布在網(wǎng)絡(luò)上的不同機器時,在客戶機處理數(shù)據(jù)的方式會使基于文件的數(shù)據(jù)庫系統(tǒng)的性能進一步下降。當(dāng)一個基于文件的共享數(shù)據(jù)庫放在網(wǎng)絡(luò)中的一個文件服務(wù)器上時,如果客戶機應(yīng)用程序向文件服務(wù)器提交一個查詢請求以對共享數(shù)據(jù)庫執(zhí)行相應(yīng)的操作,即使執(zhí)行該請求的結(jié)果只產(chǎn)生一條記錄,文件服務(wù)器也需要將該請求中包含的所有源數(shù)據(jù)通過網(wǎng)絡(luò)傳遞給提交請求的客戶機應(yīng)用程序。在基于服務(wù)器的數(shù)據(jù)庫中,數(shù)據(jù)引擎將在服務(wù)器上執(zhí)行客戶機應(yīng)用程序提交的所有處理請求,在處理完畢后,只將處理的結(jié)果返回給客戶機。在這種模式下,應(yīng)用程序在帶寬較窄的網(wǎng)絡(luò)連接上仍然能夠以較好的性能來訪問服務(wù)器上的數(shù)據(jù)庫。
如果你的數(shù)據(jù)庫應(yīng)用程序分布在網(wǎng)絡(luò)上、多個用戶需要同時訪問你的數(shù)據(jù)庫、或者用戶只能通過一條帶寬較窄的網(wǎng)絡(luò)連接進行訪問,只要存在以上的任何一種情況,你就應(yīng)該選用MSDE作為你的數(shù)據(jù)庫應(yīng)用程序的引擎。
安全性
雖然MSDE和Jet都允許對表格或者存儲過程這些獨立的數(shù)據(jù)庫對象進行必要的保護,但在Windows NT 或者 Windows 2000平臺上運行的MSDE數(shù)據(jù)庫可以利用Windows 2000提供的安全機制來保護數(shù)據(jù)庫對象,但Jet數(shù)據(jù)庫卻不具備這種特性。
如果你希望在數(shù)據(jù)庫應(yīng)用程序中利用Windows 2000中提供的這種安全機制,那么你應(yīng)該選擇MSDE作為你的數(shù)據(jù)引擎。
授權(quán)
任何注冊了Office 2000 專業(yè)版或者學(xué)習(xí)版的客戶, 或者任何注冊了在Visual Studio 6.0 企業(yè)版或者專業(yè)版中包含的工具組件的用戶都可以免費獲得MSDE,這些工具組件包括:
* Visual Studio 6.0, 專業(yè)版和企業(yè)版
* Visual Basic 6.0, 專業(yè)版和企業(yè)版
* Visual C++(r) 6.0, 專業(yè)版和企業(yè)版
* Visual InterDev(tm) 6.0 專業(yè)版
* Visual J++(r) 6.0, 專業(yè)版
* Visual FoxPro(r) 6.0 專業(yè)版
對于那些采用MSDE作為數(shù)據(jù)引擎來創(chuàng)建桌面和共享的數(shù)據(jù)庫解決方案的開發(fā)人員而言,只要他們對下面的軟件進行了注冊,就可以獲得授權(quán)免費發(fā)布他們創(chuàng)建MSDE解決方案。這些需要注冊的軟件產(chǎn)品包括:
* Microsoft Office 2000 開發(fā)版
* Microsoft Visual Studio 6.0 專業(yè)版或者企業(yè)版中的相關(guān)工具組件(在本節(jié)的前面列出了這些工具組件)
對于那些以Microsoft Office 或者Visual Studio作為開發(fā)工具的開發(fā)人員而言,如果他們在應(yīng)用程序中包含了以Jet作為引擎的數(shù)據(jù)庫,他們也被授權(quán)免費發(fā)布這些數(shù)據(jù)庫。但是,以Jet作為引擎的桌面和共享的數(shù)據(jù)庫應(yīng)用程序卻不能方便地移植到SQL Server中。如果開發(fā)費用是影響創(chuàng)建數(shù)據(jù)庫應(yīng)用程序的一個重要因素,把MSDE作為數(shù)據(jù)庫的引擎是你最好的選擇。
MSDE小結(jié)
如果開發(fā)人員希望創(chuàng)建桌面或者共享的數(shù)據(jù)庫應(yīng)用程序,并且計劃在將來對這些數(shù)據(jù)庫應(yīng)用程序的功能和規(guī)模進行擴充,那么,選用MSDE作為數(shù)據(jù)引擎將具有以下優(yōu)點:從近期來看,能夠降低系統(tǒng)的開發(fā)費用,從遠期來看,又提供了最為方便的方式,以對當(dāng)前創(chuàng)建的數(shù)據(jù)庫應(yīng)用程序進行移植。當(dāng)你所在組織的規(guī)模擴大后對數(shù)據(jù)庫系統(tǒng)的功能和性能提出新的需求時,你可以在不修改現(xiàn)有數(shù)據(jù)庫應(yīng)用程序中的任何代碼的情況下,將它完全移植到基于SQL Server的平臺上運行。此外,由于MSDE與SQL 完全兼容,開發(fā)人員可以使用同樣的數(shù)據(jù)訪問語言在規(guī)模相對較小的MSDE數(shù)據(jù)庫系統(tǒng)和規(guī)模較大的SQL Server數(shù)據(jù)庫系統(tǒng)之間實現(xiàn)無縫轉(zhuǎn)換。
在哪些情況下選用Jet
對于一些特殊的數(shù)據(jù)庫系統(tǒng)而言,以Jet 4.0作為引擎也是一個很不錯的選擇。在這一節(jié)中,我們將討論在哪些情況下應(yīng)該選用Jet作為數(shù)據(jù)庫引擎。
分布性
在采用Jet作為引擎的數(shù)據(jù)庫系統(tǒng)中,由于數(shù)據(jù)庫包含在一個獨立的文件中,因此備份和發(fā)布數(shù)據(jù)庫的工作就變得非常容易。雖然在數(shù)據(jù)庫系統(tǒng)的運行過程中,其它文件會通過諸如Visual Basic 或者 Microsoft Access這種類型的應(yīng)用程序來訪問Jet數(shù)據(jù)庫文件,但由于開發(fā)人員對這些文件之間的相關(guān)性進行了良好的定義,因此,訪問數(shù)據(jù)庫文件的操作不會占用系統(tǒng)大量的存儲空間或者使用大量的處理器資源。與Jet 數(shù)據(jù)庫相比,MSDE數(shù)據(jù)庫比較難于發(fā)布和安裝。因此,如果希望簡化數(shù)據(jù)庫的發(fā)布和安裝的過程,選用Jet作為數(shù)據(jù)庫的引擎是一個很不錯的選擇。
開發(fā)費用
開發(fā)人員可以將基于Jet 4.0的數(shù)據(jù)庫隨同用下面的工具開發(fā)的數(shù)據(jù)庫應(yīng)用程序一起發(fā)行:
* Microsoft Office 2000
* Microsoft Access 2000
* Visual Studio 6.0 任何版本中的相關(guān)工具組件(在文章的前面部分列出了這些組件)
如果開發(fā)費用是創(chuàng)建數(shù)據(jù)庫應(yīng)用程序時要考慮的重要因素,選用Jet作為數(shù)據(jù)引擎是一個很不錯的選擇。
可伸縮性
MSDE 和 Jet數(shù)據(jù)庫都可以在桌面和共享的數(shù)據(jù)庫應(yīng)用程序中運行。對于有些數(shù)據(jù)庫應(yīng)用程序而言,它們所處理的數(shù)據(jù)量可能永遠也不會超過2GB,并且所支持的用戶數(shù)也不會超過20個。如果你手頭有一個Jet數(shù)據(jù)庫應(yīng)用程序,即使隨著系統(tǒng)規(guī)模的增長,它所處理的數(shù)據(jù)量也不會很大,并且需要支持的用戶數(shù)也不夠多,那么,將Jet作為現(xiàn)有數(shù)據(jù)庫的引擎仍不失為一個好的選擇.
對系統(tǒng)資源的需求
由于Jet數(shù)據(jù)庫經(jīng)過了壓縮處理,因此在那些資源有限的平臺上,選用Jet作為數(shù)據(jù)庫的引擎是合適的。在這篇文章所討論的三種數(shù)據(jù)引擎中,以Jet作為引擎的數(shù)據(jù)庫占用的存儲空間和消耗的系統(tǒng)內(nèi)存最少。如果使用的機器的磁盤空間或者系統(tǒng)內(nèi)存非常有限,那么選用Jet作為引擎將是非常明智的選擇。
與以前版本的兼容性
Jet 4.0對那些基于以前的版本的數(shù)據(jù)庫提供了最大的兼容性。你可以將現(xiàn)有的多個不同版本Jet數(shù)據(jù)庫應(yīng)用程序放在同一個系統(tǒng)中運行。只要你不將SQL Server 或者 MSDE加入到數(shù)據(jù)庫系統(tǒng)中,那么你現(xiàn)有的系統(tǒng)仍將是一個基于Jet/Access解決方案的數(shù)據(jù)庫系統(tǒng)。如果在你現(xiàn)有的一個Jet數(shù)據(jù)庫應(yīng)用程序中調(diào)用了在Jet以前版本中定義的一個函數(shù),或者調(diào)用了這樣一個函數(shù):你需要進行大量的處理工作才能將該函數(shù)轉(zhuǎn)化到與SQL兼容的數(shù)據(jù)庫中運行,那么,采用Jet作為數(shù)據(jù)庫的引擎將比采用MSDE 或者 SQL Server 7.0具有更大的優(yōu)越性。
JET小結(jié)
對于那些在當(dāng)前要求處理的數(shù)據(jù)量不大、需要支持的并發(fā)用戶數(shù)也不多,并且在將來也不會有很大增長的的數(shù)據(jù)庫管理系統(tǒng)而言,基于Jet的數(shù)據(jù)庫系統(tǒng)具有開發(fā)費用低、維護方便的優(yōu)點,并且與以前版本的Jet數(shù)據(jù)庫系統(tǒng)具有最大的兼容性。
在哪些情況下應(yīng)選擇
SQL Server
看到這一節(jié)的標(biāo)題,你可能想問:為什么不以MSDE或者Jet作為引擎來開發(fā)所有的數(shù)據(jù)庫系統(tǒng)呢?對這個問題的答案是:基于Jet 甚至是MSDE的數(shù)據(jù)庫系統(tǒng)在有些情況下已經(jīng)不能滿足實際的需要了。在下面,我們對這些情況進行了說明。
數(shù)據(jù)庫的容量
基于MSDE的數(shù)據(jù)庫最多能存儲2GB大小的數(shù)據(jù)。基于Jet的數(shù)據(jù)庫中的每一個文件能夠存儲的數(shù)據(jù)也無法超過2GB。由于Jet數(shù)據(jù)庫文件可以通過相互鏈接的方式來增大存儲能力,因此最終存儲的數(shù)據(jù)量只受到磁盤空間大小的限制。但是,管理多個數(shù)據(jù)文件將是一項非常困難的工作。因此,如果你現(xiàn)有的數(shù)據(jù)庫的大小超過了2GB,或者是在將來會突破這一限制,那么選用SQL Server作為數(shù)據(jù)庫系統(tǒng)的引擎將是最佳的選擇。
支持的并發(fā)用戶數(shù)
當(dāng)數(shù)據(jù)庫系統(tǒng)需要支持的并發(fā)用戶數(shù)不超過5個時,采用MSDE作為數(shù)據(jù)庫的引擎將會獲得最優(yōu)的系統(tǒng)性能。Microsoft極力推薦:為了使MSDE數(shù)據(jù)庫系統(tǒng)表現(xiàn)出優(yōu)越的性能,系統(tǒng)所支持的并發(fā)用戶數(shù)不要超過5個。
從技術(shù)和授權(quán)的角度上來講,基于Jet的數(shù)據(jù)庫系統(tǒng)支持的用戶數(shù)可以達到255個,但在實際中,系統(tǒng)支持的用戶數(shù)最好不要超過20個。這樣的原因是:Jet 數(shù)據(jù)庫系統(tǒng)采用基于文件的方式來存儲數(shù)據(jù),因此,隨著連接的用戶數(shù)量的增加,需要對文件執(zhí)行讀寫操作的用戶數(shù)也將不斷增加,從而使系統(tǒng)的性能變差。
由于SQL Server 可以支持成千上萬個并發(fā)用戶,因此可以在最大程度上滿足企業(yè)級數(shù)據(jù)庫系統(tǒng)的性能需求。因此,如果一個數(shù)據(jù)庫應(yīng)用程序需要支持的用戶數(shù)超過了5個時,選用SQL Server將是最明智的選擇。
SQL Server小結(jié)
如果用戶要求一個獨立的數(shù)據(jù)庫處理的數(shù)據(jù)量超過2GB,并且用戶要求在訪問數(shù)據(jù)庫系統(tǒng)時能夠獲得良好的性能,那么,應(yīng)該選用SQL Server作為數(shù)據(jù)庫系統(tǒng)的引擎。在所有的數(shù)據(jù)引擎中,SQL Server提供了最優(yōu)越的性能和最好的可伸縮性。
對MSDE許可的解釋
任何注冊了Office 2000 專業(yè)版或者學(xué)習(xí)版的用戶, 或者任何注冊了在Visual Studio 6.0 企業(yè)版或者專業(yè)版中包含的工具組件的用戶都可以免費獲得MSDE,這些工具組件包括:
* Visual Studio 6.0, 專業(yè)版和企業(yè)版
* Visual Basic 6.0, 專業(yè)版和企業(yè)版
* Visual C++(r) 6.0, 專業(yè)版和企業(yè)版
* Visual InterDev(tm) 6.0 專業(yè)版
* Visual J++(r) 6.0, 專業(yè)版
* Visual FoxPro(r) 6.0 專業(yè)版
發(fā)布MSDE解決方案所需的許可
如果Visual Studio 6.0 或者 Office 2000開發(fā)人員在他們創(chuàng)建的解決方案中使用MSDE,只要他們遵守了在開發(fā)過程中所用到的其它軟件產(chǎn)品的最終用戶許可協(xié)議,就可以將他們的解決方案發(fā)布給他們的客戶或者最終用戶,Microsoft 不會因為開發(fā)人員使用了MSDE而收取相應(yīng)的版權(quán)費。
當(dāng)MSDE解決方案與SQL Server進行互操作時需要獲得的許可
如果開發(fā)人員發(fā)布的基于MSDE的數(shù)據(jù)庫應(yīng)用程序在運行的過程中需要與SQL Server進行交互,那么,對于開發(fā)人員在客戶機上安裝的數(shù)據(jù)庫應(yīng)用程序的每一份拷貝,他們需要獲取一份Microsoft客戶訪問許可(CAL)。對于中心的SQL Server數(shù)據(jù)庫,開發(fā)人員也需要為安裝的每一個拷貝獲取一份許可。如果你想了解有關(guān)SQL Server 7.0報價和授權(quán)許可的更詳細的信息,請訪問SQL Server Web站點中的相關(guān)內(nèi)容:
http://msdn.microsoft.com/isapi/gomscom.asp?Target=/sql/70/gen/pricing.htm.。
關(guān)鍵字:數(shù)據(jù)引擎、 MSDE 、數(shù)據(jù)庫
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認iptable規(guī)則詳解