数据库ERD图和图平面度

时间:2012-03-07 16:51:53

标签: database-design erd

我想知道,ERD图是否总是平面的?我对数据库实体关系有基本的了解,所以目前我一直无法想到会使ERD图表呈非平面的情况。

有人可以向我解释一下ERD图是否总是平面的吗?如果不是,那么什么情况会使它变得非平面?如果是的话,有人可以提供一个小证明,说明为什么它总是平面的?

我在互联网上搜索过,似乎没有人为此找到具体的答案。

谢谢。

3 个答案:

答案 0 :(得分:2)

从图论的角度来看,完整的五节点图是非平面的。因此,最简单的非平面ERD是五实体ERD,其中所有实体彼此相关。

证明任何给定的图形是否是非平面的是数学fairly easy,但是找到绘制图形的最佳方式,平面或非平面(以最小化边缘交叉的数量,并且理想情况下,最小化边长)是hard

答案 1 :(得分:1)

这里不是图形专家,而是基于我对平面与非平面的粗略理解以及我作为数据库管理员所经历的...

不,我不相信你可以假设数据库ERD永远是平面的。只考虑具有任何复杂性的DB,我看不出在所有情况下如何使图表平面化。任何具有多个关系的表似乎都会创建一个场景,其中行在足够复杂的ERD中与其端点之外的其他位置相交:\

更新:我想如果你制作了具有多种关系的表的副本,你可以避免非平面......但我不确定它是否符合标准ERD的参数。 / p>

答案 2 :(得分:0)

  

有人可以向我解释一下ERD图是否总是平面的吗?

我认为这只是以一种以最简单的可读形式显示图形的方式生成图形的问题。拥有一个努力实现这种平面布局的算法可以帮助组织复杂的ERD图,从而更接近实现这一目标。我使用Visual Paradigm来生成我的大多数ERD图表;我不认为图表是平面的,但它们在大多数情况下非常接近。异常通常发生在一对一,多对一和一对多的类关系中。

  

如果是的话,有人可以提供一个小证明,说明为什么它总是平面的?

     

如果图形不是平面图形,我们希望用尽可能少的交叉点绘制图形,因为交叉点会显着降低图形的可读性。由于很难找到具有最小交叉数的非平面图的绘图,因此我们使用以下方法计算具有少量交叉的绘图。我们首先从给定图中删除少量边,使得得到的图是平面的。然后我们计算这个平面子图的图,没有交叉。最后,我们将删除的边缘重新插入到此图形中,使边缘交叉的数量最小化。使用这种方法,最终绘图的交叉数取决于平面子图和该子图的绘图。

https://www.ads.tuwien.ac.at/research/graphDrawing.html

以下是一些问题:

http://www.codeproject.com/Articles/14280/Database-Visualization http://www.ogdf.net/doku.php/tech:howto:plzl