Теория и практика построения баз данных (1088289), страница 122
Текст из файла (страница 122)
15,1. Потребности интернет-приложения Рис. 15.2. Роль стандарта ОВВС Реляционные базы данных, Огас!е, ВСК. Зепгег, Ассезз, ОВ2 ... Нереляционные базы данных УЗАМ, 18АМ, другие обработчики файлов Электронная почта, другие типы документов Картинки, аудиофайлы, прочее Рис. 15.3. Роль Оьб ОВ Стандарт ОРВС был разработан для решения той части данной проблемы, которая относится к реляционным базам данных и источникам данных, имеющим табличную организацию, например электронным таблицам.
Как показано на рис. 15.2, ОРВС является интерфейсом между туеЬ-сервером (или другим пользователем базы данных) и сервером базьс данных. Он представляет собой набор стандартов, позволяющих, кроме прочего, запускать на выполнение ЯЯ1- операторы и возвращать результаты н сообщения об ошибках. Из рисунка можно видеть, что разработчики могут обращаться к серверам данных через «родные» интерфейсы, если таковы нх предпочтения Ргногда это делается для увеличения производительности), но когда работы слишкол1 много, а время и желание изучать множество библиотек собственных интерфейсов СУБД отсутствуют, то вмссто них можно пользоваться ОРВС.
Стандарт ОВВС имел болыпой успех, поскольку чрезвычайно упростил некоторые задачи, связанные с разработкой баз данных. Как вы узнаете, у него есть существенный недостаток, для преодоления которого М1сгозо11 разработала стандарт О!.Е РВ. На рнс. 15.3 представлены отношения между ОЕЕ РВ, ОРВС и другими типамп источников данных. ОЬЕ РВ предоставляет объектно-ориентированный интерфейс к источникам данных почти любого типа. Производители СУБД могут заключать фрагменты «родных» библиотек в объекты ОЕЕ РВ, благодаря чему функции этих библиотек становятся доступными через интерфейс ОЬЕ РВ. Кроме того, 01Е РВ можно использовать как интерфейс к источникам данных ОРВС.
Наконец, в ОЬЕ РВ предусмотрена поддержка и нереляционных источников данных. Стандарт ОВВС 553 Стандарт 00ВС еляциснные базы данных, Огас!е, ЗОЬ бепгег, ссезв, ОВ2 ... Нврепяциснные азы данных тГЗАМ,!ВАМ, другие обработчики файлов Электронная почта, другие типы документов Картинки, аудиофайлы, прочее Архитектура ООВС Рис.
1б.в. Роль АОО 562 Глава 15. ОВВС, ОЕЕ ОВ, АОО и АЯР Так как 01Е РВ прелставляет собой объектно-ориентированный интерфейс, он особенно хорошо подходит для использования с объектно-ориентированными языками программирования, такими как С++. Однако многие разработчики приложений баз данных программируют на У1эца1 Вагйс или на сценарных языках, таких как УВБспрс и зЗспрп Чтобы и им предоставить поступ к ОВВС, М(сгоэо1с разработала АРО как оболочку для объектов ОБЕ РВ (рис.
15.4). АРО позволяет обращаться к функциональности ОЕЕ РВ практически из любого языка. Вам может не понравиться навязчивое присутствие М1сгоэо(г в этом повествовании. Но и О?.Е РВ, и АРО были разработаны и продвинуты М1сгозо(г, и даже ОРВС завоевал лидирующие позиции во многом благодаря поддержке Мгсгозойа Другие производители и комитеты по стандартизации предлагали альтернативы 01 Е РВ и АРО, но поскольку система М1сгоэо(т 'тт'1пг)отуэ установлена на 90% настольных компьютеров во всем мире, другим организациям трудно продвигать конкурирующие стандарты. Кроме того, в защиту Мгсгоэо(г говорит то, что ОБЕ РВ и АРО отлично выполняют свои функции.
Они облегчают труд разработчика баз данных, и, возможно, они одержали бы победу даже в равной конкурентной борьбе. Однако наши цели имеют более земной характер. Изучение АРО необходимо вам для того, чтобы вы люгли создавать качественные приложения баз данных с использованием интернет-технологий. С этих позиций мы н будем подробно рассматривать каждый из этих стандартов. Стандарт ОВВС вЂ” это интерфейс, с помощью которого прикладные программы могут обращаться к ЯЯ1-базам данных и обрабатывать их независимым от СУБД способом. Это означает, к примеру, что приложение, которое использует интерфейс ОРВС, может обрабатывать базу данных Огас1е, БУВАБЕ, ПчгРОЕМ1Х и любую другую базу данных, совместимую с ОРВС, без каких-либо изменений в программном коде. Цель состоит в том, чтобы дать разработчику возможность создать одно приложение, способное обращаться к базам данных, поддерживаемым различными СУБД, без необходпмости его менять пли даже перекомпилировать.
Стандарт ОРВС был разработан комитетом производственных экспертов, сформированным из членов комитетов Х/Орел и 501 Ассезз Сгоцр. Было предложено несколько стандартов, но победителем оказался ОРВС, в основном потому, что он реализован М1сгозо(т н является важной составной частью 'т1г(пг)оцгэ. Изначально интерес М(сгозо1с к поддержке этого стандарта был обусловлен желанием обеспечить в продуктах, подобных Ехсе1, возможность обращения к различным СУБД без перекомпиляция.
Разумеется, с тех пор как стандарт 01.Е РВ был внедрен, интересы М1сгозо1г изменилнсь. ОРВС важен для систем баз данных, использующих интернет-технолопш. потому что теоретически можно разработать приложение, которое будет обрабатывать базы данных, поддерживаемые различными СУБД. Мы говорим «теоретически», поскольку продукты соответствуют стандарту в различной степени. К счастью, комитет ОРВС предвидел то, что в уровне поддержки стандарта будут различия, и принял некоторые меры на этот случай, как вы узнаете позже.
На рис. 15.5 показаны компоненты стандарта ОВВС, Прикладная программа, диспетчер драйвера и драйверы СУБД нахолятся на том компьютере, где располагается туеЬ-сервер. Диспетчеры посылают запросы источникам данных, которые находятся на сервере базы данных. Согласно стандарту, исглочних даггных (г(ага эопгсе) — это база данных, поддерживающая ее СУБД, операционная система и сетевая платформа.
Источник данных ОРВС может быть реляционной базой данных, файловым сервером, например ВТпеуе, и даже электронной таблицей. Стандарт ООВС 565 Серверы базы данных чуев-сервер Компьютер сервера данных ЧуеЬ-сервер файловог Файлы базы файлового ввода вывода Компьютер сервера базы данных УчеЬ-сервер Диспетчер ДРайвеР драйверов СУБД СУБД БД Команды Бсь Файлы базы данных Уровни соответствия 564 Глава 15.
ООВС, ОЬЕ ОВ, АОО и АЯР Приложение может обрабатывать базу данных с помощью любой из трех СУБД Рис. 1б.б. Архитектура 00ВС Приложение инициирует запросы на создание соединения с источником данных, на выполнение БО1.-операторов и получение результатов, на обработку ошибок и на начало, фиксацию и откат транзакций. ОВВС предоставляет стандартный способ для выполнения каждого из этих запросов и определяет стандартный набор кодов ошибок и сообшений.
Диспетчер драйвера Яггчег шапаяег) служит в качестве посредника между приложениями и драйверами СУБД. Когда приложение запрашивает соединение, драйвер определяет тип СУБД, которая обрабатывает заданный источник данных ОРВС, и загружает этот драйвер в память (если оп еше не загружен). Диспетчер драйвера также обрабатывает определенные запросы на инициализацию и проверяет допустимость формата и порядка запросов к ОРВС, которые он получает от приложения, Диспетчер драйвера предоставляется М1сгозо11 и входит в состав чч1пг)оччз. Драйвер (г)г1чег) обрабатывает запросы к ОВВС и передает конкретные БЯ1.-операторы на вьгполнение заданному источнику данных. Для каждого типа источника данных имеется свой драйвер. Например, есть драйверы для РВ2, Огас!е, Ассеьв и всех других продуктов, производители которых решили поддерживать стандарт ОРВС.
Драйверы поставляются производителями СУБД и независимыми компаниями. Драйвер отвечает за то, чтобы стандартные команды ОРВС выполнялись корректно. В некоторых случаях, если сам источник данных не соответствует стандарту ЯЯ1., драйверу приходится выполнять значительную работу, чтобы восполнить недостаток функциональности источника данных. В других случаях, когда источник данных имеет полномасштабную поддержку ЗО1., драйвер только передает запрос на обработку источнику даннъгх.
Драйвер также преобразует коды ошибок источника данных и сообщения в стандартные коды и сообщения ОВВС. ОРВС определяет два типа драйверов: одноуровневые и многоуровневые. Одяоуровневый драйвер (япй1е-11ег с1пчег) занимается как обработкой вызовов ОВВС, так и выполнением БЯ).-операторов. Пример одноуровневого драйвера изображен на рис. 15.6, а. В этом примере данные хранятся в файлах ХЬазе (формат, используемый Гохрго, пВазе и другими продуктами).
Поскольку диспетчеры файлов ХЬазе не поддерживают БО1., преобразование БО1.-запроса в команды манипуляции файлами ХЬазе и обратное преобразование результатов в ЗО1. возлагается на драйвер. б Рмс. 16.6. Типы драйверов 00ВС; в — одноуровневый драйвер; б — многоуровневый драйвер Мггогоуроенееый драйвер (шп!г1-11ег дггчег) занимаетгя только обработкой вызовов ОВВС, а БО?.-запросьг передает на выполнение серверу базы данных.
Он может переформатировать ЯО1.-запрос. чтобы тот соответствовал диалекту конкретного источника данных, но выполнение запроса не входит в его функции. Пример использования многоуровневого драйвера показан па рис. 15.6, б. Перед создателями стандарта ОВВС стояла дилемма. Боли они зададут стандарт на минимальный уровень совместимости, поддержать этот стандарт будут в состоянии многие производители. Однако при этом стандарт будет представлять только малую долю всей мощи и выразительности, которыми обладают ОРВС и БЯ1.. С другой стороны, если стандарт будет предписывать очень высокий уровень совместимости, то лишь немногие производители слюгут поддерживать его, а это лишит его ценности. Чтобы справиться с этой дилеммой, комитет по разработке ОВВС принял мудрое решение — определить уровни соответствия стандарту.
Уровни соответствия определяются по отношению к БО). н по отношению к ОВВС. Уровень соответствия 00ВС Уровень соответствия ОРВС (ОРВС соп1оппапсе 1ече1) описывает то, какие воз- можности и функции доступны через интерфейс прикладных программ (АР1) драйвера. Интерфейс прикладных програмлг драйвера — это набор функций, 566 Глава 15. ООВС, ОЕЕ ОВ, АОО и АВР Стандарт ООВС 567 которые может вызывать приложение для обращения за услугами источника данных. В списке приведено описание трех уровней соответствия ОПВС, описанных в стандарте. На практике почти все драйверы обеспечива|от по крайней мере первый уровень соответствия, поэтому базовый уровень не прелставляет особого интереса. Базовый уровень (Соге АР1) + Соединение с источниками данных.