开发者社区> 优惠活动> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

数据库设计

简介:
+关注继续查看

数据库设计

数据库设计就是设计数据库的结构特性,即为特定应用环境构造出最优的数据模型。由于数据库的结构特性是静态的,一般不会轻易变动,因此又称为数据库的静态结构设计。

数据库设计的基本流程:先将客观世界中的事物、事物间的联系用 E-R图 表示,汇总各个分 E-R图 得到一个总的 E-R图,在此基础上得到 概念结构模型,最后将概念结构模型转换为数据库支持的 逻辑结构模型。

新奥尔良(New Orleans)方法 是设计数据库的一种规范化的方法,它将数据库设计分为四个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计。下面分别介绍这四个阶段。

需求分析
需求分析是数据库设计的第一步,也是最困难、应当投入最大精力的一步。需求分析要做的是了解、分析用户对系统的需求,弄清系统要达到的目标、要实现的功能。需求分析的结果用 数据流程图 和 数据字典表示。值得注意的是,要使一个系统具有较长的生命周期,除了要满足用户提出的需求外,还需要系统设计人员预测未来系统可能要支持的功能。

下方的 系统 是指整个数据库系统(包括数据库和数据库应用系统)

系统需求调查的内容
数据库中的信息内容:数据库中需要存储哪些数据
数据处理内容:系统应该实现哪些功能
数据的安全性和完整性要求:数据的存取控制要求、约束限制
系统需求调查的步骤
从整体上,调查分析系统应该支持的单元有哪些
对每个单元单独进行分析,明确该单元使用哪些数据、如何使用数据……
确定系统的边界,即明确哪些功能由系统实现,哪些功能由其他方式如人工、其他已有系统等实现
系统需求调查的方法
跟班作业
咨询专业人士
开调查会
请业务员填写调查表
查阅账本、档案、文献等文字资料
系统需求分析的方法
调查了用户的需求之后,需要进一步分析调查结果,以更明了的方式表达用户需求。分析、表达用户需求的方法有很多,其中一种称为 结构化分析方法(Structured Analysis,SA)。

结构化分析方法采用自顶向下,逐步分解的方式分析系统。它把任何一个系统都抽象为下图的形式:

数据流程图表达了数据和处理过程之间的关系。数据的详细信息用数据字典表示。

数据字典
数据字典(Data Dictionary,DD)则是对系统中数据的详细描述,它有以下 5 个部分:

数据项 = {数据项名,数据项含义说明,别名,类型,长度,取值范围,与其他数据项的逻辑关系}
数据结构 = {数据结构名,含义说明,组成,{数据项或数据结构}}
数据流 = {数据流名,说明,流出过程,流入过程,组成:{数据结构},平均流量,高峰期流量}
数据存储 = {数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}
处理过程= {处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
概念结构设计
概念结构设计是将系统需求分析得到的用户需求 抽象为信息结构的过程。概念结构即概念模型,用 E-R图 对其进行描述。概念结构具有的特点:是现实世界的真实模型、易于理解、易于更改、易于向数据模型转换。

概念结构的设计步骤
选择局部应用,设计 分E-R图
合并 分E-R图,得到一个总的 E-R图
视图的集成
视图的集成就是把设计好的各子系统的 分E-R图 综合成一个系统的 总E-R图。视图集成可以有两种方法:①多个 分E-R图 一次集成 ②逐步集成,采用累加的方法一次集成两个 分E-R图。无论采用哪种方法集成视图,都要分两步进行:

消除不同 分E-R图 之间的冲突问题,包括属性冲突、命名冲突、结构冲突。
消除不必要的实体集冗余和联系冗余,这里有两种方法:①直观分析方法消除冗余 ②用规范化理论消除冗余
概念结构设计完成后,便得到了一个总的E-R图,以及上一阶段需求分析中得到的数据流程图、数据字典。E-R图、数据流程图、数据字典均与特定的数据库管理系统无关、反映客观世界情况、易于普通用户理解。我们需要向用户确认这三个设计结构是否准确全面。待用户确认无误后,方可向下一阶段继续。

从下一阶段开始,所作的工作都需要结合具体的系统应用环境,若此时才发现对现实世界的理解有所偏差,再进行修改,成本便高了。因此务必确保概念结构设计和需求分析阶段得到的结果与客观世界符合。

逻辑结构设计
逻辑结构设计的任务就是把概念模型转换成某个具体的 DBMS 所支持的数据模型。通常概念模型向逻辑模型转换过程分3步进行:

概念模型 转换为 一般的数据模型
一般的数据模型 转换为 特定DBMS支持的数据模型
优化数据模型
因为目前主流的数据库大都是关系型数据库,因此本文主要讨论概念模型向关系数据模型的转换。

概念模型向关系模型的转换
首先一个实体集(E-R图中的矩形)对应一个关系;一个联系(E-R图中的椭圆)根据不同的类型分开讨论:

1:1 和 1:n 的联系:联系可单独成为一个关系;也可以合并到 n 端的实体集对应的关系中,此时关系的码不变
n:m 的联系和多对多的多元联系(三个及以上的实体集产生的联系):联系只能单独成为一个关系,该关系的码是 与该联系相连的各实体码的组合
物理结构设计
数据库的物理结构:数据库在物理设备上的存储结构与存取方法,依赖于给定的计算机系统。
物理结构设计是对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构。物理结构设计分为两步:

确定数据库的存取方法和存取结构
对物理结构进行评价(重点是时间和效率),若评价结构满足原设计要求,则可以进行物理实施;否则要修改物理结构,甚至返回逻辑设计阶段修改数据模型
数据库物理结构设计的任务之一:确定建立哪些存取路径、选择哪些数据存取方法。关系数据库常用的存取方法有索引方法、聚簇方法、Hash方法等。

关系模式中索引存取方法的选择
如果一个(一组)属性经常出现在查询条件中,则考虑在这一个(一组)属性上建立索引
如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引
如果一个(一组)属性经常在连接操作中出现,则考虑在这一个(一组)属性上建立索引
注:索引并不是建立的越多越好,因为系统维护索引也要付出代价。例如一个属性经常会更新,那么就不适合在这个属性上建立索引。

原文地址https://www.cnblogs.com/gu13/p/db-design.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据库设计
数据库设计
0 0
7_数据库设计
7_数据库设计
0 0
数据库设计注意
http://blog.csdn.net/chenhuoren/article/details/4941131 搞数据库,从毕业出来工作到现在也有好几年了,总的来说,自己对数据库的架构设计算不上很精通,但还是把自己在设计中的经验说说吧,希望对大家今后的设计有帮助。
1022 0
浅谈数据库设计技巧(上)(转)
转一篇他人写的数据库设计技巧,感觉也不一定都正确,开拓一下思路吧。 说到数据库,我认为不能不先谈数据结构。1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法。
726 0
数据库设计中的14个技巧(转载)
1. 原始单据与实体之间的关系    可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。
590 0
数据库设计中的14个技巧
. 原始单据与实体之间的关系   可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实 体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计 录入界面大有好处。
0 0
数据库设计漫谈
 引言   数据库设计规范,仁者见仁,但是有共同的目标都是想要更加简洁清新,可维护可扩展等等。有时候设计的时候没有想到,等到开发的时候,或者发布完了,客户帮我们发现BUG,那是很得不偿失的事,这些得不偿失的事,我都经历着或经历过,记得刚毕业出来工作,对命名没有什么概念,很随意,更别谈用心去设计了,后面带来的痛只有自己清楚。
688 0
数据库设计 | 学习笔记
快速学习数据库设计
0 0
+关注
优惠活动
阿里云代金码,领券优惠bieryun.com
文章
问答
文章排行榜
最热
最新
相关电子书
更多
面向应用的反范式化数据建模
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载