Рейтинг@Mail.ru

ЛИНТЕР - российская СУБД

Автор: Alex. Опубликовано в Программирование . просмотров: 13874

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Сегодня хотелось бы написать про российскую СУБД ЛИНТЕР, которая может составить конкуренцию таким известным системам управления баз данных, как Microsoft SQL Server и Oracle Database. В статье кратко рассмотрим возможности СУБД, цены и версии.

О СУБД ЛИНТЕР

Разработка СУБД началась в далёкие 1980-е, и только в 1990 году появилась первая коммерческая версия СУБД ЛИНТЕР, когда было образовано научно-производственное предприятие РЕЛЭКС (РЕЛяционные ЭКспертные Системы).

ЛИНТЕР

Сейчас ЛИНТЕР используется во многих отечественных проектах. Поставляется СУБД в четырёх редакциях: БАСТИОН, Real Time, Standard и Multiversion. Каждая редакция рассчитана на определённые условия использования. Давайте рассмотрим все редакции подробно.

Редакции СУБД ЛИНТЕР

Linter Standard – это базовое решение семейства ЛИНТЕР позволяющее решать большинство задач связанных с хранением и обработкой данных. К основным плюсам этого решения можно отнести компактность, простоту, встраиваемость и масштабируемость. Эта редакция поддерживает наибольшее количество операционных систем, в том числе для мобильных устройств: Windows, Linux, Mac OS X, FreeBSD, Unix System V, SUN Solaris, HP-UX, OpenVMS, PalmOS, Android, Embedded Linux и Windows CE. Для разработчиков предоставляется богатый набор утилит и программных интерфейсов: ODBC, ADO.NET, OLEDB, JDBC, PHP, Python, DBExpress, PERL/DBI, Ruby, OCI и пр.

ЛИНТЕР БАСТИОН отличается наивысшей степенью защиты данных, подтверждённой сертификатами ФСТЭК России и Министерством обороны РФ по 2 и 3 классу защищённости от несанкционированного доступа (НСД) к информации соответственно и по 2 уровню контроля отсутствия недекларированных возможностей (НДВ). Вот ключевые защитные механизмы СУБД ЛИНТЕР: шифрование данных, мандатная и дискреционная защита, контроль доступа с рабочих станций (в т.ч. по графику работы пользователя и по списку разрешённых станций), защита ввода-вывода на внешний носитель, аудит всех действий пользователей, удаление остаточной информации (в оперативную и внешнюю память записывается маскирующая информация). Эта редакция СУБД может работать в среде MS Windows, Linux, QNX, МС ВС, ОС РВ (ОС 2000) и ИНТРОС.

Linter Real Time – эта редакция предназначена для автоматизированных систем, работающих в режиме реального времени и предоставляет следующие дополнительные возможности: слежение за использованием внутренних ресурсов ядра СУБД, обработка запросов в асинхронном режиме, сбор статистики по физическому вводу-выводу данных, создание копий таблиц в памяти (in-memory таблицы) и работа с ними, как с обычными таблицами, возможность специальной настройки ядра СУБД для увеличения быстродействия. Работает СУБД в средах VxWorks, QNX, RTOS-32, ОС РВ (ОС 2000), OS-9000 и OS-9.

Linter Multiversion – эта версия СУБД поддерживает версионную модель обработки данных. Здесь обеспечена более быстрая обработка конкурирующих транзакций за счёт использования многоверсионного хранения записей. При многопользовательской работе это позволяет улучшить показатели распараллеливания. Тем не менее, эта версия СУБД поддерживает стандартные режимы работы транзакций от Dirty Read до Serializable.

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

Эта редакция работает на следующих ОС: Windows, Linux, Mac OS X, FreeBSD, SUN Solaris, Unix System V, HP-UX, Android и Windows CE.

Стоимость СУБД ЛИНТЕР и техподдержка

Стоимость зависит от редакции и максимального количества подключений. Если вас интересует лицензия не ограниченная количеством подключений, то необходимо приобретать лицензию на процессор. Самая дешёвая лицензия на 5 максимальных подключений на редакцию Standard стоит 15000 руб. Самая дорогая – редакция БАСТИОН на 1 процессор – 350000 руб. Подробности можно узнать здесь.

Для ознакомления вы можете бесплатно скачать версию любой редакции здесь. Большее количество версий СУБД и поддерживаемых ОС можете найти в архиве. Купленная лицензия влияет только на уровень технической поддержки и на права на распространение ПО, созданного с использованием СУБД. Поэтому тестировать и изучать СУБД ЛИНТЕР вы можете абсолютно бесплатно. Документация также доступна каждому желающему, скачать её можно здесь. На многие вопросы поможет ответить форум.

Установка СУБД ЛИНТЕР на Windows

В качестве эксперимента я попробую установить последнюю версию Linter Standard (На момент написания статьи – это версия 6.0.18.9, файл linter_s_6.0.18.9_win.exe) на компьютер под управлением Windows 7. Подробно рассматривать все шаги установки я не буду. После первых двух шагов (выбор языка и согласие с лицензией) вы попадаете на шаг ввода регистрационной информации. Здесь нужно либо ввести серийный номер в поля «Лицензия», либо установить галочку «Демоверсия».

Выбор демоверсии при установке СУБД ЛИНТЕР

Затем после шага с выбором папки установки идёт шаг выбора устанавливаемых компонентов, см. картинку ниже. Вот какие примеры с вариантами установки я нашёл в документации:

Пример конфигурации ЛИНТЕР-сервера:

      • «Ядро СУБД ЛИНТЕР»;
      • «Сетевые драйверы»;
      • «Сервисы».

Пример конфигурации ЛИНТЕР-клиента для администратора:

      • «Сетевые драйверы»;
      • «Инструментальные средства» -> «Сервисные средства».

Пример конфигурации ЛИНТЕР-клиента для разработчика:

      • «Сетевые драйверы»;
      • «Инструментальные средства» ->«Динамические библиотеки»;
      • «ODBC-драйверы» и/или «OLEDB-драйвер», и/или «JDBC-драйвер»;
      • SDK;
      • «Примеры»;
      • «Демонстрационная БД».

Пример конфигурации ЛИНТЕР-клиента для пользователя:

      • «Сетевые драйверы»;
      • «ODBC-драйверы» и/или «OLEDB-драйвер», и/или «JDBC-драйвер».

Я оставил галочки, выставленные по умолчанию и, судя по ним, мне будут установлены сама СУБД, драйверы, средства администрирования, демонстрационная БД, примеры и документация. Средства для репликации и Windows CE SDK установлены не будут, т.к. по умолчанию соответствующие галки не выставлены. Единственное, что я поменял – это установил галочку под списком «Новые средства администрирования и сетевые драйверы по умолчанию».

Выбор компонентов при установке СУБД ЛИНТЕР

На следующем шаге при выборе папки я оставил всё без изменений и на шаге дополнительных настроек я оставил включёнными все галки.

Дополнительные настройки при установке СУБД ЛИНТЕР

После этого шага начнётся установка СУБД. В процессе установки будет предложено настроить ODBC (создать DNS), сконфигурировать JDBC, где я всё оставил по умолчанию.

В конце установки вы увидите окно настройки кодировки демонстрационной БД. Я оставил кодировку, предложенную по умолчанию.

Выбор кодировки при установке СУБД ЛИНТЕР

Затем появляется диалог редактирования списка серверов (если была выставлена галка «Редактировать список серверов базы данных», см. шаг «Дополнительные настройки и действия»). Мне для экспериментов хватит и демонстрационной БД, поэтому я не буду здесь ничего менять, а просто нажму «Сохранить».

Редактирование списка баз данных при установке СУБД ЛИНТЕР

Затем последовал запуск служб, и установка завершилась успешно.

Завершение установки СУБД ЛИНТЕР

После установки, чтобы облегчить работу с консольными утилитами, в переменную окружения PATH желательно добавить путь к подкаталогу \bin установочного каталога СУБД ЛИНТЕР.

Проверка установки СУБД ЛИНТЕР

Т.к. при установке у нас была установлена галочка «Запустить ядро СУБД ЛИНТЕР на демонстрационной БД», то после установки СУБД стартует автоматически. При этом есть два варианта запуска СУБД: как сервис (служба) или как приложение. Если при установке у вас стояла галка «Службы», то СУБД стартует как сервис, иначе, как приложение. В моём случае галка «Службы» была установлена, поэтому СУБД запустилась как сервис.

Если СУБД работает как служба Windows, то для проверки работы СУБД, можно воспользоваться приложением «Администратор СУБД ЛИНТЕР» (пункт меню «Устаревшие средства администрирования -> Администратор СУБД ЛИНТЕР» в меню «Пуск»). Если светофор зелёный, значит СУБД работает.

Администратор СУБД ЛИНТЕР

Здесь же можно остановить СУБД и запустить снова: пункты меню «База -> Запустить» и «База -> Остановить». При запуске и останове запрашивается логин и пароль. Для демонстрационной базы данных ЛИНТЕР можно найти логин и пароль в файле readme.txt в папке БД, у меня это папка C:\Program Files (x86)\Linter\db\DEMO.

Если вам понадобится запустить СУБД как приложение, то вы можете это сделать, выбрав пункт меню «Пуск -> Программы -> СУБД ЛИНТЕР -> СУБД ЛИНТЕР». После запуска вы увидите такое окошко:

Запуск СУБД ЛИНТЕР как приложение Windows

Если же вы попытаетесь запустить ЛИНТЕР как приложение, в то время как СУБД работает как сервис, вы получите ошибку «Could not create mailslot "\\.\mailslot\LinterMailslot5". The default server is already running? System error 183 – Невозможно создать файл, так как он уже существует.»:

Could not create mailslot "\\.\mailslot\LinterMailslot5". The default server is already running? System error 183 – Невозможно создать файл, так как он уже существует.

Но самый лучший способ проверки работоспособности СУБД, - это проверка с помощью рабочего стола (пункт меню «Пуск -> Программы -> СУБД ЛИНТЕР -> Рабочий стол»). Как видно на картинке, в инспекторе базы данных есть ветвь «Локальное ядро», внутри которой есть демонстрационная БД. Если СУБД остановлена, то ветви «Локальное ядро» вы не увидите. Если СУБД работает, то здесь вы также увидите базы данных, и можете открыть каждую из них, введя логин и пароль.

Рабочий стол СУБД ЛИНТЕР

Также здесь можно проинспектировать сервисы в ветке «Сеть». Как видите на картинке, шестерёнки рядом со строками «Ядро» и «Сетевой сервер» покрашены зелёным цветом, значит соответствующие сервисы работают. Здесь же можно эти сервисы запустить или остановить. Для запуска или остановки, щёлкните по нужному сервису, а затем выберите пункт меню «Ядро -> Запустить», «Ядро -> Остановить», «Сетевой сервер -> Запустить» или «Сетевой сервер -> Остановить» (запуск и остановка сервисов из контекстного меню здесь у меня не заработала). Здесь под ядром понимается сама СУБД, а под сетевым сервером – драйвер сервера, который нужен для доступа к вашей СУБД с удалённых клиентов.

Сетевой сервер также можно запустить как приложение ОС, для этого есть пункт меню «Пуск -> Программы -> СУБД ЛИНТЕР -> Сетевой сервер».

Работа с базой данных

Все манипуляции с СУБД и базами данных можно осуществлять с помощью Рабочего стола ЛИНТЕР: работа с таблицами, в том числе и временными, представлениями, хранимыми процедурами, триггерами, транзакциями, управления правами пользователей, группами пользователей. На картинке показан просмотр данных таблицы PERSON (в дереве слева можно увидеть столбцы, индексы и многое другое, всё, что связано с таблицей).

Просмотр таблицы в Рабоче столе ЛИНТЕР

Для работы с запросами есть два редактора запросов: обычный и простой. На картинке снизу показан обычный редактор. В обычном и простом редакторах можно выполнить несколько запросов (клавиша F5), но невозможно посмотреть сразу все выборки. Видно будет только результат выполнения последней, см. картинку снизу. Это очень неудобно.

Выполнения выделенного запроса тоже нет (что тоже неудобно). Немного исправляет ситуацию возможность выполнить текущий запрос (запрос, на котором стоит курсор – клавиша F8) или выполнить все запросы после текущего запроса (F6).

Выполнение запросов в Рабочем столе ЛИНТЕР

Редактировать текст процедур и триггеров можно в диалоговом окне «Свойства», что абсолютно неудобно, или в отладчике. Отладчик открывается на отдельной закладке и можно переключаться между несколькими процедурами, но в заголовке всегда написано слово «Отладчик» (см. картинку снизу), поэтому, когда процедур будет открыто много, вам будет нелегко находить нужную закладку.

Отладка процедуры в Рабочем столе ЛИНТЕР

Не буду дальше рассматривать интерфейс Рабочего стола ЛИНТЕР с точки зрения разработчика, т.к. вы можете и сами опробовать те функции, которые вам интересны.

Управление правами доступа пользователей

Для просмотра пользователей нужно нажать на кнопку «Пользователи», см. картинку. После этого на отдельной закладке откроется таблица со всеми пользователями БД.

Просмотр пользователей в Рабочем столе ЛИНТЕР

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

Расписание пользователя СУБД ЛИНТЕР

Дважды щёлкнув на пользователя, вы поднимите диалог свойств, в котором можно указать тип и уровень доступа, настроить идентификацию и др.

Свойства пользователя СУБД ЛИНТЕР

Чтобы настраивать роли пользователей, нужно нажать кнопку «Роли». После этого на отдельной закладке откроется таблица со всеми ролями БД. Здесь можно добавлять и удалять роли, назначать их пользователям.

Роли пользователя СУБД ЛИНТЕР

Из контекстного меню на закладке «Пользователи» или «Роли» можно поднять диалог для настройки дискреционного доступа к объектам, см. картинку.

Настройка дискреционного доступа СУБД ЛИНТЕР

Полную документацию по настройке прав доступа вы можете найти в документации к рабочему столу СУБД ЛИНТЕР здесь.

SQL используемый в СУБД ЛИНТЕР

SQL, используемый в СУБД ЛИНТЕР, основан на стандарте ANSI X3/135- 1992 (SQL-92). Кроме того, поддерживается значительная часть возможностей стандартов SQL:1999 и SQL:2003.

Также, при реализации языка в СУБД ЛИНТЕР, в него внесены некоторые элементы, не специфицированные в стандарте SQL-92, а именно:

      • интернационализация имен объектов БД (таблиц, столбцов и пр.), т.е. можно использовать кириллицу в названиях;
      • средства для работы в режиме реального времени;
      • средства оперативного тестирования таблиц БД;
      • средства оперативного архивирования объектов БД;
      • средства поддержки кодовых страниц для представления системной и пользовательской информации;
      • набор скалярных функций для поддержки ODBC-интерфейса;
      • набор скалярных функций для совместимости SQL-сервера СУБД ЛИНТЕР с SQL- сервером СУБД Oracle.

Дополнительно в язык SQL СУБД ЛИНТЕР добавлены:

      • команды управления комплексом средств защиты информации;
      • команды организации полнотекстового поиска в БД;
      • средства встраивания SQL для систем программирования C/C++;
      • средства поддержки процедурного языка СУБД ЛИНТЕР;
      • средства поддержки репликации (тиражирования) данных;
      • средства поддержки геометрических типов данных.

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

Поддерживаются следующие типы данных (здесь в списке также указаны синонимы):

      • строковые фиксированной длины (CHAR | CHARACTER);
      • строковые переменной длины (CHAR VARYING | CHARACTER VARYING | VARCHAR);
      • байтовые фиксированной длины (BYTE | RAW);
      • байтовые переменной длины (BYTE VARYING | VARBYTE);
      • UNICODE фиксированной длины (NATIONAL CHARACTER | NATIONAL CHAR | NCHAR);
      • UNICODE переменной длины (NATIONAL CHARACTER VARYING |NATIONAL CHAR VARYING |NCHAR VARYING |NVARCHAR);
      • точные числовые (DECIMAL | DEC | NUMERIC | NUMBER | BIGINT | INTEGER | INT | SMALLINT);
      • приближенные числовые (REAL | DOUBLE | FLOAT);
      • дата и время (DATE);
      • логический тип (BOOLEAN);
      • BLOB (BLOB | LONG RAW);
      • внешний файл (EXTFILE | EF).

Полное описание SQL СУБД ЛИНТЕР доступно в справочнике по SQL здесь.

Заключение

В общем, первое впечатление о СУБД ЛИНТЕР у меня сложилось хорошее. И хоть, я нашёл несколько замечаний к интерфейсу рабочего стола ЛИНТЕР, но, думаю, такие замечания быстро исправляются. Адекватную оценку СУБД можно было бы дать только при её использовании в крупном проекте с высокой нагрузкой, но у меня нет такой практики. Если вы работаете с этой СУБД, черкните пару строк в комментариях о своём впечатлении.

Tags: Обзоры СУБД Обзоры программ OS-9 OS-9000 RTOS-32 VxWorks ИНТРОС ОС РВ (ОС 2000) МС ВС QNX Windows CE Embedded Linux PalmOS OpenVMS HP-UX SUN Solaris Unix System V FreeBSD Mac OS X ЛИНТЕР Linux Windows Android

Комментарии   

den_kho
0 #1 den_kho 28.05.2015 11:17
Спасибо за обзор!
Несколько комментариев от разработчиков СУБД.

Цитата:
В обычном и простом редакторах можно выполнить несколько запросов (клавиша F5),
но невозможно посмотреть сразу все выборки.
Видно будет только результат выполнения последней, см. картинку снизу. Это очень неудобно.
Идея понятна, но она наталкивается на проблему одновременного открытия большого количества ответов - десятки и сотни. Понятно, что это синтетика, но ка кона должна решаться. Есть ли какие-то предложения?
Цитировать
den_kho
0 #2 den_kho 28.05.2015 11:18
Цитата:
Выполнения выделенного запроса тоже нет (что тоже неудобно).
Имеется ввиду выделение группы запросов и их исполнение? Для одного запроса это полностью нивелируется возможностью выполнить текущий. Тут мы сами видим возможность улучшения - подсвечивать текущий запрос при перемещении.

Цитата:
Отладчик открывается на отдельной закладке и можно переключаться между несколькими процедурами, но в заголовке всегда написано слово «Отладчик» (см. картинку снизу), поэтому, когда процедур будет открыто много, вам будет нелегко находить нужную закладку.
Явно недоработка. Будет править.
Цитировать
Alex
0 #3 Alex 29.05.2015 09:39
Цитирую den_kho:
Идея понятна, но она наталкивается на проблему одновременного открытия большого количества ответов - десятки и сотни. Понятно, что это синтетика, но ка кона должна решаться. Есть ли какие-то предложения?


Вы имеете ввиду десятки и сотни селектов? Ну, если это нужно разработчику, пусть открывает. Хотя вы можете ввести ограничение на количество отображаемых селектов на рабочем столе Линтера, а если разработчику нужно всё превсё, то пусть экспортирует все селекты в файл.

Выглядеть выдача нескольких селектов может, например, как у конкурентов (за самую правую полосу прокрутки я могу прокрутить все таблицы, кроме того у каждой таблицы есть своя полоса прокрутки, и ещё я могу регулировать высоту каждой таблицы):

Цитировать
Alex
0 #4 Alex 29.05.2015 09:56
Цитирую den_kho:
Имеется ввиду выделение группы запросов и их исполнение?


Да. Вот смотрите на примере, здесь я только создаю и заполняю таблицы (выделяю нужные запросы и нажимаю F5):



Здесь выполняю только два средних запроса:



Здесь выполняю только кусок запроса:



А здесь только удаляю таблицы:



Можно даже в комментариях для себя хранить какие нибудь тестовые запросы и потом при необходимости их выполнять, просто выделив их и нажав на F5:



Поверьте, так работать очень удобно.

Т.е. работает это так: если ничего не выделено, то выполняется весь скрипт. А вот если что-то выделено, то выполняется только выделенный кусок, и весь остальной текст при этом игнорируется.
Цитировать
Alex
0 #5 Alex 28.03.2016 12:28
СУБД ЛИНТЕР включена в Единый реестр российских программ для электронных вычислительных машин и баз данных: reestr.minsvyaz.ru/.../...
Цитировать

Добавить комментарий