【发布时间】:2019-04-21 20:15:20
【问题描述】:
- 可以将键值存储转换为关系表,其中 只有两列,表的主键是键值存储的“键”?
- 可以将关系表转换为键值存储,其中 键是主键,值是其他列 桌子?
-
例如,Spanner 是一个列式数据库。从 https://research.google.com/archive/spanner-osdi2012.pdf,为什么可以 Spanner 被视为键值存储,而不是关系?我不 很明白“行必须有名字。更准确地说,每个表 需要有一组有序的一个或多个主键列”
Spanner 的数据模型不是纯粹的关系,因为 行必须有 名称。更准确地说,每张桌子都需要有一个有序的 一组一个或多个主键列。这个要求在哪里 Spanner 看起来仍然像键值存储:主键构成 一行的名称,每个表都定义了一个来自主键的映射 列到非主键列。一行只有当 为行的键定义了一些值(即使它是 NULL)。 强加这种结构很有用,因为它允许应用程序 通过他们选择的键来控制数据的局部性。
【问题讨论】:
-
如果你不能回答前两个问题,你应该阅读一本关于信息建模、数据库设计和关系模型和/或键值存储的教科书介绍。更不用说解释了 3. 关系模型数据结构完全是关系变量的集合,其中包含多列值的行集。目前尚不清楚引用的意思是什么,因为关系行在表中是唯一的,所以确实有一个子行充当“名称”,尽管任何其他结构都是非关系的。 SQL 有重复的行,他们可能认为“关系”意味着“SQL”。
-
谢谢。 “关系行在表中是唯一的”。您认为前两个问题的答案都是肯定的吗?
-
前两个问题定义明确。据我所知,我对前两个问题的猜测都是肯定的。
-
“KV”没有单一的明确含义。什么是“可以转换”?你建议的结果设计能被合理地使用吗?所以1和2不清楚。您对 KV 的概念与论文/报价中的相同吗?报价太不清楚了,我们不知道它在说什么。这似乎是对 contaning exposition 内容的总结,所以请阅读,这也应该澄清他们对“关系”和“键值”的使用。 PS要在主题上提出一个特定问题,请在您遇到的某个地方提出问题。这不清楚(因为您对 KV 的使用和报价不清楚)并且如果澄清将过于广泛。而且没有研究。 How to Ask
-
@philipxy 您可以使用您所知道的最常见或最准确的定义
标签: relational-database key-value-store google-cloud-spanner