Обзор 32-разрядных SQL-систем фирм Gupta, Oracle и Sybase для ПК
PC Magazine/RE logo
(С) СК Пресс 5/96
PC Magazine, December 19, 1995, p. 233

Персональные SQL СУБД: все ближе к пользователю

Брайан Батлер


Небольшие, обладающие богатыми функциональными возможностями и дешевые СУБД способствуют переносу SQL-систем на настольные и портативные ПК.

Системы "клиент-сервер" уже сделали информацию ближе к тем, кто пользуется ею. Традиционный сюжет развити крупного предприятия состоял в постепенном отказ от дорогостоящих универсальных и мини-компьютеров, когда их функции расширяли и/или замещали ЛВС SQL-серверы СУБД, работающих под управлением операционных систем NetWare, OS/2, Unix и Microsoft Windows NT.

Следующий логический шаг состоит в переносе данных еще ближе к пользователю: SQL-системы приходят на настольные и портативные компьютеры. Таким образом информация поступает в распоряжение тех, кому она требуется более всего - разъездных коммивояжеров, оснащенных ноутбуками или менеджеров, работающих на дому. Кроме того, приближение информации к пользователям облегчает ее своевременный ввод и обновление. Если от переноса данных с универсальных ЭВМ в ЛВС большую выгоду получили крупные корпорации, от обмена информацией через ЛВС между серверами баз данных и настольными или портативными ПК выиграют все организации - и большие, и малые. Ключевые компоненты, которые позволят реализовать это, представляют собой облегченные, переносные и тем не менее обладающие богатыми функциональными возможностями версии больших SQL-систем, с которых началась революци "клиент-сервер".

В нашем последнем обзоре серверов SQL СУБД ("Большой скачок" PC Magazine/Russian Edition, 1/95, с. 20) мы описали программные продукты для серверов ЛВС, решающие задачи на уровне рабочей группы и предприятия в целом. С тех пор движение от ЛВС к настольным и портативным компьютерам стремительно нарастает. Изготовители занялись расширением функциональных возможностей, чтобы поддержать уникальную роль персональных SQL СУБД за счет упрощения административных функций, тиражировани данных и недорогой процедуры развертывания и запуска.

В этой статье мы рассматриваем три основные 32-разрядные персональные SQL-системы, предназначенные для использования в среде Windows 95: SQLBase, верси 6.02, компании Gupta, Personal Oracle7, версия 7.2 дл Windows 95, фирмы Oracle и SQL Anywhere, версия 5.0, компании Sybase. Все они содержат богатый набор функций, пригодных для применения на настольных и портативных компьютерах. Во время написания нашего обзора SQLBase уже поступила в продажу, тогда как Personal Oracle7 и SQL Anywhere проходили заключительные бета-испытания. Система Personal Oracle7, вероятно, станет доступной к моменту публикации этого материала. Появление в продаже SQL Anywhere ожидается в конце 1995 г.

Персональные SQL-системы: краткая информация

Gupta SQLBasePersonal Oracle7Sybase SQL Anywhere
Стоимость лицензии на одного пользователя, долл.395395295
Двунаправленные прокручиваемые курсоры+-+
Декларативная ссылочная целостность+++
Запускаемые процедуры+++
Хранимые процедуры+++
Возможность использования в качестве SQL-сервера в ЛВС+-+
Двунаправленное тиражирование-++
Встроенная система упаковки баз данных--+
Графические средства администратораSQL ConsoleOracle NavigatorSQL Central
Подключение к фирменным серверам уровня предприятияN/AОбщая основа кода для всех платформTransact-SQL, шлюз Open Server
N/A - неприменимо. Gupta не производит серверы уровня предприятия.

Gupta SQLBase

Пакет SQLBase компании Gupta был первой SQL СУБД, изначально созданной как небольшой процессор СУБД дл работы в архитектуре "клиент-сервер" на ПК. В нем также впервые появились определенные хитроумные функции, особенно полезные для Windows-приложений, такие, как двунаправленные средства прокрутки курсоры (табличные указатели).

В версии 6.0 - первой существенно переделанной редакции SQLBase Server за последние три года - значительно расширен набор функций и устранено несколько проблем, с которыми мы сталкивались в предшествующих редакциях. К новым возможностям относится работа с хранимыми и запускаемыми процедурами, событиями таймера и распределенными транзакциями, а также усовершенствованные утилиты установки и настройки конфигурации SQLBase. Gupta, кроме того, значительно увеличила емкость СУБД SQLBase (теперь компания заявляет о возможности работы с СУБД размером до 10 Гбайт). SQLBase гордится новой подсистемой загрузки баз данных, которая значительно ускоряет эту процедуру.

Sybase SQL ANywhere

За время своего существования прямой предок SQL Anywhere - пакет Watcom SQL - завоевал солидную репутацию благодаря небольшому размеру, стабильности, простоте установки и низкой начальной цене. С недавних пор для Watcom SQL наступили беспокойные времена. Компания Watcom International была приобретена фирмой Powersoft, которую в свою очередь поглотила Sybase. К счастью, компания Sybase серьезно отнеслась к наследству Watcom и принялась "преумножать" его. В настоящее время Sybase работает над включением пакета Watcom SQL как существенной составной части в свой общий проект на уровне предприятия, осуществляя его тщательную интеграцию с остальными программными продуктами СУБД Sybase SQL Server. Начиная с выпускаемой версии (которая при ином развитии событий называлась бы Watcom SQL, версия 5.0), Sybase переименовывает продукт в Sybase SQL Anywhere.

Пакет Sybase SQL Anywhere предоставит возможность тиражирования данных, новые средства управления базами данных, обеспечит работу с ODBC 2.0 и повышенную производительность. Компания Sybase расширила язык SQL Anywhere, добавив средства, обеспечивающие совместимость с диалектом Sybase Transact-SQL - тем самым диалектом, который "понимают" корпоративные серверы баз данных Sybase SQL Server. Кроме того, Sybase создала шлюз Open Server gateway for SQL Anywhere, позволяющий серверу баз данных SQL Anywhere работать с приложениями-клиентами Sybase Open. Поскольку в Open Server обеспечивается работа со всеми традиционно используемыми сетевыми протоколами и операционными системами клиентов, в SQL Anywhere значительно возрастет число возможностей, предоставляемых пользователю.

Personal Oracle7

В отличие от СУБД SQLBase фирмы Gupta или SQL Anywhere фирмы Sybase, которые с самого начала создавались как персональные SQL-системы, исходное назначение пакета Oracle7 - работа в качестве сервера предприятия. Система Personal Oracle7, построенная на базе процессора СУБД Oracle7, обеспечивает полную совместимость и функциональные возможности Oracle7, в том числе ссылочную целостность, запускаемые и хранимые процедуры, а также изощренную систему управлени диском. Однако ей не хватает средств для работы с распределенными базами данных, которые есть у родственной ей системы, ориентированной на обслуживание предприятия.

Одна характерная черта, доставшаяся Personal Oracle7 в наследство от корпоративной системы, - потребность в обширных ресурсах. Для базовой инсталляции требуется не менее 50 Мбайт на диске, а рекомендованный минимум ОЗУ - 8 Мбайт. На практике мы установили, что программе требуется не менее 16 Мбайт ОЗУ и около 75 Мбайт на диске. По сравнению с этим запросы пакетов SQLBase и SQL Anywhere тривиальны: для каждого нужно только около 20 Мбайт на диске и 8 Мбайт ОЗУ.

Версия Personal Oracle7, которую мы испытывали (7.2), существенно улучшена по сравнению с предшествующими. В ней не только используютс достижения в технологии баз данных, внедренные в последние версии серверов Oracle7, но и повышена производительность и упрощено администрирование. Предшествующая версия, Personal Oracle7 for Windows, представляла собой Win32s-программу, созданную дл работы в среде Windows 3.1. Ее производительность была весьма ограничена из-за переключения между 16- и 32-разрядными API. По утверждению фирмы Oracle, в версии 7.2 обеспечено четырехкратное повышение производительности благодаря собственной 32-разрядной архитектуре. (Хотя мы не проводили полных испытаний, новая редакция сервера действительно работала значительно быстрее.)

В число новых функций версии Personal Oracle7 дл Windows 95 входят улучшенные административные средства, динамическое расширение баз данных, определяемые пользователем функции хэширования, более быстрое создание индексов, возможности работы с модулями на Си++ и передачи многострочных итоговых наборов из хранимых процедур. Возможно, наиболее интересная из новых особенностей пакета - дублирование данных из более крупных СУБД, что делает Oracle7 единственной системой, обеспечивающей прозрачный перенос информации с настольного ПК на универсальную ЭВМ.

Внутри процессора СУБД

Как SQL Anywhere, так и SQLBase дают возможность использовать Windows 95 в качестве платформы сервера для других станций-клиентов в рабочей группе. Следовательно, в небольших подразделениях машина с Windows 95 способна играть роль сервера базы данных (хотя мы предполагаем, что для реализации приложений рабочей группы используется Windows NT). Пакет Personal Oracle7, как видно из его имени, - это однопользовательская СУБД, не предусматривающа подключения клиентов через ЛВС. Однако компания Oracle готовит версию Oracle7 Workgroup Server for Windows 95, которая будет предоставлять такую возможность.

Поразительно, насколько полно реализованы новейшие функции процессоров СУБД во всех рассматриваемых нами персональных SQL-продуктах. Например, все они облегчают работу с хранимыми и запускаемыми процедурами и, за исключением Personal Oracle7, с двунаправленными курсорами прокрутки. Все три пакета обеспечивают декларативную ссылочную целостность и возможность выполнения ограниченных и каскадных удалений. Personal Oracle7 - единственный продукт, у которого нет опции Set Null. В SQL Anywhere используется расширенный язык диалога с опцией Set Default, позволяющий обновлять ссылку на внешний ключ записи потомка на значение по вашему выбору. И Personal Oracle7, и SQL Anywhere позволяют накладывать ограничения целостности дл колонок.

При использовании пакетов Personal Oracle7, SQLBase и SQL Anywhere администраторы могут указывать, будет ли запускаемая процедура выполняться до или после вызвавшей ее операции (INSERT, UPDATE или DELETE). Как Personal Oracle7, так и SQLBase способны выполнять хранимые процедуры на сервере в заданное время. Это имеет большое значение для выполнения задач по обслуживанию системы, таких, как обновление статистических показателей или подготовка отчетов в ночное время.

Все изделия предусматривают использование обновляемых представлений, которые позволяют выполнять операции UPDATE, INSERT и DELETE над образом базы данных. Но только в Personal Oracle7 и SQLBase имеетс опция Check, гарантирующая, что результаты вставки и обновления представляют собой строки, которые можно выбирать с помощью запроса через представление базы данных.

Сжатие

На портативных компьютерах дисковое пространство всегда дефицит. В соответствии с этим SQL Anywhere позволяет работать со средствами сжатия дисков, имеющимися в Windows 95 или встроенными средствами сжатия баз данных. Пакет SQLBase фирмы Gupta работает со средствами сжатия данных на диске операционной системы Windows 95, но ему не хватает встроенной подсистемы для сжатия баз данных. Программа Personal Oracle7 не позволяет использовать подсистему Windows 95 для сжатия файлов баз данных (однако код прикладной программы может размещаться на сжатом диске) и не имеет встроенной подсистемы сжатия баз данных.

Язык SQLBase для хранимых и запускаемых процедур основан на языке программирования SQL Windows Application Language (SAL), который обеспечивает тесную связь SQLBase с системой SQLWindows - хорошо известным интерфейсом фирмы Gupta для разработчиков. Это позволяет программисту, использующему SQLWindows, тестировать коды хранимых процедур в рамках отладчика SQLWindows до записи их на сервер. (Возможно, до загрузки потребуется слегка скорректировать хранимые процедуры, чтобы разделить код для клиента и сервера.)

Пакет SQL Anywhere уникален тем, что обеспечивает возможность работы с двумя различными языками: традиционной реализацией языка SQL фирмы Watcom и Transact-SQL компании Sybase. Наличие дополнени Transact-SQL означает интеграцию созданного фирмой Watcom пакета SQL Anywhere в программное обеспечение компании Sybase. Это облегчит миграцию между продуктами Watcom SQL и серверами баз данных Sybase. Кроме того, Sybase планирует выпустить шлюз Open Server for SQL Anywhere, с помощью которого приложения-клиенты Sybase получат доступ к данным, хранящимся в базах данных SQL Anywhere. Open Server for SQL Anywhere может запускаться на той же самой машине, что и SQL Anywhere (хотя версии Open Server для Windows 95 не будет).

Преимущество пакета SQL Anywhere по сравнению с SQLBase состоит в возможности работать в масштабах всего предприятия. С помощью шлюза Open Server пакет SQL Anywhere получает доступ к услугам сервера тиражирования Sybase Replication Server и возможность работать со всеми платформами клиентов, которые использует SQL Server. Однако SQL Anywhere имеет один недостаток: несмотря на то, что Open Server обеспечивает связь прикладных программ Sybase с базами данных SQL Anywhere, он не позволяет разработчикам создавать без хлопот программы Sybase на настольной системе в Windows 95. Хотя пакет SQL Anywhere "понимает" Transact-SQL, он не обеспечивает возможности работы с библиотекой DB-Library (интерфейс для программ на языке Си компании Sybase). Следовательно, хотя вы и можете разрабатывать программы, которые будут переносимы на Sybase Server, однако для их создани необходимо использовать ODBC или такой язык программирования четвертого поколения, как PowerBuilder компании PowerSoft.

По мере того как компания Oracle переходит к широкому распространению процессора своей СУБД по всему спектру от настольных до универсальных компьютеров, ей приходится пересматривать некоторые элементы базовой архитектуры этого процессора. Например, добавление динамически расширяемых файлов баз данных не составляет большой административной проблемы для сервера централизованной базы данных, но при развертывании сотен баз данных Oracle7 в рабочих группах и у мобильных пользователей такая проблема, несомненно, возникнет. С выпуском СУБД Personal Oracle7 версии 7.2 появилась возможность автоматического расширения (а в некоторых случаях, когда требуется пространство, и уменьшения) файлов баз данных, что сокращает необходимость ручного вмешательства, облегчает работу администратора и повышает степень доступности.

Windows 95: раздвоение личности

Внешне система Windows 95 выглядит достаточно безобидной. Однако без подводных камней не обошлось: эта операционная система состоит из двух отдельных подсистем - для 16- и 32-разрядных прикладных программ. Как мы выяснили после установки 32-разрядных версий наших персональных SQL СУБД, использование 16-разрядных средств разработки, например PowerBuilder или Delphi, может привести к возникновению проблем.

Первая из них состоит в том, что придется иметь две версии драйверов собственно СУБД, два драйвера ODBC и два администратора ODBC, по одному для 16-разрядных, а другой для 32-разрядных приложений. Это влечет за собой отдельную настройку обеих подсистем и проверку версий. Каждое инструментальное средство также устанавливает свою собственную версию администратора ODBC, которую придется проверять на соответствие. (Если Microsoft столь увлечена ODBC, удивительно, почему она не сделала ODBC стандартным компонентом Windows 95.) Мы обнаружили, что собственные драйверы поставщиков намного проще в использовании и администрировании, чем ODBC, хотя нам приходилось устанавливать и 16-, и 32-разрядные версии драйверов.

Общий конфигурационный файл для 16- и 32-разрядных клиентов в изделиях фирм Gupta и Oracle немного упрощает управление связным программным обеспечением. Мы выяснили, что полезная утилита SQLEdit фирмы Gupta весьма упростила настройку файла SQL.INI. Она позволяет из единого центра редактировать конфигурационные файлы для всех рабочих платформ, причем все изделия фирмы Gupta пользуются одним и тем же файлом SQL.INI.

В Personal Oracle такой утилиты нет, поэтому дл внесения изменений в инициализационный файл нам пришлось воспользоваться текстовым редактором. Это чуть сложнее, но, по крайней мере, как и прежде, централизовано. Парадоксально, но в старой версии Oracle7 for Windows был диалоговый редактор, который из версии для Windows 95 изъяли.

Административные средства

Для того чтобы персональные SQL СУБД могли составить конкуренцию СУБД семейства xBase, они должны быть столь же просты в использовании и сопровождении дл непрофессиональных пользователей. Но так никогда не было. Несмотря на то что в 16-разрядной версии пакета Personal Oracle7 имеется несколько утилит дл администратора, они почти никак не ограждают его от сложностей процессора СУБД Oracle. Даже пакету Watcom SQL, известному простотой установки и использования, не хватает утилиты для администратора, которая помогала создавать и сопровождать пользовательские рабочие места и таблицы. Однако в СУБД Gupta SQLBase, начиная с версии 6.0, введен модуль SQLConsole - инструмент административного управления базой данных.

В новой версии Personal Oracle7 все административные средства собраны в одну централизованную утилиту с графическим интерфейсом под названием Oracle7 Navigator. Пользователи предыдущих версий Personal Oracle7 сочтут Navigator полезным нововведением: он устраняет необходимость многократных входов в систему и предусматривает более ясный интерфейс. Точно так же, как и в предшествующих версиях, Oracle7 Navigator совместим с модулем SQL*Net, поэтому его можно использовать для управления любой базой данных Oracle7 в ЛВС. К сожалению, его функциональные возможности не столь богаты, как у некоторых конкурирующих программ.

Модуль Oracle7 Navigator, отчасти напоминающий Explorer из системы Windows 95, имеет главное окно, разделенное на две панели. На левой панели в форме дерева отображаются Projects (Проекты), Local Database (Локальная база данных) и Database Connections (Связи баз данных). На правой панели выводятся конкретные объекты, содержащиеся в выбранном контейнере. Нажатие правой клавиши мыши вызывает реакцию повсюду, что позволяет быстро создавать и удалять объекты или просматривать их свойства. В модуле используетс технология drag-and-drop, хотя она применима только при создании "моментального снимка" таблицы (дубликата).

В число объектов баз данных, с которыми может работать модуль Oracle7 Navigator, входят связи баз данных (Database Links), индексы (Indexes), роли или группы (Roles, Groups), синонимы (Synonyms), таблицы (Tables), пользователи (Users) и представления (Views). С помощью модуля Navigator мы могли создавать пользовательские места и таблицы и назначать им права в считанные минуты. Но мы обнаружили, что этому инструменту не хватает средств для создания сценариев на SQL, ограничений целостности, декларативной ссылочной целостности, хранимых и запускаемых процедур, а также возможностей импорта/экспорта. Несмотря на то что функции импорта/экспорта планируется реализовать в этой версии, они будут работать только с собственными файлами сброса данных из памяти Oracle. Для обработки файлов других типов предоставляется работающая в текстовом режиме утилита SQL*Loader.

Хотя пакет Watcom SQL всегда славился простотой использования, его предыдущим версиям не хватало специализированных административных средств, чтобы облегчить работу администратора базы данных (АБД). В пакете SQL Anywhere этот пробел заполнится новым графическим средством, названным Sybase SQL Central.

Модуль Sybase SQL Central также напоминает Windows 95 Explorer. Подобно Oracle7 Navigator, он позволяет осуществлять административные функции над несколькими базами данных как локальными, так и удаленными. В отличие от Oracle7 Navigator, SQL Central имеет средства, обеспечивающие создание и управление ограничениями целостности, декларативной ссылочной целостностью, хранимыми и запускаемыми процедурами, а также другими объектами баз данных. Однако мы не нашли никаких утилит для массовых операций импорта/экспорта или для подготовки сценариев на языке SQL из объектов баз данных. Технология drag-and-drop реализуется при копировании столбцов между таблицами, добавлении пользователей и групп и использовании текстового редактора.

На наш взгляд очень полезна одна особенность SQL Central. Это включение в состав пакета и усовершенствование средств СУБД, используемых дл выполнения рутинных процедур по сопровождению базы данных. В предшествующих версиях эти средства были оформлены в виде утилит, запускаемых из командной строки DOS. Теперь Sybase весьма облегчила решение этих задач, предусмотрев соответствующие процедуры в рамках "мастеров" (Wizards), которые руководят вами шаг за шагом. Имеющиеся "мастера" обеспечивают создание базы данных и их резервные копии, сжатие базы данных, фиксацию транзакций в журнале и выгрузку базы данных.

Текущая версия утилиты SQLConsole фирмы Gupta - это 16-разрядная программа, которой не хватает внешнего лоска в стиле Windows 95, характерного для изделий Oracle и Sybase. Мы установили, что SQLConsole полностью подготовлена к работе, обладает функциональными возможностями, необходимыми дл обслуживания и централизованного управления как локальными, так и распределенными базами данных. Применение SQLConsole помогает автоматизировать типичные операции по ведению базы данных, что также может значительно облегчить работу администратора.

В модуле Object Manager (Администратор объектов) программы SQLConsole при создании таблиц, фиксаций ограничений для обеспечения ссылочной целостности, формировании пользовательских мест, индексов, представлений, запускаемых процедур, хранимых команд и синонимов используется метафора каркаса. В этом модуле предусмотрена функция Alarm Manager (Сигнальщик), позволяющий определять пороговые значения или условия, при возникновении которых подаются предупреждающие сигналы различных типов. При достижении порогового значения Alarm Manager выполняет одно из нескольких действий, в том числе выводит на экран пиктограмму горящей газеты, отключает пользователя, передает сообщение по электронной почте, устанавливает коммутируемое соединение с пейджером администратора или выполняет указанный сценарий SQLBase.

В состав модуля SQLConsole также входит планировщик для автоматизации выполнения сценариев SQLBase. С его помощью администратор подготавливает процедуры дл выполнения стандартных задач по обслуживанию системы, как, например, резервного копирования базы данных. Кроме того, планировщик позволяет в заданное врем вызывать другие программы.

К сожалению, оказалось, что под управлением Windows 95 модуль SQLConsole работает нестабильно. Мы обнаружили несколько воспроизводимых нарушений общей защиты (GPF) в этой преимущественно 16-разрядной программе, часть из которых была настолько серьезна, что приводила к краху системы. Например, при запуске SQLBase до начала работы модуля SQLConsole непременно индицировалась ошибка GPF. Совместно с фирмой Gupta мы установили, что процессор СУБД должен запускаться после модуля SQLConsole, а не до него. Позднее Gupta сообщила нам, что не завершила полностью цикл испытаний утилиты SQLConsole в среде Windows 95 совместно с 32-разрядным процессором локальной СУБД (SQLConsole в большей степени предназначена для дистанционного администрирования баз данных).

Тенденции тиражирования данных

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

Традиционно согласованность данных в распределенных базах достигается с помощью протокола двухфазного обновления с контролем выполнения. Хотя двухфазное обновление с контролем решает проблему поддержани согласованности данных на нескольких серверах в реальном времени, оно влечет за собой огромные накладные расходы как сетевых, так и системных ресурсов. Кроме того, распределенным базам данных, использующим этот подход, свойственна неустойчивость. Поскольку в распределенной системе для двухфазного обновления с контролем требуется, чтобы все используемые сообща серверы принимали участие во всех операциях изменения, вставки или удаления, то при отключении одной базы данных (или сетевого соединения) отказывает вся система. Кроме того, для координации транзакции при двухфазном обновлении с контролем требуется значительная пропускная способность сети. Более того, двухфазное обновление с контролем выполнения не решает проблем пользователя, подключающегося от случая к случаю.

Альтернативное решение - тиражирование. Тиражирование - это автоматизированный процесс, в котором изменения в локальной базе данных фиксируются и переносятся в целевые, отличные друг от друга базы данных. Тиражирование предоставляет относительно простой метод распределения данных по физически обособленным отличающимся друг от друга базам данных с относительно низким влиянием на производительность и не очень высокими требованиями к пропускной способности. Кроме того, тиражирование налагает менее строгие ограничения, чем двухфазное обновление с контролем выполнения, поскольку для него не требуется непрерывной работы всех сетей и серверов.

Хотя пакет Lotus Notes способствовал массовому внедрению метода тиражирования, однако до появлени программы Replication Server компании Sybase тиражирование еще не было популярной альтернативой двухфазного обновления с контролем выполнения в SQL СУБД. Теперь механизм тиражирования реализуют во всех SQL-изделиях (и даже в СУБД для ПК, подобно Microsoft Access 7.0). Тиражирование быстро становитс предпочтительным методом управления распределенными данными, особенно для пользователей, находящихся в разъездах.

В бета-версиях испытываемых нами СУБД Personal Oracle7 и SQL Anywhere средства тиражирования стали стандартными функциями, обеспечивающими "прозрачную" интеграцию с корпоративными данными. SQLBase в настоящее время не обеспечивает тиражирования, хот фирма Gupta посвятила нас в некоторые подробности, касающиеся следующей версии изделия, в которой эта функция будет реализована.

Персональное тиражирование

С версией 7.2 Personal Oracle7 будет предоставлятьс средство симметричного тиражирования Symmetric Replication - тот же самый механизм тиражирования, на котором основаны все ипостаси Oracle7. Это позволяет Oracle реализовать тиражирование на всех уровнях, начиная от портативного компьютера вплоть до универсальной ЭВМ. Personal Oracle7 не может быть первичным источником данных, а лишь подписчиком на получение данных.

Компания Sybase при реализации технологии масштабируемого тиражирования пошла другим путем. Предлагая две различные технологии - SQL Remote (текущее название бета-версии) и Sybase Replication Server, - компания позволяет выбрать то, что лучше подходит для вашего приложения. Пакет Sybase Replication Server спроектирован для создани тиражируемых копий на уровне предприятия, тогда как SQL Remote предназначен для программ, используемых в рабочих группах и на переносных компьютерах. В отличие от таких традиционных технологий тиражирования, как применяемые в Personal Oracle7, для SQL Remote не требуется непосредственного соединения между первичной базой данных и удаленными рабочими местами. Вместо этого в нем используется протокол обработки сообщений, подобный MAPI, для размещения дубликатов данных на удаленных местах. Кроме того, новый шлюз Open Server for SQL Anywhere позволяет пакету SQL Anywhere участвовать в сценариях тиражирования на уровне предприятия.

В пакете SQLBase фирмы Gupta будет применен механизм тиражирования store-and-forward ("сохрани-и-передай- другому"), позволяющий работать в среде гетерогенных баз данных (хотя в первоначальной версии тиражирующей СУБД не предусмотрена возможность работы с гетерогенными базами данных). Синхронизация удаленных баз данных (подписчиков) и первичных баз данных (диспетчеров) будет осуществляться по ЛВС или путем передачи сообщений. Возможность подключения к гетерогенным базам данных обеспечит работу СУБД SQLBase на уровне предприятия с использованием технологии тиражирования фирм Oracle и Sybase.

Все эти изделия позволят обновлять данные, находясь в любом месте, и дают пользователям возможность самим определять методы разрешения конфликтов. В дополнение к этому все они предоставляют методы горизонтального (выбора подмножества строк с помощью предложения WHERE языка SQL) и вертикального разделения данных (тирожирования только требуемых столбцов). Возможность тиражирования по частям особенно важна дл пользователей, часто находящихся в разъездах, дл которых место на диске всегда играет первостепенную роль, передача сообщений осуществляется медленно, и безопасность становится одним из главных требований.

Проблемы тиражирования

В процессе наших испытаний мы смогли настроить простую тиражируемую базу данных и для Personal Oracle7, и для SQL Anywhere. Но опыт показал, что, несмотря на предельную простоту в работе для конечного пользователя, настройка даже простого сценари представляет собой сложную, отнимающую много времени задачу для администраторов.

Тиражирование данных с помощью пакета Personal Oracle7 версии 7.2 требует подключения к серверу Oracle версии 7.2 или более поздней на уровне рабочей группы или предприятия. С точки зрения конечного пользователя, тиражирование таблицы осуществляется просто. С помощью программы Oracle Navigator расположенная на удаленном сервере таблица базы данных методом drag-and-drop просто "перетаскивается" в папку Snapshot вашей локальной базы данных Personal Oracle7. Затем система просит указать тип дубликата (допускающий или недопускающий изменения) и частоту синхронизации. После этого метаданные, определения таблиц и данные копируются автоматически. Обновление тиражируемых таблиц выполняется автоматически через заданные интервалы времени, или вручную из меню, вызываемого нажатием правой кнопки мыши.

Если бы жизнь администратора Oracle7 была столь же легка! Без технической помощи со стороны представителей фирмы Oracle для настройки процесса тиражирования могут потребоваться недели. Этот процесс предусматривает выполнение сценария на языке SQL для создания таблиц и пакетов (хранимых процедур). На нашем сервере на базе процессора 486/66 он длился полтора часа. На следующем шаге нам пришлось выполнить ряд предоставляемых фирмой Oracle команд SQL для создания системных таблиц и пакетов. Процесс в целом занял у нас с учетом нескольких неудачных попыток шесть часов. К счастью, Oracle разрабатывает модуль администрирования с графическим интерфейсом, который облегчит настройку конфигурации и управление процессом тиражирования. Однако пока сложная процедура установки остается ценой, которую приходится платить за предоставление фирмой Oracle возможности использования одной и той же технологии тиражирования на различных компьютерах - от универсальных до портативных.

Метод тиражирования на уровне предприятия, предлагаемый фирмой Sybase, исключительно сложен (требуется пройти недельный курс обучения в Sybase, прежде чем приступить к подготовке своего сценари тиражирования). Более того, для интеграции метода тиражирования SQL Remote в сценарии фирмы Sybase администратору приходится иметь дело с двумя различными сценариями и настраивать и применять четыре различных сервера: SQL Anywhere, шлюз Open Server for SQL Anywhere, Sybase Replication Server и Sybase SQL Server.

При использовании механизма тиражирования Oracle7 конечному пользователю в процессе формирования копии базы данных приходится выбирать один из нескольких вариантов. Замысел фирмы Sybase заключается в том, чтобы при использовании SQL Anywhere всю работу по настройке выполнял администратор базы данных. Он создает удаленную базу данных, состоящую из дубликатов таблиц исходной базы данных (обычно это база данных предприятия, работающая в ЛВС), и передает удаленную базу данных конечному пользователю. Дополнительного обучения не требуется, поскольку конечные пользователи работают так, как будто это совершенно самостоятельна база данных. Преимущество такого подхода состоит в том, что все функции управления выполняет администратор на центральном рабочем месте. Даже разрешение конфликтных ситуаций полностью перекладывается на него.

Связь с удаленными базами данных

В изделиях фирмы Oracle для передачи тиражируемых данных на портативные (дорожные) компьютеры используются стандартные сетевые протоколы. Следовательно, когда такой компьютер отключен от док-станции и находится в движении, пользователю необходимо применять программное обеспечение дл установления сетевого соединения через телефонную линию. В комплект Windows 95 входит модуль-клиент службы дистанционного доступа RAS (Remote Access Services), который позволяет пользователю портативного компьютера легко подключаться к удаленным сетям, обеспечивающим связь по протоколам PPP или SLIP.

Это решение имеет ряд заметных преимуществ. Поскольку пользователи установили связь с сетью, они могут также получить по ЛВС файлы, которые забыли, или вызывать программы, хранящиеся где-то в сети, например программы электронной почты. Обратная сторона медали заключается в том, что обычно для этого требуетс выполнить несколько операций, поэтому может возникнуть необходимость в дополнительном обучении персонала, работающего на портативных компьютерах. Кроме того, в центральном офисе должен существовать коммуникационный сервер.

Администраторы должны также иметь в виду, что RAS не обеспечивает автоматического разъединения. Конечные пользователи, как правило, остаются на связи дольше, чем необходимо для создания копий, что приводит к получению разорительных счетов за пользование телефоном. Несмотря на то что некоторые PPP/SLIP-серверы обеспечивают прекращение связи по истечении заданного времени, это не всегда помогает, если параметры ЛВС настроены на регулярный опрос сервера.

Компании Gupta и Sybase учли негативные стороны непосредственной связи и избрали другой путь. Использу стандартные API обработки сообщений, например MAPI, в качестве транспортного средства, они копируют данные без прямого подключения, что позволяет применять дл передачи данных стандартные программы электронной почты. Это особенно приятно для пользователей MAPI, поскольку информационный сервер (IS, Information Server) обычно всегда под рукой для дистанционного приема электронной почты. Кроме того, системы электронной почты создавались для быстрой передачи сообщений (как при отправлении, так и при приеме) и разрыва связи. Однако организациям, использующим Lotus Notes 3.x или CC:Mail, придется изобрести какие-то обходные маневры, поскольку Notes и CC:Mail в настоящее время не располагают функциями MAPI. В пакете SQL Anywhere средства работы с VIM появятся лишь в начале 1996 г.

Лицензирование и цены

Лицензионная политика фирм Gupta и Sybase прямолинейна и проста: вы покупаете лицензию дл каждого пользователя, независимо от того, какую операционную систему он применяет. Обе компании поставляют версии для Windows 3.x, Windows 95, OS/2 и Windows NT на одном компакт-диске. Это расширяет возможности администратора по распространению и дает возможность пользователям переходить с одной операционной системы на другую без необходимости приобретать новое программное обеспечение и лицензии. Особенно полезно это будет для организаций, экспериментирующих с Windows 95. Ценовая политика фирмы Oracle не столь гибка, поскольку версии для каждой операционной системы имеют различные лицензионные соглашения.

Начальная цена SQLBase и Personal Oracle7 одинакова: 395 долл. за однопользовательский вариант. Gupta предоставляет групповые скидки для инсталляций на большом числе машин. Снижение цены доходит до 140 долл. за экземпляр при 50 пользователях. Компания Oracle не имеет стандартной ценовой политики для групп, поэтому для выяснения подробностей вам придется связаться с ее представителем.

SQL Anywhere - наименее дорогое изделие из этого трио. Его цена начинается с 295 долл. для одного пользователя и падает примерно до 100 долл. за экземпляр при 30 и более пользователях. Дл разработчиков, желающих широко распространять прикладные программы, фирма Sybase также предлагает за 99 долл. однопользовательскую, распространяемую без лицензионных отчислений рабочую версию процессора СУБД. Это полнофункциональная, хотя и ограничивающая вас фиксированной схемой СУБД, в которую нельзя добавлять таблицы или другие объекты базы данных.

Подводя черту

От запускаемых процедур и до декларативной ссылочной целостности, заметно, насколько реально продвинулись вперед базовые функции процессоров персональных SQL СУБД. Столь же примечательно, как быстро эти технологии, совсем недавно находившиеся на самом переднем крае, становятся обычными. Ясно, что битва за 32-разрядные SQL СУБД для настольных (и портативных) ПК на этом не закончится. Все большее значение приобретают простота использования, интуитивно понятные средства администрирования, средства связи, прозрачна масштабируемость, мощные средства тиражирования и интеграция с гетерогенными средами. Таковы следующие области конкурентной борьбы персональных SQL-систем.

Привлекательной стороной СУБД Personal Oracle7 for Windows 95 будет возможность реализуемой без проблем масштабируемости от настольных до самых больших ЭВМ, однако ее жесткие требования к ресурсам - существенный минус. Хотя она предоставляет среду для разработки баз данных, цена может стать определяющим фактором, если вы распространяете эту систему среди большого числа пользователей. Несмотря на эти недостатки, СУБД Personal Oracle7, безусловно, превосходит изделие фирмы Sybase как платформа разработки, по крайней мере, сейчас. Благодаря общности технологии СУБД компании Oracle разрабатывать и развертывать системы можно на любой из платформ Oracle.

Пакет SQL Anywhere пока не обладает таким преимуществом, поскольку зависит от записанного в ПЗУ программного обеспечения, организующего работу с библиотеками DB-Library и Net-Library. Но появление Transact-SQL и шлюза Open Server еще на несколько шагов приближает SQL Anywhere к достижению цели. Ее технология тиражирования SQL Remote позволяет встраивать механизм создания дубликатов баз данных, что обеспечит потребности пользователей портативных компьютеров, не сведущих в технике.

Пакет SQLBase - подходящее решение для небольших организаций и особенно для тех разработчиков SQL Windows-систем, которым масштабируемость до уровн предприятия не столь важна. Несмотря на то что его возможности пока позволяют работать не более, чем с Windows NT или NetWare, этот пакет вполне удовлетворит запросы сотен пользователей.

Gupta SQLBase, Version 6.02
Цена, рекомендуемая изготовителем: 395 долл. (лицензия на одного пользователя).
Gupta Corp., Menlo Park, CA, 800-444-8782.
Personal Oracle7, Version 7.2 for Windows 95
Цена, рекомендуемая изготовителем: 395 долл. (лицензия на одного пользователя).
Oracle Corp., Redwood Shores, CA, 800-672-2531.
SQL Anywhere, Version 5.0
Цена, рекомендуемая изготовителем: 295 долл. (лицензия на одного пользователя).
Sybase Inc., Waterloo, Ontario, Canada, 800-265-4555.
Брайан Батлер, внештатный редактор журнала PC Magazine, и президент базирующейся в Сент-Луисе фирмы Client/Server Solutions, котора специализируется на тестировании производительности SQL СУБД и разработке прикладных программ. Он главный разработчик тестов производительности SQL СУБД лаборатории PC Magazine.