概述
7.1 数据库设计概述
7.1.1 数据库设计的特点
特点:三分技术,七分管理,十二分基础数据
结构(数据)设计和行为(处理)设计相结合
7.1.2 数据库设计方法
- 新奥尔良方法
- 基于E-R模型的设计方法
- 3NF的设计方法
- 面向对象的数据库设计方法
- 统一建模语言
7.1.3 数据库设计的基本步骤
需求分析和概念设计面向应用,独立于DBMS
逻辑设计与某一个数据模型相关
物理设计与产品有关
7.2 需求分析
7.2.1 需求分析的任务
- 信息要求:用户需要从数据库中获得信息的内容和性质
- 处理要求:数据要完成的数据处理功能
- 安全性与完整性要求
7.2.3 需求分析的方法
7.2.3 数据字典
定义:关于数据库中数据的描述,即元数据,包括数据项、数据结构、数据流、数据存储和处理过程。
- 数据项:名称类型长度等
- 数据结构:数据之间的结合关系
- 数据流:来源去向流量等
- 数据存储:存储名输入输出的数据流等
- 处理过程
7.3 概念结构设计
7.3.1 概念模型
主要特点:
- 真实充分地反映现实世界
- 易于理解
- 易于更改
- 易于向关系、网状、层次等各种数据模型转换
7.3.2 E-R模型
实体之间的联系
1. 两个实体型之间的联系
(1)一对一联系
(2)一对多联系
(3)多对多联系
2. 两个以上的实体型之间的联系:同上
3. 单个实体型内的联系
一般地,把参与联系的实体型的数目称为联系的度。N个实体型之间的联系度为N,也称为N元联系。
E-R图
- 矩形:实体型
- 属性:椭圆形
- 联系:菱形
设计原则:
1. 尽量减少实体的数目,能用属性表示的就不要用实体描述
2. 属性不能再由属性来描述
3. 属性不能与其他实体具有联系
7.3.3 扩展的E-R模型
7.3.4 UML
7.3.5 概念结构设计
实体与属性的划分原则
- 作为属性,不能再具有需要描述的性质
- 属性不能与其他实体具有联系
E-R图的集成
- 合并E-R图,生成初步E-R图
- 消除不必要的冗余,设计基本E-R图
各子系统的E-R图之间的冲突主要有三类:
1. 属性冲突
- 属性域冲突:属性值的类型、取值范围、取值集合不同
属性取值单位冲突:斤和公斤
- 命名冲突
同名异义:不同意义的对象在不同的局部应用中具有相同的名字
异名同义:同一意义的对象在不同的局部应用中具有不同的名字
结构冲突
- 同一对象在不同应用中具有不同的抽象:把职工当作实体或属性
- 同一实体在不同子系统的E-R图所包含的属性个数和属性排列次序不完全相同
- 实体间的联系在不同的E-R图中为不同的类型
7.4 逻辑结构设计
7.4.1 E-R图向关系模型的转换
一个实体型转换成一个关系模式。
7.4.2 数据模型的优化
原因:数据库逻辑设计的结果不是唯一的
优化方法:
1. 确定数据依赖
2. 对于各个关系模式之间的数据进行极小化处理
3. 按照数据依赖的理论关系模式逐一进行分析
4. 根据需求分析阶段得到的处理要求分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解
5. 对关系模式进行必要分解,提高数据操作效率和存储空间利用率
7.4.3 设计用户子模式
目的:设计更符合局部用户需要的用户外模式
- 使用更符合用户习惯的别名
- 可以对不同级别的用户定义不同的视图
- 简化用户对系统的使用
7.5 物理结构设计
定义:为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程
数据库的物理设计通常分为两步:
- 确定数据库的物理结构
- 对物理结构进行评价
7.5.1 数据库物理设计的内容和方法
- 关系模式选择存取方法
- 设计关系、索引等数据库文件的物理存储结构
7.5.2 关系模式存取方法选择
存取方法:
B+树索引(一般是缺省的)
经常在查询条件中出现的属性
- 经常作为最大值和最小值等聚集函数的参数的属性
- 经常在连接操作的连接条件中出现的属性
hash索引
- 一个关系的大小可预知,且不变
- 关系的大小动态改变,但DBMS提供了动态hash存取方法
聚簇索引:把在某些属性上具有相同值的元组集中存放在连续的物理块中,该属性称为聚簇码。一个关系只能加入一个聚簇。比较适合经常访问和连接的应用。建立和维护聚簇的开销相当大,对已有关系建立聚簇将导致关系中元组移动其物理存储位置,并使此关系上原来所建立的所有索引重建。
例子:将同一个系的所有学生存储在同一个物理块中
7.5.3 确定数据库的存储结构
定义:确定数据的存放位置和存储结构,权衡存取时间、存储空间利用率和维护代价三方面的关系。
- 确定数据的存放位置:将数据的易变部分和稳定部分、经常存取部分和存取频率较低部分分开存放
- 确定系统配置:系统配置变量和存储分配参数
7.6 数据库的实施和维护
7.6.1 数据的载入和应用程序的调试
数据库应用程序的设计应该与数据库设计同时进行
7.6.2 数据库的试运行
- 先输入小批量数据做调试用,待试运行基本合格后再大批量输入数据,逐步增加数据量,逐步完成运行评价
- 做好数据库的转储和恢复工作
7.6.3 数据库的运行和维护
- 数据库的转储和恢复
- 数据库的安全性、完整性控制
- 数据库性能的监督分析和改造
- 数据库的重组织和重构造
最后
以上就是拉长宝贝为你收集整理的《数据库系统概论》 第七章 数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 物理结构设计7.6 数据库的实施和维护的全部内容,希望文章能够帮你解决《数据库系统概论》 第七章 数据库设计7.1 数据库设计概述7.2 需求分析7.3 概念结构设计7.4 逻辑结构设计7.5 物理结构设计7.6 数据库的实施和维护所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复