數據庫系統概述
數據庫是20世紀60年代末期發展起來的數據管理技術,經過近40年的發展,各方面的性能有了長足的進步,建立了較完整的數據庫理論體系,出現了一批相當成熟的數據庫平臺,如Oracle、DB2、Sybase、SQL-Server等。數據庫技術的應用使信息系統有了一個可實際運行的存儲、維護信息和向應用系統提供數據的軟件系統。檔案數據庫的建設與應用,為檔案信息資源的建設和管理奠定了一個堅實的技術基礎。
1 數據庫的構成
數據庫系統是存儲介質、處理對象和管理系統的集合體。它通常由軟件、數據庫和數據管理員組成。其軟件主要包括操作系統、各種宿主語言、實用程序以及數據庫管理系統。數據庫是依照某種數據模型組織起來并存放于二級存儲器中的數據集合。這些數據為多個應用程序服務,獨立于具體的應用程序。數據庫由數據庫管理系統統一管理,數據的插入、修改和檢索均要通過數據庫管理系統進行。
數據庫管理系統是一種系統軟件,它的主要功能是維護數據庫并有效地訪問數據庫中任意部分數據。對數據庫的維護包括保持數據的完整性、一致性和安全性。數據管理員負責創建、監控和維護整個數據庫,使數據能被任何有權使用的人有效使用。
數據庫系統要完成的工作包括:
(1)建立數據模型,使用戶可以根據數據模型訪問數據庫中的數據(如檢索、插入、刪除和修改),而不必關心數據的物理存儲位置。數據模型要能反映各種數據之間的內在聯系。
(2)數據也應有組織地存放在存儲設備上,并建立數據模型到物理存儲位置的對應表(這種對應稱為映射),它使系統能夠按照用戶的訪問請求,找到被訪問數據的存儲位置。建立數據模型和設計數據的物理存儲(組織)方法,其目的是方便用戶對數據的應用,與數據的存放位置和存儲結構無關。后者的變動不影響前者,這稱為數據獨立性。
(3)數據庫系統要為不同用戶確定不同的訪問權限并進行訪問控制。
(4)提供以數據庫為基礎的各種應用服務。
上述各種功能都是在數據庫管理系統(英語縮寫為DBMS)的統一管理和控制下實現的。數據庫系統需要設立數據庫管理員,負責協調和監視數據庫的使用,一旦發現違反安全保密或性能下降的現象,立即采取相應對策。因此,一個數據庫系統由數據庫、數據庫管理系統、應用程序和數據庫管理員四部分組成。在不引起混淆的情況下,數據庫系統有時也簡稱數據庫。
至此不難理解,數據庫系統是實現有組織地、動態地存儲大量關聯數據,支持多用戶訪問的計算機軟、硬件資源及DBA組成的系統。
2 數據庫的類型
1.關系式數據庫
數據庫是在文件系統的基礎上發展起來的,這種文件管理方式也就是我們在Windows系統中使用的資源管理器的前身。需要先將所有的各種信息數據存放在各自的文件里面,當要使用這些信息數據的時候,將文件打開,讀取文件中的數據到內存中。當執行完信息處理計算過程后,將計算結果仍舊寫入到文件中去。這種工作方法雖然簡單,但有很多不足之處,如無法對數據進行有效的統一管理。應用程序的設計者需要對程序所使用的文件的邏輯結構和物理結構都了解得非常清楚。如有若干個格式相差很大的文件協同工作,程序編制工作就會變得復雜,這樣就大大增加了編程的工作量,從而使得在文件級別上開發應用程序的效率非常低下,嚴重影響應用軟件的發展。基于操作系統的文件系統一般都不支持并行工作,這樣對于計算機來說,大多數部件在工作中處于等待狀態,對于計算機資源浪費極大。
基于文件系統的數據管理缺乏整體性、統一性,在數據的結構、編碼、表示格式等諸多方面不能做到標準化、規范化,不同的操作系統有風格迥異的表示方式,因此在一定程度上造成了數據管理的混亂。另外,基于文件系統的數據管理在數據的安全性和保密性方面難以采取有效的措施,在一些對安全性要求比較高的場合,這種安全上的缺陷是不允許的。人們針對基于文件系統的數據管理的缺陷,從理論到實踐都進行了一系列的改進,至20世紀70年代初,E.F.Codd在總結當時存在的各種數據庫模型優缺點的基礎上,提出了關系數據模型的概念,提出了關系代數和關系演算(直到今天,E.F.Codd的這些基本理論還在左右著數據庫系統的發展,也依然是高校計算機專業課堂上所要講述的重要內容)。在整個70年代,關系數據庫系統無論從理論上還是實踐上都取得了豐碩的成果。在理論上,確立了完整的關系模型理論、數據依賴理論和關系數據庫的設計理論。在實踐上,世界上出現了很多著名的關系數據庫系統,比較著名的如Ingres.Oracle、Sybase等。
關系模型建立在嚴密的數學概念之上,它用“二維表格”來表示事物及事物之間的聯系。反映事物的信息數據是二維表格中的元素,而二維表格即表示關系。表格中的一行稱為一個元組,相當于一個記錄;表格中的一列稱為一個屬性,相當于一個字段。屬性的取值范圍稱為域。一個或若干個屬性的集合稱為關鍵字,它惟一地標識一個元組。表格有幾列,則稱這種關系為幾元關系。關系應滿足:二維表中每一列中的元素是類型相同的數據;列的順序可以任意;行的順序也可以任意;表中的元素是不可再分的最小數據項,即一列只能有一個屬性;表中任意兩行的記錄不能相同,表中不允許有表。因此,關系數據庫中的每一個記錄是惟一的,所有的記錄具有相同個數和類型的字段,即每一個記錄都有固定的長度和格式。具有:對事物描述的一致性,即事物和事物之間的聯系都用關系表來表示;可以直接表示“多對多”的聯系,如上級業務主管部門可以向各地的對口部門或企業收取多種業務報表,基層單位也可以向多個上級業務部門遞送同一張業務報表;關系規范化,不允許有表中表存在;概念簡單,操作方便,數據獨立性高,用戶使用方便,容易掌握。
2.非關系式數據庫
關系式數據庫的出現,使得大部分信息資源數據庫應用都可以使用這種方式予以解決。但是,也應看到,關系式數據庫是基于字段的記錄結構,對于文本類型的信息存儲、檢索、修改等等仍有許多不便之處,不便于對大量文本內容的查詢,而此項工作恰恰是辦公自動化中的重要內容,需要一種面向文檔處理的數據庫。非關系式數據庫就是為適應這類問題的處理而產生的。著名的Lotus Domino中的數據庫就是這類數據庫的代表。首先,Notes是一個文檔數據庫管理系統。在Notes中,所有的應用都以數據庫的形式出現,所處理的對象實際就是數據庫中的文檔。這里所說的文檔可以將其理解為前面所講關系數據庫中的“記錄”。關系數據庫是由一個個“記錄”組成,Notes數據庫則是由一個個“文檔”組成,用戶可以使用按需求設計的數據庫管理程序在數據庫中建立文檔,并且按照定制的工作流程對文檔進行處理。每個數據庫都可以包含不同格式和類型的文檔。
文檔數據庫系統的一大特征是,它實現了對非結構化信息的存儲和管理,而這正是一般關系型數據庫系統的不足之處。
為了方便信息的管理,Notes提供了以下功能:
(1)RTF文本域。可以在Notes文檔的RTF(一種可以在不同結構的計算機中通用的文件格式)文本域中保存多種類型的信息,例如:從其他程序(如字處理軟件、電子郵件、繪圖或關系型數據庫等)獲得的文本、表格、OTE對象、 Web頁面以及圖片、聲音和動畫等多媒體信息。
(2)視圖和文件夾。使用視圖和文件夾來組織數據庫中的文檔,它們能方便用戶查詢數據庫中的文檔。在形似樹狀目錄結構的視圖和文件夾結構中,用戶可以根據自己的需要來選擇不同的視圖或文件夾,通過不同的視角查詢和處理文檔。
(3)鏈接和熱點。Notes文檔中可以包含指向一個文檔、視圖(或文件夾)或數據庫的鏈接,當用戶單擊代表該鏈接的圖標時,當前窗口將切換到鏈接所指向的對象。另外,在Notes文檔中還可以包含各種熱點文本,用戶單擊熱點文本時可以顯示出文本提示框或者執行預先指定的操作。這樣,用戶就可以在一個文檔中同時訪問多個數據庫中的信息,從而提高了 文檔的靈活性和實時性。
(4)搜索和索引。Notes帶有內置的全文搜索引擎,用戶可以在數據庫的搜索條件框中輸入搜索條件來搜索所需的文檔,并可按某種條件對搜索結果進行排序。另外,還可以對數據庫進行全文索引,這樣可以加速對數據庫的搜索。
(5)版本跟蹤。為了體現多用戶協同工作的特性,適應工作組協同行動的需要,Notes提供了文檔的版本跟蹤功能。當一個用戶在共享數據庫中保存了文檔之后,他不必擔心因其他用戶的編輯而丟失自己所保存的內容。對文檔實行了版本跟蹤以后, 將把對文檔所做的修改另存為新的文檔,即原文檔的新版本。這樣,用戶對文檔進行修改就不會影響到其他用戶的工作內容。
3.多媒體型數據庫
多媒體數據庫技術是計算機多媒體處理技術與數據庫技術的結合,是當前最有吸引力的數據庫技術之一。多媒體數據信息的數據庫管理方法就是要像傳統商業數據的數據庫管理方法一樣,以數據模型為中心,支持多媒體數據間的語義關聯,相應地,把支持這種管理方式的軟件稱為多媒體數據庫管理系統(MDBMS)。由于多媒體數據庫所處理的對象比傳統的關系數據庫管理系統(RDBMS) 所處理的對象要復雜得多,因此,應采取不同的技術措施,以滿足多媒體信息管理的要求。多媒體數據庫中包含的多媒體數據有字符、數字、文本、聲音、圖像(包括視頻、動畫)、圖形等主要類型。然而聲音與圖像的媒體形式較多,如聲音可以用音樂數據:五線譜、簡譜、波表等,也有語音數據(波形數據),還可以有單聲道數據或多聲道數據。圖像數據就更復雜了。由于一種媒體格式往往又可以演變成多種,不同的媒體類型需要一些不同的處理方法,這就要求多媒體數據庫系統要有一定的可擴展性,以支持新的媒體類型和相應的處理方法。
多媒體數據庫所具有的數據量龐大、類型種類多、聯系復雜、需要多種媒體的綜合表現和處理等特點,使得現有的文件系統和基于字符、數值型的數據庫管理技術難以滿足對多媒體數據管理的要求,必須研究和探索新的多媒體數據管理技術。
目前,因對多媒體數據管理的強烈要求,眾多關系數據庫廠商紛紛推出其支持多媒體數據管理的數據庫產品,一般是采取擴展關系系統的方式來實現的。其擴展體現在數據類型、存取方式、開發工具等層次上,如Borland公司的Paradox for windows 就增加了四種數據類型用以管理多媒體數據,它們是動態注釋(Dynamic memo)、格式注釋(Formatted memo)、圖形(Craph)和二進制大對象(BLOB) 。前兩種用于存儲文本數據,格式注釋類型還可用于描述文本的字體大小、顏色等屬性,圖形屬性可用于存儲具有標準圖形、圖像格式的圖形圖像文件(如BMP、EPS、GW、TIF及PCX等格式),BLOB 類型可用于存儲任意類型的二進制數據,如可BLOB用存儲音頻和運動視頻、CAD中的圖形等。Microsoft公司的FoxPro 2.5 for Windows中引入了一個新的屬性類型General,它可以存放包括文本、圖形、圖像或聲音在內的任何一種多媒體數據。Informix在Informix-Online中引入了BLOB類型,使之可以把高達2GB的數據存放到該域之中,考慮到系統的效率,專門開設了BLOB空間區,使之與非BLOB數據分開存儲。Sybase、Oracle都在此方面做了一些努力,如Oracle7.0有文本和視頻兩個服務器及一個源程序編輯工具集Media Object。
但是我們也應看到,在多媒體信息數據檢索、索引等方面,尚有許多有待解決的問題,因此多媒體數據庫尚屬于需要進一步完善探討的技術,使用現有的多媒體數據庫時必須注意條件和范圍。
4.數據倉庫
現代政府機構經常面臨各種挑戰和決策,如何最大限度地挖掘各種有用信息,也為計算機信息處理技術提出了新的要求。例如,如何支持數據集成。政府在發展過程中建立了許多應用系統,如公文管理、財務管理及人事管理等,積累了大量數據,并且原有應用可能是針對某個部門獨立設計的,如何去運行新的應用,使這些應用可以用到已有的數據;又如,業務部門除對日常業務數據進行增、刪、改等事務處理和簡單匯總外,決策者往往要綜合利用歷史的和現在的各種數據進行綜合分析。這些應用對于業務處理頻繁的數據庫系統而言,將成為沉重的負擔。數據倉庫面向復雜的數據分析,以支持決策過程,而且可以集成企業范圍內的數據。它把支持決策的數據進行收集、歸納、整理,使企業的業務操作環境和信息分析環境分離,從而有效地提供實時的信息服務。數據倉庫有這樣幾個基本特性:
(1)數據倉庫是“面向主題的數據組織方式”,即對應于某一個宏觀分析的領域所涉及的分析對象,可以根據最終用戶的觀點組織和提供數據。
(2)數據倉庫是集成數據的統一體,即數據倉庫的內容來自于前幾節所描述的各種傳統數據庫內所累積的大量事務處理數據。經處理后將不同數據庫的數據形成了整合的、結構化的、易于導航的數據,能夠對決策分析進行快速、正確的響應。
(3)數據倉庫在一定時間內保持穩定性。一般事務性操作的數據庫按工作需要經常進行數據增加、刪除、修改的操作,而數據倉庫的內容主要是大量歷史數據,是對不同時期數據資料的綜合、重組、統計導出的數據集合,一般關注于查詢,僅必要時更新數據。所以數據倉庫在一個較長的時期內要保持數據穩定,對其操作一般都是數據的讀取。
(4)數據倉庫比較強調時間序列性。數據倉庫的內容是對事務性數據庫內容的帶有時間標記的整合,以時間變化的動態過程來發現和挖掘事物發展和變化的規律,使得決策查詢變得更容易、有效。而數據倉庫是要建立在現有基礎應用數據庫內大量數據積累的基礎之上的,只有搞好基礎信息資源建設,才能為決策服務提供堅實的信息數據依據。
3 據庫的工作類型
分布在計算機網絡中每一個節點上的計算機,必須要通過一種數據存取的體系結構來獲得信息資源,并通過技術手段得到維護和發展。這對于信息資源的利用和信息資源的安全很重要。了解信息資源數據庫在網絡中的工作結構,正確利用技術手段也是很必要的。
1.客戶一服務器型
客戶/服務器結構包括連接在一個網絡中的多臺計算機。那些處理應用程序、請求另一計算機的服務的計算機稱為客戶機(Client),而處理數據庫的計算機稱為服務器(Server),故客戶/服務器結構也簡稱C/S結構。其中,所有用戶都擁有自己的計算機來裝備和處理應用程序。
客戶機計算機可以是大型機、小型機或微機。但是由于微機具有成本的優勢,因而通常選擇它們作為客戶機。同樣地,服務器通常是一臺微機,但在需要較大能力時,也可以使用一臺大型機或小型機。在數據庫環境下,通過若干稱作中間件(Middle Ware)的程序設計接口,客戶機可以與服務器通信。這些接口提供應用程序和數據庫之間的連通性。
客戶/服務器是將處理工作分散到工作站和服務器上去處理,服務器不僅負責存取數據,還要對數據做一定的處理,這樣在數據發送給工作站之前即求得查詢結果集,從而在大部分情況下可大大減少網絡傳輸的開銷,因此,也減輕了工作處理負擔,從而只需關心用戶界面的處理工作即可。
服務器處理數據帶來的另一個好處是,當服務器中數據庫引擎使用了緩沖機制時,多個工作站可以從中受益。例如,一用戶查詢了某數據,當另一用戶要查詢同樣的數據時,即可從服務器緩沖中直接得到結果,從而免去很多開銷。
客戶/服務器系統一般都是由一個公司開發的,因此在數據安全方面都做得比較好,可以在客戶和服務器兩端都有較完整的保護措施。
客戶/服務器系統的成功與否在很大程度上依賴于服務器硬件質量和容量。用戶越多,服務器的處理負擔越重,相應服務器硬件性能也要跟得上,否則就會導致響應時間比本地型數據庫還要差的結果。
客戶/服務器的客戶端程序是要到客戶端逐個安裝的,當信息資源數據庫的規模和分散程度達到一定范圍時,客戶端的維護和升級將變成每一個網絡管理員都感到十分頭疼的工作。
2.瀏覽器一服務器型
這種結構在20世紀90年代末期開始盛行,隨著因特網瀏覽器功能越來越強大,在許多場合下,瀏覽器可以取代客戶機/服務器結構的客戶端軟件。在這種結構下,用戶界面通過ww瀏覽器獲得對信息數據庫的輸入、修改、查詢和數據刪除信息,而主要事務處理邏輯在服務器端實現。瀏覽器/服務器結構利用不斷成熟和普及的瀏覽器技術,實現原來需要復雜專用軟件才能實現的強大功能,并節約了開發成本,是一種全新的軟件系統構造技術,簡稱為B/S結構。
本質上,瀏覽器/服務器也是一種客戶/服務器結構,它是一種由傳統的二層客戶/服務器結構發展而來的三層客戶/服務器結構在Web上應用的特例,即瀏覽器/Web數據庫服務器的三級客戶服務器結構。三層的瀏覽器/服務器體系結構是把二層客戶/服務器結構的事務處理邏輯模塊從客戶機的任務中分離出來,由單獨組成的一層來負擔其任務,這樣客戶機的壓力大大減輕了,把負荷均衡地分配給了服務器,于是原來的兩層客戶/服務器結構轉變成三層瀏覽器/服務器結構。
瀏覽器在表示層中包含系統的顯示邏輯,位于客戶端。它的任務是由瀏覽器向網絡上的某一Web服務器提出服務請求,Web服務器對用戶身份進行驗證后,用HTTP協議把所需的主頁傳送給客戶端,客戶機接受傳來的主頁文件,并把它顯示在Web瀏覽器上。
具有應用程序擴展功能的Web服務器,在功能層中包含系統的事務處理邏輯,位于Web服務器端。它的任務是接受用戶的請求,首先需要執行相應的擴展應用程序與數據庫進行連接,通過SQL等方式向數據庫服務器提出數據處理申請,數據庫服務器將數據處理的結果提交給Web服務器,再由Web服務器傳送回客戶端。
數據庫服務器在數據層中包含系統的數據處理邏輯,位于數據庫服務器端。它的任務是接受Web服務器對數據庫操縱的請求,實現對數據庫查詢、修改、更新等功能,把運行結果提交給Web服務器。
瀏覽器/服務器結構極大地簡化了客戶機的工作,客戶機上只需安裝、配置少量的客戶端軟件即可,服務器將擔負更多的工作,對數據庫的訪問和應用程序的執行將在服務器上完成。
3.分布式服務器型
分布式服務器是針對一些超大型數據庫提出的工作方式。某些信息資源的信息量極大,如地理信息系統、全國人口戶籍信息系統等,無法在一個服務器的存儲單元中存放,并且也不可能在一地存放,因此必然需要利用分布式數據庫來協同完成。這樣的數據庫體系就成為分布式數據庫體系。在這個體系中,工作方式仍然是客戶/服務器或瀏覽器/服務器方式,但信息存取和服務器端的信息管理要比單一服務器系統復雜多了。
4 數據庫正常運行的基本要素
要使數據庫正常工作,不僅需要有一套完善的數據庫管理系統,而且要有一套保證數據庫可以經常更新和不斷發展的措施和制度來保障,這樣才能保證數據庫始終處于生命的活力區,不出現呆庫、死庫的情況。這些措施包括了信息資源的采集、存儲與檢索、分析與挖掘及信息資源共享幾個方面。
1.信息資源的采集
數據庫的建設,首先要做的工作就是依據信息源的內容類別進行采集工作。信息源可分為五類:①自然信息源(自然界)、②社會信息源( 民間)、③經濟信息源(產業界)④科技信息源(學界)、⑤控制信息源(政府各部門)。在信息采集的過程中,信息產生的源頭的信息采集工作,應由產生這些信息資源的所在部門的有關人員完成。政府部門最主要的信息采集方式,是從獲得這些最初信息的部門或個人收集信息。由于政府要面對整個社會的各個方面,獲得如此繁多種類的信息,要使其形成信息資源,就必須各部門分別行動,各負其責,才可能保證采集到的信息的完整性、一致性、真實性、連續性和權威性。因此,明確信息資源采集部門,明確信息采集目標和任務及采集內容,是政務信息資源庫建設過程中進行信息采集時所必不可少的一項任務。否則,各行其是重復采集,造成信息混亂無法形成政務信息資源,將是必然的結果。
2.信息資源的存儲與檢索
信息存儲是有組織的信息的一種表現形式,是一種形成信息資源、使之可被重復利用的行為。信息存儲必須考慮兩方面的因素:一是存儲介質的空間容量問題,無論人的大腦還是紙張、磁盤、檔案館庫房或計算機存儲設備,其容量都是有限的,而信息存儲的根本問題,就是如何通過有效的信息組織,高效率地利用有限的存儲空間;二是存儲信息的利用問題,信息存儲的最終目的是為人們的隨時利用提供方便,如僅考慮空間的節約,就可能妨礙人們對存儲信息的利用。因此在組織信息數據庫時,也要考慮大量信息如何存儲,如何方便地取用。因此,信息存儲不僅要有存儲空間,而且要有明確的存儲分類規則,便于按分類進行信息資源的組織和管理,保證信息資源可以得到有效的利用。
信息檢索是信息采集和存儲的反變換過程。信息采集和存儲的目的是將零散的信息組成一個有序的體系,信息檢索的目的則是迅速地從這個體系中搜尋出用戶所需的信息。信息檢索方法依據不同標準可劃分為多種類型。對應于信息來源,信息檢索方法可分為事實(或效據)檢索方法、人名或機構名稱檢索方法、文獻檢索方法和信息資源體系(如檔案館館藏等)檢索方法等。對應于信息組織方法,信息檢索方法可分為字順(如題名、作者等)檢索方法、類號檢索方法、主題檢索方法、關鍵詞檢索方法和加權檢索方法等。由于計算機技術的發展,在計算機網絡中的信息量變得越來越大,種類也越來越復雜。要保證檢索得到的不發生缺漏,需要做好信息存儲時的組織工作,充分利用網絡組織發展出的一系列解決方法,其中包括指導式服務、資源目錄、服務器注冊目錄、網絡目錄和電子圖書館等信息檢索方法。由于它們都具有更多的技術含量,是網絡環境中查詢信息的“領航員”,可以幫助我們很好地檢索分類信息。
3.信息的分析與挖掘
信息分析是將概念化的用戶信息需求分解為各種簡單要素及其關系,然后分別進行研究,找出其中的主要因素及其關系,并以此為依據組織信息資源的方法。信息分析主要包括要素分析、實質分析、結構與功能分析和動態平衡分析等方法。
信息分析也是一種高層次的信息工作,它既不是純粹的學術研究活動,也不是純粹的政務處理活動,而是兩者的結合。形象地說,是政務信息資源儲藏量的積累發展到一定的程度,由擁有信息資源的部門所設計或引進的一種“發電機制”,目的是將蘊藏在信息資源體系中的“勢能”轉化為“電能”,變輸水為送電;通過信息分析工作可以進一步提高已有的信息資源的利用價值,為政府監管、政策制定和社會導向提供服務。例如各類專題編研成果就屬于信息分析的一種產品。值得注意的是,專題編研成果等再生型信息產品的生命周期比較短,用戶層次又比較高,需求量也比較小,這就要求信息分析必須注意速度和時效,及時地針對主要工作方向進行信息更新,不斷改善信息結構,提高信息質量,盡可能地預測用戶將要產生的新的需求并為之服務。
數據挖掘是從信息資源建設中建立的大型數據庫或數據倉庫中提取人們感興趣的知識,這些知識是事先未知的潛在有用的信息,提取的知識表示為概念、規則、規律、模式等。也可以說,數據挖掘過程是在一些事實或觀察數據的集合中尋找模式的決策支持過程。其主要功能有:自動預測趨勢和行為、關聯分析、聚類、概念描述、偏差檢測。建立專題性的檔案文獻數據庫,就是將數據庫中的記錄劃分為一系列有意義的子集,即聚類。