《數據庫模型-數據結構-網狀模型》要點:
本文介紹了數據庫模型-數據結構-網狀模型,希望對您有用。如果有疑問,可以聯系我們。
我們上次聊了數據結構的層次模型,本日看下結構的網狀模型.
網狀模型:用網絡結構表現實體類型及其實體之間聯系的模型,顧名思義,一個事物和另外的幾個都有聯系這樣構成一張網狀圖.
(1)容許有一個以上的節點無雙親.
(2)至少有一個節點可以有多于一個的雙親.
網狀模型中每個結點表示一個記錄型(實體),每個記錄型可包括若干個字段(實體的屬性),結點間的連線表示記錄類型(實體)間的父子關系.
從定義可以看出,層次模型中子結點與雙親結點的聯系是唯一的,而在網狀模型中這種聯系可以不惟一.因此,在網狀模型中要為每個聯系命名,并指出與該聯系有關的雙親記錄和子記錄.
實體型:用記錄類型描述
每個結點表述一個記載類型(實體);
屬性:用字段描述,每個記錄類型包括若干個字段;
聯系:用結點之間的連線表現記錄類型(實體)之間的一對多的父子關系;
網狀模型與條理模型的區別:
網狀模型:允很多個結點沒有雙親結點;
容許結點有多個雙親;
允許兩個結點有多種接洽(復合接洽);
可以更直接的去描寫現實世界;
條理模型是網狀模型的一個特例.
要為每個聯系定名(L1、L2),并指出該聯系相關的雙親記錄和子女記錄.
用網狀模型表現多對多的關系
辦法:將多對多直接分解成一對多的聯系
4、 舉例:學生選課模子
它由3個數據項組成,即學號、課程號、成績,表現某個學生選修某一門課程及其成績.
每個學生可以選修多門課程.顯然對付學生記錄中的一個值,選課記錄中可以有多個值與之聯系.而選課記錄中的一個值,只能與學生記錄中的一個值聯系.學生與選課之間的聯系是一對多的聯系,聯系名為學生-選課.同樣,課程與選課之間的聯系也是一對多的聯系,聯系名為課程-選課.
網狀模型的數據操作主要包括查詢、插入、刪除和更新:
插入:插入尚未肯定雙親結點值的子結點值;
刪除:只允許刪除雙親結點值.如可刪除一個教研室,而該科研室所有教師的信息仍保存在數據庫中.
修改:可直接表示非樹狀結構,而無須像層次模型那樣增加冗余結點,因此修改操作時只必要指定更新記錄即可.
網狀數據系統(DBTG)對數據加了一些限制,提供了必定的完整性約束:
碼:唯一標識記載的數據項集合;
一個聯系中雙親記錄和后代記錄是一對多的關系;
支持雙親記錄和后代記錄之間的某些約束性條件;
癥結:實現記錄聯系;
常用辦法:單向、雙向、環向、向首鏈接;
網狀數據模型的長處如下:
(1) 能夠更為直接地描述現實客觀世界,可表現實體間的多種復雜聯系.
(2) 具有優越的性能,存取效率較高.
網狀數據模型的毛病如下:
(1) 結構比擬復雜,其數據定義語言(DDL)、數據操作語言(DML)復雜,用戶不容易使用.而且應用環境越大,數據庫的結構就變得越復雜,不利于最終用戶掌握.
(2) 數據獨立性差,由于實體間的聯系本質上是通過存取路徑表示的,因此應用程序在拜訪數據時要指定存取路徑.
以上,相識下~
歡迎參與《數據庫模型-數據結構-網狀模型》討論,分享您的想法,維易PHP學院為您提供專業教程。