Словарь основных понятий Celesta

Партитура (Score)

совокупность схем базы данных, с которыми работает данный экземпляр Celesta, представленных в виде Язык Celesta-SQL скриптов.

Язык Celesta-SQL скрипт

текстовый файл, который содержит информацию о

  1. схемах базы данных. Внимание: по историческим причинам, синонимом понятию «схема» (schema) в Celesta также является слово «гранула» (grain).

  2. таблицах, включая информацию о

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

    2. первичном ключе (primary key) таблицы – его наличие обязательно требуется для работы классов доступа к данным,

    3. DEFAULT-значениях на полях,

    4. ограничениях NOT NULL на полях,

  3. индексах,

  4. последовательностях (sequences),

  5. связях между таблицами (foreign keys),

  6. представлениях (views), включая материализованные представления (materialized views) и параметризованные (functions).

В процессе работы Celesta Maven Plugin на основе данных скриптов кодогенерируются классы доступа к данным, а сами эти файлы копируются в ресурсы компилируемых jar-файлов.

В процессе запуска Celesta происходит автоматическое обновление схем базы данных до вида, заданного в CelestaSQL-скриптах.

Версия схемы (Schema version tag)

идентификатор версии в виде перечисленных через запятую компонент, явно проставляемый разработчиком гранулы в команде CREATE GRAIN …​ VERSION …​ скрипта гранулы. Служит для защиты от непроизвольного автоматического даунгрейда базы данных при запуске старой версии гранулы на более свежей версии базы данных. Автообновление базы данных никогда не будет выполняться, если version tag в базе данных больше, чем version tag скрипта гранулы, либо если версии не согласованы.

Контрольная сумма схемы (Grain checksum)

автоматически вычисляемая контрольная сумма скрипта гранулы. Служит для различения CelestaSQL-скриптов по их содержанию. Скрипты CelestaSQL, имеющие одинаковый version tag, могут преднамеренно (в процессе разработки) или непреднамеренно (из-за неаккуратности разработчика) иметь различное содержание. База данных, автоматически сформированная по grain creation script, помимо version tag, хранит и контрольную сумму grain creation script’а, чтобы отследить момент, когда к ней установило контакт приложение с изменённым метаописанием гранулы. Одновременное равенство version tag и grain checksum является достаточным условием для того, чтобы продолжать работу без попыток обновления структуры базы данных. Ради лёгкости проверки и открытости алгоритма контрольная сумма состоит из двух значений: длины файла скрипта (записываемой в формате десятичного числа) и его CRC32 (записываемом в виде 8 шестнадцатеричных цифр).

Системная гранула celesta

особая гранула, структура таблиц которой не подлежит изменению. Таблицы этой гранулы используются системой во внутренних целях. При этом запись и редактирование данных в части из этих таблиц является частью стандартной настройки системы. Описание гранулы "celesta" см. в разделе Системные таблицы Celesta.

Таблица celesta.grains

центральная системная таблица Celesta в базе данных. Наличие данной таблицы указывает на то, что Celesta подсоединена к «своей» базе данных, в противном случае Celesta будет пытаться развернуть базу «с нуля». Таблица содержит информацию о состоянии гранул, развёрнутых в базе. Описание полей таблицы содержится в разделе «Системные таблицы Celesta». Информация в этой таблице активно используется во время действий при старте.

Последовательность запуска гранулы (Grain startup sequence)

операции, выполняемые системой Celesta для каждой гранулы при запуске. При этом, при наличии необходимости и возможности, происходит автоматическая миграция базы данных.

Автоматическая миграция базы данных

составная часть startup sequence, при которой происходит сравнение структуры существующей базы данных со структурой, заданной метаданными в Celesta при помощи скриптов создания гранул. После сравнения разница устраняется с помощью автоматически создаваемых и исполняемых CREATE/ALTER команд.

Класс доступа к данным (курсор)

автоматически кодогенерируемый на основе CelestaSQL-скрипта класс, через который можно осуществлять взаимодействие с данными таблицы, представления или последовательности.