由于工作需要,我簡單的了解了一下文件系統與數據庫系統,現總結如下,希望對廣大讀者有所幫助。
文件系統的簡單介紹
文件系統是操作系統的子系統,用于操作系統明確存儲設備或分區上的文件的方法和數據結構。
文件系統由三部分組成:文件系統的接口,對對象操縱和管理的軟件集合(我認為是文件的刪除,復制,粘貼等操作的支持軟件),對象及屬性。
數據庫系統的簡單介紹
數據庫系統主要包括數據庫以及DBMS(與文件系統的差異就在這兩個方面,其他包括宿主語言等暫時沒有了解有什么差異)
文件系統和數據庫系統的對比
第一 管理對象不同:
兩者最顯而易見的區別就是,文件系統是以文件為載體記錄數據的,管理的也是記載著這些數據的文件,而非數據本身,文件的各種形式對應著不同的數據結構。(非常淺顯的對比就是給一個文件重命名并不會造成文件內記錄的數據發生改變)
而數據庫系統管理的是數據本身,在數據庫內的任何操作都會立刻影響到數據。
第二 存儲數據方式不同:
文件系統用文件將數據長期保存在外存上。(這里的文件可以有很多不同的形式,不同后綴的文件就相當于不同的數據結構)
數據庫系統用數據庫統一存儲數據。(有統一的數據結構)
第三 程序與數據的關系不同:
文件系統中,程序訪問數據是直接訪問的,對數據的查詢修改必須在程序內完成,而這依賴于開發者對文件的邏輯及物理結構非常清楚。
數據庫系統中,數據不再僅服務于某個程序或用戶,而是以單位的形式共享出來,統一由DBMS軟件管理。由于程序對數據的操作都是通過DBMS實現的,因此程序和數據徹底獨立開,可以在更高的抽象級別觀察和訪問數據。
基于以上三點不同,可以總結出兩者在生產環境中的主要優劣:
文件系統的缺點:
① 文件系統編寫應用程序不方便,往往程序需要隨著文件的變化而修改。
② 文件系統中的文件不能滿足各種程序的需要,因此同一數據往往會以不同的文件形式儲存,造成數據的冗余和不一致性。
③ 文件系統不支持對文件的并發訪問。
④ 文件系統中的數據缺少統一的管理,表現在數據的結構,編碼,表示格式,命名以及輸出格式等不容易做到規范化、標準化,因此數據的安全和保密面臨更大的挑戰。
文件系統的優點:
① 由于數據的冗余,因此在高可用方面的表現遠遠優于數據庫系統。且在海量存儲方面,大量的冗余帶來了更大的容錯能力。
② 分布式方案的出現讓文件系統能夠在海量數據面前大顯身手,極強的可擴展性帶來極好的數據存儲能力。
數據庫系統的缺點:
① 由于DBMS的存在,在簡單的不需要數據共享的場景下,性能不如文件系統。
② 由于數據沒有冗余,在高可用方面有一定的隱患,只能通過備份解決。
③ 面對海量數據的應用場景很被動,表現不佳。
數據庫系統的優點:
① 由于DBMS的存在,用戶不再需要了解數據存儲和其他實現的細節,直接通過DBMS就能獲取數據,為數據的使用帶來極大便利。
② 具有以數據為單位的共享性,具有數據的并發訪問能力。DBMS保證了在并發訪問時數據的一致性。
③ 低延時訪問,典型例子就是線下支付系統的應用,支付規模巨大的時候,數據庫系統的表現遠遠優于文件系統。
④ 能夠較為頻繁的對數據進行修改,在需要頻繁修改數據的場景下,數據庫系統可以依賴DBMS來對數據進行操作且對性能的消耗相比文件系統比較小。
⑤ 對事務的支持。DBMS支持事務,即一系列對數據的操作集合要么都完成,要么都不完成。在DBMS上對數據的各種操作都是原子級的。
附錄為文件系統和數據庫系統的簡單工作原理圖

數據庫系統

文件系統