在数据库领域,“映射”(Mapping)通常指的是将一种数据结构、模型或概念转换为另一种,以建立它们之间的对应关系。这种转换在数据库设计和操作的各个层面都至关重要,尤其与关系模型紧密关联。

以下是“映射”在数据库中及其与关系模型关联的几个主要方面:

  1. 概念模型到逻辑模型的映射 (E-R 图到关系模型的转换)

    • 这是最直接也最核心的一种映射。E-R(实体 - 关系)模型是一种高层的抽象,用于在概念层面描述现实世界中的实体、属性和它们之间的关系 [3]。而关系模型是 DBMS(数据库管理系统)实际实现和操作的逻辑模型,由一系列二维表构成 [11]。
    • 关联:在数据库设计过程中,需要将 E-R 图转换为关系模式(即关系模型中的表结构)。这个过程解决了如何将 E-R 图中的实体和联系转换为关系模式,并确定这些关系模式的属性和码(键) [4.1]。
    • 具体映射规则 [4.1]:
      • 实体集映射:E-R 图中的每个实体集通常映射为关系模型中的一个关系模式(表),实体集的属性映射为关系模式的属性(列),实体集的主键映射为关系模式的主键。
      • 联系集映射
        • 1:1 联系:可以转换为一个独立的关系模式,或将其合并到参与联系的任一方实体集对应的关系模式中。
        • 1:N 联系:可以转换为一个独立的关系模式,或将“1”方实体集的主键作为外键添加到“N”方实体集对应的关系模式中。
        • M:N 联系:通常转换为一个独立的关系模式,该关系模式的主键由参与联系的实体集的主键组成。
        • 多元联系(三个或更多实体间):通常转换为一个独立的关系模式,其主键由所有参与实体集的主键共同构成。
      • 具有相同码的关系模式:在转换后,如果存在具有相同码的关系模式,它们可以被合并 [4.1]。
  2. 逻辑模型到物理模型的映射

    • 在关系模型确定后,还需要将其逻辑结构映射到物理存储结构上。这包括选择存取方法(如索引、聚簇、HASH)和确定数据在磁盘上的存放位置及存储结构 [5.1, 5.2, 5.3]。
    • 关联:逻辑模型关注数据如何组织(表、列),而物理模型关注数据如何实际存储和访问(文件、块、索引等),以优化性能。
  3. 视图(View)到基本表的映射

    • 在关系模型内部,视图是一种虚拟的表,它不实际存储数据,而是由一个或多个基本表(或其它视图)通过查询定义而来 [35]。
    • 关联:当用户查询视图时,DBMS 会将对视图的查询映射并转换为对底层基本表(或其它视图)的查询,从而获取所需的数据 [38]。虚拟视图不存储在数据库中,而物化视图是实际构建并存储的 [35]。
  4. 对象 - 关系映射(Object-Relational Mapping, ORM)

    • 这是一种在应用程序开发层面的映射。当使用面向对象编程语言(如 Java、Python、C#)开发应用时,程序中的对象需要与关系数据库中的数据进行交互。
    • 关联:ORM 工具提供了对象模型和关系模型之间的桥梁,允许开发者使用对象而非 SQL 语句来操作数据库。例如,程序中的一个 User 对象可以映射到数据库中 users 表的一行,ORM 框架会自动处理对象属性到表列的读写转换。
  5. 函数依赖(Functional Dependency)作为一种数据内部映射

    • 在关系模型中,函数依赖(FD)X -> Y 表示如果关系中的任意两个元组在属性集 X 上取值相同,那么它们在属性集 Y 上取值也必须相同 [2]。
    • 关联:虽然函数依赖本身是一种约束,但它本质上描述了数据值之间的一种“映射”关系:X 的值“决定”或“映射到”Y 的值。它是关系模式设计和范式理论(如 2NF、3NF、BCNF)的基础,通过这些理论来消除数据冗余和更新异常 [31, 34]。

综上所述,“映射”在数据库,尤其是关系数据库中,是一个多层次、多维度的概念,贯穿于从高层抽象设计到底层物理实现,乃至应用程序交互的整个生命周期。它使得不同层面的数据表示和操作能够协同工作。