数据库三级模式两级映射 + 数据库设计全过程
一、三级模式-两级映射(数据库体系结构)
数据库采用三级模式、两级映像 的体系结构,是数据库系统最核心的架构设计,核心作用是实现数据独立性。
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 设计步骤
-
根据业务模块,设计局部E-R图
-
合并所有局部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:1 一对一:任选一端主键作为外键存入另一端表,也可单独建关联表。
-
1:N 一对多:将「1端主键」加入「N端数据表」作为外键(主流方案)。
-
M:N 多对多 :必须新建独立关联表 ,存储两端实体主键,组成联合主键(必考)。
-
2.4 物理结构设计阶段
核心工作:针对选定的数据库系统,设计物理存储方案。
主要内容:
-
确定数据存储结构、文件存储位置
-
设计索引、分区、存储引擎
-
确定数据访问方式、优化存取路径
-
数据分布、存储空间分配
2.5 数据库实施阶段
核心工作:代码落地、环境搭建。
主要内容:
-
编写SQL语句,完成建库、建表、建约束、建索引
-
批量导入基础数据、测试数据
-
数据库环境部署、应用程序联调、功能测试
2.6 数据库运行与维护阶段(生命周期最长)
数据库上线后的长期运维工作,是数据库生命周期最长的阶段。
主要内容:
-
日常运行监控、SQL性能调优、慢查询优化
-
数据定期备份、故障恢复、容灾处理
-
用户权限管理、数据安全审计
-
业务迭代带来的表结构修改、模型优化