侧边栏壁纸
博主头像
sirgo的博客 博主等级

每天进步一点点,一年之后你会看到巨大的变化

  • 累计撰写 58 篇文章
  • 累计创建 46 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

系统架构师-数据库设计

sirgo
2026-01-25 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

三级模式两级映像

  • 外模式:你看到的(视图、权限)

  • 概念模式:所有人共享的“数据库说明书”(表结构)

  • 内模式:机器怎么存的(文件、索引、页)

  • 映像机制:DBMS 内部的“自动翻译器”,让三层能各自变化而不互相影响

    • -外模式 / 概念模式 映像

    • 概念模式 / 内模式 映像

映像

映像机制的本质,就是“中间层解耦” —— 和软件工程里的“接口”思想一模一样!我们可以把“映像机制”看作数据库内部的多层接口或转换引擎,但它比“一层接口”更复杂、更动态。下面用贴近现实 DBMS(如 MySQL/PostgreSQL)实现的方式来澄清:SQL 查询 → 访问物理数据 → 通过某种“映像层”转换 → 返回用户可见的外模式结果。 这确实是 DBMS 的工作流程。但严格来说,映像机制不是“一层静态接口”,而是一组由系统维护的元数据 + 查询执行时的动态重写/投影逻辑。

简单但不严谨的理解: 映像就是一种mapping机制,在各层之间充当“翻译器”,在各个层之间做转换桥梁

数据模型的三大层次(对应数据库三级模式)

层次

名称

面向谁

特点

常见形式

1. 概念模型
(Conceptual)

业务分析师、领域专家

与技术无关,聚焦业务语义

E-R 图(实体-联系图)

2. 逻辑模型
(Logical)

数据库设计师、开发人员

与 DBMS 类型相关(关系型/文档型等)

关系表结构(字段、主键、外键)
JSON 文档结构

3. 物理模型
(Physical)

DBA、运维工程师

与具体数据库和硬件绑定

存储引擎、索引、分区、文件组织

主流数据模型类型(按技术范式分类)

模型

核心思想

代表数据库

适用场景

关系模型

二维表 + 数学集合论

MySQL, PostgreSQL, Oracle

事务系统(OLTP)、强一致性场景

文档模型

自包含的 JSON/BSON 文档

MongoDB, Couchbase

内容管理、配置存储、灵活 schema

键值模型

key → value 映射

Redis, DynamoDB

缓存、会话、简单查询

列族模型

列式存储,高压缩

Cassandra, HBase

大数据分析、时序数据

图模型

节点 + 边 + 属性

Neo4j, Amazon Neptune

社交网络、欺诈检测、推荐系统

数据库设计六大步骤

步骤

名称

核心任务

输出成果

1

需求分析

与用户沟通,明确数据需求、业务规则、操作类型(查询/更新频率等)

《需求说明书》
(包含数据项、处理流程、用例)

2

概念结构设计

抽象出实体、属性、关系,建立与 DBMS 无关的全局模型

E-R 图(实体-联系图)
或 UML 类图

3

逻辑结构设计

将 E-R 模型转换为特定 DBMS 支持的数据模型(通常是关系模型)

关系模式(表结构)
(含主键、外键、范式)

4

物理结构设计

设计存储结构、索引、分区、文件组织等,优化性能

物理存储方案
(索引策略、聚簇、压缩等)

5

数据库实施

用 DDL 创建表、视图、约束;用 DML 加载初始数据

可运行的数据库实例
+ 初始数据

6

数据库运行与维护

监控性能、调优、备份恢复、安全控制、模式演化

稳定、安全、高效的数据库系统

E-R图

  • 工具:E-R 图(Entity-Relationship Diagram)

  • 关键元素

    • 实体(矩形):如 Student, Course

    • 属性(椭圆):如 StudentID, Grade

    • 联系(菱形):如 Enroll(学生, 课程),标注基数(1:N, M:N)

三大范式

数据库的三大范式(Three Normal Forms) 是关系型数据库设计中用于消除数据冗余、避免更新异常、保证数据一致性的核心规范化理论。它们由 Edgar F. Codd 在 1970 年代提出,是逻辑结构设计阶段的重要指导原则。

  • 第一范式:表的每一列都是不可再分的原子值(Atomic Value),即没有重复组或多值字段。

  • 第二范式:在满足第一范式的前提下: 表中所有非主键字段必须完全依赖于整个主键(不能只依赖主键的一部分)。

  • 第三范式:在满足第二范式的前提下:表中所有非主键字段不能传递依赖于主键(即不能 A → B → C,其中 A 是主键)换句话说:非主键字段之间不能有依赖关系

范式

核心要求

解决的问题

第一范式(1NF)

每列都是原子值,不可再分

消除重复组、多值字段

第二范式(2NF)

非主键字段必须完全依赖整个主键(尤其针对复合主键)

消除部分依赖导致的冗余和更新异常

第三范式(3NF)

非主键字段之间不能有依赖关系(即无传递依赖)

消除传递依赖导致的数据不一致

总结:

外模式:你看到的(视图、权限)

概念模式:所有人共享的“数据库说明书”(表结构)

内模式:机器怎么存的(文件、索引、页)

映像机制:DBMS 内部的“自动翻译器”,让三层能各自变化而不互相影响

SQL 的角色:接口语言,不是映像本身,而是用户用来定义和操作三级模式(尤其是外模式和概念模式)的语言工具。“SQL 语句(特别是视图、权限、表定义等)是用户参与构建和使用三级模式映像机制的主要方式。”

0

评论区