gpt4 book ai didi

entity-relationship - ER 到关系映射 : multi-valued primary key

转载 作者:行者123 更新时间:2023-12-01 04:17:28 24 4
gpt4 key购买 nike

当将 ER 图映射到关系模式时,我的教科书说在步骤中……无论如何……应该为多值属性创建一个新的关系 S。但是,如果多值属性是 R 的主键……那么 R 没有主键而 S 没有主键?

最佳答案

这是一个很好的问题,并且总是困扰我关于如何消除“复杂”类型的教科书解释。

您需要问的问题是:这些值集标识了什么?你想建模什么?大多数使用 SQL 的数据库架构师可能会说,您应该发明一个新属性来标识构成多值属性的事物集。

另一种解决方案是将“复杂”类型作为其自身的第一类属性——不是“多值”属性,而是可以像任何其他值一样作为单个值分配给变量的集合或数组。 Tutorial D 语言允许具有关系的关系值类型。例如。:

VAR r BASE RELATION {foo RELATION {bar INTEGER} } KEY {foo};

其中 foo 是嵌套在 r 中的 relvar。

然而,SQL 不支持这样的东西。 SQL 支持嵌套表,但通常不允许将其作为键的一部分,因此在 SQL 中,您始终必须创建新的标识属性。在真正的 RDBMS 中,您可以说不必创建另一个属性,因为任何受支持的类型都应该支持成为键的一部分 - 如果没有,那么您甚至无法在该属性上进行投影,因为结果不会t 包含一个键。

关于entity-relationship - ER 到关系映射 : multi-valued primary key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3192897/

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