0%

三级模式和两级映像

数据库系统的三级模式与两级映像:数据独立性的基石

数据库系统的三级模式(外模式、概念模式、内模式)和两级映像(模式 / 内模式映像、外模式 / 模式映像)是实现数据独立性的核心架构,也是关系型数据库保持灵活性和稳定性的关键设计。这一体系结构将数据的抽象层次分离,使得用户操作、逻辑结构和物理存储可以独立演化。

三级模式结构:数据的三个抽象层次

三级模式从抽象到具体,分别对应用户视角、系统逻辑视角和物理存储视角,每一层都有明确的职责和描述对象。

外模式(External Schema):用户眼中的数据

  • 定义:又称 “用户模式” 或 “子模式”,是特定用户或应用程序所能看到和使用的数据结构描述。它是概念模式的子集,只包含用户关心的部分数据。
  • 特点:
    • 一个数据库可以有多个外模式(不同用户 / 应用可能需要不同的数据视图)。
    • 外模式屏蔽了无关数据,简化了用户操作,同时保障数据安全(用户只能访问被授权的外模式)。
  • 对应数据库对象视图(View)。视图是外模式的具体实现,用户通过视图操作数据,无需关注底层表结构。
  • 描述语言:外模式 DDL(数据定义语言),用于定义用户视图的结构。

概念模式(Conceptual Schema):系统的逻辑结构

  • 定义:又称 “模式”,是数据库中全体数据的逻辑结构和特征的总描述,反映了数据之间的内在联系(如关系、约束、规则等)。
  • 特点:
    • 概念模式是数据库的核心,独立于硬件(存储方式)和软件(应用程序)。
    • 它既不涉及数据的物理存储细节,也不针对具体用户的需求,而是从全局角度描述数据的逻辑组织。
  • 对应数据库对象基本表(Table)。基本表是概念模式的物理载体,体现了数据的逻辑结构(如字段、类型、主键、外键等)。
  • 描述语言:模式 DDL,用于定义表结构、关系和约束(如 SQL 中的 CREATE TABLE)。

内模式(Internal Schema):数据的物理存储

  • 定义:又称 “存储模式”,是数据在数据库内部的物理存储结构和存储方式的描述
  • 包含内容:
    • 数据的存储方式(如顺序存储、B 树索引、哈希存储)。
    • 物理记录的结构(如块大小、压缩方式、是否加密)。
    • 索引、聚簇、分区等物理优化手段。
  • 特点:
    • 内模式直接与硬件相关,由数据库管理系统(DBMS)负责管理。
    • 用户和应用程序无法直接访问内模式,只能通过概念模式间接操作。
  • 对应数据库对象存储文件(Data File)。存储文件是数据在磁盘上的实际存在形式(如 MySQL 的 .ibd 文件、Oracle 的 .dbf 文件)。
  • 描述语言:内模式 DDL,通常由 DBMS 自动生成或通过配置文件设置(用户无需手动编写)。

两级映像:实现数据独立性的桥梁

两级映像连接了三个抽象层次,确保了 “物理独立性” 和 “逻辑独立性”,使得数据的物理存储或逻辑结构变化时,应用程序无需修改。

模式 / 内模式映像:保障物理独立性

  • 定义:存在于概念模式与内模式之间,定义了逻辑结构与物理存储之间的对应关系(如 “概念表中的 id 字段对应物理文件的第 1-4 字节”)。
  • 物理独立性:当数据的物理存储方式改变时(如更换存储设备、修改索引类型、调整块大小),只需修改模式 / 内模式映像,概念模式和外模式保持不变,因此依赖外模式的应用程序无需修改。

示例:
若将表的存储方式从 “堆文件” 改为 “B 树索引”,DBMS 只需更新模式 / 内模式映像中 “表与存储结构” 的对应关系,应用程序仍通过 SELECT 语句查询表,感知不到底层变化。

外模式 / 模式映像:保障逻辑独立性

  • 定义:存在于外模式与概念模式之间,定义了用户视图与逻辑结构之间的对应关系(如 “视图 v_username 字段对应表 userusername 字段”)。
  • 逻辑独立性:当数据的逻辑结构改变时(如增加字段、修改表关系、拆分表),只需修改外模式 / 模式映像,外模式保持不变,因此依赖外模式的应用程序无需修改。

示例:
若在表 user 中增加 email 字段,而用户视图 v_user 只包含 idname,只需确保外模式 / 模式映像中 v_user 与原字段的对应关系不变,应用程序查询 v_user 时仍能正常工作,无需修改代码。

三级模式与两级映像的意义

  1. 数据独立性
    • 物理独立性:物理存储变化不影响应用程序。
    • 逻辑独立性:逻辑结构变化不影响应用程序。
      这是数据库系统区别于文件系统的核心优势之一,大幅降低了系统维护成本。
  2. 数据共享与安全
    • 概念模式统一管理全局数据,支持多用户共享。
    • 外模式限制用户访问范围,防止未授权操作(如通过视图隐藏敏感字段)。
  3. 抽象与简化
    • 屏蔽了底层复杂的物理存储细节,用户只需关注数据的逻辑使用。
    • 分离了逻辑设计与物理设计,便于数据库管理员(DBA)和开发人员分工协作

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10