2022-07-25 20:39:39
数据库逻辑结构因存储引擎和体系结构的不同存在差异,但通常包含存储结构层级与系统体系结构层级两部分核心内容。以下从存储引擎视角和数据库系统视角分别说明:
一、基于存储引擎的逻辑存储结构(以InnoDB为例)InnoDB存储引擎的逻辑存储结构呈现表空间→段→区→页的层级关系:
表空间(Tablespace)作为最高层级的逻辑容器,所有数据均被逻辑存放在表空间中。InnoDB支持系统表空间(存储系统数据字典、双写缓冲区等)和独立表空间(每个表单独存储),用户可通过配置文件调整表空间管理策略。
段(Segment)表空间由多个段组成,每个段对应特定类型的数据库对象。例如:
数据段:存储表的行数据;
索引段:存储B+树索引的节点;
回滚段:用于事务回滚和MVCC(多版本并发控制)。
区(Extent)段由连续的区构成,每个区固定大小为1MB(16个连续页)。区的设计优化了存储空间的连续性,减少磁盘I/O碎片。
页(Page)区由多个页组成,页是InnoDB的最小存储单元,默认大小为16KB。所有数据(行记录、索引节点等)均以页为单位存储,页内通过槽(Slot)和记录头信息组织数据顺序。
数据库系统普遍采用外模式→模式→内模式的三级抽象结构:
外模式(External Schema)面向用户或应用程序的视图层,定义用户能访问的数据逻辑结构(如表、视图、存储过程等)。不同用户可拥有不同的外模式,实现数据隔离与权限控制。
模式(Conceptual Schema)全局逻辑结构层,描述数据库中全部数据的逻辑关系(如实体、属性、约束等),独立于具体存储细节。例如,MySQL中通过DDL(数据定义语言)创建的表结构即属于模式范畴。
内模式(Internal Schema)物理存储结构层,定义数据在存储介质上的实际组织方式(如索引类型、文件格式、分区策略等)。内模式与存储引擎紧密相关,例如InnoDB的聚簇索引结构即属于内模式实现。
以MySQL为例,其逻辑结构可进一步细化为:
这种层级化设计实现了从抽象到具体的逐步细化,既支持高效的数据操作,又便于维护与扩展。