7.1 数据库设计概述
定义
数据库设计是指对于一个给定的应用环境,构造(设计) 优化的 数据库模式、内模式和外模式,并据此建立数据库及其 应用系统 ,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括 信息管理要求 和 数据操作要求 。 信息管理要求 :在数据库中应该存储和管理哪些数据对象 。
数据操作要求 :对数据对象需要进行哪些操作,如查询、增、 删、改、统计等操作。
数据库设计的目标
为用户和各种应用系统提供 信息基础设施和高效的运行环 境 。其中,高效的运行环境指数据库数据的 高存取效率 、数据库存储空间的 高利用率 和数据库系统运行维护的 高效率
数据库设计分6个阶段
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
需求分析和概念设计 独立于任何数据库
管理系统
逻辑设计和物理设计 与选用的数据库管
理系统密切相
7.2 需求分析
需求分析就是分析用户的要求
是设计数据库的起点
结果是否准确地反映了用户的实际要求,将直接影响到后面各
个阶段的设计,并影响到设计结果是否合理和实用
需求分析的任务
详细调查现实世界要处理的对象(组织、部门、企业等)
充分了解原系统(手工系统或计算机系统)工作概况
明确用户的各种需求
在此基础上确定新系统的功能
新系统必须充分考虑今后可能的扩充和改变
调查的重点是“数据”和“处理”,获得用户对数据库的要求
(1)信息要求
(2)处理要求
(3)安全性与完整性要求
确定用户最终需求的难点
用户缺少计算机知识,不能准确地表达自己的需求,他们所提出的需求往往不
断地变化。
设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需
求
解决方法
设计人员必须不断深入地与用户进行交流,才能逐步确定用户的实际需求

7.3 概念结构设计
概念模型的工具: E-R模型
实体之间的联系
两个实体型之间的联系:
①一对一联系(1∶1)
②一对多联系(1∶ n )
③多对多联系( m ∶ n )
联系的度: 参与联系的实体型的数目
2个实体型之间的联系度为2,也称为二元联系;
3个实体型之间的联系度为3,称为三元联系;
N个实体型之间的联系度为N,也称为N元联系
E-R图 提供了表示实体型、属性和联系的方法 :
实体型:用 矩形 表示,矩形框内写明实体名。
属性:用 椭圆形 表示,并用无向边将其与相应的实体型连接起来。
联系:用 菱形 表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1∶1, 1∶n或 m ∶ n )。
联系可以具有属性
为了简化E-R图的处置,现实世界的事物能作为属性对待的,尽量
作为属性对待。
两条准则:
(1) 作为属性,不能再具有需要描述的性质。 属性必须是不可分
的数据项,不能包含其他属性。
(2) 属性不能与其他实体具有联系,即E-R图中所表示的联系是
实体之间的联系
E-R图的集成一般需要分两步
合并。 解决各分E-R图之间的冲突,将分E-R图合并起来生
成初步E-R图。
修改和重构。 消除不必要的冗余,生成基本E-R图。
(1)合并E-R图,生成初步E-R图
各个局部应用所面向的问题不同,各个子系统的E-R图之间
必定会存在许多不一致的地方,称之为 冲突 。
子系统E-R图之间的冲突主要有三类:
①属性冲突
②命名冲突
③结构冲突
(2)消除不必要的冗余,设计基本E-R图
所谓 冗余的数据 是指可由 基本数据 导出的数据,冗余的联系是指
可由其他联系导出的联系。
消除冗余主要 采用分析方法 ,即以数据字典和数据流图为依据,
根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。
用 规范化理论 来消除冗余
①确定分E-R图实体之间的数据依赖。
实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依
赖来表示。于是有函数依赖集F L 。
E-R图的集成
.3 概念结构设计
②求FL的最小覆盖GL,差集为 D=FL-GL。
逐一考察D中的函数依赖,确定是否是冗余的联系,若是,就把它去掉
7.4 逻辑结构设计
任务
把概念结构设计阶段设计好的 基本E-R图转换为与选用数据库管理
系统产品所支持的数据模型相符合的逻辑结构。
转换内容:
E-R图由实体型、实体的属性和实体型之间的联系三个要素组成
关系模型的逻辑结构是一组关系模式的集合
将E-R图转换为关系模型: 将实体型、实体的属性和实体型之间的
联系转化为关系模式
实体集的转换
1:1二元联系的转换
在某关系模式的属性中加入另一个关系模式的码和联系本身的属性
1:n二元联系的转换
可以转换为一个独立的关系模式。也可以与n端对应的关系模式S合并。即在关系模式S中加入联 系本身的属性和另一端实体的主码,且该主码作为S的外码。
m:n二元联系的转换
转换为一个新的关系模式S。把与该联系相连的实体集的主码以及联系本身的属性作为关系S的属
性,各实体集的码组合作为关系S的主码或者主码的一部分,且各实体集的主码为关系S的外码。
(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。
关系的属性:与该多元联系相连的各实体的码以及联系本身的属性
关系的码:各实体码的组合
(5)具有相同码的关系模式可合并
减少系统中的关系个数
方法:
将其中一个关系模式的全部属性加入到另一个关系模式中
然后去掉其中的同义属性(可能同名也可能不同名)
适当调整属性的次序
数据模型的优化: 数据库逻辑设计的结果不是唯一的,得到初步数据
模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数
据库应用系统的性能。
关系数据模型的优化通常以 规范化理论 为指导。
(1)确定 数据依赖
按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的
数据依赖以及不同关系模式属性之间数据依赖。
(2)对于各个关系模式之间的数据依赖进行 极小化处理 ,消除冗余的联系。
(3)按照 数据依赖的理论对关系模式 进行分析,考察是否存在部分函数依赖、
传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
(4)按照需求分析阶段得到的各种应用对数据处理的要求, 分析对于这样的应
用环境这些模式是否合适 ,确定是否要对它们进行合并或分解。
7.4 逻辑结构设计
数据模型的优化方法
(5)对 关系模式进行必要分解 ,提高数据操作效率和存储空间的利用率。
常用分解方法: 水平分解、垂直分解