【问题标题】:Is it possible to have a specialization in EER Model that is purely attribute/condition defined是否有可能在 EER 模型中进行专门化,它是纯粹定义属性/条件的
【发布时间】:2016-06-10 12:20:46
【问题描述】:

在 EER 建模中,有一个不相交的专业化是可能的并且是正确的,其中没有一个子类具有任何特定属性(它们是本地的),而是完全基于定义属性进行分组。例如,我们可以有一个USER 实体具有一些属性,其中一个是“角色”。基于角色的值(管理员或作者或编辑),我们将拥有子类实体 ADMIN ,AUTHOR 和 EDITOR .他们都没有任何属性,只是特定于他们。另外请注意,专业化是不相交的,超类实体 USER 完全参与
如果这是可能的,我可以通过为超类实体 USER 创建单个关系来将其转换为关系模型

【问题讨论】:

    标签: entity-relationship


    【解决方案1】:

    是的,如果您想记录仅限于子类型的关系,这样做是可行且有效的。如果您没有特定于子类型的属性或关系,则在 ER 模型中区分子类型是没有意义的。 User 上的一个简单角色属性足以进行查询。

    如果您在 ER 模型中定义子类型,这将转换为关系模型中每个子类型的关系。如果你正在寻找依赖类型之类的东西,你不会在关系模型中找到它,它对应于一阶逻辑。 ER 更加有限。

    【讨论】:

    • 感谢您的回复。但是USER表中不同角色的用户执行不同的任务。如何在不使用专业化的情况下在ER模型中显示此信息(例如ROLE=AUTHOR的人只会添加新闻但不能发布它们。它必须由具有 ROLE=EDITOR 的人完成。另外在“ELMASRI 和 NAVATHE 的数据库系统基础”一书中,写到如果专业化不相交并且本地属性很少或没有,我们可以为超类创建单个关系并添加类型属性来标识其中的子类元组。每个子类型不需要一个表。
    • 我在这里真的很困惑。所以我只是想了解做什么和不做什么。你的帮助将不胜感激。那本书中提到的方法对我来说不起作用。
    • 听起来您可能正在混合运行时行为和数据建模。您想在数据库中建模/记录任务或权限吗?如果您只需要存储每个用户的角色,那只是一个属性,而不是实体关系模型中的子类型。请注意,ER 中的子类型化和 OOP 中的子类化彼此无关。听起来你的书混淆了这些概念。 OOP 用于系统建模/解决方案空间,而不是信息建模/问题空间。
    猜你喜欢
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多