概述
数据库设计的本质是将数据库系统与现实世界进行密切地、有机地、协调一致的结合的过程。

数据库设计方法之规范设计法:
- 新奥尔良设计方法:将数据库设计分为需求分析、概念结构设计、逻辑结构设计和物理结构设计四个阶段。重结构设计、轻行为设计
- 基于E-R模型的数据库设计方法:在需求分析基础上用E-R图构造一个反映现实世界实体之间联系的企业模式,然后将此模式转换成某一特定DBMS下的概念模式
- 基于第三范式的设计方法:① 确定数据库的模式、属性及属性间的依赖关系 ② 将它们组织在单一的关系模式中 ③ 若不符合第三范式约束条件,进行模式分解,规范成若干各第三范式关系模式的集合。
数据库设计的基本步骤
1). 需求分析
- 确定数据库范围:确定数据库支持哪些功能
- 应用过程分析:了解并分析数据与数据处理间的关系
- 收集与分析数据:静态结构(原始数据)、动态结构(应用操作施加于数据后)、数据约束(使用数据时的特殊需求)
- 编写需求分析报告:数据库的应用功能目标、标明不同用户视图范围、应用处理过程需求说明、数据字典、数据量、数据约束
2). 概念结构设计
- 按照特定方法设计满足应用需求的概念模型
- 概念模型独立于任何软件硬件
- 常用方法有实体分析法(自顶向下法)和综合属性法(自顶向上法)
3). 逻辑结构设计
- 将概念模型转换为等价的、并为特定的DBMS所支持的数据模型结构
- 一般由层次、网状、关系数据模型表示
4). 物理设计
确定数据库在存储设备上的存储结构及存取方法,建立索引和聚集,物理块大小、缓冲区个数和大小、数据压缩的选择等
5). 数据库的实施
- 加载数据
- 应用程序设计
- 数据库试运行
6). 数据库运行和维护
系统维护中最困难的工作是数据库重组与重构:
- 重组:不改变逻辑结构和物理结构,只是利用DBMS提供的设施调整数据库中数据的存储位置,从而回收“碎片”,使有关联的数据尽可能靠近存放,达到提高空间利用率和数据存取效率的目的
- 重构:部分修改逻辑结构和物理结构,往往是因为应用需求的改变与拓展或发现当初的设计欠妥而引起的
关系数据库设计方法
关系数据库设计过程与各级模式
- 概念结构设计阶段:形成独立于机器特点、独立于各关系数据库管理系统产品的概念模式(如ER图)
- 逻辑结构设计阶段:将概念模式转换成数据库产品支持的关系数据模式,然后建立根据用户处理的需求、安全性的考虑,在基本表的基础上建立必要的视图,形成外模式
- 物理结构设计阶段:根据数据库管理系统的特点和处理需要,进行物理存储安排,建立索引,形成数据库内模式
如下图所示:

概念结构设计方法
- ER 模型的基本元素是:实体(实体型)、联系和属性
- 实体:是一个数据对象,指应用中可以区别的客观存在的事物。 实体集:是指同一类实体构成的集合。 实体类型:是对实体集中实体的定义。 一般将实体、实体集、实体类型统称为实体
- 联系:表示一个或多个实体之间的关联关系。 联系集:是指同一类联系构成的集合。 联系类型:是对联系集中联系的定义。 一般将联系、联系集、联系类型统称为联系
- 同一个实体集内部实体之间的联系,称为一元联系;两个不同实体集实体之间的联系, 称为二元联系,以此类推
- 属性:实体的某一特性称为属性。在一个实体中,能够惟一标识实体的属性或属性集称为实体标识符
- ER 模型中,方框表示实体、菱形框表示联系、椭圆形框表示属性、实体与联系、实体 与其属性、联系与其属性之间用直线连接。实体标识符下画横线。联系的类型要在直线 上标注。注意:联系也有可能存在属性,但联系本身没有标识符
- 概念设计三个步骤:设计局部 ER 模型、设计全局 ER 模型和全局 ER 模型的优化。
一元联系:职工实体型内部,领导与被领导的联系,一个职工领导若干名职工,一名职工仅被另一名职工直接领导。

二元联系:一个系至多有一个系主任,一个系主任至多在一个系任职(1:1);一个班级有N个学生,一个学生至多属于一个班级(1:N);一个学生可以选修N门课程,一门课程可以被M个学生选修(M:N)。

多元联系:一门课程可以由M名教师教授,使用N本参考书,每个教师只讲授一门课程,每本参考书用于一门课程;一个供应商可以供给N个项目P种零件,每个项目可以存在M个供应商,每种零件也可由M个供应商供给。

逻辑结构设计方法
E-R图向关系模型的转换
遵循原则:
- 实体的属性作为关系的属性,实体的键作为关系的键。
- 若实体间联系是 1:1,可以在两个实体类型转换成的关系模式中任意一个关系模式的属性中加入另一个关系模式的键(作为外键)和联系类型的属性。
- 若实体间联系是 1:N,则在 N 端实体类型转换成的关系模式中加入1端实体类型的键(作为外键)和联系类型的属性。
- 若实体间联系是 M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键(作为外键)加上联系类型的属性,而键为两端实体键的组合。
- 三个及以上实体间的多元联系,可以与该多元联系相连的各实体的键以及联系本身的属性均转换为关系的属性,而关系的键为格实体键的组合。
- 具有相同键的关系模式可合并。
数据模型的优化
- 确定各属性间的函数依赖关系
- 对于各个关系模式之间的数据以来进行极小化处理,消除冗余的联系
- 判断各个关系模式的范式,根据实际需要确定最合适的范式
- 按照需求分析阶段得到的处理需求,分析这些模式对于这样的应用环境是否合适,确定是否要对这些模式进行合并或分解
- 对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率
设计用户子模式
- 通过试图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用
- 可以对不同级别的用户定义不同的视图,以保证系统的安全性
- 简化用户对系统的使用。如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图,用户每次只对定义好的视图进行查询。
物理设计方法
物理设计的任务主要是通过对关系建立索引和聚集来实现与应用相关的逻辑连接和物理聚集,以改善数据库的存取效率。
建立索引
- 索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。
- 索引是针对表而建立的,它是由数据页面以外的索引页面组成的,每个索引页面中的行都会含有逻辑指针,以便加速检索物理数据。
- 索引可以理解为一种特殊的目录
- 由于建立索引会带来维护索引空间的开销,所以建立索引的数据对象通常应具有较少的插入、修改、删除操作
- 建立索引的属性也是其所在关系中使用频率较高的属性
- 建立索引的方式通常由静态和动态两种
- 静态建立索引是指应用人员预先建立索引,后续应用程序菊科直接使用该索引存取数据,适合用户较多、使用周期较长的数据
- 动态建立索引是指应用人员在程序内外临时建立索引,适合单独用户或临时性使用要求的情况
建立聚集
聚集是将相关数据集中存放的物理存储技术,以提高I/O的数据命中率而改善存取速度。
所谓集中存放是指,将相关数据尽可能地存放于一个物理块中,若关系中含有100个1995年出生的教师数据的元组,最坏的情况下,100个元组分布在100个不同的物理块中,若按出生时间集中存放数据,则一次能读入多个教师数据。