邏輯與物理數據模型
在討論邏輯數據模型和物理數據模型之間的區別之前,我們必須知道什麼是數據模型。數據模型是一種表示,用於描述某個流程的數據及其之間的關係。數據模型是數據庫設計過程中使用的重要組件。邏輯數據模型是一個非常抽象和高級的數據視圖,在這裡可以識別實體、關係和鍵。它獨立於數據庫管理系統(DBMS)。物理數據模型是從邏輯數據模型派生出來的,在邏輯數據模型中,表和列是如何構成實際物理數據庫的。因此,物理數據模型依賴於所使用的數據庫管理系統。
什麼是邏輯數據模型(logical data model)?
邏輯數據模型在非常高的層次上詳細描述了數據和關係。這不包括如何在數據庫中物理地表示數據,而是在非常抽象的級別上進行描述。它基本上包括實體以及它們之間的關係以及每個實體的屬性。
邏輯數據模型包括每個實體的主鍵和外鍵。創建邏輯數據模型時,首先用鍵標識實體及其關係。然後識別每個實體的屬性。之後,多對多的關係被解決並完成規範化。邏輯數據模型獨立於數據庫管理系統,因為它不描述真實數據庫的物理結構。在設計邏輯數據模型時,實體和屬性可以使用非形式的長名稱。
什麼是物理數據模型(physical data model)?
物理數據模型描述數據如何真正駐留在數據庫中。它包括所有表和其中的列的規範。表規範包括表名、列數等詳細信息,列規範包括列名和數據類型。物理數據模型還包含每個表的主鍵,並且使用外鍵顯示錶之間的關係。此外,物理數據模型包含應用於數據和組件(如觸發器和存儲過程)的約束。
物理數據模型取決於使用的數據庫管理系統。因此,MySQL的物理數據模型不同於為Oracle繪製的數據模型。在邏輯數據模型之外創建物理數據模型時,首先將實體轉換為表。然後關係ae轉換為外鍵約束。然後屬性轉換為每個表的列。
符合邏輯的(logical)和物理數據模型(physical data model)的區別
•物理數據模型描述了數據庫的物理結構。邏輯數據模型是不描述數據庫物理結構的高級模型。
•物理數據模型取決於使用的數據庫管理系統。但是,邏輯數據模型獨立於所使用的數據庫管理系統。
•邏輯數據模型包括實體、屬性、關係和鍵。物理數據模型包括表、列、數據類型、主鍵和外鍵約束、觸發器和存儲過程。
•在邏輯數據模型中,實體和屬性使用長的非正式名稱。但是,在物理數據中,表名和列名使用縮寫的正式名稱。
•邏輯數據模型首先來自描述。然後只導出物理數據模型。
•邏輯數據模型規範化為第四範式。為了滿足需求,需要對物理數據庫模型進行變形。
小結: