【问题标题】:Fan trap and chasm trap - Database扇形陷阱和鸿沟陷阱 - 数据库
【发布时间】:2013-01-14 22:55:27
【问题描述】:

谁能告诉我什么是深渊陷阱?也许也是粉丝陷阱,因为我不太清楚。另外,请提供易于理解的示例(通过 Chen 符号)。

到目前为止我的理解:我理解 Fan 陷阱是 M:1:1:M,这表明实体之间的路径是不明确的。
我明白那个。例如,如果 M 代表 Student,另一个 M 代表 School,那么它会很模糊,因为我们不知道哪个学生在哪个学校学习(这是我目前所理解的)。

但是,我无法理解什么是深渊陷阱。

另外,我怎样才能识别陷阱然后修复它?

【问题讨论】:

    标签: database conceptual-model


    【解决方案1】:

    基于 Conolly&Begg:

    粉丝陷阱发生在模型表示实体类型之间的关系但某些实体出现之间的路径是不明确的情况下。

    示例: (职员)-1:N-has-1:1-(分部)-1:1-操作-1:N-(分部) 在这个模型中,当员工所属的部门有多个分支机构时,可能无法确定员工所属的分支机构。

    重构模型解决了陷阱 (师)-1:1-经营-1:N-(分公司)-1:1-有-1:N-(员工)

    鸿沟陷阱发生在模型建议实体类型之间的关系但某些事件之间的路径不存在时。

    示例: (分公司)-1:1-has-1:N-(员工)-0:1-oversees-0:N-(PropertyForRent)

    由于员工与 PropertyForRent 的关系对于员工来说是可选参与 (0:1),因此 Branch 到 PropertyForRent 的路径可能不存在。对此的解决方案是 Branch 和 PropertyForRent 之间的直接关系,强制参与。

    【讨论】:

      【解决方案2】:

      简单来说,对于这两种情况(FAN 和 CHASM),它会产生比实际更多的行(结果集)。如何识别

      • FAN -> 1-N-N 表示从一 -> 多 -> 多的表关系
      • CHASM -> N-1-N 表示一个行表对两个或多个表的多关系
      • LOOP -> 加入所有表格,并在循环时像圆圈一样(在这种情况下,我们绝对会丢失一些行)

      没有什么可以确定的,但是当你创建宇宙时,我们必须睁大眼睛,如果你在开发宇宙时看到这些情况,那么总会有问题。所以通过应用别名、上下文来纠正。

      一旦在 Universe 级别解决了所有问题,我们就可以进行报告了。通过练习,您将拥有丰富的知识。

      【讨论】:

      • 感谢您的回复。抱歉回复晚了,最近忙于考试复习。
      • @Raj Patel 您的回答与教科书中概述的 Vladimir Fadeev 的回答相矛盾。你混淆了这两个概念。
      • 这个答案是错误的,请参阅这个有用的解释youtube.com/watch?v=YKqJ_FjfyVM您对 CHASM 的定义实际上适用于 FAN TRAP。 CHASM 之所以这样称呼,是因为您会丢失行,就好像它们掉入了“鸿沟”一样。以下弗拉达米尔的答案应标记为答案
      【解决方案3】:

      当三个表以一种彼此之间存在一对多的方式连接时,就会出现我的粉丝陷阱。表示表 A B 和 C 以 .. 的形式连接。表 A 以一对多的方式链接到表 B,表 B 到表 C 再次与主要方式 A-->B-->C 相关联。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-07
        相关资源
        最近更新 更多