数据库如何格式化磁盘文件

Lan*_*ard 2 postgresql storage disk-structures datafile

这个 SO 答案概述了 MySQL 如何将其数据库组织成文件,但没有描述文件本身的结构。

我想知道,在物理层面,关系数据库管理系统如何将它们的记录存储在文件中。文件的大致结构是什么,列/值在哪里(如果它只是一个 CSV),以及它是如何遍历的。

MDC*_*CCL 6

我认为这是适当时候开始指出,在关系每个数据库-as EF科德博士-信息借助一个且只有一个结构,所表示的关系,通常被描绘成一个

关系模型用的方面,专用于处理逻辑抽象层次,所以表(抽象)是数据库的逻辑电平的部分(这是容易进行逻辑运算,例如,投影,连接,限制等) ,因此它完全独立于使用的数据库管理系统(简称 DBMS)所使用的物理存储。

既然如此,由于关系模型只需要处理逻辑层面的问题,它提供了物理数据独立性,从而设置了 DBMS(例如,IBM DB2、Microsoft SQL Server、PostgreSQL 等 SQL 平台——虽然非常强大,严格来说,是半关系的,即它们不完全符合关系框架的规定——)可以自由地(a)以开发人员/供应商认为方便的任何方式在物理抽象级别存储(b)数据通过逻辑级表表示。

需要注意的是,物理级存储又可以分为不同的抽象子级。

因此,物理安排取决于所考虑的特定 DBMS,因此它们可能因平台而异。

详细说明了不同 SQL 平台使用的物理结构示例

如果您有兴趣,您可能会在此回答有关计算机化信息系统的某些不同抽象级别的问题时找到帮助。

  • (1) OP 正在询问有关 DBMS 如何在磁盘上构建和存储数据的详细信息。(2) 当然,物理抽象层的一切都是一个实现细节。(3) 而且,是的,我同意直接阅读 PostgreSQL、MySQL 或 Firebird 源代码可以帮助理解这些特定 DBMS 在物理级别本身内的最低抽象子级别的安排。 (2认同)