數據庫系統
文章來源: | 發布時間:2009-09-02 | 【打印】 【關閉】
在當今信息化社會中,數據無所不在,其規模正以驚人的速度增長。我們身邊熟知的有銀行、保險公司的帳目和客戶數據;政府、機關、學校、醫院的人事,財務和檔案數據;公司、企業、工廠的生產和管理數據;報刊、雜志、電臺、電視的文字和聲象多媒體數據;購物中心、連鎖店和大小商鋪的商品物流數據,日常流水帳和客戶數據;稍遠一些,有氣象分析和預報數據;地震勘探數據;人口調查數據;數字城市如數字北京數據;地球觀測系統數據;數字圖書館數據;電子商務數據;電子政務數據;蛋白質分析和研究數據;人體基因組分析和研究數據;高能加速器實驗數據等等。一個基因樣本的數據量達T級(萬億字節),地球觀測的年數據量逾一千萬億字節。這些數據規模龐大,這就是我們所處的環境!在這樣的迫切需求面前,用計算機來儲存和處理數據就成了必然選擇。對這種需求提供服務的計算機軟件系統就叫做數據庫系統,它構成了當今信息化經濟和社會生活的基礎。
大量的數據按一定的格式儲存起來,需要一種軟件系統對其進行合適和有效的管理,以便向用戶提供服務。被存儲數據的總和構成了數據庫,對數據庫進行管理的軟件系統叫做數據庫管理系統。用戶是通過數據庫管理系統和儲存在計算機的存儲設備(如磁盤、磁帶)中的數據打交道的。例如,考生通過考試數據庫查詢自己的分數;售票員通過票務系統出售機票。數據庫(Data Base,簡記為DB)和數據庫管理系統(Data Base Management System>,簡記為DBMS)一起構成了數據庫系統。
目前,市場上流行的主要數據庫管理系統有Oracle公司的Oracle系統,IBM公司的DB2系統及Microsoft公司的SQL Server等。
現實世界的數據對象豐富多彩,多種多樣,千差萬別,要將它們存儲到計算機中去必須先進行整理、過濾和抽象。要對現實數據對象進行描述,一種經典的行之有效的方法是通過數據模型。數據模型一方面從語義上描述了現實數據對象的含意,有利于人們簡明扼要地加以理解;另一方面又便于在計算機中加以表示和存儲。
三十多年來數據處理的歷史經歷了從文件系統到數據庫系統的發展,數據模型也經歷了從層次型(Hierarchy)到網狀型(Network)到關系型(Relation)到面向對象型(Object Oriented)的演變。
層次型數據模型是最常見的也是最易于被人理解的數據模型,它也叫樹型模型,如國家政府的行政機構、公司的組織機構、軍隊的組織機構等都呈現一種層次型的樹型結構。因此最早的數據庫系統使用層次型數據模型就是順理成章的事了。
層次型數據模型雖然直觀、簡單,但在描述較為復雜的數據對象的結構時就顯得不夠有力。于是,就有了網狀數據模型的出現,它能輕松描述現實世界中較為復雜的關系,消除數據冗余,提高數據庫系統的效率。網狀數據模型的層次結構中,其下層結點的父節點可以不止一個,可以描述現實世界中更為復雜的結構。網狀模型功能很強,但對用戶的要求很高。在網狀模型數據庫中,要找到用戶所需的數據,程序員必須象導航員一樣了解查找的路徑,這不是一件簡單的事情。
20世紀70年代初,IBM的E. F. Codd提出了關系數據模型,它把數據描述為一張張二維的表(Table),表中的列稱為屬性,如姓名、年齡等;行稱為記錄或元組(Record或Tuple)。在關系模型中表的屬性都應具有原子性,即不可再分了。
關系模型提出之后引發了十多年的關系模型理論和關系數據庫管理系統實現技術的如火如潮的研究,直到現在,關系數據模型的理論基礎已經扎實建立,關系數據庫管理系統的實現技術已被全面系統地提出和構建起來,關系數據庫管理系統的成熟產品也已陸續完成和推出。關系型數據庫系統有牢固的數學基礎,安全可靠,它為用戶提供的使用語言是一種描述型語言,用戶只須簡單地指明要什么數據(What),有什么限制條件就可以了,剩下的工作都由關系數據庫系統去自動完成,用戶絕不需要去“導航”(How),這就極大地減輕了用戶的負擔。
上世紀八十年代由于應用需求的發展,如計算機輔助設計CAD、計算機輔助制造CAM、計算機輔助軟件工程CASE、計算機集成制造系統CIMS等,使關系數據模型的描述能力感到不足,由此發展起來了面向對象模型。對象數據模型起源于抽象數據類型。在數據對象中不僅定義了數據結構,還定義了作用于此結構上的操作,對象外部只能通過操作接口來訪問對象。面向對象程序語言典型的有Smalltalk、C++等。面向對象的數據庫管理系統在此前的十幾年間成了國內外數據庫系統領域的研究熱點,取得了重大進展。純面向對象的數據庫系統雖然功能很強,能描述復雜的數據對象,但對于大量日常商務事務卻顯得過于累贅。此外,對已經存在的幾乎無所不在的關系數據庫系統,如何建立平滑的過渡也是純面向對象數據庫系統要解決的迫切問題。事實已經做了最好的回答,當今真正流行的,被人們廣泛接受的不是純面向對象數據庫系統,而是對象—關系數據庫系統,它兼有對象和關系數據模型的優點,取長補短,相得益彰。