系统架构师-数据库-数据库设计

数据库三级模式两级映射 + 数据库设计全过程

一、三级模式-两级映射(数据库体系结构)

数据库采用三级模式、两级映像 的体系结构,是数据库系统最核心的架构设计,核心作用是实现数据独立性

1.1 三级模式(三层抽象结构)

三级模式从用户层、逻辑层、物理层三层逐级抽象数据,屏蔽底层物理细节。

  • 外模式(用户模式/子模式)

    • 面向:普通用户、应用程序

    • 对应数据库对象:视图

    • 特点:一个数据库可以有多个外模式,仅展示用户需要的局部数据,屏蔽无关数据。

  • 模式(概念模式/逻辑模式)

    • 面向:数据库整体逻辑结构

    • 对应数据库对象:基本表

    • 特点:一个数据库仅有一个模式,定义所有实体、属性、关系、完整性约束,是数据库的全局逻辑视图。

  • 内模式(存储模式)

    • 面向:数据库底层物理存储

    • 对应数据库对象:物理存储文件、索引、数据页

    • 特点:一个数据库仅有一个内模式,描述数据的物理存储位置、存储结构、存取方式。

1.2 两级映像

两级映像实现上层逻辑与下层物理解耦,是数据库逻辑独立性物理独立性的根本保障。

  • 外模式-模式映像

    • 映射关系:视图(外模式) ↔ 基本表(模式)

    • 作用:保证逻辑独立性

    • 解释:当全局逻辑表结构(模式)修改时,只需调整映像,无需修改上层用户视图和应用程序。

  • 模式-内模式映像

    • 映射关系:基本表(模式) ↔ 物理存储(内模式)

    • 作用:保证物理独立性

    • 解释:当数据物理存储结构、存储位置、索引调整时,数据库逻辑结构不变,用户程序无需修改。


二、数据库设计六大完整阶段

标准数据库设计分为6个阶段,自上而下从业务梳理到落地维护,各阶段对应固定成果物。

2.1 需求分析阶段(最基础、最耗时)

核心工作:调研用户业务、梳理数据流转、明确数据规则、性能要求、安全要求。

成果物

  • 数据流图(DFD)

  • 数据字典(DD)

  • 数据库需求规格说明书

2.2 概念结构设计阶段(核心:抽象业务数据)

核心工作:脱离具体数据库,从业务角度抽象数据实体与关系,形成概念模型。

成果物:E-R 图(实体-联系图)

2.2.1 E-R图核心概念

  • 实体 :矩形表示,客观存在的人、事、物;包含弱实体(无法独立存在,必须依赖主实体)。

  • 属性:实体具备的特征、字段信息。

  • :属性的取值范围、数据类型、长度约束。

  • 码(键):可以唯一标识实体的属性/属性集合(主键核心概念)。

  • 联系:不同实体之间的业务关联关系。

  • 联系类型:1:1(一对一)、1:N(一对多)、M:N(多对多)

2.2.2 设计步骤

  1. 根据业务模块,设计局部E-R图

  2. 合并所有局部E-R图,生成全局E-R图

2.2.3 E-R图合并三大冲突(必考)

  • 属性冲突:同一属性的域、取值范围、数据类型不一致。例:年龄A模块0-150,在B模块中是15-28。

  • 命名冲突:同名不同义、同义不同名。

  • 结构冲突:同一实体在不同局部E-R中属性数量、关联关系、实体类型不一致。

2.3 逻辑结构设计阶段(模型转换)

核心工作:将业务层面的E-R概念模型,转换为数据库可识别的关系数据模型

成果物:标准化关系模式(数据表结构)

2.3.1 E-R图转关系模式规则(重点)

  1. 实体转换:每一个实体,单独对应一张关系表。

  2. 联系转换

    • 1:1 一对一:任选一端主键作为外键存入另一端表,也可单独建关联表。

    • 1:N 一对多:将「1端主键」加入「N端数据表」作为外键(主流方案)。

    • M:N 多对多必须新建独立关联表 ,存储两端实体主键,组成联合主键(必考)。

2.4 物理结构设计阶段

核心工作:针对选定的数据库系统,设计物理存储方案。

主要内容:

  • 确定数据存储结构、文件存储位置

  • 设计索引、分区、存储引擎

  • 确定数据访问方式、优化存取路径

  • 数据分布、存储空间分配

2.5 数据库实施阶段

核心工作:代码落地、环境搭建。

主要内容:

  • 编写SQL语句,完成建库、建表、建约束、建索引

  • 批量导入基础数据、测试数据

  • 数据库环境部署、应用程序联调、功能测试

2.6 数据库运行与维护阶段(生命周期最长)

数据库上线后的长期运维工作,是数据库生命周期最长的阶段。

主要内容:

  • 日常运行监控、SQL性能调优、慢查询优化

  • 数据定期备份、故障恢复、容灾处理

  • 用户权限管理、数据安全审计

  • 业务迭代带来的表结构修改、模型优化

相关推荐
leo__5201 小时前
IEC 104 协议 C 语言实现
c语言·数据库
摇滚侠1 小时前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复
java·数据库·mysql
若兰幽竹2 小时前
【从零开始编写数据库系统:架构设计与实现】第5章:查询执行引擎与火山模型
数据库·架构·数据库内核·toydb
天空属于哈夫克32 小时前
企业微信API常见的错误和解决方案
java·数据库·企业微信
东风破1373 小时前
DM8达梦数据库备份、恢复原理介绍
数据库·oracle·dm达梦数据库
鹏子训3 小时前
AI记忆新思路:用SQLite替代向量数据库,去EMBEDDINGS化,谷歌开源Google Always On Memory Agent
数据库·人工智能·sqlite·embedding
Frank_refuel3 小时前
终端环境下:Ubuntu 22.04.1 安装 MySQL 数据库
数据库·mysql·ubuntu
摇滚侠3 小时前
VMvare 虚拟机 Oracle19c 安装步骤,远程连接 Oracle19c,百度网盘安装包
java·oracle
虹科网络安全4 小时前
艾体宝产品|深度解读 Redis 8.4 新增功能:原子化 Slot 迁移(下)
数据库·redis·bootstrap