Можно ли преобразовать хранилище значений ключей и реляционную таблицу друг в друга? - PullRequest
0 голосов
/ 21 апреля 2019
  1. Можно ли преобразовать хранилище ключей в реляционную таблицу, где есть только два столбца, причем первичный ключ таблицы является «ключом» хранилища значений ключей?
  2. Можно ли преобразовать реляционную таблицу в хранилище значений ключей, где ключ является первичным ключом, а значение - другими столбцами в стол?
  3. Например, Spanner - это колоночная база данных. От https://research.google.com/archive/spanner-osdi2012.pdf, Почему можно Гаечный ключ можно рассматривать как хранилище ключей-значений, а не как реляционный? Я не вполне понятно "строки должны иметь имена. Точнее, каждая таблица требуется иметь упорядоченный набор из одного или нескольких столбцов первичного ключа "

    Модель данных Spanner не является чисто реляционной , в которой строки должны иметь имена . Точнее, на каждом столе должен быть заказан набор из одного или нескольких столбцов первичного ключа. Это требование где Spanner по-прежнему выглядит как хранилище значений ключей : первичные ключи образуют имя для строки, и каждая таблица определяет отображение из первичного ключа столбцы к столбцам без первичного ключа. Ряд существует только в том случае, если определенное значение (даже если оно равно NULL) определено для ключей строки. Введение этой структуры полезно, потому что она позволяет приложениям контролировать местонахождение данных с помощью выбора ключей.

1 Ответ

1 голос
/ 22 апреля 2019

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

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

...