層次模型
優點:
- 數據結構簡單清晰。
- 因為記錄之間的聯系用有向邊表示,這種聯系在DBMS中通常使用指針實現,查詢效率高。層次模型數據庫性能優於關系數據庫,不低於網狀數據庫。
- 提供了良好的完整性支持。進行插入操作時,如果沒有對應的雙親結點就不能插入它的子女結點值。進行刪除操作時,如果刪除雙親結點,則相應的子女結點值也將被同時刪除。
原文:https://blog.csdn.net/qq_38234015/article/details/89082854
缺點:
- 現實世界中的很多聯系是非層次性的。如果結點之間具有多對多聯系,不再適合使用層次模型表示。如果一個子女結點確實具有多個雙親結點,使用層次結構模型表示的時候就會出現大量的冗余,且操作復雜。
- 查詢子女結點必須通過雙親結點。
- 由於結構嚴密,層次命令趨於程序化。
網狀模型
優點:
- 能夠更為直接地表示現實世界。
- 具有良好的性能,存取效率高。
缺點:
- 結構復雜,伴隨應用環境的擴大,數據結構變得越來越復雜,不利於最終用戶掌握。
- 網狀模型的數據定義語言和數據管理語言復雜。
- 由於記錄之間的聯系通過存取路徑實現,應用程序在訪問數據的時候必須選擇恰當的存取路徑,因此用戶必須了解系統結構的細節,導致加重了編寫應用程序的負擔。
關系模型
優點:
- 關系模型建立在嚴格的數學概念的基礎之上。
- 關系模型概念單一。無論是實體還是實體之間的聯系都用關系來表示。對數據的檢索和更新結果也是基於關系(表)的。所以,數據結構簡單清晰,用戶易懂易用。
- 關系模型的存取路徑對用戶透明,從而具有較高的數據獨立性,更好的安全保密性,也簡化了程序員的工作和數據庫開發建立的工作。
缺點:
- 由於存取路徑對用戶是透明的,查詢效率往往不如格式化數據模型。
- 為了提高系統性能,數據庫管理系統必須對用戶的查詢請求進行優化。