ER图的关系模式

时间:2017-04-21 08:33:05

标签: relational-database entity-relationship er-diagram

我为大学数据库设计了一个关系模型,如下所示。 现在我被要求制作这个数据库的ER图。我只是想知道是否有任何工具可用于从关系模式生成ER图。如果不是,从关系模型制作ER图的步骤是什么? enter image description here

1 个答案:

答案 0 :(得分:1)

我不知道任何可以从关系模型生成正确ER图的工具。这些工具的一个难点是并非所有关系模型都可以解释为ER模型。虽然关系模型可以表达任何有限的事实(因为它等同于一阶逻辑),但实体关系模型更受限制。

要将关系模型转换为ER图,我建议采取以下步骤:

  1. 对ER模型的充分理解将是有价值的。研究陈的论文The Entity-Relationship Model - Toward a Unified View of Data

  2. 对于每列,确定它是表示实体集还是值集。实体密钥通常是一个表中的主键和其他表中的外键。值集通常表示标签和度量,并且位于依赖列中。

    • 例如,在teacher中,T_IDdept_name是实体键,而namepassword代表值集。
  3. 确定关系。关系由同一个表中的两个或多个实体键表示,其中至少有一个是主键的一部分。

    • 例如,在teacher中,对(T_ID, dept_name)表示由T_IDdept_name标识的实体集之间的关系。我们可以调用这些实体集teacherdepartment,但不要将它们与具有相同名称的表混淆。另一个例子是advisor (T_ID, S_ID)
  4. 识别属性。属性是从实体集或关系到值集的映射。表的主键将确定与从属列(值集)关联的实体或关系集(原子或复合PK),从而形成属性。

    • 例如,在teacher中,T_ID -> name是属性,T_ID -> password是另一个属性。
  5. 制作图表。用矩形表示每个实体集,并用菱形设置每个关系。将关系连接到相关实体集。将键和属性绘制为附加到确定实体或关系集的椭圆。我们不会为关系绘制关键字 - 它们由关联实体集的关键字决定。

  6. 这只是一个基本的起点 - 这个过程实际上更复杂,因为我们需要注意弱键,弱实体集,识别关系,关联实体集,全部或部分参与以及关系基数。

    同样,我强烈建议你学习陈的所有细节。

    PS。我相信section的主键(以及teachestakes中的相应外键)不正确。我怀疑主键应该只是sec_id,但由于我不确定你的模型实际代表什么(除了我自己对表和列名的解释),我无法肯定地说。