Новая архитектура
Производительность
Поддержка Java
Библиотека пользовательских функций (UDF)
Сборщик мусора
Поддержка кодировок
Каскадная декларативная ссылочная целостность
Новый контроль доступа
Система управления подключениями
Усовершенствованные GBAK
Временные файлы
Проверки на дорогах
Процесс Guardian
Требования к компьютеру

Вам знакомо название Borland IB DataBase 5.0? Скорее всего, нет. Однако берусь утверждать, что под этой маской скрывается хорошо известный вам сервер баз данных InterBase. Просто он будет называться иначе начиная с версии 5.0. Причиной тому стали трения между корпорацией Borland и одной из российских компаний, создавшей и зарегистрировавшей свой InterBase, не имеющий ничего общего с продуктом Borland. Для зарубежных пользователей сервер останется под прежним именем, а вот нам с вами придется привыкать к новому названию - IB DataBase (чем не проявление особого уважения к нашей стране!).

Но шутки шутками, а новая версия продукта IB DataBase 5.0, заслуживает того, чтобы о ней рассказали. Заметим, что отныне этим пакетом занимается компания InterBase Software Corporation, выделившаяся из корпорации Borland.

Новая архитектура

Архитектура сервера СУБД IB DataBase 5.0 - SuperServer - отличается от архитектуры предыдущих версий: вместо выделенных серверных процессов клиенты суперсервера используют потоки выполнения. Несколько серверных потоков осуществляют разделяемый доступ к единому серверному процессу. Такое решение позволяет убрать "узкие места" за счет арбитража разделяемых страниц баз данных и сокращает накладные расходы по запуску множества процессов. Скорость обмена сообщениями вырастает еще и потому, что применяются вызовы к разделяемым библиотекам. Архитектура SuperServer такова, что позволяет говорить о защите целостности базы данных благодаря помещению кода, выполняющего все критические операции, в единый серверный суперпроцесс. Он изолирован от приложений пользователей и потому изолирован от их ошибок.

Производительность

Производительность IB DataBase 5.0 по сравнению с предыдущими версиями InterBase значительно выросла. Этого удалось добиться за счет лучшего использования индексов при обработке запросов: IB DataBase автоматически выбирает минимальный индексный набор и пытается использовать индексы в командах Min() и Max(). Кроме того, сокращены затраты времени при выполнении команд Distinct, Order by и Group by, а для операции связи Join был оптимизирован синтаксис.

Поддержка Java

Разумеется, при создании новой версии такого современного продукта, как IB DataBase, не могли обойтись без Java. Используя прямой драйвер доступа InterClient, соответствующий спецификации JDBC, можно оперировать данными, располагающимися на сервере IB DataBase. Не составит труда обратиться к серверу из любого Java-приложения. Конфигурацию средств доступа к данным IB DataBase берет на себя, избавляя клиентское приложение от необходимости каких-либо настроек.

Библиотека пользовательских функций (UDF)

Новая библиотека пользовательских функций (UDF) из динамической библиотеки IB_UDF.DLL (имеется в виду Windows-вариант) расширяет возможности программирования. Более тридцати функций выполняют рутинные операции, например математические вычисления или действия над строками.

Сборщик мусора

СУБД IB DataBase 5.0 оснащена мощным средством сборки "мусора", находящегося в индексах. Результатом его работы является динамическое сокращение размера индекса, когда какая-либо индексная страница становится пустой, скажем, в случае удаления записей. При этом IB DataBase оставляет освободившееся место под свои нужды, не возвращая его в пул операционной системы. В итоге снижается нагрузка на сервер и обеспечиваются высочайшие показатели производительности.

Все новые таблицы баз данных автоматически становятся объектом действия сборщика мусора. Что касается старых таблиц, оставшихся от предыдущих версий InterBase, то их потребуется переиндексировать, применив специальную утилиту gbak, входящую в состав IB DataBase 5.0.

Поддержка кодировок

В IB DataBase 5.0 значительно расширен список хранимых текстовых кодировок. Теперь помимо UNICODE могут быть использованы следующие кодировки: SJIS (японская); UEC (Extended UNIX Character); кодовые страницы DOS; кодовые страницы Windows; ISO Latin 1-9; BIG_5 (китайская); KSC5601 (корейская); GB2312-80 (китайская).

Каскадная декларативная ссылочная целостность

IB DataBase предлагает расширенное определение Foreign Key. Стало возможным определение ссылочной целостности объявлением CASCADE, что соответствует стандарту ANSI SQL 92. Это объявление делает реальным задание операции над подчиненной таблицей, если в мастер-таблице первичный ключ был удален или изменен. Эти новые возможности могут быть задействованы в таких командах, как CREATE TABLE и ALTER TABLE.

Новый контроль доступа

Чтобы разрешить или запретить владельцам таблицы ссылки на первичный ключ внешней (FOREIGN) таблицы в ссылочных (REFERENCE) привилегиях, в IB DataBase 5.0 применяется специальный контроль за безопасностью. Можно назначить права доступа как для целой таблицы, так и для отдельных колонок, включенных в первичный ключ. Права доступа будут проверяться во время выполнения, когда определены ограничения на ключ FOREIGN.

Система управления подключениями

IB DataBase умеет регулировать число одновременных подключений к серверу. Для этого берется значение USERS из файла лицензий и умножается на 3, в результате чего получается максимально допустимое число одновременных подключений. Система внимательно следит за тем, как пользователи подключаются и отключаются, производит подсчет текущих соединений и сравнивает их с допустимым числом.

Усовершенствованные GBAK

Утилиты резервного копирования и восстановления GBAK в IB DataBase 5.0 усовершенствованы так, что стало возможным направлять данные в стандартный поток вывода stdout, тогда как ранее вывод был ограничен файлом. Нововведение поможет организовать конвейерную передачу данных другим утилитам или перенаправление на любое устройство. Кроме того, вместо чтения данных из файла в IB DataBase 5.0 стало возможным их считывание непосредственно из стандартного потока ввода stdin, который также может быть перенаправлен из любого устройства.

Временные файлы

Управление временными файлами в IB DataBase 5.0 выстроено на базе новой концепции. Создаются временные файлы двух типов: sort и history list, причем первый создается, если внутренний буфер сортировки мал для проведения операции сортирования. Каждый запрос, например CONNECT или CREATE DATABASE, использует одни и те же каталоги временных файлов. После окончания сортировки или выполнения запроса временный файл sort освобождается. Временные файлы типа history list создаются приложениями isql и wisql для запоминания вводимых команд. Для каждого сеанса создается свой собственный временный файл, динамически увеличивающийся до тех пор, пока имеется свободное время. Когда клиент завершает сеанс работы, закрепленный за ним временный файл history list освобождается.

Проверки на дорогах

У них...

Пятая версия IB DataBase уже прошла испытание в реальном деле: ее использовали в качестве основного сервера баз данных сотрудники компании Colorado Mountain Express, управляющие работой транспортной системы горнолыжных курортов. Сотрудники компании обращались к серверу и создавали нагрузку до ста одновременных подключений к СУБД. Старший менеджер по технологиям этой компании сообщил, что в течение 25 дней бета-версия IB DataBase 5.0 проработала без сбоев и проблем, чем доказала свою надежность и устойчивость.

... и у нас

Автор использовал IB DataBase 5.0 в качестве тестового сервера для создания и отладки клиент-серверных приложений, обменивающихся данными с сервером баз данных. Несмотря на то что испытывалась бета-версия продукта (IB DataBase 5.0B2), устойчивость при работе с операционными системами Windows 95 OSR2 Pan Europe и Windows NT Workstation 4.0 была просто замечательной.

Процесс Guardian

В соответствии с новыми веяниями в мире клиент-серверных систем, IB DataBase 5.0 использует специальный процесс под названием Guardian, контролирующий состояние сервера. Как добросовестный служака, процесс Guardian обеспечивает бесперебойную работу сервера IB DataBase, периодически проверяет его состояние и делает запись в системном журнале обо всех неполадках. Администратор может задать действие, которое должен выполнить процесс Guardian в случае возникновения нештатной ситуации: либо полностью остановить сервер, либо сделать попытку повторно перезапустить его.

Требования к компьютеру

Windows:
процессор: Intel 486 и выше;
операционная система: Windows NT или Windows 95;
Оперативная память: 16 Мбайт (рекомендуется 64 Мбайт);
компилятор: Visual C++ 4.2, Borland C++ 5.0.

Solaris:
процессор: SPARC или UltraSPARC;
операционная система: Solaris 2.5.1;
Оперативная память: 32 Мбайт (рекомендуется 64 Мбайт);
компилятор: SPARCWorks.

HP-UX:
процессор: PA-RISC;
операционная система: HP-UX 10.20;
Оперативная память: 32 Мбайт, 64 Мбайт для сервера.