網狀模型

網狀模型

用網路結構表示實體類型及其實體之間聯繫的模型。顧名思義,一個事物和另外的幾個都有聯繫,這樣構成一張網狀圖。

網狀模型是一種可以靈活地描述事物及其之間關係的資料庫模型。最早由美國查爾斯·巴赫曼發明。

基本介紹

  • 中文名:網狀模型
  • 外文名:network model 
  • 屬於:邏輯模型
  • 套用學科:資料庫
發明簡史,定義,特徵,實例,數據操作與完整性約束,優缺點,優點,缺點,

發明簡史

世界上第一個網狀資料庫管理系統也是第一個DBMS是美國通用電氣公司Bachman等人在1964年開發成功的IDS(IntegratedDataStore)。IDS奠定了網狀資料庫的基礎,並在當時得到了廣泛的發行和套用。
美國的查爾斯·巴赫曼積極推動與促成了資料庫標準的制定,1971年,資料庫語言研究會(Conference On Data System Language,CODASYL)下屬的資料庫任務組(Data Base Task Group,DBTG)提出了一個系統方案——DBTG系統,也稱CODASYL系統對網狀數據模型和語言進行了定義,並在1978年和1981年又做了修改和補充。因此網狀數據模型又稱為CODASYL模型或DBTG模型。DBTG系統雖然不是實際的軟體系統,但是它提出的基本概念、方法和技術具有普遍意義,對於網狀資料庫系統的研製和發展起了重大的影響。後來許多系統都採用DBTG模型或者簡化的DBTG模型,如CuUinetSoftware公司的IDMS等。
1984年美國國家標準協會(ANSI)提出了一個網狀定義語言(NetworkDefinitionLanguage,NDL)的推薦標準。在70年代,曾經出現過大量的網狀資料庫的DBMS產品。比較著名的有Cullinet軟體公司的IDMS,Honeywell公司的IDSII,Univac公司(後來併入Unisys公司)的DMS1100,HP公司的IMAGE等。 網狀資料庫模型對於層次和非層次結構的事物都能比較自然的模擬,在關係資料庫出現之前網狀DBMS要比層次DBMS用得普遍。在資料庫發展史上,網狀資料庫占有重要地位。

定義

網狀模型
現實世界中事物之間的聯繫更多的是非層次關係的,用層次模型表示這種關係很不直觀,網狀克服了這一弊病,可以清晰的表示這種非層次關係。
用有向圖結構表示實體類型及實體間聯繫的數據結構模型稱為網狀模型(Network Model)。
網狀模型取消了層次模型的不能表示非數狀結構的限制,兩個或兩個以上的結點都可以有多個雙親結點,則此時有向樹變成了有向圖,該有向圖描述了網狀模型。
網狀模型中以記錄為數據的存儲單位。記錄包含若干數據項網狀資料庫數據項可以是多值的和複合的數據。每個記錄有一個惟一地標識它的內部標識符,稱為碼(DatabaseKey,DBK),它在一個記錄存入資料庫時由DBMS自動賦予。DBK可以看作記錄的邏輯地址,可作記錄的替身,或用於尋找記錄。網狀資料庫是導航式(Navigation)資料庫,用戶在運算元據庫時不但說明要做什麼,還要說明怎么做。例如在查找語句中不但要說明查找的對象,而且要規定存取路徑。

特徵

網狀模型的數據結構主要有以下兩個特徵:
(1)允許有一個以上的節點無雙親。
網狀模型
(2)至少有一個節點可以有多於一個的雙親。
網狀模型中每個結點表示一個記錄型(實體),每個記錄型可包含若干個欄位(實體的屬性),結點間的連線表示記錄類型(實體)間的父子關係。
從定義可以看出,層次模型中子結點與雙親結點的聯繫是唯一的,而在網狀模型中這種聯繫可以不唯一。因此,在網狀模型中要為每個聯繫命名,並指出與該聯繫有關的雙親記錄和子記錄。

實例

以學生選課為例討論網狀模型如何組織數據。
通常一個學生可以選修若干門課程,某一課程可以被多個學生選修,因此,學生與課程之間是多對多的聯繫。這樣的實體聯繫圖不能直接用網狀模型來表示,因為網狀模型中不能直接表示實體之間多對多的聯繫,為此引入一個學生選課的聯結記錄。它由3個數據項組成,即學號、課程號、成績,表示某個學生選修某一門課程及其成績。
這樣,學生選課資料庫包括3個記錄類型:學生、課程和選課。
每個學生可以選修多門課程。顯然對於學生記錄中的一個值,選課記錄中可以有多個值與之聯繫。而選課記錄中的一個值,只能與學生記錄中的一個值聯繫。學生與選課之間的聯繫是一對多的聯繫,聯繫名為學生-選課。同樣,課程與選課之間的聯繫也是一對多的聯繫,聯繫名為課程-選課。

數據操作與完整性約束

網狀模型的數據操作主要包括查詢、插入、刪除和更新。具體如下:
(1)進行插入操作時,允許插入尚未確定雙親結點值的子結點值。如可增加一名尚未分配到某個教研室的新老師,也可增加一些剛來報到還未分配宿舍的學生。
(2)進行刪除操作時,只允許刪除雙親結點值。如可刪除一個教研室,而該科研室所有教師的信息仍保留在資料庫中。
(3)修改數據時,可直接表示非樹狀結構,而無須像層次模型那樣增加冗餘結點,因此修改操作時只需要指定更新記錄即可。
進行更新操作時只需更新指定記錄即可。因此,一般來說,網狀模型沒有層次模型那樣嚴格的完整性約束條件,但具體的網狀資料庫系統(如DBTG)對數據操作都加了一些限制,提供了一定的完整性約束。
DBTG在模式DDL中提供了定義DBTG資料庫完整性的若干概念和語句,主要有:
(1) 支持記錄碼的概念,碼是唯一標識記錄的數據項的集合。
(2) 保證一個聯繫中雙親記錄和子記錄之間是一對多的聯繫。
(3) 可以支持雙親記錄和子記錄之間某些約束條件。如有些子記錄要求雙親記錄存在才能插入,雙親記錄刪除時也連同刪除。

優缺點

優點

網狀數據模型的優點如下。
(1) 能夠更為直接地描述現實客觀世界。可表示實體間的多種複雜聯繫。
(2) 具有良好的性能,存取效率較高。

缺點

網狀數據模型的缺點如下。
(1) 結構比較複雜,其數據定義語言(DDL)、數據操作語言(DML)複雜,用戶不容易使用。而且套用環境越大,資料庫的結構就變得越複雜,不利於最終用戶掌握。
(2) 數據獨立性差,由於實體間的聯繫本質上是通過存取路徑表示的,因此應用程式在訪問數據時要指定存取路徑。

相關詞條

熱門詞條

聯絡我們