.数据库设计分为几个阶段,各阶段的任务是什么?

数据库的六个设计阶段

说实话,这六个步骤听起来很标准,但实际上它们可能并不那么线性。
以我之前做的项目为例。
在需求分析之初,用户表示他们想要所有的功能。
但到了设计的时候,他们发现很多要求都是矛盾的。
我花了整整两周的时间来整理所有的意见,最终的范围与最初拟定的范围有很大出入。

概念结构设计的时候,我们用了ER图,但是后来发现业务方看不懂我们画的东西。
我记得一位产品经理给了我一叠便利贴,里面都是手写的业务逻辑,并说:“你的数据库应该设计成反映这些关系。
”我当时很困惑。
这显然超出了设计范围。
幸运的是,我们后来创建了一个“商业术语表”,并将便利贴上写的所有内容翻译成设计师可以理解的语言。

设计逻辑结构时最大的陷阱是数据类型的选择。
例如,对于用户的生日字段,有些人坚持将其保存为字符串,而另一些人则坚持使用日期类型。
我当时并没有按照最高权力来做决定。
结果导入数据的时候出现了一个很大的问题——字符串格式不统一,导致后面的所有查询都是乱码。
我自己没有这样做过,但我听团队里的前辈说,年轻设计师很久以前就不再遭受这种愚蠢的损失了。
他们直接使用JSON来存储复杂的字段,这样既省事又标准化。

物理结构设计给我印象最深的就是数据库和表分区的时候。
当时我的老板坚持让我把整个订单直接存入内存,说“用户访问更快”。
结果上线第一天系统就瘫痪了。
运维半夜打电话给我,声音带着哭腔。
说实话,当时我不太理解,后来才明白,这是典型的没有考虑成本和实际业务量的“理想化设计”。

数据库实施阶段最头疼的就是数据迁移。
我记得把旧系统数据导入新数据库花了三天三夜。
最终发现是某个自增ID约束处理不当,导致全表数据插入失败。
我记得数据维护阶段更多的是考验耐心。
有一个电商客户,每年双十一都会给我发一堆SQL优化要求,说“系统快崩溃了”。
每次,我们都必须组建一个临时团队,花很长时间编写缓存策略和优化索引。
第二天,他拍拍我们的屁股说“谢谢”,我们累得像狗一样。
这种情况经常发生,以至于团队后来制作了《双十一应急手册》,其中将军列出了问题的解决方案。

不过话虽这么说,过程虽然繁琐,但其实可以省去后期很多工作。
比如我们去年接手的一个老系统,没有后续的设计流程,花了半年时间才完成变更。
新架构师立即破坏了整个数据库并重建了它。
虽然客户骂系统,但最终系统运行稳定。
这次事件让我明白,设计阶段节省的时间往往在后期维护时会成倍增加。

数据库设计分为哪几个阶段?每个阶段的主要任务是什么?

说白了:数据库设计就像盖房子,每个阶段都有它的主要任务。
其实很简单。
首先,我们来说说最重要的事情。
需求分析阶段类似于量身定制的项目规划。
我们去年做的项目数据量在3 000级左右。
我们花了两个月的时间彻底了解了公司的需求,包括数据来源、处理要求以及具体的用户需求。
起初我以为这足以满足基本需求,但后来我意识到这是错误的,我不得不考虑未来可能的扩展。

另一点是概念结构设计阶段。
这个阶段非常关键,就像在纸上画房子的草图一样。
我们使用统一建模语言创建反映实体关系的数据模型。
这个过程大约花了一个月的时间。
等等,还有一件事,逻辑结构设计阶段,我们需要优化数据结构,保证数据的完整性和相关性。
这个过程大约持续了2 周。

物理设计阶段。
该阶段重点优化数据库性能,保证数据库高效运行。
用技术术语来说,我们所说的是雪崩效应。
事实上,前线的一个小延误导致其余部分陷入停滞,所以我们在这个持续大约三周的阶段特别小心。

在实现阶段,根据上述设计,在数据库系统中创建相应的数据表、视图、存储过程等对象,并录入初始数据。
这个阶段我们要保证数据的准确性和完整性,花了一个月的时间。

最后,测试和优化阶段是提高数据库运行效率、保证数据安全的重要环节。
老实说,这很令人困惑。
很多人都忽略了这一点。
我们对其进行了两个月的测试,并根据测试结果进行了必要的优化调整。

我认为值得一试。
在数据库设计过程中,每个阶段都需要小心谨慎,以确保数据库系统高效稳定地工作。