目录
数据库设计概述
数据库设计属于系统设计的范畴。通常把使用数据库的系统统称为数据库应用系统,把对数据库应用系统的设计简称为数据库设计
数据库应用系统的生命周期
(1)数据库规划
数据库规划是创建数据库应用系统的起点,是数据库应用系统的任务陈述和任务目标
任务陈述定义了数据库应用系统的主要目标
(2)需求描述与分析
需求描述与分析是以用户的角度,从系统中的数据和业务规则入手,收集和整理用户的信息,以特定的方式描述,是下一步工作的基础
(3)数据库与应用程序设计
数据库的设计是对用户数据的组织和存储设计;应用程序设计师在数据库设计基础上对数据操作及业务实现的设计,包括事务设计和用户界面设计
(4)数据库设计实现
使用DBMS支持的数据定义语言(DDL)实现数据库的建立,用高级语言编写应用程序
(5)测试
在数据系统投入使用之前,制订测试计划和测试数据来测试系统的性能是否满足设计要求
(6)运行维护
运行维护是系统投入使用后,必须不断地对系统进行评价,调整与修改。直至系统消失
(7)其他
评审时每个阶段都必须经过的。评审的目的是确认某一阶段的任务是否全部完成,从而避免出现重大的错误,保证设计质量
数据库设计的一般策略
(1)自顶向下
从企业的高层管理着手,分析企业的目标、对象和策略,构造抽象的高层数据模型,逐步构造越来越详细的描述和模型(子系统的模型)
(2)自底向上
从基本业务和数据处理着手,从企业的基础业务子系统的业务处理开始,进行分析和设计
数据库设计的基本步骤
数据库设计阶段
(1)用户需求分析
数据设计人员采用一定的辅助工具对应用对象的功能、性能等要求进行科学分析
(2)概念结构设计
对信息分析和定义
(3)逻辑结构设计
将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型,它是物理结构设计的基础。包括模式初始设计、子模式设计、应用程序设计、模式评价以及模式求精
(4)物理结构设计
逻辑模型在计算机的具体实现方案
(5)数据库实施阶段
数据库设计人员根据逻辑设计和物理设计阶段的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
(6)数据库运行和维护阶段
数据库应用系统经过试行即可投入运行,但该阶段需要不断地对系统进行评价、调整、与修改
数据库设计的组成
(1)结构设计
系统整体逻辑模式与子模式的设计,是对数据的分析设计
(2)行为设计
指施加在数据库上的动态操作(应用程序集)的设计,是对应用系统功能的分析设计
系统需求分析
系统需求分析是在项目确定之后,用户和设计人员对数据库应用系统所要涉及的内容(数据)和功能(行为)的整理和描述,是一用户的角度来认识系统
需求分析的任务、方法和目标
(1)需求分析的任务
综合各个用户的应用需求,对现实世界要处理的对象(组织、部门和企业等)进行详细调查,在了解现行系统的概括,确定新系统功能的过程中,支持系统目标的基础数据及处理方法
(2)需求分析的方法
自顶向下和自底向上
(3)需求分析的目标
调查组织机构情况,调查各部门的业务活动情况,协助用户明确对新系统的各种要求,确定新系统的边界,以此获得用户系统的信息要求、处理要求、系统要求
需求分析阶段的文档
数据流图(DFD):
数据流分析是对事务所需的原始数据的收集及经过处理后所得 数据及其流向
数据字典(DD)
各类数据描述的集合,是关于数据库中的数据描述。即元数据,不是数据本身
数据字典的组成
①数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}
②数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
③数据流描述={数据流名,说明,数据流去向,组成:{数据结构},数据量,存取方式}
④处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
案例分析
概念结构设计
数据库概念结构设计阶段是在需求分析的基础上,依照需求分析中的信息要求,对用户信息加以分类,聚焦和概括,建立信息模型,依照选定的数据库管理系统软件,转换成为数据的逻辑结构,再依照软硬件环境,最终实现数据的合理存储。
概念结构设计策略与方法
概念结构设计的目标:产生反映系统信息需求的数据库概念结构,即概念模式
概念结构是独立于支持数据库的DBMS和使用的硬件环境的
事物存在着大量不同的信息和对信息的各种处理,也必须加以分类整理,理清各类信息之间的关系,描述信息处理的流程
概念结构设计的流程:
①自顶向下
②自底向上
③逐步扩张
④混合策略
方法:
①分类:对现实事物,按照其具有的共同特征,定义一种类型
②聚焦:定义某一类型所具有的属性
③概况:由一种已知类型定义新的类型
用E-R方法建立概念模型
概念结构设计工作步骤:
①选择局部应用
②逐一设计分E-R 图
③E-R图合并
E-R图合并的冲突
①属性冲突:同一属性可能存在于不同的分E-R图中,由于设计人员不同或是出发点不同,对属性的类型,取值范围,数据单位等可能会不一致,这些属性数据将来只能以一种形式在计算机中存储,这就需要在设计阶段进行统一
②命名冲突:相同意义的属性,在不同的分E-R图上有着不同的命名,或是名称相同的属性在不同的分E-R图中代表着不同的意义
③结构冲突:同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象为实体而在另一分E-R图中又被抽象为属性
分E-R图合并优化方法
①实体类型的合并:两个具有1:1联系或1:*联系的实体,可以给予合并,使实体个数减少,有利于减少将来数据库操作过程中的连续开销
②冗余属性的消除:一般在各分E-R图中的属性是不存在冗余的,但合并后就可能出现冗余
③冗余联系的消除:在分E-R图合并过程中,可能会出现实体联系的环状结构,即某一实体A与另外一个实体B间有直接联系,同时A又通过其他实体与实体B发生间接联系,通常直接联系可以通过间接联系所表达,可消除直接联系
逻辑结构设计
逻辑结构设计即在概念结构设计的基础上进行数据模型设计,可以是层次模型、网状模型和关系模型
逻辑结构设计阶段的主要步骤包括确定数据模型、将E-R图转换为指定的数据模型、确定完整性约束和确定用户视图
E-R图向关系模式的转换
E-R图组成:实体、属性和联系三要素组成,而关系模型中只有唯一的结构——关系模式
方法
①实体向关系模式的转换
将E-R图中的实体逐一转换成为一个关系模式,实体名对应关系模式的名称,实体的属性转换为关系模式的属性,实体标识符就是关系的码
②联系向关系模式的转换
(1)一对一联系的转换:将联系归并到关联的两个实体的任一方,给待归并的一方实体属性集中增加另一方实体的码和该联系的属性即可,归并后的实体码保存不变
(2)一对多联系的转换:将联系归并到关联的两个实体的多方,给待归并的多方实体属性集中增加一方实体的码和该联系的属性即可,归并后的多方实体码保存不变
(3)多对多联系的转换:多对多联系只能转换为一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组
关系模式的规范化
(1)根据语义确定各关系模式中的数据依赖
(2)根据数据依赖确定关系模式的范式
(3)如果关系模式不符合要求,要根据关系模式的分解算法对其进行分解,达到3NF,BCNF,4NF
(4)关系模式的评价及修正
确定完整性约束
根据规范化理论确定了关系模式之后,还要对关系模式加以约束,包括数据项的约束,表级约束及表间约束,可以参照SQL标准来确定不同的约束,如检查约束、主码约束、参照完整性约束,以保证数据的正确性