程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 文檔數據庫與關系數據庫的比較

文檔數據庫與關系數據庫的比較

編輯:VB綜合教程
摘要:

隨著應用領域的不斷拓展和多媒體技術,人們發現關系數據庫的許多限制和不足,因而數據庫技術進入了"後關系數據庫時代"。文檔數據庫由此應運而生。本文概要地從數據格式、數據庫結構和WEB發布數據三個方面比較了文檔數據庫與關系數據庫的異同,同時區別了文檔數據庫與過去存儲數據的文件系統的不同。
  關鍵詞:數據庫Internet文檔數據庫WEB數據庫服務器


  一.關系數據庫的優勢和目前面臨的問題
  從60年代末開始,數據庫技術經歷了層次數據庫、網狀數據庫和關系數據庫而進入數據庫管理系統(DBMS)階段至今,數據庫技術的研究也不斷取得進展。80年代,關系數據庫成為發展的主流,幾乎所有新推出的DBMS產品都是關系型的。關系型數據庫在計算機數據管理的發展史上是一個重要的裡程碑,這種數據庫具有數據結構化、最低冗余度、較高的程序與數據獨立性、易於擴充、易於編制應用程序等優點,目前較大的信息系統都是建立在結構化數據庫設計之上的。
  然而,隨著網絡技術和軟件技術的飛速發展,特別是Internet和Intranet技術的發展,使得非結構化數據的應用日趨擴大。關系數據庫從1970年發展至今,雖功能日趨完善,但對數據類型的處理只局限於數字、字符等,對多媒體信息的處理只是停留在簡單的二進制代碼文件的存儲。然而,隨著用戶應用需求的提高、硬件技術的發展和Intranet/Internet提供的多彩的多媒體交流方式,用戶對多媒體處理的要求從簡單的存儲上升為識別、檢索和深入加工,正是用戶呼喚出"通用"數據庫服務器來處理占信息總量70的聲音、圖像、時間序列信號和視頻等復雜數據類型。據有關數據,1996年,全球數據庫市場的銷售額已接近40億美元,預計到2000年,數據庫市場銷售額將達到80億美元。巨大的增長潛力來自復雜數據類型的處理需求,使處理復雜數據類型的"超媒體"數據庫將成為各公司投資研發的重點。

二.全新的"文檔數據?quot;概念
  從1989年起,Lotus通過其群件產品Notes提出了數據庫技術的全新概念-"文檔數據庫",文檔數據庫區別於傳統的其它數據庫,它是用來管理文檔。在傳統的數據庫中,信息被分割成離散的數據段,而在文檔數據庫中,文檔是處理信息的基本單位。一文檔可以很長、很復雜、可以無結構,與字處理文檔類似。
  文檔數據庫與五、六十年代管理數據的文件系統不同,文檔數據庫仍屬於數據庫范疇。首先,文件系統中的文件基本上對應於某個應用程序。當不同的應用程序所需要的數據有部分相同時,也必須建立各自的文件,而不能共享數據,而文檔數據庫可以共享相同的數據。因此,文件系統比文檔數據庫數據冗余度更大,更浪費存儲空間,且更難於管理維護。其次,文件系統中的文件是為某一特定應用服務的,所以,要想對現有的數據再增加一些新的應用是很困難的,系統不容易擴充。數據和程序缺乏獨立性。而文檔數據庫具有數據的物理獨立性和邏輯獨立性,數據和程序分離。
  文檔數據庫也不同於關系數據庫,關系數據庫是高度結構化的,而Notes的文檔數據庫允許創建許多不同類型的非結構化的或任意格式的字段,與關系數據庫的主要不同在於,它不提供對參數完整性和分布事務的支持,但和關系數據庫也不是相互排斥的,它們之間可以相互交換數據,從而相互補充、擴展。


  三.關系數據庫和文檔數據庫的異同
  下面從三個方面比較兩種數據庫的異同:
  1.格式文本/多媒體(RichText/Multimedia)在信息時代,所有信息大體上可以分為兩類:一類信息能夠用數據或統一的結構加以表示。例如,成本、費用、人員、工資以及員工業績等,都可以用數字或文字來描述或表達。這類信息具有相同的層次或網絡結構,我們稱之為結構化數據;而另一類信息根本無法用數字或者統一的結構表示,例如,圖象、聲音等,我們稱之為非結構化數據。這些非結構化數據既可以是一段包含大量附加信息(如排版信息)的文字信息,也可能是一段聲音、圖象,甚至是影像。對於結構化數據和非結構化數據的關系如圖所示,非結構化數據包括結構化數據,但又不止是結構化數據;結構化數據屬於非結構化數據,是非結構化數據的特例。一般來說,在人們的認識之中,關系數據庫最主要的特征就是數據的結構化。然而,隨著網絡技術和軟件技術的飛速發展,特別是Internet和Intranet技術的發展,使得非結構化數據的應用日趨擴大。關系數據庫是高度結構化的,這種數據結構化使關系數據庫具有冗余度最低、程序與數據獨立性較高、易於擴充、易於編制應用程序的特點。但是,隨著應用領域的不斷拓展,為滿足應用對數據處理不斷"苛刻"的要求,人們開始發現關系數據庫的許多限制和不足。因為文檔數據庫的基本元素就是文檔本身,而數據庫中的文檔可以同時包含結構化的和非結構化的信息,所以,文檔數據庫能夠存儲和管理類似文檔這樣的非結構化數據。特別是,Notes的對象庫是一個非常理想的商業信息存儲器,可用於高效地存儲、傳播、分配和管理這類信息。這類信息通常具有豐富的數據類型,如表格(可以是從某個關系數據庫或電子表軟件中得到的)、格式化文本、WWW的頁面、圖形、OLE對象、或掃描的圖象以及傳真件、聲頻或視頻信號這樣的多媒體信息。


  2.在結構上關系數據庫是應用數學方法來處理數據庫數據的,其數據模型也是建立在數學概念基礎上的,在關系模型中,數據在用戶觀點下的邏輯結構就是一張二維表。而LotusNotes是一個文檔數據庫管理系統,文檔數據庫的基本元素就是文檔。這裡的文檔和關系數據庫中的記錄相似。Notes文檔的結構是由表單(form)定義的,而表單由一組各式各樣的字段域組成。
  ·域(Field)、域(Domain)和字段(Field)
  在關系數據庫中,域(Domain)是屬性值的集合,如:大於0小於150的正整數,長度小於25的字符串集合等等。而在文檔數據庫中,域(Field)的概念出現在表單對象中,域是表單上存儲數據的單個元素,域決定了一個獨立的文檔能包含什麼數據。雖二者的中文譯文相同,但其實際意義和作用相差千裡。反而在文檔數據庫中域的概念與關系數據庫中的字段(Field)相類似。
  ·條目(Item)和屬性(Attribute)
  在關系數據庫中,有屬性(Attribute)的概念,即二維表中的每一列稱為一個屬性,給每一列起一個名稱即屬性名。而在文檔數據庫中,就沒有"屬性",文檔擁有的是條目(Item),條目是指存儲於文檔中的任意數據部分。每一個條目代表文檔中一段數據,在用戶界面中,是通過表單中的域來顯示文檔中的條目的。二者雖命名不同,但筆者認為從"屬性"的角度更容易理解文檔數據庫中條目的意義。
  ·視圖(View)
  在關系數據庫和文檔數據庫中,均有視圖的概念。在關系數據庫中,視圖是指從一個或幾個基本表(或視圖)導出的表。視圖和基本表不同,視圖是一個虛表,即視圖所對應的數據不實際存儲在數據庫中,數據庫中只存儲視圖的定義(存在數據字典中)。在文檔數據庫中,用戶通過Notes視圖浏覽文檔。視圖是很方便的目錄,用戶可以從中看到關於文檔的概要信息和文檔的狀態,然後存取特定的Notes文檔。文檔數據庫中文檔可以在視圖中顯示起全部或部分內容,通過視圖,用戶可以看一組文檔的關鍵域,並可按某一准則對顯示的信息進行分類和排序。實質上,二者邏輯上非常相似,即視圖所對應的數據均不實際存儲在數據庫中,數據庫中只存儲視圖的定義。


  3.WEB數據庫近年來網絡體系結構經歷了一次次重大變遷,客戶機/服務器結構越來越流行了,Intranet以驚人的速度在短短一年內迅速蔓延,面臨新的格局,如何簡易地實現"客戶機/服務器"連接與"Web/Intranet"連接成為數據庫管理人員關注的焦點。計算機技術和網絡技術的發展使以網絡為中心的計算日益得到重視,WWW系統和數據庫成為網絡化信息服務的基礎。如果能把文檔數據庫同WWW服務器連接起來,就可以從浏覽器中檢索文檔。這種一體化的信息網絡系統:數據庫 WWW服務器,便成為下一代Internet開發的新領域。目前,在Web上一個典型的數據庫應用程序應包括三個部分:Web浏覽器、HTTP服務器和Web數據庫服務器。對於一般的關系型數據庫,實現Web數據庫的應用通常有兩種方法:一種是Web服務器提供中間件連接Web服務器與數據庫服務器;另一種是把應用程序下載到客戶端直接訪問數據庫。最常用的中間件技術有通用網關接口(CGI)和應用程序編程接口(API)兩種。CGI程序缺陷在於CGI接口不支持用戶與數據庫間的持續互操作,再就是CGI的效率低,且需要同時運行多個CGI程序。用戶每次連至服務器時,服務器都要創建一個事務或運行CGI程序的一個拷貝。這樣對於一個復雜的應用或有多個用戶訪問時,就會加重服務器的負擔。API在很大程度上克服了CGI的缺點,但其兼容性差和開發難度大也讓廣大開發人員望而卻步。客戶端訪問數據庫主要包括JavaScript和數據庫連接器(IDC)等。用JavaScript和IDC開發Web數據庫雖簡單但同時也存在功能有限、不能完全控制其過程等缺點。所以它們也無法勝任較復雜的Web數據庫的開發。難道就沒有一個開發相對容易、功能強大且高效的Web數據庫的開發方法嗎?有,答案是-LotusNotes。LotusNotes通過文檔數據庫實現了多媒體文檔管理,支持客戶機/服務器工作方式。每個數據可以包含若干不同形式的Notes文檔。存放在一個或多個Notes服務器上,可以讓許多用戶存取的數據庫稱為共享數據庫。通過利用服務器存取和數據庫存取控制等安全措施,數據庫管理員可以規定誰可以存取數據庫和在什麼范圍內使用數據庫,各數據庫在網上通過復制功能實現同步。這樣,通過文檔數據庫用戶可以在網絡上存取、追蹤儲存和組織信息。
  四.結束語
  最近幾年,我國的數據庫市場飛速發展,並將具有更為巨大的增長潛力,表現為如下特點:首先,在近五年裡,用戶的選型觀念發生了明顯的改變,有更多的用戶把數據庫的重要性放在十分重要的地位,其主要原因是用戶將把應用軟件和應用需求放在首位,應用軟件是否滿足用戶需求是整個項目是否成功的標志,而應用軟件開發直接依賴於數據庫開發工具。實際上,大量潛在的投資都在應用軟件的開發上;另一個原因是硬件隨著芯片技術的發展越來越缺乏特性,硬件指標將變成次要的考慮因素。對行業性應用來講,以前是制定幾家硬件產品作為優選,而今可能是首選數據庫廠家再考慮硬件廠家了。正是用戶需求的這種變化給數據庫廠商提供了新的發展機會。LotusNotes為各數據庫系統集成商提供了強大的文檔數據庫開發平台,Notes結合了企業級電子郵件、分布式文檔數據庫與快速應用開發等三位一體的強大技術、完全集成了Internet技術,提供用戶完整的,以網絡為中心的應用技術平台。可以預言,在不久的將來,LotusNotes的文檔數據庫將成為繼層次數據庫、網狀數據庫和關系數據庫之後的又一熱點技術。
  

->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved