Фирма Oracle  Corp.,  мировой лидер в области распределенных информационных систем и баз данных, начала распрост­ранять новую версию реляционной распределенной СУБД ORACLE. Новая версия, называемая ORACLE7, полностью совместима с предыдущей (шестой) версией СУБД ORACLE, но обладает мно­жеством новых свойств, необходимых для создания высокока­чественных коммерческих распределенных приложений. ORACLE7 унаследовал все многочисленные достоинства и уникальные воз­можности шестой версии ORACLE, среди которых следует упомя­нуть следующие:

- переносимость приложений. На сегодняшний день СУБД ORACLE работает практически на всех коммерческих вычисли­тельных платформах (оборудование + операционная система) от персональных компьютеров до больших и супер-ЭВМ. Приложения, созданные средствами ORACLE и работающие на одной из этих платформ, могут быть без изменения перенесены на любую из 200 вычислительных платформ, на которых работает ORACLE. При этом перенесенное приложение автоматически начинает исполь­зовать дополнительные возможности новой платформы, если они есть (например, графический интерфейс, манипулятор "мышь", многопроцессорную архитектуру и т.д.).

Фирма Oracle Corp. продолжает создавать версии ORACLE для новых перспективных вычислительных платформ, поэтому приложения (а следовательно и все многолетние наработки раз­работчиков) становятся практически независимыми от вычисли­тельных платформ и могут работать на наиболее мощных или де­шевых в данный момент компьютерах;

- возможность создания приложений, работающих в сети разнородных компьютеров. Приложения ORACLE могут работать в сети разнородных компьютеров (причем ORACLE позволяет рабо­тать практически со всеми коммерческими сетевыми протокола­ми). Разработчики могут создать локальное приложение ORACLE на одном компьютере, а затем быстро и просто распределить части БД по различным компьютерам сети и перенести програм­мы, выполняющие отдельные функции приложения, на компьютеры тех узлов сети, где эти функции наиболее удобно исполнять. Причем в узлах сети могут использоваться компьютеры самых разных типов (рис. 1). Возможна и интеграция в единое прило­жение подсистем, работавших ранее на отдельных локальных компьютерах;

- реализация архитектуры клиент-сервер;

- сбалансированная работа приложений различного типа. ORACLE позволяет одинаково эффективно выполнять как приклад­ные системы поддержки принятия решений (DSS), так и приклад­ные системы оперативной обработки транзакций (OLTP), причем одновременно с БД могут работать сотни и тысячи пользовате­лей;

- высокая производительность и возможность работать с очень большими базами данных (150 Гб и более);

- мощные средства обеспечения целостности и непротиво­речивости данных, защиты от несанкционированного доступа, восстановления при любых типах сбоев;

- обеспечение распределенной обработки данных и работы с распределенной базой данных;

- большой набор инструментальных средств, позволяющих просто и удобно создавать и модифицировать сложные приложе­ния;

- открытая архитектура;

- богатый набор средств для конечных пользователей (электронные таблицы, электронная почта, средства работы с графикой и неструктурированными текстами и т.д.);

- наличие CASE-средств для автоматизации разработки прикладных программ, позволяющих специалистам в конкретной предметной области быстро создавать, развивать и модифициро­вать большие распределенные приложения ORACLE;

- непрерывность работы. СУБД ORACLE может работать без остановки 24 часа в сутки, причем операции копирования БД и восстановления частей БД можно выполнять не останавливая ра­боту приложений и пользователей, работающих с БД.

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

Однако в ORACLE7 реализовано и множество новых возмож­ностей. Наибольшее внимание при его разработке было уделено следующим направлениям: повышение производительности, увели­чение функциональной мощности и отказоустойчивости, оптими­зация использования оперативной памяти, более полное исполь­зование свойств графического пользовательского интерфейса в приложениях.

Сердцем ORACLE7 является новый многопроцессный сервер (рис. 2). Он может автоматически перестраивать свою архитек­туру в зависимости от уровня загрузки и оптимально использо­вать оперативную память, процессоры, каналы ввода/вывода. Архитектура многопроцессного сервера является на сегодняшний день одной из самых мощных и сложных. Она позволяет серверу настраиваться на условия среды эксплуатации и учитывать собственную загрузку. Поэтому сервер может эффективно обра­батывать как очень большие приложения со сложными алгоритма­ми преобразования данных, так и небольшие простые приложе­ния.

Обслуживанием пользовательских процессов в новой архи­тектуре занимаются процессы-диспетчеры сервера (администра­тор БД может запускать дополнительные диспетчеры). Это поз­воляет свести к минимуму время ожидания и оптимизировать использование оперативной памяти. Повышению производитель­ности ORACLE7 также способствует появление нового оптимиза­тора запросов, возможность использования хэшированных ин­дексов, возможность совместного использования несколькими пользователями динамических и статических операторов SQL, хранимых процедур и триггеров. По результатам теста tpcA производительность ORACLE7 на компьютере SEQUENT 2000/750 превышает производительность ORACLE6 на той же платформе бо­лее чем в 4 раза (а ведь ORACLE6 работал быстрее большинства своих конкурентов).

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

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

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

В ORACLE7 очень хорошо реализована работа с распределен­ной БД. На сегодня ORACLE7 является практически единственным пакетом, позволяющим реализовать большинство функций, прису­щих коммерческой распределенной СУБД. Он обеспечивает це­лостность БД при выполнении распределенных запросов и обнов­лений, оптимизацию выполнения распределенных запросов, обра­ботку распределенных транзакций, автономию узлов распреде­ленной БД и высокую производительность обработки распреде­ленной БД. Оригинальный алгоритм двухфазной фиксации измене­ний позволяет обеспечить целостность и согласованность дан­ных распределенной БД даже при использовании в некоторых ее узлах СУБД других фирм.

ORACLE7 позволяет создавать и поддерживать в узлах расп­ределенной БД копии таблиц, причем эти копии могут обнов­ляться как оперативно, так и автоматически через определен­ные промежутки времени. Кроме того, можно хранить в узлах не точные копии таблиц, а некоторые производные таблицы, полу­чаемые в результате выполнения запроса к исходным таблицам. Эти производные таблицы также будут корректироваться автома­тически. Декларативные ограничения целостности, хранимые процедуры и триггеры могут размещаться в разных узлах расп­ределенной БД и поддерживать целостность всей БД.

Для реализации эффективной работы с разнородной распре­деленной БД фирме Oracle Corp. пришлось разработать новую технологию объединенного сервера, которая и обеспечивает "прозрачное" распределение данных. Объединенный сервер поз­волил наконец выполнить коммерческую реализацию "идеального" определения распределенной БД в котором " ... под распреде­ленной БД понимается множество физических баз данных, кото­рые выглядят для пользователя как одна логическая база дан­ных". Следует заметить, что переход от работы с локальной БД к работе с распределенной БД и обратно очень прост и поня­тен. Он не требует от разработчиков больших усилий и не при­водит к модификации работающих программ.

Поддержка целостности и непротиворечивости распределен­ных обновлений выполняется автоматически и не требует прог­раммирования. При этом ORACLE7, в отличие от других распре­деленных СУБД, не использует один из серверов в качестве центрального (что может привести к потере данных и снижает производительность). Все узлы распределенной БД работают са­мостоятельно, но в согласованном режиме. Не требуется иметь прямую связь между каждыми двумя серверами. СУБД сама опре­делит оптимальный путь по сети к нужному серверу. При изме­нении топологии сети (повреждение сети, отключение серве­ра-узла) будет сделана автоматическая попытка выбора нового пути к нужному серверу. Причем при использовании компоненты SQL*Net 2 в состав этого пути могут входить участки сети с различными сетевыми протоколами (рис 3).

Функциональная мощность ORACLE7 повышена, в первую оче­редь, за счет отличной реализации механизмов декларативных ограничений целостности, хранимых процедур и триггеров. Дек­ларативные ограничения целостности позволяют без программи­рования обеспечить соблюдение правил целостности данных, присущих конкретной предметной области. Они позволяют конт­ролировать ссылочную целостность, уникальность, попадание в диапазон, каскадную целостность и т.д.

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

Средства обеспечения декларативных ограничений целост­ности на 100 процентов совместимы со стандартом ANSI/ISO SQL и позволяет описывать очень сложные логические условия конт­роля. Кроме того, следует отметить, что декларативные огра­ничения целостности пишутся один раз (хотя их можно модифи­цировать), выполняются более эффективно, чем триггеры, и едины для всех приложений, работающих с БД.

Хранимые процедуры и триггеры пишутся на языке SQL или PL/SQL и хранятся в узлах распределенной БД. Процедуры могут вызывать друг друга или вызываться из триггеров, работать с файлами операционной системы и БД других фирм, объединяться в пакеты (процедуры пакета могут обмениваться переменными). Триггеры хранятся в узлах распределенной БД и автоматически "срабатывают" при возникновении определенных событий (напри­мер, при выполнении некоторого оператора SQL). Триггер может выполняться для каждой строки таблицы или для каждого опера­тора SQL.

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

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

Еще одно новое средство ORACLE7 - средство аварийной сигнализации (Alert). Пользователь может описать некоторые условия, при выполнении которых автоматически активизируется программа, посылающая работающим приложениям специфицирован­ное пользователем аварийное сообщение.

ORACLE7 также поддерживает открытую архитектуру. В еди­ном приложении могут согласованно работать компоненты, соз­данные инструментальными средствами ORACLE, программы на языках 3-го поколения, компоненты, использующие СУБД других фирм и файлы операционной системы, а также аппаратные компо­ненты (например, контроллеры, кассовые аппараты, устройства для считывания штрих-кодов и т.д.).

Компонента Oracle Open Gateway позволяет приложениям ORACLE работать с другими СУБД, системами управления файла­ми, приложениями и файлами операционной системы. На ее осно­ве фирма Oracle Corp. создала свои connect-продукты для свя­зи с 15 коммерческими СУБД и файловыми системами, включая IMS, IDMS, DB2, SQL/DS, VSAM, RMS, Rdb, TurboImage и т.д. Пользователь может сам описать процедуру отображения SQL-операторов ORACLE в SQL-диалект нового пакета СУБД или в набор операторов описания и манипулирования данными неко­торого пакета другой фирмы.

Open Gateway поддерживает работу приложений ORACLE с удаленными хранимыми процедурами, позволяющими организовать доступ к таким внешним системам, как CICS и IMS/DC, системы управления аппаратурой и т.д. Благодаря такому подходу в единое приложение можно включать разнотипные пакеты, причем они будут работать согласованно, а при использовании в такой системе распределенной БД непротиворечивость и целостность данных будут обеспечиваться за счет двухфазного протокола фиксации изменений.

Для облегчения работы администратора БД по разграниче­нию прав доступа пользователей в ORACLE7 введено понятие групп (ролей) безопасности. Делегировав однажды такой группе набор прав доступа администратор может в дальнейшем давать пользователю множество прав с помощью одного оператора GRANT. При этом пользователь становится членом некоторой группы безопасности и далее может даже (если дозволено) соз­давать новых членов этой группы. Одни группы безопасности могут включать другие группы безопасности организуя таким образом иерархию прав доступа.

Кроме того, администраторы БД теперь тоже могут разде­ляться на группы, обладающие различными правами на выполне­ние работ по администрированию БД. Инструмент администратора БД SQL*DBA имеет теперь дружественный интерфейс на основе меню, что упрощает работу администратора, и позволяет выпол­нять работы по администрированию не только локальной БД, но и узлов распределенной БД.

Новый быстрый загрузчик данных предназначен для загруз­ки в БД ORACLE больших объемов данных. Он позволяет выпол­нять загрузку данных без учета декларативных ограничений це­лостности и без корректировки индексов. Проверка ограничений целостности и построение индексов выполняются автоматически после окончания загрузки. А сама загрузка данных в БД идет не через выполнение операторов SQL, а напрямую. Загрузчик поддерживает множество форматов исходных данных, позволяет рестартовать работу по загрузке с некоторой промежуточной точки и загружать несколько таблиц БД на основе одного исходного файла. Новый загрузчик работает в 6 - 8 раз быст­рее, чем старый.

В ORACLE7 поля БД с типом LONG могут иметь длину до 2 Гб. Это позволяет хранить в них большие неструктурированные тексты, графические изображения (например, карты местности), звук и другую битовую информацию.

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

Среди прочих новых возможностей ORACLE7 следует упомя­нуть следующие: средства ограничения и контроля ресурсов пользователей (использование процессора и диска, время свя­зи, время выполнения обработки и т.д.); возможность дублиро­вания журнальных файлов; средства динамической реконфигура­ции СУБД (без остановки ORACLE); возможность использования тригонометрических функций в операторах SQL; возможность быстрого удаления всех строк таблицы или представления без уничтожения таблицы или представления (при этом можно ука­зать на необходимость освобождения места в БД); возможность пересылки данных из приложений ORACLE по электронной почте.

Для пользователей, работающих с секретными данными, вы­пускается защищенная версия ORACLE7 - Trusted ORACLE. Она сертифицирована по классу безопасности В1 и работает с защи­щенными операционными системами.

Реализованное в ORACLE7 множество новых возможностей и главное высокое качество и согласованность их реализации позволили фирме Oracle Corp. значительно обогнать своих основных конкурентов, выпускающих СУБД Informix, Ingres, Sybase. Хотя на сегодняшний день и можно решить отдельные частные проблемы пользователей с помощью других СУБД, однако ни один производитель программных продуктов не сможет пре­доставить столь совершенного, универсального и комплексного средства, каким является СУБД ORACLE7.

(Об авторах: Беляев В. И. - технический директор, Рив­кин М. Н. - главный специалист А/О "Корпорация ЛВС", тел. (095) 334-89-81).

Hosted by uCoz