Кортежи против Композитных Кортежей против Компонентов в Datomic - PullRequest
0 голосов
/ 12 апреля 2020

В чем разница между кортежами , составными кортежами и компонентами В datomi c?

Я считаю, что это один из самых трудных для понимания аспектов схемы. Я нахожу документацию (которая в целом превосходна) недостаточно ясной, чтобы объяснить это с нуля, возможно, из-за отсутствия примеров, и еще не нашла доклад, который ее освещает, современный или другой.

Вот что я смог выяснить (что может быть не так):

  • Кортеж выглядит как массив в postgres.

  • Композитный кортеж показывает, как вы можете добавить составной ключ, то есть уникальность для нескольких атрибутов.

  • Компонент - это способ определения документа как структура, в основном, так что вы можете получить каскадное удаление.

1 Ответ

0 голосов
/ 13 апреля 2020

Что касается компонентов и почему вы можете их использовать, я обнаружил, что принципы Дэвида Нолена в докладе «Клиенты в управлении» очень помогают:

Желательные свойства

  1. Клиенты могут запрашивать точный общий требуемый ответ.

  2. Клиенты могут выполнять атомы c коммитов деревьев данных без ущерба для реляционных запросов на стороне сервера.

В общих чертах, isComponent - это способ помочь в достижении этих принципов.

А из записи в блоге введение компонентов:

Компоненты позволяют создавать существенные деревья данных с вложенными картами, а затем обрабатывать все дерево как единое целое для управления жизненным циклом (в частности, для отвода). Все вложенные элементы остаются видимыми как первоклассные цели для запроса, поэтому форма ваших данных во время транзакции не определяет форму ваших запросов . Это ключевое значение для Datomi c по сравнению со строками, столбцами или хранилищами документов.

Чтобы сказать больше, нам нужно разобраться с некоторыми подробными примерами.

...