--- url: /software-development/system-architecture-designer/database.md --- # 数据库设计 ## 数据库设计基础知识 案例分析题+实践题目 ### 基本概念 文件、数据库的联系和区别?数据库 复杂度高、冗余度低 数据库管理系统 DBMS:DDL、DML、数据库运行管理,组织和存储、建立和维护等。 数据模型,三要素:数据结构、数据操作、数据的约束条件 完整性:正确性和相容性 ### 三级模式两级映射 三级模式: * 概念模式:全体数据的逻辑结果 * 外模式:用户看到的部分数据,$n$个 * 内模式:存储记录的类型 逻辑独立性、物理独立性 关系表类型: * 基本表 * 查询表 * 视图:虚拟表,有查询定义,简化用户操作,对**机密数据**提供安全保护。 ### 完整性约束 实体完整性:主属性唯一、非空 参照完整性:外键 自定义完整性 触发器: 存储过程:数据库服务器上预先定义并编译。 ### 关系代数 🌟🌟🌟除法计算方式: ### 规范化理论 完全函数依赖: 部分函数依赖: 传递依赖: ### 规范化理论 数据冗余、修改异常、插入异常、删除异常 第一范式:不存在复合属性 第二范式:非主属性完全依赖主键 第三范式:非主属性对码的传递函数依赖 ### 数据库设计阶段 需求分析:需求规格说明书,数据流图,数据字典 概念结构设计:概念模型 1. 抽象数据 2. 设计局部ER图 3. 合并取消冲突,设计初步ER模式 4. 修改重构消除冗余,生成基本ER图 逻辑结构设计:关系模式 物理设计: 反规范化理论,加速读操作性能,通过添加冗余增加查询效率。反规范化的操作有:冗余列、派生列、表重组和表分割。 ### 数据库实施 运行维护的主要内容 * 数据库性能监测和改善 * 数据库备份和故障恢复 * 数据库重组和重构 全量备份、差分备份、增量备份 ### NoSQL概述 数据持久层、数据分布层、数据逻辑层、接口层。 ### 事务管理 ACID 原子性、一致性、隔离性、持续性 并发问题: 1. 丢失跟新 2. 幻读 封锁技术,X封锁(排他锁)、S封锁(共享锁)。 ### 分布式数据库 优化策略:表与视图、索引、SQL优化 分布式数据库组成: 1. 全局概念模式 2. 分片模式 3. 分布模式,4种分策略 4. 局部概念模式 5. 内模式 6. 数据库 两阶段提交,2PC,表决+执行 三阶段提交:预提交