基础数据
设计以选课、成绩等业务事实为基础,并持续收集、整理、组织和更新这些数据
从业务问题建立可追溯的设计输入
数据库设计从业务目标、数据、处理和运行约束出发,逐步形成可验证的设计输入
设计要同时回答数据对象和业务处理
| 设计视角 | 要回答的问题 | 典型结果 |
|---|---|---|
| 信息管理 | 应存储和管理哪些数据对象 | 学生、课程、选课 |
| 数据操作 | 需要查询、增加、删除、修改什么 | 开课、选课、成绩登记 |
| 运行目标 | 如何平衡存取效率、空间利用率和运行维护效率 | 存储结构、存取方法和维护方案 |
表只是载体;业务语义、处理责任和运行目标仍需要设计
基础数据、业务规则和事务活动共同决定模式能否长期使用
设计以选课、成绩等业务事实为基础,并持续收集、整理、组织和更新这些数据
教务规则和组织职责会塑造数据对象及其联系
选课、退课、成绩登记等事务会影响模式和物理结构
数据库设计必须与应用、业务流程和运行维护同步推进
每一阶段都留下可以复核的设计产出,后续证据也可能促使前面回退

| 阶段 | 主要输入与任务 | 主要产出 |
|---|---|---|
| 需求分析 | 业务目标、现有记录;调查并确认需求 | 需求规格、数据字典 |
| 概念结构 | 需求规格、数据字典;抽取对象和联系 | E-R 图、概念模型 |
| 逻辑结构 | 概念模型、依赖和约束;转换并规范化 | 逻辑模式、外模式 |
| 物理结构 | 逻辑模式、负载约束;选择存储和存取方法 | 存储结构、索引、配置 |
| 实施 | 模式、程序和数据;构建、装载和测试 | 可运行系统、试运行结果 |
| 运行维护 | 运行反馈、故障和变化;评价、调整和备份 | 监控、重组或重构方案 |
需求与概念设计相对独立于 DBMS;逻辑与物理设计受目标 DBMS 影响,事务和应用设计与各阶段同步推进
不同角色在不同阶段提供业务、结构、处理和运行证据
| 角色 | 主要责任 | 重点参与 |
|---|---|---|
| 系统分析员 | 组织业务调查、梳理需求和边界 | 需求分析 |
| 数据库设计员 | 设计并维护概念、逻辑和物理结构 | 结构设计全过程 |
| 应用开发人员 | 把处理要求落实为事务和应用程序 | 实施与试运行 |
| 数据库管理员 | 管理运行环境、权限、备份和监控,并提出运行约束 | 需求、物理设计与运行维护 |
| 用户代表 | 持续提供业务语义、确认范围并反馈运行结果 | 需求分析、验收与运行反馈 |
各角色在自己负责的阶段提供证据;系统分析员与数据库设计员贯穿全过程,并与其他角色协作
需求分析把业务语言整理为信息、处理、安全性和完整性要求
| 需求类别 | 高校选课示例 | 它回答什么 |
|---|---|---|
| 信息 | 学生、教学班、选课记录、成绩 | 要保存和查询什么 |
| 处理 | 选课、退课、成绩登记、统计 | 要完成什么操作及其响应 |
| 安全性 | 学生只能查看自己的成绩 | 谁可以查看、修改或导出什么 |
| 完整性 | 成绩必须对应合法选课记录 | 哪些取值、联系和状态必须成立 |
需求还要说明未来扩充的可能性,以及新系统负责和不负责的边界
需求调查先核对真实流程,再与用户确认系统边界和职责
复杂业务通常需要组合使用多种调查方法
通过跟班作业和查阅记录了解实际流程
通过调查会、专人介绍和询问澄清业务规则
通过问卷调查收集较大范围的反馈
六种调查方法按证据问题分组;调查完成后还要由用户确认需求规格
结构化分析自顶向下逐层分解,把组织问题落到可记录的数据和处理过程
结构化分析整理调查证据,但不替代用户判断;组织层级和业务活动的实际分解会随系统变化
它是需求分析的元数据成果,不是业务记录本身
| 条目 | 描述重点 | 后续用途 |
|---|---|---|
| 数据项 | 不可再分;含义、别名、类型/长度、取值范围/含义、逻辑关系 | 属性、域和完整性约束 |
| 数据结构 | 数据项或子结构的业务组合,不是数组或链表 | 概念对象、联系和消息输入 |
| 数据流 | 数据结构的来源、去向、组成、平均与高峰流量 | 处理边界与事务频率 |
| 数据存储 | 手工文档或计算机存储;流入流出、数据量、频度和方式 | 逻辑对象与物理存储估算 |
| 处理过程 | 输入、输出、功能、频度和响应要求;描述做什么而非如何实现 | 事务、响应性能与物理设计输入 |
数据项之间的逻辑关系是后续函数依赖、完整性约束和逻辑模式优化的语义来源
把同一业务事实拆开记录,为后续设计保留可追溯的来源
| 条目 | 示例内容 | 设计提示 |
|---|---|---|
| 数据项 | 学号、教学班号、申请时间、状态;值域和有效性规则 | 属性、域和完整性约束 |
| 数据结构 | 申请 = 学号+教学班号+申请时间+状态 | 学生—教学班联系及其属性 |
| 数据流 | 学生端 → 选课处理 → 记录与结果 | 来源、去向和系统边界 |
| 数据存储 | 选课记录;数据量、频度和方式待调查 | 逻辑对象与物理存储估算 |
| 处理过程 | 资格、容量、冲突校验;成功或拒绝输出 | 事务、响应和异常分支 |
五类条目分别为概念对象与联系、逻辑键和约束、物理负载评估提供证据
用户确认的是语义、范围和优先级,而不是替设计员决定表名
经用户确认的当前版本,才成为设计团队共同使用的依据;未决事项和后续变更仍需记录
数据库设计从业务目标出发,在运行反馈中持续修正
区分广义与狭义设计,说明六个阶段和协作角色
使用六种方法和结构化分析整理四类需求
用五类条目记录语义,由用户确认并追踪到后续设计
确认后的需求和数据字典为实体、属性、联系和约束设计提供输入