数据库模型图和ER图区别是什么

哈,这个话题还蛮有趣的。
上周,一位客户问我ER图和关系模型之间的关系,我给他解释了一下。
首先,ER图属于概念模型,主要用于描述数据库中的实体、属性和关系。
此阶段的设计与具体的数据库管理系统(DBMS)没有直接关系。

但是你是对的,ER图之后必须转换为关系模型。
这个转换过程就是从概念模型到逻辑模型的转变,此时开始与DBMS相关。
正如您所说,数据库设计有四个常见阶段。
概念设计之后,就是关系模型设计。
在设计的这个阶段,您需要考虑使用哪个 DBMS。

我自己遇到的坑是,有时候设计ER图的时候,直接跳到关系模型,忽略了中间的转换过程。
这样做的后果是设计的数据库结构可能与实际需求不符,使得后续的维护和优化非常麻烦。

所以,按照你说的四个阶段来进行,其实是很科学的。
第一阶段是用户需求分析,第二阶段是概念设计,第三阶段是关系模型设计,最后是物理模型设计。
这样一步步来,就可以更好的保证数据库设计的质量。

无论如何,您都可以遵循此流程。
一般来说,不会有什么大问题。
我现在还在思考这个问题,感觉每一步都有很多细节需要考虑。

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

从广义上讲,数据库设计是将业务需求转变为可行系统的四个步骤的过程。

首先,我们来说说最重要的事情。
在需求分析阶段,你需要像侦探一样深入挖掘。
去年我们运行了那个电子商务项目,花了三个月的用户访谈时间才弄清楚订单中必须有哪些奇怪的字段。
另外一点是,不要只关注数据的来源,还必须考虑数据的量级。
例如,去年某些表的QPS峰值为3 000,现在设计必须保留扩展空间。
还有一个更重要的细节。
需求陈述在编写后不会被丢弃。
我们的项目每周需要更新两次,这其实是比较麻烦的。

我一开始以为概念结构设计就是画E-R图,后来发现错了。
我们还需要考虑实体之间的约束关系。
例如,用户和订单是一对多,但订单数不能为负数。
必须遵守这样的商业规则。
等等,还有一件事。
很多人在逻辑设计阶段并不注重视图和索引之间的平衡。
我们尝试添加所有索引,但 CPU 飙升至 2 00%。
后来我们改成根据查询频率批量添加。

最后,让我提醒您,物理设计与裸堆栈硬件不同。
您必须首先优化 SQL 语句。
去年我们用EXPLAIN分析发现JOIN操作完全打乱了索引。
修改后,查询速度持续提升8 0%。

想找一篇数据库论文、、

陷阱是这样的:忽略需求分析并直接进行设计。

不信:所有设计都是一步完成的,不需要迭代。

不要这样做:在设计过程中不与用户沟通,也不在现实中适应设计。