gpt4 book ai didi

database - 强制关系 m :n

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:12 26 4
gpt4 key购买 nike

我有一个用于学校作业的概念方案(Power Designer),在 torrent 和服务器表之间我有一个强制关系(一个 torrent 必须至少有一个服务器)。我生成了物理模型,然后是代码(Oracle 10g),然后当我向 torrent 插入新行时,表中还没有任何内容连接 torrents 和服务器,因此 torrent 实际上没有任何服务器。如果强制更改,生成的代码不会更改。

  1. 然后在概念模型中有什么用,什么时候用什么都没有?
  2. 我该怎么做才能使 torrent 必须至少有一台服务器?

Conceptual model

最佳答案

您需要了解生成概念、逻辑和物理模型的原因。

概念模型是以用户可以理解的形式表示感兴趣的区域。它将由具有属性的实体类和关于这些的业务规则组成。除了图表之外,还需要自然语言描述来充分解释这些要点。如果所有相关方都同意概念模型完整地记录了感兴趣的领域,那么它就达到了它的目的。

逻辑模型将概念模型形式化为数据结构和完整性约束。逻辑模型可以呈现为关系数据模型(RDM)。在这种情况下,所有数据结构和完整性约束将仅使用数学关系来正式表示。它与数据库管理系统无关。

例如,您可以定义一个完整性约束:

{ t(ID_TORRENTU) | t∈v(TORRENT) } = { o(ID_TORRENTU) | o∈v(OBSAHUJE) }

TORRENT 中的 ID_TORRENTU 值集等于 OBSAHUJE 中的 ID_TORRENTU 值集。

物理模型是逻辑模型在特定数据库管理系统上的表示。您可以使用 CREATE ASSERTION 语句按照 SQL 标准实现此完整性约束:

创建断言 torrent_obsahuje AS
查看
( 不存在
( 选择 t.id_torrentu
来自洪流 t
不存在的地方
(选择空
来自 obsahuje o
WHERE o.id_torrentu = t.id_torrentu) ) )

但是,SQL DBMS(包括 Oracle)不支持 CREATE ASSERTION 语句。为了在 Oracle 上实现此完整性约束,您需要自己编写代码。有多种方法可以实现这一点,包括编写自定义触发器或创建物化 View 。 Internet 上有各种资源详细解释了如何在 Oracle 中实现复​​杂的完整性约束。

方法非常复杂,您使用的自动化工具无法生成实现此复杂完整性约束所需的代码。

关于database - 强制关系 m :n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28030791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com