Можно ли преобразовать хранилище ключей и значений в реляционную таблицу друг в друга?

  1. Можно ли преобразовать хранилище "ключ-значение" в реляционную таблицу, в которой всего два столбца, причем первичный ключ таблицы является «ключом» хранилища "ключ-значение"?
  2. Можно ли преобразовать реляционную таблицу в хранилище значений ключей, где ключ является первичным ключом, а значение - другими столбцами таблицы?
  3. # P1 #
    # P2 #

person Tim    schedule 21.04.2019    source источник
comment
Если вы не можете ответить на первые 2 вопроса, вам следует прочитать введение в учебник по информационному моделированию, проектированию баз данных, реляционной модели и / или хранилищам ключей и значений. Не говоря уже об объяснении 3. Структура данных реляционной модели полностью представляет собой набор переменных отношения, содержащих наборы строк столбцов значений. Непонятно, что пытается сказать цитата, поскольку реляционная строка уникальна в таблице, поэтому в ней есть подстрока, выступающая в качестве имени, хотя любая другая структура не является реляционной. В SQL есть повторяющиеся строки, они могут подумать, что реляционный означает SQL.   -  person philipxy    schedule 21.04.2019
comment
Спасибо. реляционная строка уникальна в таблице. Считаете ли вы, что ответы на первые два вопроса положительные?   -  person Tim    schedule 21.04.2019
comment
Первые два вопроса четко определены. Насколько мне известно, оба ответа на первые два вопроса положительные.   -  person Tim    schedule 22.04.2019
comment
КВ не имеет однозначного значения. Что можно преобразовать? Можно ли разумно использовать предложенный вами дизайн результатов? Итак, 1 и 2 неясны. И ваше представление о KV такое же, как в статье / цитате? Цитата слишком неясна, чтобы мы знали, о чем она говорит. Похоже, это краткое изложение материала из продолжающегося изложения, так что прочтите это, что также должно прояснить использование ими реляционных и пар ключ-значение. PS Чтобы быть по теме, задайте конкретный вопрос о том, где вы застряли. Это неясно (так как ваше использование KV и цитата неясны), и, если прояснить, будет слишком широким. И это не исследовано. Как задать вопрос   -  person philipxy    schedule 22.04.2019
comment
@philipxy Вы можете использовать наиболее общие или точные, насколько вам известно, определения.   -  person Tim    schedule 22.04.2019
comment
Вы пишете пост. Если вы не знаете, что означают эти слова, вы не задаете вопрос. Если вы просите ответы, охватывающие различные общие значения, это слишком широко. Если вы не можете привести конкретные случаи для значений слов, которые не исследованы. Если вы не дадите конкретных обоснованных картографических решений для конкретных значений, это будет неясно и без усилий. И т. Д. И т. Д. Задайте конкретный вопрос о том, как застрять в конкретной ситуации.   -  person philipxy    schedule 22.04.2019
comment
Я написал это, но не утверждаю, что знаю, что это правильно   -  person Tim    schedule 22.04.2019
comment
Беглый взгляд на этот документ - это все, что они говорят о своей модели данных, поэтому непонятно, что они подразумевают под реляционной (мы можем предположить, что они имеют в виду какой-то нереляционный пакет SQL строк, содержащих NULL) или ключевой. значение (мы можем предположить, что они просто означают общее понятие уникального ключа со связанным значением.) Так что нет ответа 3. Они также не так понятны в отношении Spanner. По-видимому, одна из их таблиц имеет один набор столбцов, образующих ПК, и набор других столбцов. Вы можете поискать другие презентации и документацию, которые могут показаться взятыми из одного и того же места в отношении этих двух терминов.   -  person philipxy    schedule 22.04.2019


Ответы (1)


По вопросу 3, в документе утверждается, что модель данных Шпаннера не может считаться «реляционной» в самом строгом смысле этого слова, потому что реляционная модель не имеет понятия имен строк (то есть первичных ключей). В реляционной модели отношение определяется как набор n-арных кортежей. Это означает, что отношение по определению не может иметь повторяющиеся строки и не упорядочивает свои строки (набор не может иметь повторяющихся элементов и не определяет какой-либо порядок между его элементами). Следовательно, в реляционной модели данных имя строки, также известное как `` первичный ключ '' 'не требуется для идентификации строки (вся строка в основном является первичным ключом), тогда как Spanner требует, чтобы каждая таблица (приближение РСУБД к теоретической концепции `` отношения' ') либо имела уникальный первичный ключ, либо имела только одну строку .

Требование наличия «имени строки» или «ключа» характерно для хранилища «ключ-значение», и поэтому в этом смысле Spanner можно рассматривать как хранилище «ключ-значение».

person adi    schedule 22.04.2019
comment
RM действительно имеет понятие идентификации имен строк, а именно суперключей, которые включают CK, которые включают PK. Более того, магазины KV имеют точно такое же понятие имен, поскольку K является аналогом суперключа. Вопреки тому, что вы пишете. Существуют значения, в которых имя строки не является реляционным, но такие значения также не относятся к KV. В любом случае неясно, что в статье подразумевается под реляционным, KV или именем строки или что в ней говорится о таблицах Spanner. PS Что вы имеете в виду, реляционная модель не имеет понятия имен строк (т.е. первичных ключей)? PK - это термин RM. - person philipxy; 22.04.2019
comment
Я имел в виду, что математическая концепция «отношения» не зависит от концепции «ключа» (при условии, что это то, что автор подразумевает под «именем строки»). Если вы считаете, что «реляционная модель» включает понятие «отношения» + FD, то да, утверждение «нет понятия первичных ключей» неверно. - person adi; 23.04.2019
comment
Но если вы просто говорите о концепции «отношения», тогда, хотя вы всегда можете определить ключ в отношении как минимальный набор атрибутов, который функционально определяет любой элемент в этом наборе, существование отношение не зависит от ключа. В контексте РСУБД (приложения, реализующего теоретическую реляционную модель) это в основном означает, что вы можете иметь таблицу без каких-либо столбцов первичного ключа (системы баз данных, такие как postgresql, разрешают это), но вы не можете иметь этого в Spanner. - person adi; 23.04.2019
comment
Каждое отношение имеет все свои столбцы как суперключ, следовательно, он имеет это как имя для строки. Ваш пост неясен, и что бы вы ни пытались сказать, реляционная модель не имеет понятия, что имена строк неверны, а цитата и статья неясны. Конечно, они пытаются сказать, что что-то вроде структуры Шпаннера можно рассматривать как частный случай реляционного дизайна, такого как наличие столбцов K&V. Но ничего, кроме этого, не ясно, включая то, что, по их мнению, означает отношение. Цитата беспорядочная, а бумага плохая. - person philipxy; 26.05.2019