一. 關(guān)系數(shù)據(jù)庫的優(yōu)勢和目前面臨的問題
從60年代末開始, 數(shù)據(jù)庫技術(shù)經(jīng)歷了層次數(shù)據(jù)庫、網(wǎng)狀數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫而進入數(shù)據(jù)庫管理系統(tǒng)( DBMS)階段至今, 數(shù)據(jù)庫技術(shù)的研究也不斷取得進展。80年代, 關(guān)系數(shù)據(jù)庫成為發(fā)展的主流, 幾乎所有新推出的DBMS產(chǎn)品都是關(guān)系型的。關(guān)系型數(shù)據(jù)庫在計算機數(shù)據(jù)管理的發(fā)展史上是一個重要的里程碑,這種數(shù)據(jù)庫具有數(shù)據(jù)結(jié)構(gòu)化、最低冗余度、較高的程序與數(shù)據(jù)獨立性、易于擴充、易于編制應(yīng)用程序等優(yōu)點,目前較大的信息系統(tǒng)都是建立在結(jié)構(gòu)化數(shù)據(jù)庫設(shè)計之上的。
然而,隨著網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的飛速發(fā)展,特別是Internet和Intranet技術(shù)的發(fā)展,使得非結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用日趨擴大。關(guān)系數(shù)據(jù)庫從1970年發(fā)展至今,雖功能日趨完善,但對數(shù)據(jù)類型的處理只局限于數(shù)字、字符等,對多媒體信息的處理只是停留在簡單的二進制代碼文件的存儲。然而,隨著用戶應(yīng)用需求的提高、硬件技術(shù)的發(fā)展和Intranet/Internet提供的多彩的多媒體交流方式,用戶對多媒體處理的要求從簡單的存儲上升為識別、檢索和深入加工,正是用戶呼喚出"通用"數(shù)據(jù)庫服務(wù)器來處理占信息總量70%的聲音、圖像、時間序列信號和視頻等復(fù)雜數(shù)據(jù)類型。據(jù)有關(guān)數(shù)據(jù),1996年,全球數(shù)據(jù)庫市場的銷售額已接近40億美元,預(yù)計到2000年,數(shù)據(jù)庫市場銷售額將達到80億美元。巨大的增長潛力來自復(fù)雜數(shù)據(jù)類型的處理需求,使處理復(fù)雜數(shù)據(jù)類型的"超媒體"數(shù)據(jù)庫將成為各公司投資研發(fā)的重點。
二. 全新的文檔數(shù)據(jù)概念
從1989年起,Lotus通過其群件產(chǎn)品Notes提出了數(shù)據(jù)庫技術(shù)的全新概念-"文檔數(shù)據(jù)庫",文檔數(shù)據(jù)庫區(qū)別于傳統(tǒng)的其它數(shù)據(jù)庫,它是用來管理文檔。在傳統(tǒng)的數(shù)據(jù)庫中,信息被分割成離散的數(shù)據(jù)段,而在文檔數(shù)據(jù)庫中,文檔是處理信息的基本單位。一文檔可以很長、很復(fù)雜、可以無結(jié)構(gòu),與字處理文檔類似。
文檔數(shù)據(jù)庫與五、六十年代管理數(shù)據(jù)的文件系統(tǒng)不同,文檔數(shù)據(jù)庫仍屬于數(shù)據(jù)庫范疇。首先,文件系統(tǒng)中的文件基本上對應(yīng)于某個應(yīng)用程序。當(dāng)不同的應(yīng)用程序所需要的數(shù)據(jù)有部分相同時,也必須建立各自的文件,而不能共享數(shù)據(jù),而文檔數(shù)據(jù)庫可以共享相同的數(shù)據(jù)。因此,文件系統(tǒng)比文檔數(shù)據(jù)庫數(shù)據(jù)冗余度更大,更浪費存儲空間,且更難于管理維護。其次,文件系統(tǒng)中的文件是為某一特定應(yīng)用服務(wù)的,所以,要想對現(xiàn)有的數(shù)據(jù)再增加一些新的應(yīng)用是很困難的,系統(tǒng)不容易擴充。數(shù)據(jù)和程序缺乏獨立性。而文檔數(shù)據(jù)庫具有數(shù)據(jù)的物理獨立性和邏輯獨立性,數(shù)據(jù)和程序分離。
文檔數(shù)據(jù)庫也不同于關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫是高度結(jié)構(gòu)化的,而Notes的文檔數(shù)據(jù)庫允許創(chuàng)建許多不同類型的非結(jié)構(gòu)化的或任意格式的字段,與關(guān)系數(shù)據(jù)庫的主要不同在于,它不提供對參數(shù)完整性和分布事務(wù)的支持,但和關(guān)系數(shù)據(jù)庫也不是相互排斥的,它們之間可以相互交換數(shù)據(jù),從而相互補充、擴展。
三. 關(guān)系數(shù)據(jù)庫和文檔數(shù)據(jù)庫的異同
下面從三個方面比較兩種數(shù)據(jù)庫的異同:
1. 格式文本/多媒體
在信息時代,所有信息大體上可以分為兩類:一類信息能夠用數(shù)據(jù)或統(tǒng)一的結(jié)構(gòu)加以表示。例如,成本、費用、人員、工資以及員工業(yè)績等,都可以用數(shù)字或文字來描述或表達。這類信息具有相同的層次或網(wǎng)絡(luò)結(jié)構(gòu),我們稱之為結(jié)構(gòu)化數(shù)據(jù);而另一類信息根本無法用數(shù)字或者統(tǒng)一的結(jié)構(gòu)表示,例如,圖象、聲音等,我們稱之為非結(jié)構(gòu)化數(shù)據(jù)。這些非結(jié)構(gòu)化數(shù)據(jù)既可以是一段包含大量附加信息(如排版信息)的文字信息,也可能是一段聲音、圖象,甚至是影像。對于結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的關(guān)系如圖所示,非結(jié)構(gòu)化數(shù)據(jù)包括結(jié)構(gòu)化數(shù)據(jù),但又不止是結(jié)構(gòu)化數(shù)據(jù);結(jié)構(gòu)化數(shù)據(jù)屬于非結(jié)構(gòu)化數(shù)據(jù),是非結(jié)構(gòu)化數(shù)據(jù)的特例。一般來說,在人們的認識之中,關(guān)系數(shù)據(jù)庫最主要的特征就是數(shù)據(jù)的結(jié)構(gòu)化。然而,隨著網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的飛速發(fā)展,特別是Internet和Intranet技術(shù)的發(fā)展,使得非結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用日趨擴大。關(guān)系數(shù)據(jù)庫是高度結(jié)構(gòu)化的,這種數(shù)據(jù)結(jié)構(gòu)化使關(guān)系數(shù)據(jù)庫具有冗余度最低、程序與數(shù)據(jù)獨立性較高、易于擴充、易于編制應(yīng)用程序的特點。但是,隨著應(yīng)用領(lǐng)域的不斷拓展, 為滿足應(yīng)用對數(shù)據(jù)處理不斷"苛刻"的要求, 人們開始發(fā)現(xiàn)關(guān)系數(shù)據(jù)庫的許多限制和不足。因為文檔數(shù)據(jù)庫的基本元素就是文檔本身,而數(shù)據(jù)庫中的文檔可以同時包含結(jié)構(gòu)化的和非結(jié)構(gòu)化的信息,所以,文檔數(shù)據(jù)庫能夠存儲和管理類似文檔這樣的非結(jié)構(gòu)化數(shù)據(jù)。特別是,Notes的對象庫是一個非常理想的商業(yè)信息存儲器,可用于高效地存儲、傳播、分配和管理這類信息。這類信息通常具有豐富的數(shù)據(jù)類型,如表格(可以是從某個關(guān)系數(shù)據(jù)庫或電子表軟件中得到的)、格式化文本、WWW的頁面、圖形、OLE對象、或掃描的圖象以及傳真件、聲頻或視頻信號這樣的多媒體信息。
2. 在結(jié)構(gòu)上
關(guān)系數(shù)據(jù)庫是應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)庫數(shù)據(jù)的,其數(shù)據(jù)模型也是建立在數(shù)學(xué)概念基礎(chǔ)上的,在關(guān)系模型中,數(shù)據(jù)在用戶觀點下的邏輯結(jié)構(gòu)就是一張二維表。而Lotus Notes是一個文檔數(shù)據(jù)庫管理系統(tǒng),文檔數(shù)據(jù)庫的基本元素就是文檔。這里的文檔和關(guān)系數(shù)據(jù)庫中的記錄相似。Notes文檔的結(jié)構(gòu)是由表單(form)定義的,而表單由一組各式各樣的字段域組成。
· 域(Field)、域(Domain)和字段(Field)
在關(guān)系數(shù)據(jù)庫中,域(Domain)是屬性值的集合,如:大于0小于150的正整數(shù),長度小于25的字符串集合等等。而在文檔數(shù)據(jù)庫中,域(Field)的概念出現(xiàn)在表單對象中,域是表單上存儲數(shù)據(jù)的單個元素,域決定了一個獨立的文檔能包含什么數(shù)據(jù)。雖二者的中文譯文相同,但其實際意義和作用相差千里。反而在文檔數(shù)據(jù)庫中域的概念與關(guān)系數(shù)據(jù)庫中的字段(Field)相類似。
· 條目(Item)和屬性(Attribute)
在關(guān)系數(shù)據(jù)庫中,有屬性(Attribute)的概念,即二維表中的每一列稱為一個屬性,給每一列起一個名稱即屬性名。而在文檔數(shù)據(jù)庫中,就沒有"屬性",文檔擁有的是條目(Item),條目是指存儲于文檔中的任意數(shù)據(jù)部分。每一個條目代表文檔中一段數(shù)據(jù),在用戶界面中,是通過表單中的域來顯示文檔中的條目的。二者雖命名不同,但筆者認為從"屬性"的角度更容易理解文檔數(shù)據(jù)庫中條目的意義。
· 視圖(View)
在關(guān)系數(shù)據(jù)庫和文檔數(shù)據(jù)庫中,均有視圖的概念。在關(guān)系數(shù)據(jù)庫中,視圖是指從一個或幾個基本表(或視圖)導(dǎo)出的表。視圖和基本表不同,視圖是一個虛表,即視圖所對應(yīng)的數(shù)據(jù)不實際存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫中只存儲視圖的定義(存在數(shù)據(jù)字典中)。在文檔數(shù)據(jù)庫中,用戶通過Notes視圖瀏覽文檔。視圖是很方便的目錄,用戶可以從中看到關(guān)于文檔的概要信息和文檔的狀態(tài),然后存取特定的Notes文檔。文檔數(shù)據(jù)庫中文檔可以在視圖中顯示起全部或部分內(nèi)容,通過視圖,用戶可以看一組文檔的關(guān)鍵域,并可按某一準則對顯示的信息進行分類和排序。實質(zhì)上,二者邏輯上非常相似,即視圖所對應(yīng)的數(shù)據(jù)均不實際存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫中只存儲視圖的定義。
3. WEB數(shù)據(jù)庫
近年來網(wǎng)絡(luò)體系結(jié)構(gòu)經(jīng)歷了一次次重大變遷,客戶機/服務(wù)器結(jié)構(gòu)越來越流行了,Intranet以驚人的速度在短短一年內(nèi)迅速蔓延,面臨新的格局,如何簡易地實現(xiàn)"客戶機/服務(wù)器"連接與"Web/Intranet"連接成為數(shù)據(jù)庫管理人員關(guān)注的焦點。計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展使以網(wǎng)絡(luò)為中心的計算日益得到重視,WWW系統(tǒng)和數(shù)據(jù)庫成為網(wǎng)絡(luò)化信息服務(wù)的基礎(chǔ)。如果能把文檔數(shù)據(jù)庫同WWW服務(wù)器連接起來,就可以從瀏覽器中檢索文檔。這種一體化的信息網(wǎng)絡(luò)系統(tǒng):數(shù)據(jù)庫+WWW服務(wù)器,便成為下一代Internet開發(fā)的新領(lǐng)域。目前,在Web上一個典型的數(shù)據(jù)庫應(yīng)用程序應(yīng)包括三個部分:Web瀏覽器、HTTP 服務(wù)器和Web數(shù)據(jù)庫服務(wù)器。對于一般的關(guān)系型數(shù)據(jù)庫,實現(xiàn)Web數(shù)據(jù)庫的應(yīng)用通常有兩種方法:一種是Web服務(wù)器提供中間件連接Web服務(wù)器與數(shù)據(jù)庫服務(wù)器;另一種是把應(yīng)用程序下載到客戶端直接訪問數(shù)據(jù)庫。最常用的中間件技術(shù)有通用網(wǎng)關(guān)接口(CGI)和應(yīng)用程序編程接口(API)兩種。CGI程序缺陷在于CGI接口不支持用戶與數(shù)據(jù)庫間的持續(xù)互操作,再就是CGI的效率低,且需要同時運行多個CGI程序。用戶每次連至服務(wù)器時,服務(wù)器都要創(chuàng)建一個事務(wù)或運行CGI程序的一個拷貝。這樣對于一個復(fù)雜的應(yīng)用或有多個用戶訪問時,就會加重服務(wù)器的負擔(dān)。API在很大程度上克服了CGI的缺點,但其兼容性差和開發(fā)難度大也讓廣大開發(fā)人員望而卻步。客戶端訪問數(shù)據(jù)庫主要包括Java Script和數(shù)據(jù)庫連接器(IDC)等。用Java Script和IDC開發(fā)Web數(shù)據(jù)庫雖簡單但同時也存在功能有限、不能完全控制其過程等缺點。所以它們也無法勝任較復(fù)雜的Web數(shù)據(jù)庫的開發(fā)。難道就沒有一個開發(fā)相對容易、功能強大且高效的Web數(shù)據(jù)庫的開發(fā)方法嗎?有,答案是-Lotus Notes。Lotus Notes通過文檔數(shù)據(jù)庫實現(xiàn)了多媒體文檔管理,支持客戶機/服務(wù)器工作方式。每個數(shù)據(jù)可以包含若干不同形式的Notes文檔。存放在一個或多個Notes服務(wù)器上,可以讓許多用戶存取的數(shù)據(jù)庫稱為共享數(shù)據(jù)庫。通過利用服務(wù)器存取和數(shù)據(jù)庫存取控制等安全措施,數(shù)據(jù)庫管理員可以規(guī)定誰可以存取數(shù)據(jù)庫和在什么范圍內(nèi)使用數(shù)據(jù)庫,各數(shù)據(jù)庫在網(wǎng)上通過復(fù)制功能實現(xiàn)同步。這樣,通過文檔數(shù)據(jù)庫用戶可以在網(wǎng)絡(luò)上存取、追蹤儲存和組織信息。
四. 結(jié)束語
最近幾年,我國的數(shù)據(jù)庫市場飛速發(fā)展,并將具有更為巨大的增長潛力,表現(xiàn)為如下特點:首先,在近五年里,用戶的選型觀念發(fā)生了明顯的改變,有更多的用戶把數(shù)據(jù)庫的重要性放在十分重要的地位,其主要原因是用戶將把應(yīng)用軟件和應(yīng)用需求放在首位,應(yīng)用軟件是否滿足用戶需求是整個項目是否成功的標志,而應(yīng)用軟件開發(fā)直接依賴于數(shù)據(jù)庫開發(fā)工具。實際上,大量潛在的投資都在應(yīng)用軟件的開發(fā)上;另一個原因是硬件隨著芯片技術(shù)的發(fā)展越來越缺乏特性,硬件指標將變成次要的考慮因素。對行業(yè)性應(yīng)用來講,以前是制定幾家硬件產(chǎn)品作為優(yōu)選,而今可能是首選數(shù)據(jù)庫廠家再考慮硬件廠家了。正是用戶需求的這種變化給數(shù)據(jù)庫廠商提供了新的發(fā)展機會。Lotus Notes為各數(shù)據(jù)庫系統(tǒng)集成商提供了強大的文檔數(shù)據(jù)庫開發(fā)平臺,Notes結(jié)合了企業(yè)級電子郵件、分布式文檔數(shù)據(jù)庫與快速應(yīng)用開發(fā)等三位一體的強大技術(shù)、完全集成了Internet技術(shù),提供用戶完整的,以網(wǎng)絡(luò)為中心的應(yīng)用技術(shù)平臺??梢灶A(yù)言,在不久的將來,Lotus Notes的文檔數(shù)據(jù)庫將成為繼層次數(shù)據(jù)庫、網(wǎng)狀數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫之后的又一熱點技術(shù)。