我正在学习数据库设计并尝试使用Visio 2013进行建模。当我想创建数据库模型时,我在Visio 2013中遇到了以下数据库表示法:
1)Crow's Foot数据库表示法
2)Chen的数据库符号
3) UML数据库表示法
4)IDEF1X数据库表示法
为什么我们有很多设计数据库的符号,其中有一个是在真正的数据库设计中被广泛使用的?
任何人都可以帮我澄清这个疑问吗?
答案 0 :(得分:3)
有许多因素影响了多种符号的引入。作者可能不了解现有的符号,仅限于特定的公司或团体,或者缺乏某些表达能力。有些符号甚至受到审美问题的驱使。
戈登珠穆朗玛峰博士介绍了乌鸦的足迹。它在表格图中被广泛用于表示外键约束(以及两个表中行的相对基数)。它也常用于网络数据模型中,以表示实体之间的二元关系。实体 - 关系建模符号由Peter Chen引入,用于直观地表示实体关系模型。与Crow的脚图不同,它支持n-ary关系和关系属性。
UML是一种用于描述软件系统的建模语言。 UML类图通常(错误地?)用于数据库建模。与Crow的脚符号一样,类图仅支持没有属性的二元关系,将其限制为网络数据模型。
IDEF1X由美国空军开发,是建模符号系列的一部分。它也只支持没有属性的二元关系,尽管它比Crow的脚图有更多的语义元素。
在上述符号中,Chen的符号是唯一一个支持与属性的n-ary关系的符号。它更适合概念数据模型,但它在逻辑上并不完整。 Crow的脚和IDEF1X更接近物理数据模型。 UML类图比数据更适合于建模系统。
您遗漏的一个重要建模符号是Object-Role modeling。它支持n元关系,并专注于表示事实而非实体。它不像上面的其他符号那么常见,也许是因为它基于可靠的逻辑和关系理论,而不是旧的但直观的网络数据模型。