База данных AnyLogic

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

База данных позволяет:

База данных содержит таблицы и представления. И те и другие можно сгруппировать в группы таблиц.

Можно легко импортировать базу данных в ваш проект AnyLogic из внешней базы данных или электронной таблицы MS Excel. Кроме того, можно создать пустые таблицы базы данных и ввести данные вручную.

Свойства

Основные

Размер – Отображает размер базы данных на диске.

Создать или импортировать таблицу... – Щелкните по ссылке для создания новой таблицы базы данных или для импорта таблиц из существующей внешней БД.

Создать резервную копию БД... – Щелкните по этой ссылке, чтобы создать резервную копию базы данных. AnyLogic сохраняет резервную копию в формате TAR.GZ. После того, как вы создали резервную копию, вы сможете отменить изменения в той базе данных, с которой вы сейчас работаете, путем восстановления данных из резервной копии (см. опцию ниже).

Восстановить БД... – Щелкните по этой ссылке, чтобы восстановить базу данных из резервной копии. Во время восстановления, вы заменяете текущую базу данных резервной копией, которую ранее создали, воспользовавшись опцией Создать резервную копию БД... (см. опцию выше). При восстановлении база данных возвращается к состоянию, в котором она была на момент создания резервной копии.

Удалить базу данных – Щелкните по этой ссылке, чтобы полностью удалить базу данных. Удаление базы данных автоматически отключает опцию Оптимизировать размер при закрытии модели.

Оптимизировать размер при закрытии модели – Если эта опция выбрана, при закрытии базы данных данные БД будут сохранены на диске в оптимизированном виде, чтобы занимать меньше дискового пространства. Если база данных достаточно крупная, на закрытие БД в режиме COMPACT уйдет много времени. Если эта опция не выбрана, данные будут сохранены, как они есть. Это позволяет быстро закрыть базу данных, но не принимает в расчет, сколько места на диске займет БД. Опция автоматически включается и становится недоступной для любых изменений, если вы выбираете опцию Записывать в журнал информацию о выполнении модели. То же самое происходит, если вы открываете существующую модель, в которой эта опция выбрана или отключена, но какие-то логи уже хранятся в базе данных. Более подробную информацию об этом режиме оптимизации вы можете найти в справке HyperSQL (англ.).

* - Опция доступна только в том случае, если база данных не пустая.

Импорт
Эта секция свойств видна, если база данных содержит таблицы, которые были импортированы из внешней базы данных. Вы можете настроить синхронизацию данных и обновить данные в импортированных таблицах после внесения изменений во внешнюю базу данных.

Автообновление импортированных таблиц при запуске модели – Если опция выбрана, данные во всех импортированных таблицах будут автоматически обновляться данными из внешней базы данных при каждом запуске модели.

Обновить данные таблиц – Щелкните по этой ссылке, чтобы обновить данные во всех импортированных таблицах данными из внешней базы данных.

Источники исходных данных – Список путей ко внешним источникам данных для всех импортированных таблиц БД AnyLogic. Если файл расположен вне папки с моделью, в списке будет отражаться абсолютный путь к этому файлу. Если файл расположен в папке модели, будет отражаться только название файла.

Экспорт

Эта секция содержит свойства, относящиеся к экспорту базы данных в файл Excel. Как экспортировать базу данных AnyLogic описано здесь.

Настройки экспорта - Здесь вы можете указать файл Excel, в который будут экспортироваться данные БД и выбрать таблицы БД и журналы (если активировано ведение журнала модели).

Экспорт таблиц в Excel - Щелкните по этой кнопке, чтобы экспортировать данные БД в файл Excel.

Экспортировать таблицы после прогона модели - Выберите эту опцию, чтобы автоматически экспортировать данные БД в файл Excel по завершении прогона модели.

Экспортировать в - Здесь отображается путь к файлу Excel, который вы выбрали для экспорта данных БД.

Журнал

Записывать в журнал информацию о выполнении модели – Если опция выбрана, то в журнал модели будет записываться информация о выполнении модели, а также автоматически включится опция Оптимизировать размер при закрытии модели.

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

Функции

Чтобы получить доступ к функциям встроенной базы данных модели, вызовите Java-объект ModelDatabase с помощью следующего метода:

getEngine().getModelDatabase()

Основное назначение объекта ModelDatabase — обеспечивать связь между внутренней базой данных модели и внешними источниками данных (например, Excel-файлами).

Работа с внешними источниками данных

Функция

Описание

void importFormExternalDb(Connection sourceConnection, String sourceTableName, String targetTableName, boolean clearTargetTable, boolean autoCommit)

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

Параметры:
sourceConnection — существующий объект Connection (соединение с базой данных), который можно получить вызовом метода Database.getConnection().
sourceTableName — строка с именем таблицы базы данных, которую вы хотите импортировать из внешнего источника данных.
targetTableName — строка с именем таблицы внутренней базы данных моделей, которую вы хотите наполнить с помощью функции.
clearTargetTable — если true, пытается удалить все данные из целевой таблицы во внутренней базе данных модели перед вызовом функции.
autoCommit — если false, вызов функции не повлечет исполнения транзакции базы данных (может повлиять на производительность).

void exportToExternalDB(String sourceTableName, Connection targetConnection, String targetTableName, boolean clearTargetTable, boolean autoCommit)

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

Parameters:
sourceTableName — строка с именем таблицы внутренней базы данных, которую вы хотите экспортировать.
targetConnection — существующий объект Connection (соединение с базой данных), который можно получить вызовом метода Database.getConnection().
targetTableName — строка с именем таблицы внешней базы данных, в которую будет осуществляться экспорт.
clearTargetTable — если true, пытается удалить все данные из целевой таблицы во внешней базе данных перед вызовом функции.
autoCommit — если false, вызов функции не повлечет исполнения транзакции базы данных (может повлиять на производительность).


Примечание: Более подробное описание работы данных функций можно найти в следующих статьях: Импортирование таблиц базы данных, Экспорт данных в книгу MS Excel.

Работа с журналами

Функция

Описание

void deleteExistingLogObjects​(connection)

Удаляет все данные из журнала выполнения модели.

Параметры:
connection — существующий объект Connection (соединение с базой данных), который можно получить вызовом метода Database.getConnection().