Основные технические характеристики СУБД Линтер
В СУБД Линтер [24] полностью поддерживается стандарт SQL/92, включая средства определения данных, выборки и манипулирования данными, определения ограничений целостности, управления транзакциями и т.д. В последних выпусках системы имеется поддержка некоторых средств, определенных в стандартах SQL:1999 и SQL:2003 (аналитические функции, предикаты similar и match и т.д) За счет использования версионного метода управления транзакциями поддерживается режим неблокирующего выполнения транзакций, в которых отсутствуют операции изменения базы данных. Имеется возможность использования типа данных BLOB, позволяющего работать с большими (объемом до двух Гб) неструктурированными объектами данных. Поддерживаются средства определения хранимых процедур и триггеров.
В системе обеспечивается ряд средств, позволяющих создавать гибкую и надежную систему безопасности и конфиденциальности информации (эти средства
сертифицированы Гостехкомиссией на соответствие 2-му классу защиты информации от несканкционированного доступа).
В состав дистрибутива СУБД Линтер входят следующие компоненты:
ядро СУБД Линтер (подсистема управления данными, транслятор SQL, процессор сортировки, компилятор хранимых процедур, сетевые драйверы, менеджер распределѐнных транзакций);
программы обслуживания базы данных (генератор системной базы данных, тестер физических структур);
организующие интерфейсы (инструментарий администратора, менеджер хранимых процедур со встроенным отладчиком, интерактивный SQL-интерфейс);
средства разработки приложений (встроенный SQL для C/C++, исполняющая система 4GL языка Intcom, средство интерактивной разработки Лакуна);
средства сохранения/восстановления данных (в том числе «горячее» архивирование, быстрая загрузка/выгрузка всей базы данных или отдельных еѐ частей и т.п.);
средства миграции данных (импорт из DBF, ODBC-средство миграции и т.п.);
интерфейсы различного уровня (ODBC-драйвер, интерфейс прямого доступа к Линтер из Delphi/Kylix/C++ Builder, интерфейс для Java-программ, API-интерфейс Линтер, Call-интерфейс и т.д.).
Поддержка реального времени
Многие заказчики компании Релэкс используют в своей работе операционные системы реального времени. СУБД Линтер изначально проектировалась так, чтобы удовлетворять ограничениям, которые накладывает функционирование в таких операционных системах [25]. Архитектура Линтер достаточно гибка для переноса в разные программно-аппаратные среды. В настоящее время СУБД Линтер функционирует как на платформах Windows CE и Linux, так и в средах различных операционных систем реального времени (QNX 4, QNX6, VxWorks, ОС РВ, OS/9, OS9000) на разнообразных аппаратных платформах (x86, PPC, Sparc, ARM, MIPS и т.д.). При этом обеспечивается полная совместимость по протоколам взаимодействия между узлами под управлением разных операционных систем, что позволяет использовать
единую инфраструктуру и для поддержки технологического оборудования, и для аналитических систем. Использованию СУБД Линтер во встроенных системах реального времени способствуют небольшие требования к оперативной памяти. Даже полный серверный вариант системы может поместиться в 4Мб оперативной памяти. Важным фактором использования Линтер в системах реального времени является постоянство используемых ресурсов, или возможность ограничения ресурсов. Гарантируется постоянство использования оперативной памяти (вне зависимости от объема базы данных, сложности выполняемых запросов и количества одновременно работающих пользователей и приложений). При создании базы данных имеется возможность гибкой конфигурации расположения файлов базы данных. Допускается размещение файлов разных таблиц и типов на разных устройствах. Это особенно актуально при эксплуатации СУБД во встроенной технике, когда у разных устройств имеются разные характеристики скорости и надежности хранения информации. Наличие журнала и механизмы восстановления базы данных гарантируют восстановление базы данных после сбоев по питанию, что особенно важно для технологических и встроенных необслуживаемых систем, которые обычно и разрабатываются с использованием операционных систем реального времени. Отличительной особенностью интерфейса СУБД Линтер является полная асинхронность. Любой запрос, поданный ядру СУБД, будет выполняться асинхронно. В системах реального времени возможность продолжать обработку данных вне зависимости от реакции хранилища данных очень важна. Во время обработки запроса к базе данных можно продолжать обработку входных данных или управлять исполнительными устройствами. Интерфейс Линтер позволяет также функционировать многопотоковым приложениям: вся синхронизация обмена с базой данных выполняются прозрачно для программы. Потоки могут также работать асинхронно.
Дополнительной возможностью для повышения производительности является предварительная трансляция запросов. В случае такой трансляции при выполнении запроса уже не требуется его синтаксически разбирать, вырабатывать план выполнения
и т.п. В полностью готовый к исполнению запрос необходимо будет только подставить параметры (если они есть), и его можно выполнить. В системах реального времени особое внимание уделяется приоритетам исполнения запросов. Возможность исполнения запросов с различными приоритетами была заложена в Линтер, начиная с самых первых версий, и с тех пор была значительно усовершенствована. Предлагаются три класса приоритетов исполнения запросов: обычные приоритеты, приоритеты Round Robin и приоритеты реального времени. Приоритетами исполнения запросов можно управлять в процессе работы системы через специальные управляющие команды. Кроме изменения приоритета возможна отмена выполнения запроса или приостановка его выполнения на некоторое время. Очень мощным аппаратом СУБД Линтер, активно используемым в системах реального времени, является аппарат событий. Событие представляет собой объект синхронизации распределенных приложений или извещения приложений об изменении в данных. Перспективным планом компании Релэкс является постепенная переделка ядра СУБД в соответствии с микроядерной технологией. Новая архитектура должна обеспечить возможности «горячего» обновления отдельных модулей и наращивания функциональности без остановки СУБД. Конечно, для перехода на новую архитектуру коллективу предстоит решить ряд опытно-конструкторских задач.