一. 關(guān)系數(shù)據(jù)庫(kù)的優(yōu)勢(shì)和目前面臨的問(wèn)題
從60年代末開(kāi)始, 數(shù)據(jù)庫(kù)技術(shù)經(jīng)歷了層次數(shù)據(jù)庫(kù)、網(wǎng)狀數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)而進(jìn)入數(shù)據(jù)庫(kù)管理系統(tǒng)( DBMS)階段至今, 數(shù)據(jù)庫(kù)技術(shù)的研究也不斷取得進(jìn)展。80年代, 關(guān)系數(shù)據(jù)庫(kù)成為發(fā)展的主流, 幾乎所有新推出的DBMS產(chǎn)品都是關(guān)系型的。關(guān)系型數(shù)據(jù)庫(kù)在計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展史上是一個(gè)重要的里程碑,這種數(shù)據(jù)庫(kù)具有數(shù)據(jù)結(jié)構(gòu)化、最低冗余度、較高的程序與數(shù)據(jù)獨(dú)立性、易于擴(kuò)充、易于編制應(yīng)用程序等優(yōu)點(diǎn),目前較大的信息系統(tǒng)都是建立在結(jié)構(gòu)化數(shù)據(jù)庫(kù)設(shè)計(jì)之上的。mda.com
然而,隨著網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的飛速發(fā)展,特別是Internet和Intranet技術(shù)的發(fā)展,使得非結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用日趨擴(kuò)大。關(guān)系數(shù)據(jù)庫(kù)從1970年發(fā)展至今,雖功能日趨完善,但對(duì)數(shù)據(jù)類型的處理只局限于數(shù)字、字符等,對(duì)多媒體信息的處理只是停留在簡(jiǎn)單的二進(jìn)制代碼文件的存儲(chǔ)。然而,隨著用戶應(yīng)用需求的提高、硬件技術(shù)的發(fā)展和Intranet/Internet提供的多彩的多媒體交流方式,用戶對(duì)多媒體處理的要求從簡(jiǎn)單的存儲(chǔ)上升為識(shí)別、檢索和深入加工,正是用戶呼喚出"通用"數(shù)據(jù)庫(kù)服務(wù)器來(lái)處理占信息總量70%的聲音、圖像、時(shí)間序列信號(hào)和視頻等復(fù)雜數(shù)據(jù)類型。據(jù)有關(guān)數(shù)據(jù),1996年,全球數(shù)據(jù)庫(kù)市場(chǎng)的銷售額已接近40億美元,預(yù)計(jì)到2000年,數(shù)據(jù)庫(kù)市場(chǎng)銷售額將達(dá)到80億美元。巨大的增長(zhǎng)潛力來(lái)自復(fù)雜數(shù)據(jù)類型的處理需求,使處理復(fù)雜數(shù)據(jù)類型的"超媒體"數(shù)據(jù)庫(kù)將成為各公司投資研發(fā)的重點(diǎn)。
二. 全新的文檔數(shù)據(jù)概念
從1989年起,Lotus通過(guò)其群件產(chǎn)品Notes提出了數(shù)據(jù)庫(kù)技術(shù)的全新概念-"文檔數(shù)據(jù)庫(kù)",文檔數(shù)據(jù)庫(kù)區(qū)別于傳統(tǒng)的其它數(shù)據(jù)庫(kù),它是用來(lái)管理文檔。在傳統(tǒng)的數(shù)據(jù)庫(kù)中,信息被分割成離散的數(shù)據(jù)段,而在文檔數(shù)據(jù)庫(kù)中,文檔是處理信息的基本單位。一文檔可以很長(zhǎng)、很復(fù)雜、可以無(wú)結(jié)構(gòu),與字處理文檔類似。
文檔數(shù)據(jù)庫(kù)與五、六十年代管理數(shù)據(jù)的文件系統(tǒng)不同,文檔數(shù)據(jù)庫(kù)仍屬于數(shù)據(jù)庫(kù)范疇。首先,文件系統(tǒng)中的文件基本上對(duì)應(yīng)于某個(gè)應(yīng)用程序。當(dāng)不同的應(yīng)用程序所需要的數(shù)據(jù)有部分相同時(shí),也必須建立各自的文件,而不能共享數(shù)據(jù),而文檔數(shù)據(jù)庫(kù)可以共享相同的數(shù)據(jù)。因此,文件系統(tǒng)比文檔數(shù)據(jù)庫(kù)數(shù)據(jù)冗余度更大,更浪費(fèi)存儲(chǔ)空間,且更難于管理維護(hù)。其次,文件系統(tǒng)中的文件是為某一特定應(yīng)用服務(wù)的,所以,要想對(duì)現(xiàn)有的數(shù)據(jù)再增加一些新的應(yīng)用是很困難的,系統(tǒng)不容易擴(kuò)充。數(shù)據(jù)和程序缺乏獨(dú)立性。而文檔數(shù)據(jù)庫(kù)具有數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性,數(shù)據(jù)和程序分離。mda.com
文檔數(shù)據(jù)庫(kù)也不同于關(guān)系數(shù)據(jù)庫(kù),關(guān)系數(shù)據(jù)庫(kù)是高度結(jié)構(gòu)化的,而Notes的文檔數(shù)據(jù)庫(kù)允許創(chuàng)建許多不同類型的非結(jié)構(gòu)化的或任意格式的字段,與關(guān)系數(shù)據(jù)庫(kù)的主要不同在于,它不提供對(duì)參數(shù)完整性和分布事務(wù)的支持,但和關(guān)系數(shù)據(jù)庫(kù)也不是相互排斥的,它們之間可以相互交換數(shù)據(jù),從而相互補(bǔ)充、擴(kuò)展。
三. 關(guān)系數(shù)據(jù)庫(kù)和文檔數(shù)據(jù)庫(kù)的異同
下面從三個(gè)方面比較兩種數(shù)據(jù)庫(kù)的異同:
在信息時(shí)代,所有信息大體上可以分為兩類:一類信息能夠用數(shù)據(jù)或統(tǒng)一的結(jié)構(gòu)加以表示。例如,成本、費(fèi)用、人員、工資以及員工業(yè)績(jī)等,都可以用數(shù)字或文字來(lái)描述或表達(dá)。這類信息具有相同的層次或網(wǎng)絡(luò)結(jié)構(gòu),我們稱之為結(jié)構(gòu)化數(shù)據(jù);而另一類信息根本無(wú)法用數(shù)字或者統(tǒng)一的結(jié)構(gòu)表示,例如,圖象、聲音等,我們稱之為非結(jié)構(gòu)化數(shù)據(jù)。這些非結(jié)構(gòu)化數(shù)據(jù)既可以是一段包含大量附加信息(如排版信息)的文字信息,也可能是一段聲音、圖象,甚至是影像。對(duì)于結(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ù)的特例。一般來(lái)說(shuō),在人們的認(rèn)識(shí)之中,關(guān)系數(shù)據(jù)庫(kù)最主要的特征就是數(shù)據(jù)的結(jié)構(gòu)化。然而,隨著網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的飛速發(fā)展,特別是Internet和Intranet技術(shù)的發(fā)展,使得非結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用日趨擴(kuò)大。關(guān)系數(shù)據(jù)庫(kù)是高度結(jié)構(gòu)化的,這種數(shù)據(jù)結(jié)構(gòu)化使關(guān)系數(shù)據(jù)庫(kù)具有冗余度最低、程序與數(shù)據(jù)獨(dú)立性較高、易于擴(kuò)充、易于編制應(yīng)用程序的特點(diǎn)。但是,隨著應(yīng)用領(lǐng)域的不斷拓展, 為滿足應(yīng)用對(duì)數(shù)據(jù)處理不斷"苛刻"的要求, 人們開(kāi)始發(fā)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的許多限制和不足。因?yàn)槲臋n數(shù)據(jù)庫(kù)的基本元素就是文檔本身,而數(shù)據(jù)庫(kù)中的文檔可以同時(shí)包含結(jié)構(gòu)化的和非結(jié)構(gòu)化的信息,所以,文檔數(shù)據(jù)庫(kù)能夠存儲(chǔ)和管理類似文檔這樣的非結(jié)構(gòu)化數(shù)據(jù)。特別是,Notes的對(duì)象庫(kù)是一個(gè)非常理想的商業(yè)信息存儲(chǔ)器,可用于高效地存儲(chǔ)、傳播、分配和管理這類信息。這類信息通常具有豐富的數(shù)據(jù)類型,如表格(可以是從某個(gè)關(guān)系數(shù)據(jù)庫(kù)或電子表軟件中得到的)、格式化文本、WWW的頁(yè)面、圖形、OLE對(duì)象、或掃描的圖象以及傳真件、聲頻或視頻信號(hào)這樣的多媒體信息。
關(guān)系數(shù)據(jù)庫(kù)是應(yīng)用數(shù)學(xué)方法來(lái)處理數(shù)據(jù)庫(kù)數(shù)據(jù)的,其數(shù)據(jù)模型也是建立在數(shù)學(xué)概念基礎(chǔ)上的,在關(guān)系模型中,數(shù)據(jù)在用戶觀點(diǎn)下的邏輯結(jié)構(gòu)就是一張二維表。而Lotus Notes是一個(gè)文檔數(shù)據(jù)庫(kù)管理系統(tǒng),文檔數(shù)據(jù)庫(kù)的基本元素就是文檔。這里的文檔和關(guān)系數(shù)據(jù)庫(kù)中的記錄相似。Notes文檔的結(jié)構(gòu)是由表單(form)定義的,而表單由一組各式各樣的字段域組成。
· 域(Field)、域(Domain)和字段(Field)
在關(guān)系數(shù)據(jù)庫(kù)中,域(Domain)是屬性值的集合,如:大于0小于150的正整數(shù),長(zhǎng)度小于25的字符串集合等等。而在文檔數(shù)據(jù)庫(kù)中,域(Field)的概念出現(xiàn)在表單對(duì)象中,域是表單上存儲(chǔ)數(shù)據(jù)的單個(gè)元素,域決定了一個(gè)獨(dú)立的文檔能包含什么數(shù)據(jù)。雖二者的中文譯文相同,但其實(shí)際意義和作用相差千里。反而在文檔數(shù)據(jù)庫(kù)中域的概念與關(guān)系數(shù)據(jù)庫(kù)中的字段(Field)相類似。
· 條目(Item)和屬性(Attribute)
在關(guān)系數(shù)據(jù)庫(kù)中,有屬性(Attribute)的概念,即二維表中的每一列稱為一個(gè)屬性,給每一列起一個(gè)名稱即屬性名。而在文檔數(shù)據(jù)庫(kù)中,就沒(méi)有"屬性",文檔擁有的是條目(Item),條目是指存儲(chǔ)于文檔中的任意數(shù)據(jù)部分。每一個(gè)條目代表文檔中一段數(shù)據(jù),在用戶界面中,是通過(guò)表單中的域來(lái)顯示文檔中的條目的。二者雖命名不同,但筆者認(rèn)為從"屬性"的角度更容易理解文檔數(shù)據(jù)庫(kù)中條目的意義。
· 視圖(View)
在關(guān)系數(shù)據(jù)庫(kù)和文檔數(shù)據(jù)庫(kù)中,均有視圖的概念。在關(guān)系數(shù)據(jù)庫(kù)中,視圖是指從一個(gè)或幾個(gè)基本表(或視圖)導(dǎo)出的表。視圖和基本表不同,視圖是一個(gè)虛表,即視圖所對(duì)應(yīng)的數(shù)據(jù)不實(shí)際存儲(chǔ)在數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)中只存儲(chǔ)視圖的定義(存在數(shù)據(jù)字典中)。在文檔數(shù)據(jù)庫(kù)中,用戶通過(guò)Notes視圖瀏覽文檔。視圖是很方便的目錄,用戶可以從中看到關(guān)于文檔的概要信息和文檔的狀態(tài),然后存取特定的Notes文檔。文檔數(shù)據(jù)庫(kù)中文檔可以在視圖中顯示起全部或部分內(nèi)容,通過(guò)視圖,用戶可以看一組文檔的關(guān)鍵域,并可按某一準(zhǔn)則對(duì)顯示的信息進(jìn)行分類和排序。實(shí)質(zhì)上,二者邏輯上非常相似,即視圖所對(duì)應(yīng)的數(shù)據(jù)均不實(shí)際存儲(chǔ)在數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)中只存儲(chǔ)視圖的定義。