首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ER-to-Relational映射:多值主键

ER-to-Relational映射:多值主键
EN

Stack Overflow用户
提问于 2010-07-07 16:03:04
回答 1查看 2.4K关注 0票数 4

在将ER图映射到关系模式时,我的教科书在步骤..不管怎样..。应该为多值属性创建一个新的关系S。但是如果多值属性是R的主键...这会使R没有主键,S没有主键吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-28 16:51:15

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

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

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

代码语言:javascript
复制
VAR r BASE RELATION {foo RELATION {bar INTEGER} } KEY {foo};

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

但是,SQL不支持这样的操作。SQL支持嵌套表,但通常不允许嵌套表作为键的一部分,因此在SQL中,您总是必须创建一个新的标识属性。在真正的RDBMS中,您可以说不应该创建另一个属性,因为任何支持的类型都应该支持成为键的一部分-如果不支持,那么您甚至不能在该属性上进行投影,因为结果将不包含键。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3192897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档