数据库设计概述
什么是数据库设计?
针对具体的应用场景, 使用现有的DBMS构建适合的数据库模式, 建立数据库及其应用系统, 使之能有效地收集, 存储, 操作和管理数据, 满足实际业务中各类用户的应用需求, 信息需求和处理需求, 这个过程称为数据库设计
数据库的生命周期
数据库分析与设计阶段
需求分析
概念设计
逻辑设计
物理设计
数据库实现与操作阶段
实现
操作与监督
修改与调整
数据库设计的目标
满足应用功能需求
存取删改
良好的数据库性能
-
数据的高效率存取和空间的节省
-
具有良好的数据共享性, 完整性, 一致性, 安全保密性
数据库设计的内容
数据库结构设计, 静态的
- 数据库概念结构设计, 逻辑结构设计, 物理结构设计
数据库行为设计, 动态的
- 确定数据库用户的行为和动作
数据库设计的方法
直观设计法
最原始的数据库设计方法
规范设计法
-
新奥尔良设计法: 需求分析, 概念结构设计, 逻辑结构设计, 物理结构设计
-
基于E-R模型的数据库设计方法
-
基本第三范式的设计方法, 是一类结构化设计方法
计算机辅助设计法
辅助软件工程工具
数据库设计的过程
需求分析阶段
结构设计
概念结构设计, 逻辑结构设计, 物理结构设计
行为设计
事务设计, 程序设计, 功能设计
数据库实施
加载数据库数据, 调试运行应用程序
数据库运行和维护阶段
数据库设计的基本步骤
需求分析
数据库设计的起点
目标: 了解与分析用户的信息及应用处理的要求, 并将结果按一定格式整理而形成需求分析报告
该分析报告是后续概念设计, 逻辑设计, 物理设计, 数据库建立与维护的依据
步骤:
- 确定数据库范围
- 有效利用计算机设备及数据库系统的潜在能力
- 提高数据库的应变能力
- 避免应用过程中对数据库做太多或太大的修改
- 延长数据库的生命周期
- 应用过程分析
- 用到哪些数据
- 数据使用的顺序
- 对数据作何处理和处理的策略以及结果
- 收集与分析数据
- 静态结构 – 不施加应用操作于其上时数据的原始状况
- 数据分类表 – 用于数据的总体描述
- 数据元素表 – 数据项或属性
- 动态结构 – 将应用操作施加于数据之上后数据的状况
- 任务分类表 – 完成某一特定功能的独立的操作序列
- 数据特征操作表 – 描述任务和数据之间的关系
- 数据约束 – 使用数据时的特殊要求
- 数据的安全保密性 – 不同的用户, 不同的权限
- 数据的完整性
- 响应时间
- 数据恢复
- 静态结构 – 不施加应用操作于其上时数据的原始状况
- 编写需求分析报告
- 数据库的应用功能目标
- 标明不同用户视图范围
- 应用处理过程需求说明
- 数据字典
- 数据量
- 数据约束
概念结构设计
目标: 独立于任何软件与硬件, 最大限度的满足应用需求
实体分析法 – 自顶向下法
属性综合法 – 自底向上法
逻辑结构设计
目标: 将概念模型转换为等价的, 并为特定DBMS所支持数据模型的结构
逻辑结构设计的步骤
模型转换 – 将概念模型等价地转换为特定DBMS支持的关系模型, 网状模型或层次模型表示
子模式设计 – 抽取或导出模式的子集, 以构造不同用户使用的局部数据逻辑结构
编制应用程序设计说明 – 为可实际运行的应用程序设计提供依据与指导, 并作为设计评价的基础
设计评价的任务 – 分析并检验模式及子模式的正确性与合理性
物理结构设计
具体任务是确定数据在存储设备上的存储结构及存取方法
因DBMS的不同, 可能还包括建立索引和聚集, 以及物理块大小, 缓冲区个数和大小, 数据压缩的选择
数据库实施
加载数据
数据的收集, 分类, 整理, 校验, 输入等过程, 其中收集, 分类, 整理由人工完成, 校验, 输入由程序完成
应用程序设计
数据库试运行
在已建立的数据库上, 按实际环境要求运行应用程序
数据库运行与维护
最困难的工作是数据库重组与重构
重组 – 利用DBMS提供的设施调整数据库中数据在存储位置, 达到提高空间利用率和数据存取效率的目的
重构 – 部分修改数据库的逻辑结构或物理结构
关系数据库设计方法
什么是关系数据库?
关系数据库是一类采用关系模型作为逻辑数据模型的数据库系统
关系数据库设计过程与各级模式
- 在需求分析阶段, 综合各个用户的应用需求
- 要概念结构设计阶段, 独立于机器特点, 独立于各个关系数据库管理系统产品形成概念模式, 表现形式 E-R图
- 在逻辑结构设计阶段, 将 E-R图 转换成关系数据模型, 形成数据库逻辑模式; 再根据用户处理的要求, 在基本表的基础上再建立必要的视图, 形成数据的外模式
- 在物理结构设计阶段, 根据数据库管理系统的特点和处理的需要, 进行物理存储安排, 建立索引, 形成数据库内模式
概念结构设计方法
概念结构设计就是将需求分析得到的用户需求抽象为信息结构的过程
概念模型的表示方法, E – R 图的表示方法
矩形 – 实体型
椭圆 – 属性
联系 – 菱形
- 一对一联系 – 如果对于实体集A中的每一个实体, 实体集B中至多有一个(也可以没有)实体与之联系, 反之亦然, 则称实体集A与实体集B具有一对一联系, 记为 1 : 1
一个系有一个系主任, 一个系主任只负责一个系
- 一对多联系 – 如果对于实体集A中的每一个实体, 实体集B中有N个实体与之联系, 反之, 对于实体集B中的每一个实体, 实体集A中至多有一个实体与之联系, 则称实体集A与实体集B具有一对多联系, 记为 1 : N
一个班级可以有多个学生, 而一个学生只能属于一个班级
- 多对多联系 – 如果对于实体集A中的每一个实体, 实体集B中有N个实体与之联系, 反之, 对于实体集B中的每一个实体, 实体集A中也有M个实体与之联系, 则称实体集A与实体集B具有多对多联系, 记为 M : N
每个学生可以选择多门课程, 每个课程可以被多个学生选择
实际上一对一联系是一对多联系的特例, 而一对多联系又是多对多联系的特例.
两个以上的实体型之间的联系
三个实体型之间的一对多联系示例
课程, 教师, 参考书三个实体型, 一门课程可以有若干个教师讲授, 使用若干本参考书, 而每一个教师只讲授一门课程, 每一本参考书只供一门课程使用, 则课程, 教师, 参考书之间的联系是一对多的
三个实体型之间的多对多联系示例
供应商, 项目, 零件三个实体型, 一个供应商可以供给多个项目多种零件, 而每个项目可以使用多个供应商的零件, 每种零件可由不同供应商供给, 则供应商, 项目, 零件三者之间是多对多的联系
单个实体型内的联系
同一个实体集内的各实体之间也可以一对一, 一对多或多对多的联系
一个职工(系主任) “领导”多名职工(系里的教师), 而一名职工, 仅被另外一名职工直接领导
局部信息结构设计
确定局部范围 – 主要依据需求分析报告中标明的用户视图范围来确定, 往往与子模式范围相对应
选择实体 – 选择实体的直接依据是数据分类表, 选择实体的最大困难是如何区别实体与属性
选择实体的关键字属性 – 实体的存在依赖于其关键字的存在
确定实体间联系 – 数据间的联系必须在概念设计时确定
确定实体的属性 – 分为标识属性和说明属性
全局信息结构设计
全局信息结构设计是将上述步骤中产生的所有局部信息结构合并成为一个全局信息结构
合并成全局信息结构时出现的冲突
属性冲突
- 属性域冲突, 如年龄, 有的是以整数形式来表示 18岁, 有的是出生日期的形式 2001年
- 属性取值单位冲突, 如人的身高, 有的以’米’为单位, 有的以’厘米’为单位
命名冲突
- 同名异义, 不同意义的实体名, 在不同的局部应用中具有相同的名字
- 异名同义, 同一意义的实体名, 在不同的局部应用中具有不同的名字
结构冲突
- 同一对象, 在一个局部结构中作为实体, 在另一个局部结构中作为属性
- 同一实体, 在不同的局部结构中, 属性个数和类型不同
- 实体间的联系在不同的局部结构中是不同的类型
合并要求
- 实体类型个数尽可能少
- 实体类型所包含属性尽可能少
- 实体类型音陪麦互无冗余
逻辑结构设计方法
逻辑结构设计的任务是将E-R图转换为关系模型
E-R图向关系模型的转换
- 一个实体转换为一个关系模式, 实体的属性作为关系的属性, 实体的码作为关系的码
- 一个一对一联系可以转换为一个独立的关系模式, 也可以与任意一端对应的关系模式合并
- 一个一对多联系可以转换为一个独立的关系模式, 也可以与N端对应的关系模式合并
- 一个多对多联系转换为一个关系模式. 与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性
- 三个或以上实体间的一个多元联系可以转换为一个关系模式
- 具有相同码的关系模式可合并
对关系数据模型进行优化
- 确定各属性间的函数依赖关系
- 对于各个关系模式之间的数据依赖进行极小化处理, 消除冗余的联系
- 判断每个关系模式的范式, 根据实际需要确定最合适的范式
- 执照需求分析阶段的要求, 分析这些模式是否合理
- 对关系模式进行必要的分解, 提高数据操作的效率和存储空间的利用率
设计面向用户的子模式
- 可以通过视图机制在设计用户视图时, 重新定义某些属性的别名, 使其更符合用户的习惯, 以方便使用
- 可以对不同级别的用户定义不同的视图, 以保证系统的安全性
- 简化用户对系统的使用
物理设计方法
建立索引 – 逻辑连接
建立索引的数据对象就具有较少的插入, 修改和删除操作
静态建立索引, 适用于用户较多且使用周期相对较长的数据
动态建立索引, 适用于单独用户或临时性使用要求情况
建立聚集 – 物理聚集
聚集是将相关数据集中存放的物理存储技术
数据聚集结构的一种有效方式是块结构方式
数据聚集可在一个或多个关系上建立
欲练此功, 必先练基本功!
所以呢, 扎马步, 扎马步, 扎马步……
今天的文章闲来无事了解下数据库 – 数据库设计分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/15131.html