Postgresql

數據庫如何為磁碟格式化文件

  • July 3, 2018

這個 SO 答案概述了 MySQL 如何將其數據庫組織成文件,但沒有描述文件本身的結構。

我想知道,在物理層面,關係數據庫管理系統如何將它們的記錄儲存在文件中。文件的結構大致是什麼,列/值在哪裡(如果它只是一個 CSV),以及它是如何遍歷的。

我認為現在應該開始指出,在關係數據庫中——根據EF Codd 博士的說法——資訊是通過一個且只有一個結構表示的,關係通常被描述為一個

關係模型專門處理抽象邏輯級別的各個方面,因此表(抽象)是數據庫邏輯級別的一部分(它容易進行邏輯操作,例如投影、連接、限制等) ,因此它完全獨立於使用的數據庫管理系統(簡稱 DBMS)所使用的物理儲存。

既然如此,由於關係模型與邏輯級方面有關,它提供了物理數據獨立性,這使得 DBMS(例如,像 IBM DB2、Microsoft SQL Server、PostgreSQL 等 SQL 平台)雖然非常強大,但嚴格來說,它們是半關係的,即它們不完全符合關係框架的規定——)可以自由(a)以開發人員/供應商認為方便的任何方式在物理抽象級別儲存(b)數據通過邏輯級表表示。

值得注意的是,物理級儲存又可以劃分為不同的抽象子級。

因此,物理佈置取決於所考慮的特定 DBMS,因此它們可能因平台而異。

不同SQL平台使用的物理結構範例詳解

如果您有興趣,您可能會在有關電腦化資訊系統的某些不同抽象級別的問題的答案中找到幫助。

引用自:https://dba.stackexchange.com/questions/210986