2009年3月19日 星期四

敘述階層式、網路式及關聯式三種資料庫系統的優缺點

敘述階層
敘述階層式優點:

1. 處理資料時能在存取資料上節省時間。因為在敘述階層中,一次 disk I/O 即以一個 control interval 為單位,也就是當存取某個 level 時,其下屬於該 level 的所有資料皆跟著放進 main memory 中,例如以某老師甲為 root ,則該老師甲所教班級的所有學生資料皆會以GU尋取老師甲時一併進入 main memory ,是故在需要該班學生資料時,就不必再作一次 disk I/O ,可以直接在 main memory 中切割,省了不少 disk I/O 的時間。
2. 因敘述階層 的結構是以 hierarchical structure 為理論基礎,資料與資料時間並無複雜的關係存在,所以作屬性查詢時,敘述階層表現的特性在於可以快速的找尋到所需要的資料;所謂屬性查詢就是根據學生主鍵值(primary key)查詢屬於該鍵值的所有資料,例如某學生的基本資料,或某老師負責教授班級的情形等。


敘述階層的缺點:
1) 敘述階層在屬性詢問時效率不錯,但若要作類別詢問時,敘述階層 就顯得相當笨拙不便,所謂類別的詢問是根據某項資料找出具有同一性質的所有記錄,例如工廠內所有月入一萬五千元以上的員工名單,或工廠內工作年資在五年以上的員工名單,依照敘述階層的結構就必須將所有員工資料,每筆查詢一次,看看是否為所要求的資料,此乃以順序(sequential)的方式查詢解決。
2) 敘述階層 在存取上十分快速是其優點,但也是缺點之一。理由是一次存取所佔用的記憶較大,尤其是在有許多層次,而使用到的資料又不多時,形成記憶體的浪費。敘述階層在類別詢問的效果不好,為解決類別詢問的問題,可以用次索引( secondary index ) 的方法來解決。






網路型資料庫
是由一個資料記錄的集合與一個鏈結的集合所組成。

網路型資料庫優點:
1.網狀結構因只有二個層次,十分易懂,因此存取路徑(access path)簡明、清楚,不似層次結構 較為複雜。網狀結構在存取資料時與敘述階層一次控制時段(control interval)即包含很多 segment 之大量存取方式不同,所以節省主記憶體(main memory)空間。 2.網狀結構在類別查詢方面,表現優異,但在屬性查詢方面則顯得相當笨拙,例如查詢某些學生的資料,每做一次查詢就必須做一次 DISK I/O。
網路型資料庫缺點:
網狀結構雖然節省空間,也因無法依敘述階層一樣以控制時段之方式存取資料,因此必須作多次輸入輸出工作,較費時。網狀結構的另一缺點是其結構層次只有2層,當變動資料集中仍有變動項時,只好採用 record code 的方式解決,缺乏如敘述階層多層次的靈活與便捷。當資料庫資料必須更新時,就須注意在變動資料集內變動項之低階代碼亦須更,並保持最低階代碼,增加維護資料時之困難與不便。

關連式資料庫
關連式資料庫優點:
1.資料的存取不須透過程式設計師特別的設計,只須交由資料庫管理系統處理即可。
2.資料庫管理系統已經提供了資料安全及一致性、安全性的維護,比檔案式管理更有效率。
3.關連式資料庫管理系統在資料的存取上提供了索引的功能,因此,當資料量變得龐大時,對於資料存取的速度會比直接使用檔案快上許多。
關連式資料庫缺點:
1.資料模型化能力弱:關連式資料庫無法記錄一個複雜的資料結構,因此若要描述物件與物件之間的複雜關係,則必須外建立一個表格來做處理。而且當資料量越來越多時,必須額外新建更多的表格才足以應付需求。如此,整個資料庫系統便顯得非常龐大且難以達到模型化。
2.執行效率低:若表格非常多時,透過主鍵(primary key)以及外鍵 (foreign key)來做資料的比較、查詢與處理將會使執行效率降低。
3.資料模型不一致:因為關聯式資料庫與物件導向資料庫的觀念是不相同的,因此,在設計系統以及實際作時若採用不同方式,則會造成錯誤。

沒有留言: