Структура базы данных

Данный раздел содержит описания дополнительных таблиц БД и запросов для выборки данных.

Внутри раздела можно создать следующие папки:

image-1648145340139.png

  • Таблицы – содержит перечень используемых таблиц на сервере БД.
  • Просмотры – содержит перечень используемых таблиц на сервере БД.
  • Функции – содержит применяемые в запросах функции.
  • Запросы – содержит SQL запросы для выборки данных из таблиц БД.

Подробное описание атрибутов таблиц и запросов приведено в книге ‘Язык скриптов’.

Таблицы, Просмотры

Данные разделы содержат описания дополнительных таблиц БД.

Таблицы описываются в двух разделах для того, чтобы выделить те таблицы БД, для которых не следует выполнять синхронизацию описания таблицы в проекте и в БД.

В описании таблицы можно указать ее наименование на сервере, набор полей и набор индексов. При старте программы проверяется существование таблицы. Если таблица отсутствует, то программа создает таблицу в соответствии с описанием таблицы в проекте. Если таблица уже имеется, то программа проверяет описание всех полей таблицы. В случае расхождения описание поля в таблице сервера БД изменяется в соответствии с описанием в проекте. Эта процедура называется синхронизацией описания.

Для таблиц из раздела ‘Просмотры’ синхронизация не выполняется.

Таблицы также могут быть описаны в атрибуте ‘Таблицы’ процедуры.

При создании новой таблицы будет предложено выбрать тип создаваемого элемента.

image-1648145426053.png

image-1648145440421.png

  • Группа таблиц – для создания папки, в которой могут быть сгруппированы несколько таблиц, объединенных по какому-либо признаку. Для группы указывается только наименование.
  • Таблица – для создания новой таблицы.
  • Группа внешних таблиц/просмотров – для создания папки, в которой могут быть сгруппированы несколько таблиц, объединенных по какому-либо признаку. Для группы указывается только наименование.
  • Просмотр – для создания новой таблицы.

При описании таблицы доступны следующие атрибуты:

image-1648145471292.png

  • Использование – условие доступа проектировщиков к таблице.
  • Внешнее имя – имя таблицы в базе данных. Если внешнее имя не указано, то имя таблицы рассчитывается автоматически (T<индекс проектного элемента>).
  • Временная таблица – данные из таблицы, для которой указан данный признак, будут автоматически удалены сервером при выходе из Домино (или при перерегистрации пользователя). Внутри одной сессии Домино данные из временной таблицы другой сессии не доступны.
  • Параметры – список полей (столбцов) таблицы. Для каждого поля указываются имя и тип. Можно указать внешнее имя (имя столбца в базе данных), ширину и точность для числовых данных. Если внешнее имя не указано, то имя столбца рассчитывается автоматически (F<индекс проектного элемента>).
  • Индексы – список индексов таблицы. Индексы применяются для ускорения запросов по данной таблице. Для каждого индекса указывается список полей.

Например.

image-1648145501200.png

Библиотека ‘Новые примитивы почты’ содержит раздел ‘Структура базы данных’, в котором описаны таблицы для работы почтовой службы.

Запросы

В данном разделе описываются SQL запросы для выборки данных из таблиц БД. Описание запроса в ДОМИНО выполнено для стандарта SQL92. Для запросов можно применить механизмы наследования, запуск с параметрами, условия включения отдельных частей. Все это позволяет  выделить общую базовую часть для сложных и часто используемых запросов. При создании запроса можно ссылаться на базовые запросы и указывать нужные параметры, сортировки, условия отбора и т.д.

Запросы могут быть вложенными, т.е. их можно указывать не только в  разделе ‘Запросы’, но и внутри конструкций FROM, WHERE, IN, EXISTS, HAVING, в выражениях. При описании запроса можно сослаться на уже существующий запрос. В этом случае по правилам наследования становятся доступны атрибуты запроса-родителя.

При создании нового запроса будет предложено выбрать тип создаваемого элемента.

image-1648145561131.png

  • Группа запросов – для создания папки, в которой могут быть сгруппированы несколько запросов, объединенных по какому-либо признаку. Для группы указывается только наименование.
  • Запрос – для создания нового запроса.

Для описания запроса применяются следующие атрибуты:

image-1648145588636.png

  • Использование – условие доступа проектировщиков к запросу.
  • Использование (в режиме выполнения) – условие доступа пользователей к запросу. Если условие имеет ложное значение, то запрос не будет сформирован.
  • Отключить анализатор выражений – наличие данного признака отключает стандартный алгоритм формирования запроса. В стандартном алгоритме программа проверяет использование каждого параметра (из раздела ‘Параметры’). Если какой-либо параметр не используется ни в одной конструкции запроса, то такой параметр не будет включен в результат. В большинстве случаев стандартный алгоритм позволяет ускорить выполнение запроса. Наличие данного признака отключает анализ параметров запроса на предмет их реального использования, в результат будут включены все перечисленные в запросе параметры.

В практике применения Домино всего несколько раз встретились настолько сложные и специфичные запросы, что применяемый анализатор выражений не справился со своей задачей. В подобных ситуациях следует использовать данный атрибут.

  • Distinct (Исключать дублирующие записи) – наличие этого признака исключает дублирующиеся значения из результата выполнения запроса.
  • Ключи оптимизации - Данный раздел содержит инструкции, позволяющие улучшить выполнение запроса
  • Формальные параметры - Данный раздел содержит список формальных параметров для вызова запроса. В общем случае запрос можно рассматривать как функцию специального типа. И для запроса применима возможность задания формальных параметров.
  • Значения формальных параметров при вызове - Данный раздел содержит значения формальных параметров при вызове запроса.
  • From (Таблицы) - В данном разделе перечисляются источники, из которых отбираются данные с помощью запроса.
  • Параметры - Данный раздел содержит описание результата запроса.
  • Выражения - Данный раздел содержит описания выражений, которые могут использоваться в различных частях запроса (его результате, разделе WHERE и т.д.).
  • Where (Ограничения на отбор данных) - В данном разделе описывается условие, в соответствии с которым записи включаются в результат запроса. Условие проверяется для каждой строки таблицы. Только те строки, для которых условие имеет истинное значение, попадают в результат.
  • Group By (Группировка) - В данном разделе описываются правила группировки записей для результата запроса.
  • Having (Ограничения на группы строк заданных разделом Group By) - В данном разделе описывается условие, которое применяется к группам, заданным в разделе GROUP BY. Группы, для которых указанное условие не выполняется, исключаются из выходных данных.
  • Order By (Сортировка) - В данном разделе задаются правила сортировки выходных данных запроса. Записи упорядочиваются в соответствии со значениями одного или нескольких указанных полей.