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

嗯,您发布的数据库设计过程非常标准。
这基本上就是我之前项目的做法。
但我们来谈谈实际操作中可能出现的陷阱。

上周一位顾客来看我。
他们刚刚进行了需求分析,发现A业务部门要求的数据根本没有什么用处。
业务B部最后详细论证了……这实际上反映了需求分析阶段最常见的陷阱——需求收集不完整。
有时候用户说的和你实际想要的不一样,尤其是“你帮我完成就可以了”这种类型,后期返工的成本会非常高。
记得2 02 3 年我在上海一个商场做一个项目的时候,我花了整整两周的时间来梳理不同部门的需求,甚至连会议纪要都要修改三遍。

需求分析后,我们进入概念结构设计。
此时,E-R图的使用是主流。
我自己遇到的陷阱是,当我刚开始画画时,我力求完美,画了所有的单位。
结果我发现很多关系都被拉成了一团糟,根本看不出来。
后来师父教我先画出核心单元,把必要的关系搞清楚,然后再慢慢加上去。
我2 02 2 年在深圳的物流系统项目中,首先确定了“货物”、“仓库”和“司机”三个核心单元,然后慢慢扩展。

说到逻辑结构设计,这是我们真正开始处理具体数据库的阶段。
此时,需要根据所选的数据库(如MySQL、Oracle等)设计表结构。
我有一个朋友去年用过MySQL,但是他没有注意字符集设置,导致后来导入数据,他没地方哭。
主键和外键的设计也尤为重要。
有时如果表的主键选择不正确,整个关联查询就会卡住。
我在北京做一个电商项目的时候,把orders表的ID设置为主键。
原来,当用户下单速度太快时,就会重复下单。
最后我改成了时间戳+随机数的方式。

最后一步是物理设计。
这个阶段其实挺无聊的,但是又特别关键。
你必须考虑存储结构、切片和索引等一切。
记得2 02 2 年在杭州做一个大数据项目的时候,为了提高查询速度,特意给超大的用户表添加了分区,分成了几个数据空间。
结果,性能直接提升了 5 0%。
备份和恢复策略也不容忽视。
去年我在广州做一个金融系统,客户要求系统在5 分钟内恢复。
因此,必须考虑备份频率和恢复练习。

总的来说,这四个阶段是相互交织的,任何一个做不好就会妨碍后面的工作。
尤其是需求分析,虽然处于最前沿,但直接影响到最终的效果。
如果你想做数据库设计或者面试准备,你会问这个吗?

在数据库逻辑结构设计阶段,需要(请作答此空)阶段形成( )作为设计依据。

选项A是正确的,数据库设计实际上分为四个阶段。
需求分析就是找出用户想要什么,并使用文档、字典和流程图来记录它们。
一旦你在这个阶段理解了这一点,你就可以继续进行下一步的概念化。

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

上周,我朋友的公司想要设计一个新的数据库。
从需求分析开始,他们花了一个月的时间深入了解业务流程,整理了2 00多页的需求文档。
2 02 3 年,他们使用E-R模型绘制了概念结构,定义了4 0多个实体和1 00多个关系。
在逻辑设计阶段,他们又花了两个月的时间创建了5 0个表并准备了2 0多个索引。
在物理设计过程中,他们考虑了数据安全、提供多重备份和优化的查询性能。
整个过程严格有序,最终数据库顺利上线,效率提升3 0%。
这取决于你,我认为他们做得很好。
顺便说一下,我只是觉得他们也实行了用户权限管理,防止数据泄露。