Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
база данных.docx
Скачиваний:
168
Добавлен:
24.03.2015
Размер:
5.83 Mб
Скачать

9.3. Стандартизация баз данных

Необходимость стандартизации в области обработки данных осознана еще на этапе внедрения первых «массовых» СУБД. В настоящее время в индустрии информационных технологий работает более 250 подкомите­тов официальных стандартизирующих организаций. Ими принято или на­ходится в процессе разработки более 1000 стандартов. Рассмотрим харак­теристику стандартизации и наиболее распространенные стандарты лля баз данных.

Характеристика процесса стандартизации

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

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

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

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

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

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

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

Рассмотрим с точки зрения стандартизации основной язык доступа к ре­ляционным базам данных — язык SQL.

Стандартизация языка SQL

Язык SQL разработан в середине 70-х годов научно-исследовательской ла­бораторией фирмы IBM в рамках npof кта ре. шционной СУ БД System R. Ис­ходное название языка - SEQUEL (Structured English QUEry Language). Язык основан на ре шционном исчислении с переменными кортежами (под­раздел 3.7). Кроме основных операт орои формулирования запросов и мани­пулирования БД, он включа о также средства описания и изменения схемы БД, определения ограничений целостности, защиты доступа (авторизации) к отношениям и их полям, получения точек сохранения транзакций, выполне­ния откатов и прочее.

Пос гепенно SQL был взят на вооружение различными организациями и фирмами-разработчиками ПО и появились стандарты SQL следующих орга­низаций: ANSI (American National Standards Institute - Американский На­циональный Институт Стандартов), SAG (SOL Access Group), X/Open (груп­па стандартов для UNIX), ISO (International Standard Organization - Между­народная организация по стандартизации) федерального правительства США, а также фирмы IBM.

Наиболее широко используемыми стандартами являются стандарт 1989 гола ANSI SQL-89 и стандарты 1992 года: ANSI SQL-92 и ISO SQL-92.

Стандарт ANSI SQL-89 описывает три варианта использования SQ1, (три интерфейса): «модульный язык», «встроенный SQL» и «непосред­ственный вызов».

Модульный язык предусматривает возможность создания процедур, вызы­ваемых из программ на традиционных языках npoi раммирования (С. Кобол, Фортран и другие).

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

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

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

Несмотря на широкий набор возможностей, этот стандарт обладал фун­кциональной неполнотой. Работа над SQL была продолжена, что приве­ло к появлению в 1992 г. новых стандартов. Получили широкое примене­ние и оказались по сути эквивалентными стандарты ISO SQL-92 и ANSI SOL-92.

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

С принят нем этого стандарта начата работа над новым стандартом SQL3.

Стандарт языка SQL3 разрабатывался ANSI совместно с ISO. Более точ­но: комитетом ХЗН2 по стандартам в области синтаксиса и семантики язы­ков баз данных института ANSI (ANSI ХЗН2) и рабочей группой WG3 по базам данных подкомитета SC21, занимающегося взаим! ювязью открытых си­стем, управлением данными и открытой распределенной обработкой, Объе­диненного комитета Международной организации по стандартизации и Меж­дународной электротехнической комиссии (ISO/IEC JTCI). Кроме того, на разработку стандарта оказывали влияние организации, работающие в облас­ти объеь гно-ориентированных техноло! ий, в частности: консорциум постав­щиков программного обеспечения объектно-ориентированных баз данных OI)MG (The Object Database Management Group) и консорциум по программ­ному обеспечению, разрабатывающий спецификации объектно-ориентиро­ванных интерфейсов OMG (Object Management Group).

Текущий проект SOL3 практически полностью ьключает спецификацию SQL2, а также содержит ряд новых возможностей, в том числе две весьма су­щественных: объект ны< функциональные возможности и средства обеспече­ния вычислительной полноты языка - Управление хранимыми процедупами PSM (Procedure Storage Management).

К новой объектной возможности SQL3 прежде всего относи гея обеспече­ние объектной ориентированности таблиц БД. По сравнению с обычными реляционными таблицами теперь строки таблиц могут содержать абстракт­ные типы данных (АТД) и ссылки на АТД из других строк, а также иметь од­нозначные идентификаторы (вместо поиска строки по значениям). Поддер­жка АТД предусматривает средства определения типов и методов доступа к ним, аналогичных объектно-ориентировгнным языкам программирования типа С++, Smalltalk, Ada и других.

Напомним, что хранимые процедз ры (подраздел 5.4) - это группы выпол­няемых операторов, которые хранятся не в приложении, а в базе данных. К разрешенным внутри хранимых процедур операторам относятся: операто­ры SQL, арифметические операторы, операторы да редачи управления, опи­сания функций и т. д.

Стандарт ODMG-93

Главной целью стандарта ODMG-93 является обеспечение независимости ^ мобильное ги) прикладных систем от систем управления объектными база­ми данных (СУОБД). При разработке стандарта ставилась задача увязки ре­шений с рекомендациями группы, занимающейся стандартизацией в области объектно-ориентированных языков программирования - OMG (Object Management Group).

Согласно ODMG-93, СУОБД, с одной стороны, рассматривается как СУБД, в котором данные имеют объектную модель, а с другой - как средство пред­ставления объектов ЬД в качестве объектов ряда языков программирования. СУОБД расширяют языки программирования, например, С++, средствами долговременного хранения объектов, управления конкурентным дост упом, восстановления данных, выполнения объектных запросив и т. д.

В стандарте ODMG-93 дается определение следующих компонентов баз данных:

  • объектной модели, которую должны поддерживать СУОБД;

  • языка определения объектов ODL (Object Definil ы n Language):

  • языка объектных запросов OQL (Object Query Language);

  • языков манипулирования данными, используемых в объектно-ориенти­рованных языках программирования.

За основу языка ODL в стандарте ODMG-93 взят язык определения интер­фейсов IDL (Intei face Definition Language) архитектуры ОМС. В IDL каждой объект базы данных имеет строго определенный и единственный тип. Повеле­ние объекта определяется перечнем допустимых операций в соответствии с типом. Объектная модель позволяет описывать связи типа 1:1,1:М и М:М.

Язык объектных запросов OQL предстаьляет собой декларативный язык работы с объ( ктными БД. Синтаксической основой языка является SQL2. Основное отличие OQL от языка SQL состоит в том, что запрос формулиру­ется в терминах объект ов и коллекций (а не таблиц), а результатом являются объекты и коллекции (а не кортежи).

Операции манипулирования данными, управления транзакциями, дина­мического вызова запросов на OQL и другие действия выполняются с помо­щью библиотек классов и ф> нкций.

Стандарт ODMG-93 используется при разработке СУОБД и в качестве канонической объектной модели при проектировании систем управления неоднородными мультибазами данных. I [римером использования стандарта является проект IRO-DB программы ESPRIT III.

Технология CORBA

Для информационных систем с распределенной обработкой в качестве стандарта группой OMG предложена технология CORBA (Common Object Request Broker Architecture - архитектура брокера общих объектных запро­сов). Спецификации написаны нг пассивном языке описания интерфейсов IDL (Interlace Definition Language), определяющем функциональность ком­понентов внешние интерфейсы с потенциальными клиен гами. Написан - ные на этом языке компонен ты должны быть доступны независимо о г язы­ков, инструмента тьных с редств, операционных систем и сетевой инфраструк­туры программных компонентов.

Основу архитектуры С( )RBA составляет орокер объектных запросов ORB (Object Request Broker), управляющий взаимодействием клиентов и серверов в распределенной сетевой среде. Брокер объектных запросов представляет собой 268

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

Важнейшими свойствами CORBA ORB, определяющими ее достоинства для архитектуры клиент сервер, являются следующие:

  • возможность статически определять вызовы методов при компиляции или находить их динамически в процессе выполнения;

  • возможность вызова методов серверного объекта с использованием про­извольною языка высокого уровня. 11о< кольку CORBA отделяет интер­фейс от его реализации и предоставляет независимые от языка типы дан­ных, это дает возможность вызывать объекты из любого языка и для лю­бой ОС;

  • самоописывасмость системы заключается в предоставлении метаданных на этапе выполнения для описания каждого известного серверного ин терфейса;

  • прозрачность локальная и удаленная состоит в том, что ORB может вы подняться в автономном режиме или взаимодействовать с другими ORB с помощью сервисов протокола IIOP (Internet Inter-ORB Protocol - Ин гернет-протоко та взаимодействия URB);

  • встроенная безопасность и механизм транзакции основаны на включе­нии в сообщения соответ» твующей контекстной информации;

  • возможность полиморфных сообщений основана на реализации вызова функции целевого объекта;

  • возможность инкапецмции существующих приложений, основанная на от­делении определения объекта от его реализации в архитектуре системы.

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

Версия технологии CORBA Real-Time ориентирована на поддержку- фун­кционирования и повышение производительности распределенных систем в масштабе реального времени. С ее помощью предполагается задавать продол­жительность функционирования отдельных компонентов и приоритеты вы­полнения, планировать работу компонентов и т. д.

Стандарты в продуктах ведущих фирм

Рассмотрим, как действующие стандарты используются в программных продуктах ьедущих фирм IBM, Microsoft и Borland.

Фирма IBM для обеспечения мобильности (переносимости) операцион­ных систем разработа та архитектуру 5А1 (System Application Architecture,).

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

  • доступа конечного пользователя;

  • прикладно! о программирования;

  • телекоммуникационный (связи с удаленными пользователями и объек­тами сети).

Инте рфейс доступа конечного пользователя охватывает комп пеке техни­ческих, организационных и программных решений, обеспечивающих простоту и унификацию взаимодействия конечного пользователя с различными моде­лями ЭВМ.

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

В качестве телеком муникационного интерфейса предлагаю.ся протоколы сетевой архитектуры SNA (System Network Architecture - сетевая архитекту­ра системы), средства выхода в сети, поддерживающие протокол Х.25, а так­же протоколы потоксч данных для устройств типа IBM 3270.

Фирма Microsoft на основе стандарта CAL разработала открытый интер­фейс ODBC (()реп DataBase Connectivit у - совместимость открытых баз дан­ных) доступа к ба^ам данных из приложений.

Стандарт СЛЕ( Common Application Enyironnient — общая прикладная сре­да) был разработан группой SAG и Х/Ореп с целью разрешить прот иворечия множества схожих существующих стандартов прик одного программирова­ния. Этот стандарт опирается на стандарты ANSI, ISO и собственные стан­дарты гру пи. Основное его назначение - обеспечение взаимодействия при­кладных программ в открытых системах.

ODBC представляет собой интерфейс прикладного программирования в виде библиотеки функций, вызываемых из различных программных сред и позволяющих приложениям унифицирован™ обращаться на SQL к базам данных различных форматов

Функции интерфейса ODBC включают следующие шесть основных групп:

  • назначение идентификаторов окружения, соединения и SQL-операторов;

  • соединение;

  • выполнение SQL-операторов;

  • получение результатов;

  • управ ление транзакциями;

  • идентификация ошибок и смешанные функции.

При выполнении приложений, использующих ODBC, предусматривают­ся следующие этапы:

  • инициализация (назначение идентификаторов окружения и соединений, соединение с сервером, назначение идентификаторов SQL-операторам);

  • выполнение SQL-операторов с анализом результатов;

  • завершение (освобождение идентификаторов SQL-операторов, разрыв соединения, освобождение идентификаторов соединений и окружения).

Интерфейс ODBC поддерживает общий набор функций языка SQL для доступа к базам данных и позволяет работать в так называемом прозрачно,.' режи не по соглашениям конкретной базы данных. Кроме того, он содержит уровни функциона чьности или ие рархии функциональных возможностей: минимальную, основную и рссширенную.

Программные средства поддержки ODBC корпорация Microsoft обыч­но поставляет вместе с СУБД. Так, вместе с MS Access предоставляется менеджер драйв( ров и драйвер доступа к MS SOL Server. Драйверы до­ступа к форматам других БД берутся от фирм-разработчиков соответству­ющих СУБД.

Фирма Borland в основных программных прод\ ктах Delphi, Paradox for Windows, d Base for Windows и других, использует собственное стандартизо­ванное средство доступа к батам данных Borland Database Engine (BDE) - про­цессор баз данных фирмы Borland.

BDE включает следующие три основных компонента: стандартный интер- фейс доступа к базам данных IDAPI (Integrated Database Application Program Inte rfa< e), драйверы баз данных распространенных форматов и утилиты на­стройки драйверов и псевдонимов.

Интерфейс 1DAPI насчитывает более 150 функций доступа к различным БД и позволяет просто и единообразно работать с локальными и с удален­ными данными. В основе механизма доступа лежит понятие курсора (под­раздел 3.9). IDAPI не о) раничен минимальным набором функций, поддер­живаемых БД. Как и в ODBC, здесь поддерживается расширенное множе­ство функций в соответствии с возможностями форматов локальных и уда­ленных БД.

Важной особенностью интерфейса ID API является обеспечение программ пользователя средствами вторичного уточнения результатов запросов - фильграми. Функционируя в среде клиентской части приложения, фильтры позволяют при работе с уделенными данными уменьшить объем передавае­мой по сети ин(Ьормапии. Фильтры IDAPI позволяют описыват ь сложные логические условия над данными БД.

Интерфейс IDAPI обеспечивает преобразование своих вызовов в вызовы функций интерфейса ODBC. Для обращения к функциям IDAPI можно пользоваться ягыками запросов SQL (из программ) и QBE (в диалоговом режиме).