第 10章 数据库设计
? 完善 E-R模型中的概念
? 数据库设计的过程
? 数据库设计工具 PowerDesigner
完善 E-R模型中的概念
? 弱实体
? 依赖联系
? 强制联系
数据库设计的过程
? 概念模型设计
? 逻辑数据库设计
? 规范化理论的应用
? 物理数据库设计
概念模型设计
? 确定实体
? 确定实体的属性
? 确定实体的标识属性(关键字)
? 确定实体间的联系和联系类型
? 画出表示概念模型的 E-R图(利用相应的
建模工具)
? 确定属性间的依赖关系
局部 E-R图合并为全局 E-R图
? 在进行 E-R图合并时,要注意消除不一致性和
冗余。因此,要特别注意以下一些问题:
? 表示相同事物的实体名和属性名要统一
? 相同的两个实体在不同的 E-R图中可能存在
着不同的联系
合并 E-R图
? 表示相同事物的实体名和属性名要统一
? 要消除同名异义和同义异名
? 在不同的局部 E-R图中同一实体包含的属性可能有
所区别,合并时要统一实体
合并 E-R图
合并后得到全局 E-R图
? 整体概念模型内部必须具有一致性,不
能有相互矛盾的表述;
? 整体概念模型必须能够准确反映原来的
每个局部模型的结构,包括实体、属性
和联系等;
? 整体概念模型必须能够满足需求分析阶
段所确定的所有要求,这一条实际蕴涵
了以上两条。
逻辑数据库设计
? 将 E-R图中的实体和联系转换为关系模式
? 确定各个关系模式的主关键字,考虑实体完整性
? 确定各个关系模式的外部关键字,考虑参照完整性
? 确定各个关系模式中属性的约束、规则和默认值,
考虑域完整性
? 考虑特殊的用户定义完整性
? 根据用户需求设计视图
? 考虑安全方案和用户使用权限等
规范化理论的应用
? 对关系数据库来说,逻辑数据库设计的结果
是一组关系模式。为了提高数据库的设计质
量,需要应用关系规范理论对这些关系模式
进行规范化处理,即通过模式分解使关系达
到较高的范式(至少达到第三范式)。
物理数据库设计
? 估算数据库的数据存储量
? 安排数据库的存储
? 设计索引
? 设计备份策略
? 其他
数据库设计工具 PowerDesigner
? PowerDesigner简介
? 概念数据库设计
? 物理数据库设计
? 建立数据库
PowerDesigner简介
? PowerDesigner的主要模块
? 概念数据模型( Conceptual Data Model)
? 物理数据模型( Physical Data Model)
? 面向对象模型( Object-Oriented Model)
? 业务处理模型( Business Process Model)
CDM和 PDM可以完成的工作
? 可以使用 E-R图建立概念数据模型( CDM)
? 可以针对特定的数据库管理系统生成物理数据模型
( PDM)
? 可以定制 PDM,以适应物理和性能上的考虑
? 可以生成目标数据库管理系统的建立数据库的脚本
? 可以生成参照完整性触发器(如果目标数据库支持)
? 可以定制和打印模型的文档报告
? 可以对已经存在的数据库和应用实施逆向工程
? 可以为 PDM对象定义扩展属性
使用 PowerDesigner设计数据库的处理流程
? 设计概念数据模型
? 由概念数据模型( CDM) 生成初步的物理数据
模型( PDM)
? 在生成的物理数据模型中完成物理数据库设计
? 生成创建目标数据库的脚本甚至可以直接创建
目标数据库
使用 PowerDesigner完成逆向操作的 处理流程
? 连接到目标数据库
? 由目标数据库生成物理数据模型
? 由物理数据模型生成概念数据模型
概念数据库设计
? 建立概念数据模型的常规操作包括:
? 定义实体
? 定义实体的属性
? 定义联系
概念数据模型设计界面中的工具板
? 其中的命令按钮大致可以分为三类:
? 设计 E-R图的实体、联系、继承和属性等概
念数据模型中的要素
? 点取、套取、抓取、放大、缩小、剪裁等编
辑手段和工具
? 文本、直线、矩形、椭圆形、圆角矩形、任
意形状、多边形等辅助信息和符号
一个简单的概念数据模型
疑问,
?在职工实体中没有包含仓库号属性,
在订购单实体中没有包含职工号和供应
商号属性
?这些 1:n联系使用的符号不完全一样
多个实体之间的联系
物理数据库设计
? 一般根据概念数据模型生成物理数据模
型,然后再进行一些必要的物理设计和
补充。在生成物理数据模型时需要指定
目标数据库和 PDM文件名。
物理数据模型设计界面中的工具板
? 其中的命令按钮大致可以分为三类:
? 表、视图、参照、属性等物理数据模型中的
要素
? 点取、套取、抓取、放大、缩小、剪裁等编
辑手段和工具
? 文本、直线、矩形、椭圆形、圆角矩形、任
意形状、多边形等辅助信息和符号
在物理数据模型中可以定义的内容
? 指定目标数据库
? 定义表
? 定义关键字
? 定义视图
? 定义列
? 定义域
? 定义约束规则
? 定义索引
? 定义触发器
? 定义参照联系
? 定义扩展属性
根据概念数据模型生成的物理数据模型
根据概念数据模型生成的物理数据模型
建立数据库
? 从物理数据模型可以生成创建目标数据库
的脚本文件(扩展名为,SQL的 SQL命令文
件),也可以直接从物理数据模型创建目
标数据库。
【本章小节】
? 这一章介绍了数据库设计的一般步骤和
内容,在熟悉相关的理论的基础上,也
应该了解相应的建模工具和设计工具,
这可以加强对理论和方法的理解,也可
以促进实践能力的提高。