数据库设计阶段包括哪五个阶段?

上周我读了一篇关于数据库设计的文章。

数据库设计分为五个阶段。

第一步需要分析。
第二步是概念结构设计。
第三步是逻辑结构设计。

第四步是物理设计。

第五步是数据库实现。

还有运维的水平。

这四个需求分析、概念设计、逻辑设计、物理设计与数据库管理系统无关。
实施和运维应基于数据库管理系统。

数据库设计是设计数据库和应用系统。

这非常复杂。
最好的设计不是一下子创造出来的。

应该经常审查。

规划数据对象及其关系。
1 .需求分析。
整合用户需求。

构建数据流程图。
2 .概念设计。

开发一个与机器或 DBMS 无关的概念模型。

使用电子邮件模板。
3 、设计合理。

首先将E-R图转换为对应的模型。

采用逻辑模式。

更改视图和外部模式。
4 . 物理设计。

提供物理存储作为DBMS功能。

参与索引。

创建数据库架构。

我不确定这部分。

数据库设计分为哪几个阶段?

哎,数据库设计确实分为四个阶段,你总结得很好。
我给你详细解释一下,可能和你的版本略有不同,但核心思想是一样的。

上周有客户问我为什么他们的新系统数据库总是卡住,最后发现是没有正确遵循设计流程。
我觉得这四个阶段的每一步都不能含糊。

1 . 您对需求分析阶段的描述是最合适的。
这绝对是基础。
你得像侦探一样到处跑,问业务部门的老王、老李他们要存储什么数据,数据从哪里来,如何使用。
例如,2 02 3 年,我正在上海的一个购物中心做一个项目。
销售部门表示,他们想保存顾客的会员卡号和积分,也想保存顾客每次购买的商品记录。
但财务部也表示,开票信息必须保存。
你必须写下所有这些要求,并弄清楚哪些是必要的,哪些是锦上添花的。
最后,拿出一份需求文档,不要含糊其辞。
如果这一步没做好,剩下的一切都白费了。

2 在概念结构设计阶段,你提到的E-R图是这里的核心。
拿到需求文档后,就开始绘图。
例如,在我在上海的项目中,我将客户、产品和订单绘制为实体(框)。
客户具有卡号和姓名(椭圆形)等属性,订单与客户和产品相关联(菱形代表关系)。
这个时候不管用什么数据库,是MySQL还是Oracle,画个大概的图就可以了。
这张图的目的是让大家(包括你自己)明白这个系统里有哪些数据,它们之间的关系是什么。
画好图后,要和业务部门核对,确保没有错误和遗漏。
如果这一步画好了,逻辑设计就会简单很多。

3 逻辑结构设计阶段,这是概念变成“现实事物”的阶段。
得到E-R图后,我们开始将其转化为数据库表。
顾客是一张桌子,订单是另一张桌子。
这时候就得确定主键(哪个字段是唯一标识,比如客户表中的卡号)和外键(比如订单表中有客户卡号,则与客户表关联)。
还需要考虑索引。
经常使用哪些字段进行搜索,然后建立索引。
之前在上海做那个项目,发现销售部门经常通过客户卡号来检查订单,所以我在订单表中客户卡号字段添加了索引。
在这一步中,您选择的数据库(例如MySQL)很重要,因为不同的数据库可能支持不同的功能和优化方法。
还必须考虑数据完整性。
例如,客户没有卡号就无法下订单。
这些都必须体现在表格设计中。

4 在物理设计阶段,这就是“小心”的事情发挥作用的地方。
逻辑设计完成、数据表定型之后,就该开始思考如何以最快、最经济的方式存储数据了。
例如,整个表应该存储在一个大文件中,还是应该分成更小的文件? 数据文件应该放在哪里? 它们应该放置在内存较快的磁盘上还是内存较慢的磁盘上? 建立索引最合适的方式是什么? 所有字段都需要索引吗? 索引越多,查询速度就越快,但更新数据的速度就越慢,并且占用的空间也就越多。
还有备份。
我们怎样才能备份它们以确保出现问题时我们能够快速恢复? 我在北京的另一个项目中,客户数据量非常大,所以我们对最常用的查询结果创建了物化视图,大大加快了查询速度。
这一步,如果经验不足,很容易误入歧途。
它要么很慢,要么占用空间,要么恢复缓慢。

总的来说,这四个阶段是相互交织的。
每迈出一步,都要回头看看之前的设计是否会影响这一步,这一步的改变是否会影响下一步。
没有一个阶段是孤立存在的。
我遇到的坑是需求分析的时候没有把细节挖透,后面逻辑设计又改了好几次,浪费了很多时间。
所以,前期多花点功夫,后期就能省下不少钱。