基本介紹
把面向對象的方法和資料庫技術結合起來可以使資料庫系統的分析、設計最大程度地與人們對客觀世界的認識相一致。
資料庫概念模型實際上是現實世界到機器世界的一個中間層次。資料庫概念模型用於信息世界的建模,是現實世界到信息世界的第一層抽象,是資料庫設計人員進行資料庫設計的有力工具,也是資料庫設計人員和用戶之間進行交流的語言。建立數據概念模型,就是從數據的觀點出發,觀察系統中數據的採集、傳輸、處理、存儲、輸出等,經過分析、總結之後建立起來的一個邏輯模型,它主要是用於描述系統中數據的各種狀態。這個模型不關心具體的實現方式(例如如何存儲)和細節,而是主要關心數據在系統中的各個處理階段的狀態。 實際上,數據流圖也是一種數據概念模型。
層次模型
圖形結構
若用圖來表示,層次模型是一棵倒立的樹。在資料庫中,滿足以下條件的數據模型稱之為層次模型:① 有且僅有一個結點無父結點,這個結點稱之為根結點; ② 其他結點有且僅有一個父結點。 根據層次模型的定義可以看到,這是一個典型的樹型結構。結點層次從根開始定義,根為第一層,根的子結點為第二層,根為其子結點的父結點,同一父結點的子結點稱為兄弟結點,沒有子結點的結點稱為葉結點。
層次模型的優缺點
層次模型的主要優點:
層次資料庫模型本身比較簡單、 層次模型對具有一對多的層次關係的部門描述非常自然、直觀,容易理解、層次資料庫模型提供了良好的完整性支持。
層次模型的主要缺點:
在現實世界中有很多的非層次性的聯繫,如多對多的聯繫,一個結點具有多個父結點等,層次模型表示這類聯繫的方法很笨拙、對於插入和刪除操作的限制比較多、查詢子結點必須經過父結點、由於結構嚴密,層次命令趨於程式化。
面向對象的資料庫模型
面向對象資料庫研究的另一個進展是在現有關係資料庫中加入許多純面向對象資料庫的功能。在商業套用中對關係模型的面向對象擴展著重於性能最佳化,處理各種環境的對象的物理表示的最佳化和增加SQL模型以賦予面向對象特徵。如Versant、UNISQL、O2等, 它們均具有關係資料庫的基本功能,採用類似於SQL的語言,用戶很容易掌握。
其他套用
還有許多套用要求多媒體資料庫。它們要求以集成方式和文本或圖形信息一起處理關係數據,這些套用包括高級辦公室系統的其它文檔管理系統。
人工智慧(AI)套用的需要,如專家系統,也推動了面向對象資料庫的發展。專家系統常需要處理各種(通常是複雜的)數據類型。與關係資料庫不同,面向對象資料庫不因數據類型的增加而降低處理效率。
由於這些套用需求,80年代已開始出現一些面向對象資料庫的商品和許多正在研究的面向對象資料庫。多數這樣的面向對象資料庫被用於基本設計的學科和工程套用領域。
早期的面向對象資料庫
早期的面向對象資料庫由於一些特性限制了在一般商業領域裡的套用。首先同許多別的商業事務相比較,面向設計假定用戶只執行有限的擴充事務;其次,商業用戶要求易於使用的查詢手段,如結構查詢語言(SQL)所提供的手段。 而開發商用於商業領域的資料庫定義和操作語言未獲成功,使得它們對規模較大的套用完全無法適應。
面向對象資料庫的新產品都在試圖改變這些狀況,使得面向對象資料庫的開發從實驗室走向市場。面向對象資料庫從面向程式設計語言的擴充著手使之成為基於面向對象程式設計語言的面向對象資料庫。例如:ONTOS、ORION等,它們均是C++的擴充,熟悉C++的人均能很方便地掌握並使用這類系統。
加入純面向對象資料庫
在現有關係資料庫中加入純面向對象資料庫是面向對象資料庫研究的另一個進展是在現有關係資料庫中加入許多純面向對象資料庫的功能。在商業套用中對關係模型的面向對象擴展著重於性能最佳化,處理各種環境的對象的物理表示的最佳化和增加SQL模型以賦予面向對象特徵。如Versant、UNISQL、O2等, 它們均具有關係資料庫的基本功能,採用類似於SQL的語言,用戶很容易掌握。
網狀模型
在現實世界中,事物之間的聯繫更多的是非層次關係的,用層次模型表示非樹型結構是很不直接的,網狀模型則可以克服這一弊病。網狀模型是一個網路。在資料庫中,滿足以下兩個條件的數據模型稱為網狀模型。
① 允許一個以上的結點無父結點;
② 一個結點可以有多於一個的父結點。 從以上定義看出,網狀模型構成了比層次結構複雜的網狀結構。
關係模型
在關係模型中,數據的邏輯結構是一張二維表。
在資料庫中,滿足下列條件的二維表稱為關係模型:
① 每一列中的分量是類型相同的數據;
② 列的順序可以是任意的;
③ 行的順序可以是任意的;
④ 表中的分量是不可再分割的最小數據項,即表中不允許有子表;
⑤ 表中的任意兩行不能完全相同。
關係資料庫採用關係模型作為數據的組織方式。 關係資料庫因其嚴格的數學理論、使用簡單靈活、數據獨立性強等特點,而被公認為最有前途的一種資料庫管理系統。它的發展十分迅速,目前已成為占據主導地位的資料庫管理系統。自20世紀80年代以來,作為商品推出的資料庫管理系統幾乎都是關係型的,例如,Oracle,Sybase,Informix,Visual FoxPro,mysql,sqlserver等。
關係模型範式
只有滿足一定條件的關係模式,才能避免操作異常。
關係模式要滿足的條件稱為規範化形式,簡稱範式。
下面介紹四種不同程度的範式,由低級向高級:
1、第一範式(1NF)
在關係模式R的每一個具體關係r中,如果每個屬性值都是不可能再分的最小數據單元,則稱R是第一範式。記為R∈1NF。1NF是關係資料庫能夠保存數據並且正確訪問數據的最基本條件。
2、第二範式(2NF)
如果關係模式R(U,F)中的所有非主屬性都完全函式依賴於任意一個候選關鍵字,則稱關係R是屬於第二範式。記為R∈2NF。
3、第三範式(3NF)
如果關係模式R(U,F)中所有非主屬性對任何侯選關鍵字都不存在傳遞依賴,則稱關係R是屬於第三範式。記為R∈3NF。
4、BCNF
如果關係模式R(U,F)R屬於1NF,對任何非平凡依賴的函式依賴X→Y(Y!→X)X均包含碼。記為R∈BCNF。如果R是BCNF則一定是3NF;反之則不行。
一個低級範式的關係模式,可以通過分解方法轉換成若干個高一級範式的關係模式的集合,也可以說任何一個高層的範式,總是能夠滿足低層的範式。