1. 程式人生 > >檔案系統和資料庫系統的區別

檔案系統和資料庫系統的區別

早期的資料庫管理都是採用檔案系統。在檔案系統中,資料按其內容、結構和用途組成若干命名的檔案。檔案一般為某個使用者或使用者組所有,但可供其他使用者共享。使用者可以通過作業系統對檔案進行開啟、讀、寫和關閉等操作。

檔案系統有明顯的缺點:
(1).編寫應用程式很不方便。
應用程式的設計者必須對所用的檔案的邏輯及物理結構有清楚的瞭解。作業系統 只能開啟、關 閉、讀、寫等幾個低階的檔案操作命令,對檔案的修改等處理都須在應用程式內解決。應用程式還 不可避免地在功能上有所重複。在檔案系統上編寫應用程式的效率不高。
(2).檔案的設計很難滿足多種應用程式的不同要求,資料冗餘經常是不可避免的。
為了兼顧各種應用程式的要求,在設計檔案系統時,往往不得不增加冗餘的資料。資料冗餘不僅浪費空間,而且會帶來資料的不一致性(inconsistency).在檔案系統中沒有維護資料一致性的監控機制,資料的一致性完全有使用者負責維護。在簡單的系統中勉強能應付,但在大型複雜的系統中幾乎是不可能完成的。
(3).檔案結構的修改將導致應用程式的修改,應用程式的維護量將很大。
(4).檔案系統不支援對檔案的併發訪問(concurrent access)。
(5).資料缺少統一管理,在資料的結構、編碼、表示格式、命名以及輸出格式等方面不容易做到規範化、標準化;
資料安全
和保密方面,也難以採取有效的辦法。

針對檔案系統的缺點,人們發展了以統一管理和共享資料為主要特徵的資料庫系統。在資料庫系統中,資料不再僅僅服務於某個程式或使用者,而是看成一個單位的共享資源,由一個叫資料庫管理系統(Data Management System,簡稱DBMS)的軟體統一管理。由於有DBMS的統一管理,應用程式不必直接介入諸如開啟、關閉、讀寫檔案等低階的操作,而由DBMS代辦。使用者也不必關係資料儲存和其他實現的細節,可在更高的抽象級別上觀察和訪問資料。檔案結構的一些修改也可以由DBMS遮蔽,使使用者看不到這些修改,從而減少應用程式的維護工作量,提高資料的獨立性。由於資料的統一管理,人們可以從全單位著眼,合理組織資料,減少資料冗餘;還可以更好地貫徹規範化和標準化,從而有利於資料的轉移和更大範圍的共享。由於DBMS不是為某個應用程式服務,而是為整個單位服務的,DBMS做得複雜一些也是可以接受的。許多在檔案系統中難以實現的動能,在DBMS中都一一實現了。

例如:適合不同型別使用者的多種
使用者介面
,保證併發訪問時的資料一致性的併發控制(concurrent control),增進資料安全性(security)的訪問控制(access control),在故障的情況下保證資料一致性的恢復(recovery)功能,保證資料在語義上的一致性的完整性約束(integrity constraints)檢查功能等。隨著計算機應用的發展,DBMS的功能愈來愈強,規模愈來愈大,複雜性和開銷也隨之增加。目前,在一些功能非常明確且無資料共享的簡單應用系統中,為減少開銷,提高效能,有時仍採用檔案系統;不過在資料密集型應用系統中,基本上都使用資料庫系統

現代的資料庫管理系統應該具備的7個功能:
1、提供高階的使用者介面
2、查詢處理和優化
這裡的查詢(query)泛指使用者對資料庫所提的訪問要求,不但包含資料檢索,也包括修改\定義新資料等
3、資料目錄管理
4、併發控制
5、恢復功能
6、完整性約束檢查
7、訪問控制
檔案系統和資料庫管理系統的四個不同點:
(1) 檔案系統用檔案將資料長期儲存在外存上,資料庫系統用資料庫統一儲存資料;
(2) 檔案系統中的程式和資料有一定的聯絡,資料庫系統中的程式和資料分離;
(3) 檔案系統用作業系統中的存取方法對資料進行管理,資料庫系統用DBMS統一管理和控制資料;
(4) 檔案系統實現以檔案為單位的資料共享資料庫系統實現以記錄和欄位為單位的資料共享。