Вход



Поиск по сайту
Google на mf.grsu.by

  
Главная страница >> Учебный процесс >> Букинист >> Ведение в базы данных >> 5. Механизмы доступа к данным. OLE DB и ADO

Введение в базы данных

Часть 5. Механизмы доступа к данным. OLE DB и ADO

Алексей Федоров, Наталия Елманова

Microsoft Universal Data Access

OLE DB

     Компоненты OLE DB

     Объекты OLE DB

     Объект DataSource

     Объект Session

     Объект Command

     Объект Rowset

     Объект Enumerator

     Объект Transaction

     Объект Error

     Поставщики OLE DB-провайдеров

Microsoft ActiveX Data Objects

     OLE DB и ADO

     Расширения ADO

     ADO Extensions for Data Definition and Security (ADOX)

     ADO Multi-Dimensional Extensions (ADOMD)

     Где найти MDAC

Заключение

 

В предыдущей статье данного цикла, опубликованной в © 6'2000, мы обсудили различные механизмы доступа к данным и подробно рассмотрели библиотеку Borland Database Engine (BDE), архитектуру использующих ее приложений, а также выяснили, с помощью каких продуктов третьих фирм можно заменить BDE в средствах разработки фирмы Borland. Как мы уже говорили, применение BDE нередко связано с определенными ограничениями, причина которых - отсутствие необходимых BDE-драйверов. В настоящей статье мы рассмотрим другой универсальный механизм доступа к данным - Microsoft ADO (ActiveX Data Objects), ныне широко применяемый не только в средствах разработки фирм Microsoft и Borland, но и во многих <пользовательских> продуктах, таких как Microsoft Office, Microsoft Internet Explorer, в ASP-приложениях и др. ADO становится все более и более популярным способом доступа к данным, так как не только входит в состав Microsoft Office 2000 и Microsoft Internet Explorer 5.0, но и является частью ядра операционных систем семейства Windows 2000. В предыдущей статье цикла мы упоминали, что OLE DB и ADO, являясь частью универсального механизма доступа к данным фирмы Microsoft (Microsoft Universal Data Access), позволяют осуществить доступ как к реляционным, так и к нереляционным источникам данных, таким как файловая система, данные электронной почты, многомерные хранилища данных и др. Эту статью мы хотим целиком посвятить универсальному механизму доступа к данным фирмы Microsoft.

Microsoft Universal Data Access

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

Назначение универсального механизма доступа к данным фирмы Microsoft - предоставить доступ к перечисленным источникам данных с помощью единой модели доступа к данным.

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

Далее мы рассмотрим основные компоненты архитектуры универсального механизма доступа к данным Microsoft и обсудим их более детально:

  • Microsoft ActiveX Data Objects (ADO) представляет собой программный интерфейс для доступа к данным из приложений. С точки зрения программирования ADO и его расширения являются упрощенным высокоуровневым объектно-ориентированным интерфейсом к OLE DB;

  • OLE DB - это низкоуровневый интерфейс для доступа к данным. ADO использует OLE DB, но можно использовать OLE DB и напрямую, минуя ADO;

  • Open Database Connectivity (ODBC), уже обсуждавшийся в одной из предыдущих статей данного цикла, - стандартный способ доступа к реляционным данным. Этот компонент универсального механизма доступа к данным оставлен с целью обеспечения совместимости с прежними версиями программного обеспечения. В современных приложениях применению ODBC-драйверов предпочитают использование OLE DB-провайдеров.

Архитектура универсального механизма доступа к данным Microsoft схематически представлена на рис. 1.


Рис. 1

Так как OLE DB является низкоуровневым интерфейсом доступа к данным, мы начнем рассмотрение составных частей универсального механизма доступа к данным фирмы Microsoft именно с него. Ниже мы обсудим архитектуру и интерфейсы OLE DB, а затем покажем, как OLE DB взаимодействует с ADO.

В начало В начало

OLE DB

Итак, OLE DB представляет собой программный интерфейс для доступа к различным источникам данных, таким как реляционные и нереляционные данные, текстовые, графические и географические данные, архивы электронных писем, файловая система, бизнес-объекты. В спецификации OLE DB определен набор COM-интерфейсов (COM, Component Object Model, компонентная модель объектов Microsoft, являющаяся составной частью 32-разрядных версий Windows), инкапсулирующих различные сервисы управления данными и предоставляющих однотипный доступ к перечисленным выше данным. Эти интерфейсы могут быть использованы в приложениях, предоставляющих доступ к данным.

В начало В начало

Компоненты OLE DB

На самом верхнем уровне можно отметить три главных компонента OLE DB: потребители (consumers), провайдеры данных (data providers) и сервисные компоненты (service components).

Любой компонент программного обеспечения, применяющий интерфейсы OLE DB, является потребителем. Это может быть какое-либо офисное приложение или иное бизнес-приложение, средство разработки типа Visual Basic или Delphi либо даже COM-объекты для доступа к данным, применяющие интерфейсы OLE DB. Потребители могут обращаться к данным посредством ActiveX Data Objects, представляющих собой высокоуровневый интерфейс к OLE DB, или применять OLE DB непосредственно, используя OLE DB-провайдер.

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

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

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

  • получение данных из базы данных или их модификацию в базе данных;

  • возвращение данных потребителю.

Примером провайдеров данных является провайдер Microsoft Jet 4.0 OLE DB Provider, который используется для доступа к данным Microsoft Access, а также к данным I-ISAM (Installable Indexed Sequential Access Method), файлам рабочих книг Excel, хранилищ данных Microsoft Outlook и Microsoft Exchange, таблиц dBase и Paradox, текстовым файлам, файлам в формате HTML и др. Еще один пример OLE DB-провайдера - Microsoft OLE DB Provider for SQL Server, применяемый для доступа к базам данных Microsoft SQL Server 6.5 и 7.0.

Провайдер сервисов (или сервисный компонент) реализует расширенную функциональность, не поддерживаемую обычными провайдерами данных, например сортировку и фильтрацию данных, обработку транзакций и SQL-запросов, управление курсором и др. Сервисный компонент может обращаться к хранилищу данных непосредственно или с помощью соответствующего провайдера данных - в этом случае провайдер сервисов является одновременно и провайдером, и потребителем. Например, сервисные компоненты, такие как Microsoft Cursor Service for OLE DB и Microsoft Data Shaping Service for OLE DB, могут использоваться совместно с провайдерами данных OLE DB для расширения их функциональности.

На рис. 2 показано, как компоненты OLE DB взаимодействуют между собой. Из рисунка следует, что потребитель может получать данные как непосредственно с помощью провайдера данных, так и с использованием сервисов, предоставляемых сервисными компонентами.


Рис. 2

В табл. 1 приведен список провайдеров, доступных в составе набора MDAC (Microsoft Data Access Components), поставляемого с рядом продуктов Microsoft.

Таблица 1

Провайдер Описание
Microsoft OLE DB Provider for ODBC Drivers Позволяет осуществить доступ к любому ODBC-источнику
Microsoft Jet 4.0 OLE DB Provider Применяется для доступа к данным Microsoft Access и некоторых других СУБД
Microsoft OLE DB Provider for SQL Server Используется для доступа к данным Microsoft SQL Server
Microsoft OLE DB Provider for Oracle Используется для доступа к данным Oracle
Microsoft OLE DB Provider for Internet Publishing Используется для доступа к Web-серверам и ресурсам, обслуживаемым Microsoft FrontPage или Microsoft Internet Information Server
OLE DB Provider for Microsoft Directory Services Применяется для доступа к гетерогенным службам каталогов с помощью Microsoft Active Directory Service Interfaces (ADSI)
Microsoft OLE DB Provider for Microsoft Index Server Предоставляет доступ <только для чтения> к файловой системе и данным Web, индексированным с помощью Microsoft Indexing Service
Microsoft OLE DB Simple Provider Используется для доступа к текстовым файлам
Cursor Service for OLE DB Расширяет функциональность курсора
Data Shaping Service for OLE DB Применяется для создания связей между наборами данных и получения иерархических наборов данных
OLE DB Persistence Provider Используется для сохранения наборов данных в форматах ADTG (Advanced Data Table Gram) или XML (eXtensible Markup Language)
OLE DB Remoting Provider Позволяет обращаться к провайдерам данных на удаленных компьютерах
Microsoft OLE DB Provider for OLAP Services Применяется с расширением ADO Multi-Dimensional (ADO MD) для доступа к многомерным данным, созданным с помощью Microsoft SQL Server 7.0 OLAP Services

Как мы уже писали, OLE DB представляет собой набор COM-интерфейсов. На рис. 3 схематически представлены четыре основных объекта и их интерфейсы, а также методы, с помощью которых они взаимодействуют.


Рис. 3

Отметим, что каждый OLE DB-провайдер должен содержать реализацию объектов DataSource, Session и Rowset. Помимо трех основных объектов могут быть и другие.

Рассмотрим эти объекты более подробно.

В начало В начало

Объекты OLE DB

Объектная модель OLE DB содержит четыре ключевых объекта:

  • DataSource;

  • Session;

  • Command;

  • Rowset.

В начало В начало

Объект DataSource

Объект DataSource, применяемый потребителями данных для соединения с провайдером, может быть создан различными способами, включая вызов функции CoCreateInstance с идентификатором класса (CLSID, Class Identifier) OLE DB-провайдера, использование объекта Enumerator (см. ниже), который занимается поиском источников данных, и пр. Объект DataSource инкапсулирует информацию, связанную с соединением (включая имя пользователя и пароль). Основное назначение этого объекта - предоставлять данные из источника данных потребителю.

Для создания новой сессии (объект Session) потребитель должен вызвать метод CreateSession интерфейса IDBCreateSession объекта DataSource.

В начало В начало

Объект Session

Объект Session предоставляет контекст для транзакций, может генерировать наборы данных (rowsets) из источников данных, а также команды для запросов к источнику данных. Объект Session может выполнять роль фабрики классов для объектов Command и Rowset (см. ниже) и объекта Transaction, применяемого для управления вложенными транзакциями. Объекты Command и Rowset могут быть использованы для создания или модификации таблиц и индексов. Интерфейс IOpenRowset используется потребителями данных для работы с отдельными таблицами и индексами в хранилище данных.

С одним объектом DataSource может быть связано несколько объектов Session.

Если OLE DB-провайдер поддерживает команды или запросы, он должен уметь порождать объект Command. С одним объектом DataSource может быть связано несколько объектов Command. Для создания нового объекта Command применяется метод CreateCommand интерфейса IDBCreateCommand.

В начало В начало

Объект Command

Объект Command используется для выполнения команд, представляющих собой строки, передаваемые от потребителя данных объекту Data Source для выполнения. В большинстве случаев такая команда представляет собой SQL-предложение SELECT, однако в общем случае это может быть любое другое SQL-предложение (например, DDL-предложение). Команды могут содержать параметры - в этом случае применяется интерфейс ICommandWithParameters. Одна сессия может порождать несколько команд. Результатом выполнения команды (с помощью метода Execute интерфейса ICommand) обычно является новый объект Rowset.

В начало В начало

Объект Rowset

Объект Rowset (набор данных) позволяет OLE DB-провайдеру данных представлять данные из источников данных в табличном формате, то есть в виде набора строк, содержащих одну или несколько колонок. Этот объект может быть результатом выполнения команды или может быть сгенерирован непосредственно провайдером данных, если провайдер не поддерживает команд. Все провайдеры данных <умеют> создавать наборы данных напрямую. Объект Rowset может быть также использован для обновления, добавления или удаления строк - это зависит от функциональности провайдера данных.

С помощью интерфейса IRowset из объекта Rowset потребители могут перемещаться по набору данных вперед и, если набор данных позволяет, назад. Некоторые провайдеры могут предоставлять дополнительные функции наподобие непосредственного доступа или определения примерной позиции данной строки в наборе.

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

Существуют также специальные объекты типа Rowset - schema rowsets, содержащие метаданные (то есть сведения о структуре данных), и view rowsets, содержащие подмножество строк и столбцов объекта Rowset.

Помимо четырех основных объектов, перечисленных выше, существуют и другие объекты OLE DB. Они нужны для перечисления источников данных, управления транзакциями, обработки ошибок и др. Некоторые из них мы рассмотрим ниже.

В начало В начало

Объект Enumerator

Объект Enumerator необходим для получения списка доступных объектов, обеспечивающих доступ к источникам данных (OLE DB-провайдеров). Этот объект используется потребителями данных для поиска соответствующих объектов. В большинстве случаев сведения, возвращаемые объектом Enumerator, извлекаются из системного реестра. Этот объект реализует интерфейс ISourceRowset и возвращает объект Rowset с описанием всех источников данных и других доступных с его помощью объектов Enumerator. Для этой цели используется метод GetSourcesRowset интерфейса ISourceRowset.

Объект Transaction

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

Транзакции бывают локальными и распределенными. Локальные транзакции - это транзакции, выполняемые в контексте единого провайдера данных. Провайдер, поддерживающий локальные транзакции, должен реализовать интерфейс ITransactionLocal. Транзакция начинается с вызова метода StartTransaction, завершается с помощью метода Commit или откатывается с помощью Abort. Способность провайдера поддерживать транзакции может быть определена с помощью интерфейса IDBProperties.

Распределенные транзакции выполняются в контексте нескольких провайдеров данных. Для выполнения таких транзакций потребители используют интерфейс TtransactionJoin, доступный только если провайдер данных поддерживает распределенные транзакции. В этом случае потребитель вызывает метод JoinTransaction для регистрации сессии в распределенной транзакции. После присоединения к распределенной транзакции потребитель использует интерфейс ITransaction для завершения или отката транзакции.

В начало В начало

Объект Error

В дополнение к кодам возврата и информации о состоянии, свидетельствующей об успехе или неуспехе вызова любого из методов OLE DB, OLE DB-провайдеры могут предоставлять расширенную информацию об ошибках с помощью объекта Error. Потребители данных могут использовать интерфейс ISupportErrorInfo для того, чтобы определить, может ли данный объект возвратить объект Error, и если да, то каковы эти интерфейсы.

Подробности об OLE DB можно найти на Web-сайте компании Microsoft:

http://www.microsoft.com/data/oledb

или в следующих группах новостей на http://www.compress.ru/Temp/541/:

microsoft.public.oledb

microsoft.public.oledb.sdk

Выше мы уже перечислили ряд стандартных OLE DB-провайдеров, доступных в составе Microsoft Data Access Components и некоторых других продуктов Microsoft. Далее мы выясним, где можно найти OLE DB-провайдеры сторонних производителей и даже инструменты для создания собственных провайдеров.

В начало В начало

Поставщики OLE DB-провайдеров

Многие производители СУБД поставляют OLE DB-провайдеры в составе своих продуктов. В табл. 2 приведен список подобных производителей серверных СУБД.

Таблица 2

Производитель OLE DB-провайдеры URL
Computer Associates, Inc. Jasmine OLE DB Provider http://www.cai.com/
Informix Software, Inc. INFORMIX OLE DB Provider http://www.informix.com/
Object Design, Inc. ObjectStore OLE DB Provider http://www.odi.com/
SAS Institute SAS/MDDB http://www.sas.com/
Sequiter Software, Inc. CodeBase OLE DB Provider http://www.sequiter.com/

Помимо этого существуют компании, производящие OLE DB-провайдеры для различных источников данных. Они перечислены в табл. 3.

Таблица 3

Производитель OLE DB-провайдеры URL
Applied Information Services - UniAccess AIS UniAccess http://www.uniaccess.com/
ASNA Acceler8-DB and DataGate/400 http://www.asna.com/
B2 Systems - SQL Integrator Oracle, Sybase, Informix, Microsoft SQL Server, RDB, DB2, <плоские> файлы http://www.b2systems.com/
HiT Software, Inc. HiT OLE DB Server/400 http://www.hit.com/
ISG - ISG Navigator C-ISAM, DB2, IMS, INFORMIX, Jasmine, OpenIngres, Oracle, SQL Server, Sybase, ADABAS, Rdb, RMS, VSAM http://www.isgsoft.com/
MERANT plc - CONNECT OLE DB INFORMIX 7.x и 9.x, Lotus Notes 4.11a, 4.5, Microsoft SQL Server 6.5, 7.x, Oracle 7.x, 8.0.x, Sybase System 10,11, Adaptive Server 11.x http://www.merant.com/
MERANT plc - Reflector Процессор запросов для SQL- и не-SQL-источников данных http://www.merant.com/
MERANT plc - SequeLink OLE DB Edition CA-Open Ingres, IBM DB2/MVS, DB2/400, DB2 UDB, MVS/VSAM via CICS 4.1, INFORMIX Dynamic Server, Online, SE, Microsoft SQL Server 6.5, 7.x, Oracle 7.x, 8.x, Sybase System 10.x, 11.x, Sybase Adaptive Server, ODBC Socket http://www.merant.com/
MetaWise Computing AS/400, MVS/VSAM http://www.metawise.com/
Microsoft Corp LDAP, NetWare, каталоги NT, текстовые файлы, HTML, документы Office, SQL,VSAM, AS/400, SQL Server, ODBC-источники данных http://www.microsoft.com/data/oledb
NCR Corporation - Teradata OLE DB Provider Teradata http://www.ncr.com/
Novell, Inc. - Database Manager for NetWare (ODBX-OLE-DB) <Плоские> файлы, INFORMIX, Ingres, Oracle, Microsoft SQL Server, Sybase http://developer.novell.com/
Sagent Technology, Inc. - Sagent Data Mart Server <Плоские> файлы, INFORMIX, Oracle, Red Brick, Sybase, Microsoft SQL Server, ODBC-источники данных (включая DB2) http://www.sagenttech.com/
X-Tension Projects Ltd - OLE DB for OLAP MDX Parser ProGnosis Data Explorer, другие провайдеры http://www.xdb.com/

Наиболее актуальную информацию об OLE DB-провайдерах можно найти на сайте, посвященном Microsoft Universal Data Access:

http://www.microsoft.com/data/partners/products.htm

В случае когда вам необходимо создать собственный OLE DB-провайдер, есть несколько инструментов, доступных на рынке. Они показаны в табл. 4.

Таблица 4

Vendor Tool URL
Simba Technologies SimbaProviderSimbaProvider for OLAP SDK http://www.simba.com/
Automation Technology Company OpenAccess OLE DB SDK http://www.odbcsdk.com/
Geppetto's Workshop AntMDX http://www.geppetto.com/
X-Tension MDX Parser for OLE DB for OLAP http://www.x-tension.com/
IBM Client Access for Windows 9x/NT SDK http://www.as400.ibm.com/
Binh Ly OLE DB Provider Toolkit for Delphi 5 http://www.techvanguards.com/

Рассмотрев OLE DB, мы можем перейти к обсуждению ADO и его взаимодействию с OLE DB.

В начало В начало

Microsoft ActiveX Data Objects

ADO, как мы знаем, представляет собой высокоуровневый программный интерфейс для доступа к OLE DB-интерфейсам. Он позволяет манипулировать данными с помощью любых OLE DB-провайдеров, как входящих в состав Microsoft Data Access Components некоторых других продуктов Microsoft, так и произведенных сторонними производителями. ADO содержит набор объектов, используемых для соединения с источником данных, для чтения, добавления, удаления и модификации данных.

Объект ADO Connection применяется для установки связи с источником данных. Он представляет единственную сессию. Этот объект позволяет изменить параметры соединения с базой данных, а также начать или завершить транзакцию. Используя объект Connection, мы можем выполнять команды (например, SQL-запросы) с помощью метода Execute. Если команда возвращает набор данных, автоматически создается объект Recordset, который возвращается в результате выполнения этого метода.

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

Объект Command представляет собой команду, которую можно выполнить в источнике данных. Команда может содержать SQL-предложение или вызов хранимой процедуры. В последнем случае для определения параметров процедуры может быть использована коллекция Parameters объекта Command.

Объект Recordset - это набор записей, полученных из источника данных, и может быть использован для добавления, удаления, изменения, просмотра записей. Данный объект может быть открыт непосредственно или создан с помощью объектов Connection или Command.

Объект Field - это колонка в наборе данных, представленных объектом Recordset. Он может быть использован для получения значений конкретного поля, его модификации, извлечения метаданных, таких как имя колонки и тип данных.

На рис. 4 изображена объектная модель ADO.


Рис. 4

Библиотека ADO 2.5, являющаяся составной частью операционной системы Windows 2000, содержит два новых объекта - Record и Stream.

Объект Record представляет одну запись внутри объекта Recordset и может быть использован для работы с гетерогенными и иерархическими данными.

Объект Stream представляет двоичные данные, связанные с объектом Record. Например, если объект Record представляет собой файл, то его объект Stream должен содержать данные внутри этого файла.

В начало В начало

OLE DB и ADO

Ранее в этой статье мы уже рассмотрели некоторые основные объекты OLE DB. Теперь настало время показать, как объекты ADO используют OLD DB:

  • объект ADO Connection использует объекты OLE DB DataSource и Session. Транзакции поддерживаются с помощью интерфейсов ITransaction и ITransactionLocal, метод Execute использует метод Execute интерфейса ICommand или метод OpenRowset интерфейса IOpenRowset. Большинство свойств доступно с помощью IDBProperties. Объект Error поддерживается с помощью интерфейса IErrorRecords;

  • объект ADO Command использует объект OLE DB Command и интерфейс ICommand. Например, его метод Execute вызывает непосредственно одноименный метод объекта OLE DB Command, его свойство CommandText доступно с помощью методов GetCommandText и SetCommandText интерфейса ICommandText. Коллекция Parameters объекта ADO Command доступна с помощью интерфейса ICommandWithParameters;

  • объект ADO Recordset использует объект OLE DB Rowset. Он применяет интерфейсы IRowset, IRowsetLocate и IRowsetInfo для реализации большинства методов, свойств и коллекций. Объект Field использует интерфейс IColumnsInfo.

Подробную информацию можно найти в Microsoft OLE DB Programmer's Reference, являющемся составной частью Platform SDK.

В начало В начало

Расширения ADO

Начиная с версии 2.1, ADO содержит несколько расширений, на которых мы кратко остановимся ниже.

В начало В начало

ADO Extensions for Data Definition and Security (ADOX)

ADO Extensions for Data Definition and Security (ADOX) представляет собой набор объектов, позволяющих манипулировать метаданными в базах данных и управлять объектами, отвечающими за безопасность. Эти объекты кратко описаны в табл. 5.

Таблица 5

Объект Назначение
Catalog Представляет всю схему базы данных
Table Представляет таблицу в базе данных
Column Представляет колонку в таблице, индексе или ключе
Index Представляет индекс внутри таблицы
Key Представляет первичный или внешний ключ
Group Представляет группу пользователей
User Представляет индивидуального пользователя базы данных внутри группы
Procedure Представляет хранимую процедуру внутри базы данных
View Представляет view внутри базы данных

Иерархия объектов ADOX показана на рис. 5. Из диаграмм на рисунке следует, что объекты Table, Column и Index имеют стандартную коллекцию Properties. Объекты ADOX представляют большинство основных объектов в типичных реляционных СУБД, и их свойства и методы могут быть использованы для создания этих объектов и манипуляции ими.


Рис. 5

В начало В начало

ADO Multi-Dimensional Extensions (ADOMD)

ADO Multi-Dimensional Extensions (ADOMD) - это набор объектов, позволяющих использовать многомерные данные в ADO-приложениях. Такие данные управляются OLAP-серверами (OLAP, Online Analytical Processing), такими как Microsoft OLAP Server, входящий в комплект поставки Microsoft SQL Server 7.0 (или Analytical Services в Microsoft SQL Server 2000). OLAP-серверы широко применяются в системах принятия решений, где требуется статистический анализ больших объемов данных.

Объекты ADOMD кратко описаны в табл. 6.

Таблица 6

Объект Назначение
Catalog Представляет всю схему многомерной базы данных
CubeDef Представляет многомерный куб в базе данных
Dimension Представляет размерность внутри куба
Hierarchy Представляет иерархию внутри размерности
Level Представляет уровень иерархии
Cellset Представляет результат запроса к кубу
Cell Представляет ячейку в объекте CellSet
Axis Представляет одну из осей в объекте CellSet
Position Представляет позицию в объектах Cell или Axis
Member Представляет конкретное значение вдоль оси или уровня иерархии

Иерархия объектов ADOMD показана на рис. 6.


Рис. 6

Jet and Replication Objects (JRO)

Jet and Replication Objects - набор объектов, специально предназначенных для использования совместно с Microsoft Jet OLE DB Provider. Его свойства позволяют создавать, модифицировать и синхронизировать реплики. Реплика - это копия базы данных, изменения в которой синхронизируются с главной базой данных (master database).

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

Объект JetEngine применяется для сжатия баз данных и обновления данных из кэша памяти.

Иерархия объектов JRO показана на рис. 7.


Рис. 7

Подробности об ADO можно найти на Web-сайте компании Microsoft:

http://www.microsoft.com/data/ado

или в следующих группах новостей на http://msnews.microsoft.com/:

microsoft.public.data.ado

microsoft.public.data.ado.rds

В начало В начало

Где найти MDAC

Microsoft Data Access Components можно найти на Web-сайте компании Microsoft: http://www.microsoft.com/data, а также в составе Delphi 5 и C++Builder 5 Enterprise, Microsoft Office 2000, Internet Explorer 5.0. Рекомендуется периодически обновлять версию MDAC, получая ее с сайта компании Microsoft, - это гарантирует наличие последних версий всех компонентов MDAC.

ADO 2.5 является частью Windows 2000 и не требует отдельной установки. MDAC Software Development Kit, который может потребоваться разработчикам ADO-приложений, входит в состав Microsoft Platform SDK. Он может быть заказан на CD-ROM или получен на Web-сайте компании Microsoft.

В начало В начало

Заключение

В данной статье мы рассмотрели основные части Microsoft Data Access Components (MDAC) - набора технологий, реализующих универсальный механизм доступа к данным Microsoft. Мы узнали, что универсальный механизм доступа к данным (Universal Data Access) представляет собой стратегию предоставления доступа к любому типу информации предприятия, включая реляционные и нереляционные данные.

Далее мы рассмотрели основные компоненты архитектуры универсального механизма доступа к данным Microsoft. Мы узнали, что:

  • OLE DB - это низкоуровневый интерфейс для доступа к данным. ADO использует OLE DB, но можно использовать OLE DB и напрямую, минуя ADO;

  • Microsoft ActiveX Data Objects (ADO) - это программный интерфейс для доступа к данным из приложений. С точки зрения программирования ADO и его расширения представляют собой упрощенный высокоуровневый объектно-ориентированный интерфейс к OLE DB.

Кроме того, мы рассмотрели основные объекты OLE DB и ADO и выяснили, как они взаимодействуют друг с другом.

Перечислив стандартные OLE DB-провайдеры, доступные в составе Microsoft Data Access Components и некоторых других продуктов Microsoft, мы обсудили, какие OLE DB-провайдеры сторонних производителей доступны в настоящее время и какие в данный момент имеются инструменты для производства собственных провайдеров.

Мы также рассмотрели расширения ADO, доступные начиная с версии 2.1:

  • ADO Extensions for Data Definition and Security (ADOX) - это набор объектов, позволяющих манипулировать метаданными в базах данных и управлять объектами, отвечающими за безопасность данных;

  • ADO Multi-Dimensional Extensions (ADOMD) - это набор объектов, позволяющих использовать в ADO-приложениях многомерные данные, управляемые OLAP-серверами;

  • Jet and Replication Objects - это набор объектов для управления репликациями, специально предназначенных для использования совместно с Microsoft Jet OLE DB Provider.

Несколько слов хотелось бы сказать об универсальных механизмах доступа к данным в целом. Как мы видим, механизм, основанный на применении OLE DB и ADO, имеет все основания претендовать на роль ключевой технологии доступа к данным для Windows-приложений, ибо:

  • он входит в состав не только многих популярных продуктов Microsoft, но и семейства операционных систем Windows 2000, что позволяет безболезненно решить ряд проблем, связанных с поставкой таких приложений и их сопровождением;

  • OLE DB-провайдеры выпускаются не только автором технологии OLE DB, но и многими сторонними производителями (вспомним, например, что ситуация с BDE-драйверами как раз обратная);

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

  • данная технология базируется на использовании COM-интерфейсов, поэтому она поддерживается всеми средствами разработки, позволяющими создание COM-клиентов с их помощью. Кроме того, многие средства разработки, даже не принадлежащие Microsoft, поддерживают ADO на уровне собственных классов и компонентов (например, Delphi 5 и C++Builder 5), несмотря на наличие других встроенных механизмов доступа к данным.

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

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



Предыдущая страница Следущая страница

КомпьютерПресс 8'2000

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017