邏輯數據模型
圖形化的展現方式之一
邏輯數據模型 (LogicDataModel,LDM)是一種圖形化的展現方式,一般採用面向對象的設計方法,有效組織來源多樣的各種業務數據,使用統一的邏輯語言描述業務。
藉助相對抽象、邏輯統一且結構穩健的結構,實現數據倉庫系統所要求的數據存儲目標,支持大量的分析應用,是實現業務智能的重要基礎,同時也是數據管理分析的工具和交流的有效手段。
對於企業,邏輯數據模型(簡稱LDM)就是企業基礎數據的一部分,它是企業數據資產的全面的、準確的描述,是數據整合的核心或目的。數據整合就是將不同來源的數據整合到一個統一定義、統一形式的LDM中。
1.層次數據模型
2.網狀數據模型
3.關係數據模型
4.面向對象模型
層次模型(Hierarchical Model)是最早出現的數據模型,它是採用層次數據結構來組織數據的數據模型。層次模型可以簡單、直觀地表示信息世界中實體、實體的屬性以及實體之間的一對多聯繫。它使用記錄類型來描述實體;使用欄位來描述屬性;使用結點之間的連線表示實體之間的聯繫。
(1)層次模型的概念
層次數據結構也稱樹型結構,樹中的每個結點代表一種記錄類型。滿足以下兩個條件的數據模型稱為層次模型:
1)只有一個結點沒有雙親結點(雙親結點也稱父結點),該結點稱為根結點。2)根結點以外的其他結點有且只有一個雙親結點。層次模型可以很自然地表示家族結構、行政組織結構等。 (2)層次模型的三要素1)數據結構:使用記錄類型表示實體,使用結點之間的連線表示一對多的聯繫。2)數據操作:包括結點的查詢和結點的更新(如插入、刪除和修改)操作。3)完整性約束:一個模型只有一個根結點;其他結點只能有一個雙親結點;結點之間是一對多的聯繫。 (3)層次模型的優缺點層次模型的優點是結構簡單、清晰,容易理解,結點之間聯繫簡單,查詢效率高。缺點主要有以下幾點:1)不能表示一個結點有多個雙親的情況。2)不能直接表示多對多的聯繫,需要將多對多聯繫分解成多個一對多的聯繫。常用的分解方法是冗餘結點法和虛擬結點法。3)插入、刪除限制多。比如,刪除父結點則相應的子結點也被同時刪除等。具體內容可參考“數據結構”課程中樹的相關操作。4)必須要經過父結點,才能查詢子結點。因為在層次模型中,沒有一個子結點的記錄值能夠脫離父結點的記錄值而獨立存在。
網狀模型(Network Model)採用網狀結構,能夠直接描述一個結點有多個父結點以及結點之間為多對多聯繫的情形。 (1)網狀模型的概念網狀模型是滿足以下兩個條件的基本層次聯繫的集合:1)允許有一個以上的結點無雙親結點。2)一個結點可以有多於一個的雙親結點。實際上,層次模型是網狀模型的一個特例。網狀模型去掉了層次模型中的限制,允許多個結點沒有雙親結點,允許結點有多個雙親結點,還允許結點之間存在多對多的聯繫。使用網狀模型可以表示多對多聯繫。例如,如圖1-8所示,通過引入一個成績的聯結記錄來表示學生和課程之間多對多的聯繫。網狀模型中子結點與雙親結點的聯繫可以不唯一,但需要為每個聯繫進行命名,圖1-8中成績結點有兩個雙親結點:課程和學生。將課程與成績的聯繫命名為“課程-成績”,將學生與成績的聯繫命名為“學生-成績”。 (2)網狀模型的三要素1)數據結構:使用記錄類型表示實體,使用欄位來描述實體的屬性,每個記錄類型可包含若干個欄位,使用結點之間的連線表示一對多的聯繫。2)數據操作:包括結點的查詢和結點的更新操作。3)完整性約束:支持碼的概念,用於唯一標識記錄的數據項的集合;保證一個聯繫中雙親結點與子結點之間是一對多聯繫;支持雙親記錄和子女記錄之間的某些約束條件,如只刪除雙親結點等。 (3)網狀模型的優缺點 網狀模型具有良好的性能,存取效率較高。相比層次模型,網狀模型中結點之間的聯繫具有靈活性,能表示事物之間的複雜聯繫,更適合描述客觀世界。網狀模型雖然有效克服了層次模型不方便表達多對多聯繫的缺點,但因為結構複雜,實現網狀資料庫管理系統比較困難。並且其所提供的DDL語言複雜,不容易學習和掌握。此外,由於實體間的聯繫本質上是通過存取路徑來表現,因而,應用程序在訪問數據時還需要指定存取路徑。
層次模型和網狀模型的共同缺點是通過存取路徑實現記錄之間的聯繫,應用程序在訪問數據時必須選擇適當的存取路徑,用戶必須了解系統結構的細節,這樣加重了編寫應用程序的負擔。另外,不支持集合處理,即沒有提供一次處理多個記錄的功能。關係模型(Relational Model)在1970年由IBM公司的E.F.Codd首次提出。關係模型可以描述一對一、一對多和多對多的聯繫,並向用戶隱藏存取路徑,大大提高了數據的獨立性以及程序員的工作效率。此外,關係模型建立在嚴格的數學概念和數學理論基礎之上,支持集合運算。關係模型由關係數據結構、關係操作和完整性約束三部分組成。在關係模型中,實體和實體之間的聯繫均由關係來表示。 (1)關係的定義:關係模型是一種簡單的二維表格結構,每個二維表稱做一個關係,一個二維表的表頭,即所有列的標題稱為一個元組,每一列數據稱為一個屬性,列標題稱屬性名。同一個關係中不允許出現重複元組和相同屬性名的屬性。 (2)資料庫體系結構① 外模式:或子模式、應用模式、局部模式等,它是對資料庫在某個方面局部應用所涉及數據的邏輯結構和特徵的描述,它是終端用戶和應用程序員所見到的資料庫。②模式:或概念模式、邏輯模式、全局模式等。它是對整個資料庫邏輯結構和特徵的描述,用戶以DBMS支持的邏輯數據模型為基礎。③ 內模式:或存儲模式、物理模式等。它是對整個資料庫的存儲結構和特徵的描述。 (3)DBMS的主要功能①、數據定義和操縱②、資料庫管理控制③、資料庫輔助服務④、提供使用資料庫工具⑤、建立和維護數據字典(4)關係運算①關係數據結構域:域是具有相同特性的數據集合。笛卡兒積:笛卡兒積是定義在一組域上的集合,假定一組域用D1、D2、……Dn表示,則它們的笛卡兒積表示為:D1*D2*……*Dn。關係:關係到笛卡兒積的一個子集,若笛卡兒積具有n個域,則該笛卡兒積上的關係被稱為n元關係。碼:碼又稱為鍵、關鍵字等。候選碼:關係中能惟一標識每個元組的最少屬性或屬性組被稱為該關係的候選碼。主碼:從候選碼中選擇一個作為該關係的主碼,資料庫系統將按主碼標識和排序每個元組。②關係完整性l 實體完整性實體完整性規則:關係的主碼不能取空值,或者說任何關係中每個元組的主碼不能為空。l 參照完整性參照完整性規則:在兩個參照和被參照關係中,參照關係中每個元組的外碼或者為空,或者等於被參照關係中某個元組的主碼。③關係運算(5)傳統的集合運算包括:並、交、差和笛卡兒積等四種運算。
面向對象模型是一種新興的數據模型,也是目前最重要的模型思路。它採用面向對象的方法來設計資料庫。面向對象的資料庫存儲對象是以對象為單位,每個對象包含對象的屬性和方法,具有類和繼承等特點。
在面向對象資料庫的設計中,我們將客觀世界中的實體抽象成為對象。面向對象的方法中一個基本的信條是"任何東西都是對象"。對象可以定義為對一組信息及其操作的描述。對象之間的相互操作都得通過發送消息和執行消息完成,消息是對象之間的介面。嚴格地講,在面向對象模型中,實體的任何屬性都必須表示為相應對象中的一個變數和一對消息。變數用來保存屬性值,一個消息用來讀取屬性值,另一個消息則用來更新這個值。
資料庫中通常有很多相似的對象。"相似"是指它們響應相同的消息使用相同的方法,並有相同名稱和類型的變數。對每個這樣的對象單獨進行定義是很浪費的,因此我們將相似的對象分組形成了一個"類"。類是相似對象的集合。類中的每個對象也稱為類的實例。一個類中的所有對象共享一個公共的定義,儘管它們對變數所賦予的值不同。面向對象數據模型中類的概念相當於E-R模型中實體集的概念。
繼承性允許不同類的對象共享它們公共部分的結構和特性。繼承性可以用超類和子類的層次聯繫實現。一個子類可以繼承某一個超類的結構和特性,這稱為"單繼承性";一個子類也可以繼承多個超類的結構和特性,這稱為"多繼承性"。繼承性是數據間的泛化/細化聯繫,是一種"is a"聯繫。
面向對象系統提供一種"對象標識符"的概念來標識對象。OID與對象的物理存儲位置無關,也與數據的描述方式和值無關。OID是惟一的。在對象創建的瞬間,由系統賦給對象,它在系統內是惟一的,在對象的生存期間,標識是不能改變的。如果要將數據轉移到另外一個不同的資料庫系統中,則標識符必須進行轉化。
對象包含不同類的對象之間可能存在著包含關係)。包含其它對象的對象稱為複合對象。包含關係可以有多層,形成類包含層次圖。包含是一種"是一部分"(is part of)聯繫,因此包含與繼承是兩種不同的數據聯繫。
目前,一種結合關係資料庫和面向對象特點的資料庫為那些希望使用具有面向對象特徵的關係資料庫用戶提供了一條捷徑。這種資料庫系統稱為"對象關係資料庫",它是在傳統關係數據模型基礎上,提供元組、數組、集合一類豐富的數據類型以及處理新的數據類型操作能力,並且有繼承性和對象標識等面向對象特點。