Основные технические характеристики СУБД Линтер

В СУБД Линтер [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 и приоритеты реального времени. Приоритетами исполнения запросов можно управлять в процессе работы системы через специальные управляющие команды. Кроме изменения приоритета возможна отмена выполнения запроса или приостановка его выполнения на некоторое время. Очень мощным аппаратом СУБД Линтер, активно используемым в системах реального времени, является аппарат событий. Событие представляет собой объект синхронизации распределенных приложений или извещения приложений об изменении в данных. Перспективным планом компании Релэкс является постепенная переделка ядра СУБД в соответствии с микроядерной технологией. Новая архитектура должна обеспечить возможности «горячего» обновления отдельных модулей и наращивания функциональности без остановки СУБД. Конечно, для перехода на новую архитектуру коллективу предстоит решить ряд опытно-конструкторских задач.

Наши рекомендации