檔案系統和資料庫的對比,檔案系統資料庫

來源:互聯網
上載者:User

檔案系統和資料庫的對比,檔案系統資料庫
檔案系統和資料庫的對比

本文主要從單機系統的角度出發,對比通用的檔案系統和資料庫技術。想到哪裡就寫到哪裡,遺漏的地方應該很多。


共同點:

  • 同屬於系統軟體或底層軟體
  • 都是用來儲存和訪問資料的
  • 都有著悠久的研究開發曆史
  • 都有成熟的標準或規範。這既有利於開發可移植的程式,又不利於開發創新的系統,特別是分布式系統。
  • 實現技術上也有很多的共同點
    • 大都採用C/C++這樣更底層的語言
    • 都需要保證資料的一致性,特別的,不同程度的支援事務
    • 都有Block或Page或Allocation unit或Extent這樣的概念
    • 都用到Buffer cache、LRU、Group commit之類的概念和演算法
    • 都要針對各種負載做IO最佳化

不同點:

  • 資料庫對事務的支援要強很多,檔案系統可以只保證中繼資料的一致性
  • 資料庫有不同層級的一致性,以隔離等級的形式體現出來
  • 資料庫可以有REDO和UNDO日誌,檔案系統一般只用REDO
  • 資料庫的事務可以很長,檔案系統的事務很短
  • 資料庫的事務事先無法確定,是使用者輸入的,檔案系統的事務可以事先確定,種類明確
  • 資料庫是使用者態實現的,檔案系統一般是核心態實現的。因此,前者更容易做到跨OS平台
  • 資料庫的提供者通常是非過程化的SQL語言,檔案系統的則是API。二者對應的主流標準分別是SQL和POSIX
  • 資料庫對死結可以做檢測,檔案系統則需要避免死結

聯絡點:

  • 資料庫系統經常依賴於檔案系統作為其最底層的儲存,也可能會實現一些檔案系統的功能
  • 檔案系統可以為資料庫這種特殊的應用做專門的最佳化
  • 檔案系統可以被當做簡單的資料庫使用(例如VSAM),資料庫也可以暴露出NFS(例如Oracle)
  • 檔案系統可能會用到一些簡單的資料庫功能(例如把符號連結當KV,實現簡單的DB功能,或直接用一個小型的DBMS)


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.