数据库设计是指在一个特定应用环境下,根据用户的信息需求、处理需求和数据库支撑环境(包括DBMS、OS和硬件), 构造数据库模式,创建数据库及其相关应用系统的过程。
指数据库应用系统从前期规划、分析、设计(需求分析,概念设计,逻辑设计,物理设计)、实现(应用程序编码、调试)、投入运行后的维护直到最后被新的系统所取代而停止使用的整个期间。
数据库设计的主要准则:数据的完备性;数据的一致性;高效性;易维护
数据库设计主要分为以下六个阶段。
1,需求分析
需求分析阶段主要负责收集用户的信息需求及处理需求,并加以分析、整理、统一,最终形成用户需求分析说明书。
需求分析的重点是用户的“数据”和“处理”,即获得用户对数据库的“真实”要求,包括:
需求分析的步骤:需求信息的收集,需求信息的分析整理,编写需求分析说明
2,概念设计
概念模型是对现实世界的一种抽象,即对实际的人、物、事和概念进行人为处理,抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。
这个阶段最常使用的方法是ER模型。基本的ER模型在前面已经讲解过,但是基本的ER模型不能满足需求。下面我们介绍扩充的ER模型。
- 弱实体
- 普遍化和特殊化
- 子类和超类
- 聚集(是...的一部分)
- 范畴
概念设计的原则:
1.根据需求分析确定实体、属性和实体间的联系 2.设计局部E-R模型 3.对局部E-R模型进行综合,设计出总体E-R模型
4.消除冗余,优化总体E-R模型(消除由于合并带来的冗余和冲突)
根据对用户需求处理方式的不同,可以有集中式模式设计法和视图集成法两种概念结构设计方式。
1)集中式模式设计法首先对需求分析阶段得到的应用需求进行合并,形成一个统一的整体需求说明。系统的概念结构设计将以合并后的总体需求为蓝本,设计出全局的概念模式,然后再按照不同的特定应用和用户设计各自的外模式。集中式设计法较适合于小规模的应用。
2)视图集成法:局部视图设计和视图集成两个步骤
消除冗余:冗余主要包括数据冗余和联系冗余两种情况,冗余的数据是指可以由其它基本数据导出的数据,冗余的联系是指可以由其它联系导出的联系。数据和联系的冗余将会给数据库完整性的维护带来困难,容易引起数据的不一致,消除冗余的工作可以通过分析数据字典和数据流图中的数据说明及数据间的关系完成。
3,逻辑设计
逻辑设计的任务是在概念设计的基础上给出与DBMS相关的数据库逻辑模式。
E-R模型独立于DBMS——可用于任何一种数据库;把E-R模型转换为某个具体的DBMS所能接受的关系数据模型,称为数据库的逻辑设计,或称为建立数据库逻辑模式;
E-R模型转换为关系模型主要解决: 如何用关系来表达实体和实体间的联系
E-R模型向关系模型的转换可以参照以下原则进行:
(1)实体转换为关系模式,关系模式的属性集由实体原有的属性集构成,实体的键是关系模式的键
(2)如果属性是非原子属性,可以按照纵向展开或横向展开的方式将其转化为原子属性。对于集合类型的非原子属性,需要纵向展开,而元组类型的属性则需要横向展开。
(3)实体间的联系可以转换为关系模式,也可以与参与联系的实体所对应的关系模式合并对于常见的二元联系和三元联系,有以下的具体转换方式:
优化与调整:
对于关系模式进行的优化与调整主要集中在数据结构与性能两个方面:
数据结构方面:结构方面的调整主要是指通过关系规范化理论对关系模式进行优化,以减少数据冗余和更新异常问题的出现。
步骤:(1)确定数据依赖。(2)参照最小覆盖算法对每个关系模式内及关系模式间的数据依赖进行极小化处理,消除冗余依赖。 (3)逐一分析每个关系模式属于第几范式,一般只要达到3NF或BCNF即可。
性能:性能的调整主要是指通过减少查询时连接运算次数和改变关系大小等方式提高数据处理速度。
4,物理设计
任何数据库最终都要存储在物理设备上,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。
物理设计的内容包括:
5,数据库的实施
数据库物理设计阶段完成后即可以进入数据库实施阶段。
数据库实施阶段主要包括以下工作:用DDL定义数据库结构 ;组织数据入库 ;编制与调试应用程序 (在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的应用程序,也就是说,编制与调试应用程序是与组织数据入库同步进行的;调试应用程序时由于数据入库尚未完成,可先使用模拟数据);数据库试运行 (数据库试运行也称为联合调试,其主要工作包括:功能测试:即实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能;性能测试即测量系统的性能指标,分析是否符合设计目标 )
6,数据库的运行和维护
数据库投入运行标着开发任务的基本完成和维护工作的开始,但并不意味着设计过程的终结,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。
在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成,主要包括:1.数据库转储和恢复;2.数据库性能的监督、分析和改进;3.数据库重组;4.数据库重构
7,IDEF 1X方法(关系数据库的设计方法)
IDEF1X方法是数据建模方法,是建立关系数据库的设计方法,其元素的表示比ER图稍微复杂一些,这里不进行具体描述,将在后续文章进行详细介绍。