Сравнительный обзор SQL серверов
Евтеев Михаил Александрович
mike@anet.donetsk.ua
Общая часть – оглашение участников
Базы данных бывают разные. До недавнего времени круг доступный нашим программистам
ограничивался небольшим числом, так называемых настольных баз данных. К
ним относятся Fox Pro, Clipper, dBase, Paradox, Clarion и многие другие.
Работать с этими системами очень просто и удобно. Они полностью удовлетворяли
потребности пользователей. Да и к чести производителей, необходимо отметить,
что продукты проделали долгий путь развития и совершенствования. От старенькой,
неказистой на вид, но очень быстрой DOS был совершен скачек в красавицу
Windows. Правда поплатились за это производительностью и свободным местом
на диске. Но по мнению автора это того стоило. Посмотрите как просто и
удобно стало работать с этими продуктами. Сколько пользователей теперь
могут самостоятельно (под руководством “волшебников” и “экспертов”) создавать
свои собственные базы данных. Никто из них не задумывается о сложностях
и тонкостях реляционной модели данных, которая обеспечивает эту кажущуюся
простоту. В общем здесь все хорошо. Очень хрошо. Но только до тех пор,
пока все пользователи локально работают со своими данными. Однако рано
или поздно возникает потребность использовать эти данные совместно. И на
этом этапе многие открывают для себя мир систем клиент-сервер, в котором
не последнюю роль играют серверы баз данных.
В отличие от настольных систем серверы баз данных требуют для своей
работы могучей аппаратуры, сложны в использовании и крайне надежны, при
должном использовании. Между ними и настольными системами расстояние которое
можно сравнить с пропастью. Можно ли преодолеть эту пропасть? Вот в чем
вопрос. Надо отметить, что этим вопросом задаемся не мы первые, не мы последние.
Раньше нас с вами он пришел в голову большому числу поставщиков. И что
вы думаете они сделали? Они попытались его решить, создав системы, занимающее
промежуточное положение между настольными базами и серверами реляционных
баз данных. Таких продуктов появилось множество и о некоторых из них, автору
и хотелось бы рассказать в этой статье. Сразу необходимо отметить, что
статья не претендует на полноту. Нельзя объять необъятное. Но хотелось
бы дать общее сравнительное представление о продуктах.
Рассматриваемые продукты относятся к классу так называемых локальных
(и серверов для рабочих групп) серверов баз данных. Однако по ходу повествования
вы увидете, что под этим понятием, скрываются очень разные по своим возможностям
системы.
Участники
Local INTERBASE v. 4.25.0 – Borland InternationalInterbase Co. INTERBASE
перовоначально задуман и создан группой единомышленников в Digital Equipment
Corporation. INTERBASE продавался фирмой Groton Database Systems с 1985г.
В 1991 г. его приобрела Ashton-Tate. Далее сервер INTERBASE был преобретен
Borland вместе с фирмой Ashton-Tate, поставщиком dBase. На протяжении всего
своего существования INTEBASE постоянно привносил что-то новое в мир технологий
клиент-сервер. Это был первый сервер для которого реализованы: многоверсионная
архитектура (см. Раздел Уникальные возможности), автоматическая двухфазная
тарfнзакция, BLOB, поддержка многомерных массивов и многое другое. Local
INTEBASE является однопользовательской версией INTERBASE Workgroup Server.
Для платформ Windows обеспечена совместимость на уровне двоичного кода.
Под совместимостью двоичного кода, понимается возможность запускать один
и тотже исполняемый файл на Windows95 и Windows NT, но не под UNIX. Начиная
с четвертой версии Local INTEBASE поддерживает все особенности своего старшего
брата – INTERBASE Workgroup Server.
Sybase SQL Anywhere – SYBASE Inc. Sybase SQL Anywhere так же не является
собственной разработкой SYBASE. Продукт был приобретен вместе с фирмой
WATCOM и до этого уже хорошо зарекомендовал себя как WATCOM SQL Server.
Судя по последним анонсам фирмы, SYBASE действительно собирается увидеть
SQL повсюду. Объявлено о разработке версии продукта, которая сможет выполняться
на PDA. Дескать они уже достаточно мощные, что же мы будем упускать рынок.
Personal ORACLE v. 7.2 – ORACLE Corporation. Personal ORACLE является
одним из продуктов линии ORACLE. У автора даже язык не поварачивается назвать
его персональным. Впрочем видимо это осознали и в ORACLE, поскольку уже
появился Personal ORACLE Lite.
SQLBase v. 6.1 – CENTURA Softvare Corporation. Этот сервер разрабатывался
как альтернатива серверу DB2 на платформе Intel. Ранее фирма называлась
GUPTA, однако продукт поставлялся под тем же наименованием. Учитывая, что
рассматриваемая версия является шестой, можно с уверенностью сказать, что
сервер является прекрасным, отлаженным и производительным решением для
рабочих групп.
Инсталляция и настройка
Поскольку описываемые продукты претендуют на персональное использование,
имеет смысл оценивать их как и все остальные продукты для персональных
компьютеров. Начнем с процесса инсталляции.
Процесс инсталляции и настройки имеет исключительно важное значение
для использования сервера в любой организации. Ресурсы большинства рабочих
групп, отделов и организаций часто ограничены и потому очень важно правильно
ими управлять. Как правило требуется возможность установки сервера человеком
не сведущим. Кроме того многие организации имеют стандартизованные сетевые
среды, поэтому добавление нового программного обеспечения требует увеличения
накладных расходов на сопровождение. Короче говоря чем проще инсталляция
и настройка, тем лучше.
Все рассмотренные продукты предлагают программы инсталляции.деинсталляции,
обладающие примерно равными возможностями. Выделилась только ORACLE, инсталлятор
которой является фирменной разработкой и по внешнему виду сильно отличается
от принятого в мире Windows. Но по функциональным возможностям он ничем
не уступает другим продуктам, а кое в чем даже превосходит их. В процессе
инсталляции продуктов создаются базы содержащие данные для примеров, описанных
в документации. В комплект всех продуктов входят утилиты, которые позволяют
протестировать правильность установки и настройки.
В целом можно сказать, что по критерию сложности установки рассмотренные
продукты находятся на одном уровне.
Соответствие стандарту языка SQL
Все три продукта, по заявленим поставщиков поддерживают стандарт ANSI SQL
89 и ANSI SQL 92 частично. Однако даже после беглого ознакомления со справочными
руководсвами становится ясно, что стандарт стандартом, а свой продукт ближе
к телу! Каждый из продуктов имеет большее или меньшее число расширений
и модификаций стандарных команд языка. Особенно здесь выделяется Personal
ORACLE, со своим PL SQL. Этот фирменный диалект языка обеспечивает удобство
работы, посредством введения процедурных расширений. Наличие таких расширений
существенно облегчает и упрощает процесс разработки приложений для сервера.
Соответствие стандарту, как можно более полное является залогим того,
что вы можете безболезненно перейти на другой сервер базы данных, в случае
необходимости. Причем это может быть не только старшие версии продуктов
линии одного производителя, но и совершенно другой продукт. Отклонения
от стандарта могут выражаться как в наличии расширений, так и в неполной
реализации тех или иных средств и свойств языка. В конце статьи имеется
сводная таблица в которой указаны особенности реализации и словарь поясняющий
термины.
Кратко следует остановиться на следующих возможностях описанных стандартом.
Одним из первых в стандарте описывается набор типов данных, которые
должны быть реализованы на сервере. Все рассматриваемые серверы соответствуют
в этом отношении стандарту. Кроме того, все серверы поддерживают строковые
данные переменной длины, описание реализации которых отсутствует в стандарте.
Эта возможность описывается стандартом SQL92. Этот же стандарт описывает
битовые данные фиксированной и переменной длины, и темпоральные типы данных
(data, time, interval). Все рассматриваемые серверы позволяют реализовать
хранимые процедуры, триггеры, курсоры и декларативную целостность, что
соответствует стандарту SQL92. Однако не все реализации не отличаются полнотой.
Например только SQL Anywhere и INTERBASE поддерживаетают каскадное обновление.
INTERBASE также поддерживает каскадное обновление. А SQLBase выделилась
реализацией сохраненных процедур – они пишутся на специальном языке – SAL.
Это может свести на нет переносимость сервера, поскольку язык больше не
кем не поддерживается. В стандарте SQL92 введено понятие схемы . Из всех
серверов рассмотренных в обзоре только INTERBASE не поддерживает схемы.Все
рассмотренные сервера поддерживают это понятие или его эквивалент. По мнению
автора одной из наиболее важной особенностей описанной стандартом SQL92
является поддержка национальных языков. Все серверы позволяют указать при
создании базы данных, какой национальный язык будет использоваться. Правда
стоит отметить, что качество поддержки заметно отличается от продукта к
продукту. Так например сервер SQL Anywhere поддерживает только кодировку
866.
Поддержка стандартов ПО промежуточного слоя
Если уж мы завели речь о стандартах, то стоит напомнить, что они разрабатываются
для обеспечения совместимости различных компонентов систем. Например ПО
для взаимодествия с сетями, базами данных и т.п. Такое ПО как правило существует
как слой между другими компонентами системы, что придает ему значительную
гибкость. В случае с базами данных под таким ПО, мы будем понимать средства
физического доступа к данным. Хотя существует и другие классы этого ПО,
например мониторы транзакций, очередей , конверторы, адаптеры и т.п. Мы
ограничимся рассмотрением интерфейсов (API). Которые позволяют унифицированно
обращаться к данным различной физической структуры.
INTERBASE
В комплекте поставки имеется 32bit-й драйвер ODBC, что позволяет получать
доступ к серверу при помощи любого ODBC совместимого инструмента. Не стоит
забывать так же о том, что фирма InpriseBorland играет на рынке баз данных
не последнюю роль. Поэтому для сервера INTERBASE существуют родные драйверы
поставляемые со множеством продуктов, начиная от DELPHI и заканчивая PARADOX,
теперь уже COREL. Автору известны так же продукты других сторонних поставщиков,
использующих ПО IDAPI. Кроме того BorlandInprise предлагает технологию
Express Link. Эта технология позволяет настольным приложениям, таким как
PARADOX, dBASE и др. Использовать навигационные возможности ядра сервера
(Смю раздел уникальные возможности). При этом обеспечивается существенное
повышение быстродействия и не требуется переработки существующих приложений.
Sybase SQL Anywhere
SQL Anywhere 5.0 сейчас поддерживает ODBC 2.5 уровня 2 для операционных
систем Windows 95 и Windows NT. Для Windows 3.1 поддерживается спецификация
2.1
Кроме того в данной версии обеспечена поддержка фирменного продукта
Open Server Gateway, что позволяет SQL Anywhere взаимодействовать с другими
серверами Sybase.
Personal ORACLE
На компакте имеется драйвер ODBC. Попытка установить соединение с помощь
этого драйвера окончилась неудачно. Однако свежие версии драйверов доступны
для свободной загрузки с домашней страницы ORACLE. Кроме того на компакте
имелся набор компонентов OLE, для обеспечения связи с сервером. Их использование,
способно облегчить доступ и работу с сервером из любого пользовательского
приложения, поддерживающего этот стандарт.
SQLBase
Как и каждый уважающий себя поставщик, компания CENTURA поставляет полный
спектр решений. Это относится и к ПО промежуточного слоя. Сервер позволяет
осуществять подключение клиентов в стандарте ODBC. Найти соответствующий
драйвер не представляет проблемы.
Средства администрирования
Понятно наверное желание пользователя, после достаточно
простой инсталляции продукта, получить удобные средства работы с ним. Мы
ведь сильно избалованы последними версиями локальных баз данных под Windows.
Все рассмотренные продукты имеют предоставляют различный уровень сервиса.
Этот сервис в первую очередь касается конечно средств администрирования.
Автор берет на себя смелость обратить внимание читателей на следующую завасимость
– чем сложнее и совершенне продукт, тем более скудны средства работы с
ним. Хотя в последнее время ситуация стала несколько исправляться. Остановимся
несколько подробнее на средствах входящих в каждый пакет.
INTERBASE
В некоторых сравнительных обзорах, публикуемых фирмой InpriseBORLAND специально
подчеркивается простота работы с сервером INTERBASE. И действительно этот
сервер требует, пожалуй наименьшей настройки и администрирования. С помощью
входящей в комплект поставки утилиты Server Manager Вы можете подключиться
к серверу и осуществлять его настройку. Осуществить подключение можно как
к локальному серверу, так и сетевому, если такой имеется.
Надо отметить, что действий, которые Вы можете выполнить с помощью утилиты
совсем немного, всего на два меню. Однако каждый из пунктов этих меню позволяет
выполнить автоматически настройку множества параметров, проверить состояние
базы, выполнить ее затенение (тоже самое, что и зеракальная копия), определить
пользователей имеющих доступ к серверу. Все работает быстро и без проблем.
Охвачены все аспекты настройки сервера.
В пятой версии продукта наконец-то произошли некоторые изменения с утилитами,
правда по большей части косметические. Несколько изменился интерфейс утилиты
для выполнения интерактивных запросов, но функциональность ее не расширена.
В ней себя могут удобно чувствовать профессионалы, но не новички. Появилась
утилита для управления лицензиями и некоторые другие.
Но всетаки эти утилиты оставляют желать лучшего. Может быть это маркетинговый
ход, ведь Вы всегда можете приобрести другой продукт этой же родительской
фирмы, который послужит прекрасным клиентским приложением для INTERBASE
- Paradox. Невероятная популярность DELPHI, тоже делает свое дело. Постоянно
расширяется число продуктов поддерживающих INTERBASE. В их числе есть и
приличные утилиты администрирования.Однако хотелось бы чтобы фирма BORLAND
продолжала совершенствовать продукт, ведь он уже давно практически не изменялся.
Кроме того с инструментальными средствами фирмы поставляется утилита SQL
Explorer, которая позволяет выполнять операции над объектами баз данных.
Ничего подобного в комплект поставки самого сервера не входит. Вместо этого
вам предлагается старомодная утилита WSQL. В ней себя могут удобно чувствовать
профессионалы, но не новички. Но может быть это маркетинговый ход BORLAND,
ведь Вы всегда можете приобрести другой продукт этой же фирмы, который
послужит прекрасным клиентским приложением для INTERBASE - Paradox. Невероятная
популярность DELPHI, тоже делает свое дело. Постоянно расширяется число
продуктов поддерживающих INTERBASE. В их числе есть и приличные утилиты
администрирования.
Sybase SQL Anywhere
Автору довелось видеть ранние версии продукта, когда он еще принадлежал
фирме WATCOM. Тогда сервер мог функционировать в среде старушки DOS. И
неплохо функционировать! Но вот работать с ним было достаточно тяжело.
Никаких удобств, все только из командной строки. Поэтому после инсталляции
было чувство приятного удивления. Продукт проделал большой путь от неуклюжего
гадкого утенка до красавца лебедя!
Видимо при разработке всех средств входящих в состав пакета во главу
угла ставилось удобство работы. Автору очень понравилась утилита SQL Central.
Она предлагает сервис просто невиданный и недоступный другим продуктам,
рассматриваемым в обзоре. Практически все действия начиная от создания
базы и кончая ее репликацией можно выполнить с помощью дружественных и
всеохватывающих волшебников. Просто блеск. Документация полная и подробная.
Все утилиты могут также запускаться в старом стиле – с командной строки,
но в этом нет никакой надобности.
Personal ORACLE
Средства администрирования входящие в комплект поставки сервера вызывают
разочарование. Именно разочарование, поскольку жаловаться на их функциональные
особенности просто грех. Разочарование вызвано тем, что утилита SQL DBA
выполняется в текстовом режиме. В век графических интерфейсов это по меньшей
мере странно. Однако с этим можно мириться, поскольку с помощью этой утилиты
можно выполнять любые действия по настройке базы данных и сервера. В комплект
поставки также входит несколько других утилит, в частности Personal Navigator,
Recovery Manager, Backup Manager и Oracle Administrator. Эти утилиты уже
имеют интерфейс в стиле Windows и поэтому удобны в использовании, однако
они разрознены. Сервер ORACLE имеет наибольшие возможности из всех рассмотренных
по конфигурированию. Посредством SQL DBA доступны все опции конфигурации,
однако огромное их число требует высокой квалификации пользователя. Под
Windows NT сервер запускается в режиме сервиса и поэтому управление им
также возможно осуществлять посредством Control Panel.
SQLBase
В комплект поставки сервера входит средство администрирования сервера под
названием SQL Console. Этот продукт только немного не дотягивает до удобств
предлагаемых SQL Central. Первое что бросается в глаза это внешняя схожесть
этих средств. Но на этом все не заканчивается. Средство администрирования
сервера SQLBase предлагает такие же возможности. Посредством его можно
выполнять создание, модификацию и удаление объектов базы, осуществлять
центарлизованное управление защитой и доступом на сервере. Так же как и
в продуте SYBASE вы можете производить мониторинг производительности и
настройку репликации. Все действия возможно выполнить только с помощью
графического интерфейса. Разница заключается в том, что в продукте SYBASE
имеется большее количество волшебников, а в SQL Console приходится расчитывать
на систему помощи и собственные силы. Наличие средства SQL Console позовляет
получить еще несколько преимуществ. В первую очередь это расширенная функциональность.
Только в продукте фирмы CENTURA вы имеете возможность управлять расписаниями
событий, что позволяет настроить автоматическое выполнение многих административных
действий, таких как резервное копирование, репликация и т.п. Подобной возможности
или ее аналога нет ни в одном из других рассматриваемых продуктов.
Репликация
INTERBASE
В INTERBASE репликация не реализована. Автору известны некоторые продукты
третьих производителей реализующие эту функцию. Они реализуют возможности
репликации в той или иной мере, однако то что вы могли бы получить бесплатно,
нужно будет приобретать отдельно.
Sybase SQL Anywhere
В Sybase SQL Anywhere реализована репликация на основе событий. Кроме того
поддерживается репликация данных посредсвом Open Server Gateway, что позволяет
выступать Sybase SQL Anywhere в качестве узла при репликации Sybase Replication
Server. Отдельный продукт Replication Agent позволяет выступать Sybase
SQL Anywhere в качестве источника данных при репликации. Это достигается
также однотипностью данных и журналов транзакций.
Из полезных возможностей стоит отметить автоматическое разрешение конфликтов,
реализованное посредством специальных триггеров. В документации к продукту
указано, что потенциально возможна репликация на другие платформы, такие
как ORACLE, DB2, MS SQL Server.
Personal ORACLE
В процессе инсталляции пользователю задается вопрос – желает ли он инсталлировать
поддержку репликации. Ответив на этот вопрос положительно, Вы успешно потратите
драгоценное место на диске, однако взамен получите лучшие возможности из
рассматриваемых в обзоре. В документации описаны следующие особенности:
поддержка симметричной синхронной и асинхронной репликации, поддержка двухфазной
транзакции, целостность при репликации, автоматическое детектирование конфликтов,
физическое и логическое распределение даз данных, прозрачность для пользователя,
поддержка стандарта XA группы Xopen (спецификация описывающая возможности
взаимодействия продуктов на уровне транзакций), прямое взаимодействие между
серверами. И это далеко не полный список возможностей. Все это великолепие
возможностей конечно нашло свое отражение и в расширениях языка. ORACLE
предоставляет наибольшие возможности по организации прозрачного для пользователя,
располажения данных.
SQLBase
По заявлениям фирмы CENTURA сервер SQLBase является первым сервером баз
данных, ориентированным на децентрализованные рабочие группы. Ключом к
удовлетворению потребностей таких групп, является несомненно поддержка
репликации.
Решения по репликации данных были доступны начиная с 1993г. Эти решения
как правило попадали в две большие категории – “data pump” и более изощренный
“store and forward”.
Разновидности второго метода в настоящий момент используются большинством
продуктов (в том числе SYBASE и ORACLE).
SQLBase представляет новую модель репликации, специально разработанную
для децентрализованных данных. Эта модель отличается следующими особенностями:
-
Возможностью реплицировать данные в гетерогенных средах
-
Вертикально ориентрованностью (репликация осуществляется между серверами
различных уровней организации, а не между серверами одного уровня как в
других системах)
-
Идеальной поддержкой мобильных клиентов
-
Наличием графических средств администрирования.
По мнению авора отличия данной модели репликации скорее концептуальные,
чем технические. Как и другие системы SQLBase обеспечивает поддержку целостности
данных, автоматическое пердотвращение и разрешение конфликтов.
Поддержка INTERNET
INTERBASE
Как уже отмечалось ранее INTERBASE является платформой которая во многом
является передовой. Это относится и к поддержке INTERNET. В 1996 г. в числе
первых фирма Borland анонсировала пакет InterClient. Полностью написанный
на языке JAVA и совместимый с протоколом JDBC, InterClient позволяет осуществлять
доступ к серверу INTERBASE из INTERNET. В отличие от многих других драйверов
JDBC InterClient способен функционировать на всех платформах, которые поддерживаются
INTERBASE. InterClien представляет собой драйвер класса А (по спецификации
JDBC). Драйвера класса А предполагают прекрасную гибкость и производительность,
поскольку они написаны непосредственно на языке JAVA. Они не велики по
размеру и являются наилучшим решением при распространении приложений в
INTERNET. InterClient обеспечивает доступ к базе данных без потребности
в библиотеках на стороне клиента. Как результат разработчик может распространять
приложение без предварительной установки дополнительного ПО. Клиентская
часть приложения конфигурируется автоматически при загрузке.
Sybase SQL Anywhere
В стандартную поставку SYBASE SQL Anywhere не входит каких либо средств
поддержки сети сетей. Однако видимо желая исправить эту ситуацию, SYBASE
выпустила редакцию Professional своей базы. Одно из основных ее отличий
это наличие в поставки средства NetImpact Dinamo. С помощью него пользователь
может быстро создавать шаблоны, HTML страницы со встроенными выражениями
на языке SQL, которые создают динамическое наполнение страницы. Утилита
SQL Central расширена волшебниками, облегчающими процесс создания и справления
узлами. NetImpact Dynamo идеально подходит для построения интрасетей, поскольку
в комплекте имеется большая библиотека шаблонов и обеспечена совместимость
с макроязыком JavaScript. Кроме того обеспечена возможность хранения всех
данных непосредственно в базе данных.
Personal ORACLE
В продукте Personal ORACLE отсутствует непосредственная поддержка INTERNET.
Однако учитывая развитые возможности процедурных расширений языка, представляется
вероятным, реализация скажем динамической генерации страниц HTML, чисто
программыми средствами. Кстати сказать в комплект поставки старших продуктов
линии, входят стандартные пакеты PL SQL, осуществляющие данную фозможность.
SQLBase
О средствах поддержки INTERNET сервером SQLBase автору ничего не известно.
Однако учитывая, что средство разработки CENTURA, позволяет генерировать
приложения для работы с INTERNET, надо полагать, что такие существуют в
природе.
Средства разработки
Поскольку серверы баз данных не являются законченными деловыми решениями,
всегда интересен вопрос – как на их основе получить бизнес приложения.
Купив и установив SQL сервер в получите в большинстве случаев только основу
для построения такого решения.
Вполне очевидно, что преобретая один продукт у поставщика за другим
Вы пойдете к нему же.
В случае с рассматриваемыми продуктами это еще раз находит свое подтверждение.
BORLANDInprise предлагает полный спектр продуктов для разработчика.
Сюда входят DELPHI, C++ Builder, Borland C++ 5.02, Visual dBASE, Report
Smith. Не отстают и другие поставщики. SYBASE предлагает спектр полный
продуктов, начиная от компонентов и серверами транзакций. От додного поставщика
можено приобрести: Power Designer – средства моделирования баз данных,
Power++ (бывшая OPTIMA++) – средство быстрой разработки на С++, Power Builder
– средство разработки четвертого поколения. Вообще по мнению автора, позиция
SYBASE в отношении развития своих продуктов сейчас одна из самых привлекательных
и перспективных. ORACLE является лидером индустрии и поэтому в ее торговых
рядах в можете подобрать себе средства разработки на любой вкус. Однако
стоит отметить, что эти средства ориентированы на разработку крупных проектов,
и поэтому требуют высокой квалификации разработчиков и финансовых затрат.
Однако они обеспечивают недостижимо высокий уровень масштабируемости и
переносимости приложений. Что касается фирмы CENTURA, то наверное многим
известен ее флагманский продукт – SQLWindows. Весьма продвинутое средство
разработки четвертого поколения. Кроме того совсем недавно между CENTURA
и PROGRESS Software достигнута договоренность о взаимном лицензировании
технологий. Это означает, что высокоуровневые возможности среды разработки
PROGRESS, будут распространяться и на сервер SQLBase.
Уникальные особенности
INTERBASE
По мнению автора INTERBASE обладает самым широким набором уникальных возможностей
из всех рассматриваемых продуктов. Подробнее рассмотрим некоторые из них.
INTERBASE разрабатывалась для работы в тяжелых условиях среды клиент-сервер
и поэтому для достижения высокой производительности каждый производитель
применял какие-либо хитрости.
Наибольшей хитростью в INTERBASE по мнению автора является то, что он
имеет активное ядро. Что это такое спросите вы. Представьте себе, что несколько
пользователей работают с одиними и теми же данными. Один из них обновил
запись. Увидят ли эти изменения другие пользователи. Да увидят! Но для
этого обязательно необходимо проделать некоторую дополнительную рабату.
При обычном подходе (используемом большинством других баз данных) пользователь
должен заново перечитать данные с сервера. Это приводит к высокому траффику
в сети и как следствие к низкой производительности. INTERBASE позволяет
избежать этого с помощью механизма уведомлений. Каждый пользователь работающий
с базой данных регистрирует свой интерес к определенным событиям. Когда
одно из этих событий наступает, INTERBASE посылает клиентскому приложению
уведомление, о том что сабытие наступило. При этом клиентское приложение
может принять решение как обработать это событие. Не требуется постояннного
опроса базы данных и излишнего их зачитывания. Просто и эффективно.
Еще одной особенностью INTERBASE способной повысить производительность
является способность сервера обрабатывать массивы данных. В обычной ситуации
массивы представляются сервером как набор записей. При этом для редактирования
массива 10x10x10 требуется зачитать тысячу записей. Для каждой записи также
необходимо обновлять индексы, если такие имеются. INTERBASE способен хранить
многомерные массивы в одном поле. При этом обновление и редактирование
данных происходит значительно быстрее, поскольку снижается количество блокировок
данных при чтении и редактировании.
Одной из особенностей INTERBASE, реализованной еще только в ORACLE,
является многоверсионная архитектура. Это означает, что когда пользователь
редактирует запись, он редактирует ее копию – так называемую версию. При
этом транзакции на чтение не блокируют транзакции записи и обновления и
наоборот. Ядро сервера отслеживает версии и приводит базу к актуальному
виду. Это позволяет существенно повысить производительность. Кроме того
это снижает требования к ресурсам, поскольку версии хранят только изменеия
данных.
В мире реляционной алгебры царит идеальный порядок. Идеальный потому,
что все разработчик оперирует абстрактными наборами данных – идельными
таблицами. Это и хорошо и плохо одновременно. Хорошо потому, что вы можете
изменит десять записей так же лекго, как и одну. Плохо потому, что вы абстрагированы
от физической структуры данных. Вы не всегда знаете сколько у вас записей,
в каком порядке они следуют и т.п. Это сказывается на производительности.
Вы должны явно указывать серверу как возвращать вам данные. Все настольные
базы данных позволяют осуществлять передвижения от одной записи к другой.
В реляционных базах для достижения этого необходимо использовать особые
средства. Но из всякого правила существуют исключения. Таким исключением
является INTERBASE. Ядро этого сервера позволяет осуществлять навигационный,
позаписный доступ к данным.
Как уже упоминалось ранее Interbase реализует новую технологию серверного
ядра – SuperServer. Суть ее состоит в том, что для обработки каждого запроса
пользователя сервер порождает не новый процесс, а только поток. Это позволяет
снизить аппаратные потребности, увеличить стабильность работы и увеличить
производительность.
В последнее время появились сообщения о выпуске баз данных, которые
поддерживают “длинные” форматы данных – различные мультимедиа, научные,
картографические и т.п.
В INTERBASE имеется возможность расширять функции ядра для обработки
подобных данных. Называется она – фильтры. Разработчик имеет возможность
посредством API создать свой фильтр для обработки специализированных данных.
Причем эта возможность существует уже давно.
Sybase SQL Anywhere
Как уже отмечалось ранее продукт был приобретен фирмой SYBASE вместе с
фирой PowerSoft. В результате этого слияния был принят курс на обеспечение
совместимости между SQL Anywhere и SYBASE SQL Server. По мнению автора
это имело некоторые интересные последствия. Самое главное из них, то что
при разработке базы данных вы можете использовать два диалекта языка SQL,
причем вы можете совмещать их! Это дает возможность использовать наиболее
выгодные возможности каждого из диалектов, таг где это необходимо. Кроме
того существенно расширяются возможности по переносу на другие платформы
разработанных ранее приложений.
Personal ORACLE
Продукт обладает шиырокой функциональностью, однако все его возможности,
по мнению автора, вряд ли могут претендовать на уникальность. Пожалуй стоит
всеже отметить PL SQL как богатый язык. Он кроме того может использоваться
в клиентских приложениях. Средства разработки корпорации ORACLE позволяют
наглядно продемонстрировать эту возможность. Вы можете просто пертащить
блок кода с клиента на сервер и обратно. Обеспечивается полная переносимость.
Однако это все доступно только в старших продуктах линии. Конкретно в Personal
ORACLE автору этого увидеть не удалось.
SQLBase
Ранее уже упоминалось о том, что для написания сохраненных процедур в среде
сервера SQLBase используется специализированный язык. Это имеет как свои
преимуществы так и недостатки. Преимущества заключаются в том, что язык
этот – язык четвертого поколения из среды разработки CENTURA. Из этого
вытекает удобство программированя, поскольку язык имеет выразительные процедурные
средства. Но при использовании этого языка в рискуете потерять переносимось
своего приложения. Правда стоит отметить, что сервер реализован для достаточно
широкого круга платформ. Еще одной особенностью является то, что сервер
не имеет специальной команды начала транзакции. Все транзакции начинаются
автоматически, пользователь может подтвердить или откатить тарнзакцию.
Субъективные впечатления
Автор уже несколько лет уделяет пристальное внимание изучению возможностей
и направленя развития SQL серверов. При этом в различное время приходилось
работать с различными серверами. Конечно каждый из них имеет свои ограничения
и недостатки. При переходе от одного сервера к другому, первое что проверяется,
решены ли в нем существующие проблемы. И поэтому у автора накопился некоторый
запас “тестовых” запросов и приложений. Естественно они были применены
и к рассматриваемым серверам Вот несколько примеров.
Выполняется запрос, производящий вставку записей в таблицу из которой
они этим же запросом и выбираются. Таким образом проверяется целостность
транзакции чтения. SQL Anywhere, SQLBase и Personal ORACLE прошли этот
тест без проблем. А вот INTERBASE выполнял бесконечный цикл вставки. Возможно
это связано с поддержкой многоверсионности, однако в документации по этому
поводу нет никаких замечаний. Другой тест это – порождение версии изменяемой
записи, посредством триггера. Здесь уже ORACLE сел в лужу. Однако в документации
черным по белому написано, что это особенность называется – мутирующая
таблица. Стоит отметить, что наличие таких задокументированных или нет
особенностей может существенно осложнить жизнь разработчику.
Требования к аппаратному обеспечению
|
INTERBASE |
SQL Anywhere |
Personal Oracle |
SQLBase |
Процессор |
386 (486 и выше) |
386 (486 и выше) |
386 (486 и выше) |
386 (486 и выше) |
Оперативная память |
168 |
8 |
8 (12) |
4 |
Место на диске (M) |
<10 |
<20 |
50 |
>30 |
Сводная таблица возможностей
|
INTERBASE
|
SQL Anywhere
|
Personal Oracle
|
SQLBase
|
Инсталляция |
|
|
|
|
Создание демонстрационной базы |
|
|
|
|
Установка драйверов |
|
|
|
|
Программы деинсталляции |
|
|
|
|
Перносимость |
|
|
|
|
DOS |
|
|
|
|
Windows 3.1 |
|
|
|
|
Windows 95 |
|
|
|
|
Windows NT |
|
|
|
|
UNIX |
|
|
|
|
OS/2 |
|
|
|
|
NetWare |
|
|
|
|
Сетевые протоколы |
|
|
|
|
TCP/IP |
|
|
|
|
IPX/SPX |
|
|
|
|
NetBios |
|
|
|
|
Winsoket |
|
|
|
|
Nimed Pipes |
|
|
|
|
SQL |
|
|
|
|
Декларативная целостность |
|
|
|
|
Процедурная целостность |
|
|
|
|
Каскадное удаление |
|
|
|
|
Каскадное обновление |
|
|
|
|
Типы данных в соответствии со стандартом SQL
92 |
|
|
|
|
Пользовательские типы данных (домены) |
|
|
|
|
Триггеры |
|
|
|
|
Процедуры |
|
|
|
|
Генераторы последовательностей |
|
|
|
|
Серверные курсоры |
|
|
|
|
Процедурные расширения |
|
|
|
|
IF ELSE |
|
|
|
|
CASE |
|
|
|
|
FOR |
|
|
|
|
WHILE |
|
|
|
|
Защита данных |
|
|
|
|
Группы пользователей (роли) |
|
|
|
|
Зеркалирование данных |
|
|
|
|
Архивирование данных |
|
|
|
|
Журналирование транзакций |
|
|
|
|
Особенности сервера |
|
|
|
|
Многоверсионность |
|
|
|
|
Активное ядро |
|
|
|
|
Уведомления |
|
|
|
|
Автоматические транзакции |
|
|
|
|
Двухфазная таранзакция |
|
|
|
|
Массивы |
|
|
|
|
Навигационный доступ |
|
|
|
|
Пользовательские функции |
|
|
|
|
Дополнительные возможности |
|
|
|
|
Планировщик задач |
|
|
|
|
Профайлер |
|
|
|
|
Сервис мониторинга |
|
|
|
|
Советы по выбору
Исходя из вышесказанного, можно дать некоторые рекомендации по выбору сервера.
Автор представит их в виде проставления оценки и комментариев по нескольким
категориям.
Простота использования
в порядке возрастания сложности:
-
INTEBASE, SQL Anywhere, SQLBase (приблизительно одинаковы)
-
Personal ORACLE
-
INTERBASE v 5.0 серьезно продвинулась в этом направлении, в связи с включением
в постаку библиотеки пользовательских функций (в основном математические
и строковые). Однако продукту по-прежнему очень не достает функций работы
с датами.
Производительность
в порядке возрастания. Впечатления чисто субъективные.
-
INTEBASE
-
Personal ORACLE
-
SQLBase
-
SQL Anywhere, INTEBASE
Приятно удивляют и радуют INTERBASE и SQL Anywere. Стремительное выполнение
запросов. INTERBASE очень прибавила по этому показателю по сравнению с
предыдущими версиями. Возможно дело в новом файловом формате хранения данных.
Или может быть в новом оптимизаторе запросов. Или оптимизированных индексах.
Да много всего наворотили в этой версии.
Простота программирования
в порядке возрастания
-
SQLBasee
-
INTEBASE
-
Personal ORACLE, INTEBASE
-
SQL Anywhere
В этой области впечатления наверное наиболее субъективны. Нужно просто
взять продукт и изучить его от корки до корки. И тогда все будет просто
и красиво. В каждом продукте есть свои прелести и недостатки.
Что дальше?
Пока данная статья готовилась к выпуску, произошло несколько событий. Фирма
Borland выделила в отдельмую фирму группу разработчиков INTERBASE. Фирма
эта называется INTERBASE SOFTWARE, и занимается только базой данных и сопутствующими
продуктами. О том, что дела у нее идут не плохо, говорит тот факт, что
очень быстро после образования фирмы вышла новая версия флагманского продуктаInterbase
Software следуя почину Netscape, выпустила бесплатный сервер для LINUX.
И хотя это только четвертая версия INTERBASE, это всетаки будет один из
первых коммерческих серверов для этой платформы. Фирма Centura также не
стоит на месте. Вышла седьмая версия SQLBase, в том числе и для платформы
Novell. Но и это еще не все. Microsoft изъявила претензии на свою долю
пирога. Очень долго никто не вспоминал о гиганте на поле битвы серверов
баз данных низкого уровня. Около года назад в прессе промелькнуло сообщение
о портировании MS SQL Server на платформу Windows 95. Но тогда большинство
экспертов скептически отнеслось к заявлениям Microsoft. Дескать где им
серым. И вот теперь случилось. Microsoft начала второе beta тестирование
седьмой версии SQL Server. И что бы вы думали? Это будет первая версия,
которая сможет выполняться на Windows 95. И если она будет иметь полную
функциональность, то всем другим игрокам придется очень туго. Кроме того
в поставку будет входить сервер OLAP – Plato. Это вновь поднимет планку
передовых возможностей серверов баз данных.
Каждый из новых продуктов предлагает массу усовершенствований, которые
усилят его положение в конкурентной борьбе. К сожалению, автору не удалось
лично ознакомиться с новыми версиями к моменту выхода статьи. Дополнительную
информацию по рассматриваемым продуктам можно получить по следующим адресам:
INTERBASE:
http://www.interbase.com
http://www.interface.ru
SQL Anywhere
http://www.sybase.ru
http://www.sybase.com
SQLBase
http://www.centurasoft.com
http://www.interface.ru
Personal ORACLE
http://www.oracle.com
http://www.interface.ru
Interface Ltd.