Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Стандартные системы доступа к базам данных

Читайте также:
  1. ACL: списки контроля доступа в Cisco IOS из песочницы
  2. III. Требования к организации системы обращения с медицинскими отходами
  3. III. Требования к организации системы обращения с медицинскими отходами
  4. А стоит ли читать модную «молитву задержания»? В молитвословах, изданных Патриархией, ее нет, но множество листовок призывает с помощью этой молитвы задержать приход антихриста.
  5. Аварийные и нестандартные ситуации.
  6. Адаптер данных (объект DataAdapter)
  7. Адаптеры данных и связанные таблицы

ДОСТУП К БАЗАМ ДАННЫХ____________

Стандартные системы доступа к базам данных

Существует несколько способов доступа к данным из средств разработки и клиентских приложений Подавляющее большинство систем управления БД содержит в своем составе библиотеки, предоставляющие специальный прикладной про­граммный интерфейс (Application Programming InterfaceAPI) для доступа к данным этой СУБД. Обычно такой интерфейс пред­ставляет собой набор функций, вызываемых из клиентского при­ложения. В случае настольных СУБД эти функции обеспечивают чтение/запись файлов БД, а в случае серверных СУБД иниции­руют передачу запросов серверу БД и получение от сервера ре­зультатов выполнения запросов или кодов ошибок, интерпрети­руемых клиентским приложением. Библиотеки, содержащие API для доступа к данным серверной СУБД, обычно входят в состав ее клиентского программного обеспечения, устанавливаемого на компьютерах, где функционируют клиентские приложения.

В последнее время Windows-версии клиентского программ­ного обеспечения наиболее популярных серверных СУБД, в ча­стности Microsoft SQL Server, Oracle, Informix, содержат также COM-серверы, предоставляющие объекты для доступа к данным и метаданным.

Использование клиентского API (или клиентских СОМ-объ-ектов) является наиболее очевидным (и нередко самым эффек­тивным с точки зрения производительности) способом манипу­ляции данными в приложении. Однако в этом случае созданное приложение сможет использовать данные только СУБД этого производителя, и замена ее на другую (например, с целью рас­ширения хранилища данных или перехода в архитектуру «кли­ент — сервер») повлечет за собой переписывание значительной части кода клиентского приложения — клиентские API и объ­ектные модели не подчиняются никаким стандартам и различны для разных СУБД.

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

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

Ниже приведены наиболее популярные среди универсальных механизмов доступа к данным:

• Borland Database Engine (BDE);

• Open Database Connectivity (ODBC);. OLE DB;

• ActiveX Data Objects (ADO).

Универсальные механизмы ODBC, OLE DB и ADO фирмы Microsoft представляют собой по существу промышленные стан­дарты. BDE фирмы Borland так и не стал промышленным стан­дартом, однако до недавнего времени применялся довольно ши­роко, так как до выхода Delphi 5 был практически единственным универсальным механизмом доступа к данным, поддерживаемым средствами разработки Borland на уровне компонентов и классов.

Графическая интерпретация механизмов доступа к данным из приложений приведена на рис. 4.1.

других продуктах, например Corel Paradox, Corel Quattro Pro, Seagate Software Crystal Reports.

BDE создан на основе библиотеки Paradox Engine, предна­значенной для Borland Pascal и Borland C++. Приложения, разра­ботанные с помощью последних, обеспечивали доступ к табли­цам СУБД Paradox. После создания Paradox Engine компания Borland разработала несколько библиотек-драйверов под общим названием SQL Links. Эти библиотеки расширили функциональ­ность BDE, позволив применять имевшийся в Paradox Engine на­бор функций для доступа к данным dBase, ODBC-источников, а также наиболее популярных серверных СУБД. Позже к этому на­бору были добавлены библиотеки для доступа к Access и FoxPro.

Механизм BDE широко использовался при создании прило­жений с помощью Borland Pascal 7.0 и Borland C++ 4.5 и 5. За­тем средства разработки Borland были преобразованы в средства быстрой разработки приложений (Rapid Application Develop­ment — RAD), и большинство вызовов BDE API оказалось ин­капсулировано в компонентах доступа к данным библиотеки Visual Components Library (VCL). BDE был фактически единст­венным механизмом доступа к данным в Delphi и C++ Builder, поддерживаемым на уровне компонентов, классов, а также визу­альных компонентов для редактирования данных, вплоть до по­явления 5-й версии обоих продуктов.

Физически BDE представляет собой набор библиотек досту­па к данным, реализующих BDE API — набор функций для ма­нипуляции данными, вызываемых из приложения. Эти функ­ции, в свою очередь, могут обращаться к функциям клиентско­го API (в случае, например, Oracle, Informix, IB Database) или ODBC API (Access 2000, Microsoft SQL Server 7.0, любые ODBC-источники), а также непосредственно манипулировать файлами некоторых СУБД (dBase, Paradox).

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

Среди BDE-драйверов есть драйвер, созданный с использова­нием ODBC API, — так называемый ODBC Link, который при­меняется вместе с ODBC-драйвером для выбранной СУБД.

В отличие от ODBC-драйверов и OLE DB-провайдеров, вы­пускаемых как производителями СУБД, так и многими сторон­ними производителями, BDE-драйверы производятся только са­мой компанией Inprise. Число СУБД, для которых имеются BDE-драйверы, ограничено пятью наиболее популярными сер­верными СУБД, несколькими форматами данных настольных СУБД (в основном ранних версий СУБД) и сервером IB Database, входящим в комплект поставки средств разработки Borland. Для доступа к данным остальных СУБД с помощью BDE можно использовать только ODBC-драйвер и ODBC Link.

Рассмотрим теперь конкретные СУБД, доступные с помо­щью BDE-драйверов, причем настольных СУБД.

Paradox, dBase, текстовые файлы. Для доступа к данным Paradox, dBase и текстовым файлам существуют BDE-драйверы прямого доступа, осуществляющие считывание и запись файлов этих СУБД. Более того, фирма Microsoft прямо указывает, что для записи данных в файлы этих СУБД с помощью ODBC или OLE DB (в частности, из приложений Visual Basic или VBA, при использовании этих файлов в качестве присоединенных баз дан­ных Access или Microsoft SQL Server) на компьютере, где исполь­зуется подобное приложение, следует установить BDE соответст­вующей версии, так как только эти драйверы осуществляют за­пись в такие файлы. Таким образом, применяя указанные форматы данных в приложениях, созданных с помощью таких средств разработки, не только для чтения, но и для записи, не­обходимо установить BDE на компьютеры как было сказано выше. В табл. 4.1 приведены сведения о том, какие версии BDE требуются для доступа к данным Paradox и dBase различных вер­сий с помощью ODBC или OLE DB.

Из вышеизложенного следует, что не имеет особого смысла использовать ODBC-драйверы этих СУБД и ODBC Link, no крайней мере, в средствах разработки, поддерживающих BDE (Delphi, C++ Builder), и в созданных с их помощью приложени­ях. Несмотря на то, что такой доступ к данным технически впол­не осуществим, реально в приложении все равно используется BDE-драйвер прямого доступа. В этом случае между приложени­ем и драйвером оказываются две «лишние» библиотеки, не до­бавляющие никакой дополнительной функциональности, а лишь создающие неудобства при поставке приложения и настройке доступа к данным, к тому же нередко еще и снижающие произ­водительность приложения.

Доступ к данным Paradox или поздних версий dBase непо­средственно с помощью BDE в Visual Basic, Visual C++ и иных средств разработки, не ориентированных на поддержку BDE на уровне визуальных компонентов и классов, возможен только на уровне вызовов BDE API.

Microsoft Access. BDE-драйвер прямого доступа в настоящее время доступен для Access 95 и Access 97. Оба эти драйвера рабо­тают только в том случае, когда на компьютере, где эксплуатиру­ется использующее их приложение, установлена соответствую­щая версия библиотек Microsoft Jet Engine (она входит в ком­плект поставки Microsoft Access и Microsoft Visual FoxPro). Эти драйверы не способны работать с данными Access 2000.

Для доступа с помощью BDE к Access 2000 используют соот­ветствующий ODBC-драйвер и ODBC Link, при этом на компью­тере, где эксплуатируется использующее их приложение, требует­ся наличие Microsoft Jet Engine 4.0. Продукт входит в состав Microsoft Access 2000, а также в состав Microsoft Data Access Components (MDAC) (доступны на Web-сайте корпорации Microsoft). Следует отметить, что не все типы данных, используе­мые этой версией Access, поддерживаются BDE, поэтому ка­кие-то из таблиц или их столбцов могут оказаться недоступными.

Однако, использование BDE — не самый эффективный спо­соб доступа к данным Access. Применение его целесообразно для старых версий средств разработки Borland (Delphi 1.0—4.0, C++ Builder 1.0—4.0), ориентированных на применение BDE как единственного механизма доступа к данным на уровне компо­нентов и классов. В случае применения других средств разработ­ки, а также последних версий Delphi и C++ Builder гораздо эф­фективнее осуществлять доступ к данным Access с помощью ADO и OLE DB, так как эти механизмы предоставляют по срав­нению с BDE гораздо больше функциональных возможностей.

Microsoft FoxPro и Visual FoxPro. Доступ к данным FoxPro осуществим в первую очередь с помощью BDE-драйвера прямо­го доступа, позволяющего производить запись в файлы этой СУБД. Возможен также доступ через ODBC Link и соответст­вующий ODBC-драйвер. Доступ к данным Visual FoxPro осуще­ствим только с помощью ODBC Link и соответствующего ODBC-драйвера, поскольку BDE-драйвер для БД Visual FoxPro (*.vfp) в настоящее время отсутствует.

Microsoft SQL Server и MSDE. BDE-драйвер прямого досту­па существует сегодня для Microsoft SQL Server версий 4.x и 6.x. Он не всегда работает с Microsoft SQL Server 7.0 и MSDE, так как некоторые особенности Microsoft SQL Server 7.0, отсутство­вавшие в прежних версиях этой СУБД, например ряд типов дан­ных, не поддерживаются BDE.

Следует подчеркнуть, что, как и в случае с Access, несмотря на существование теоретической возможности доступа к данным этой СУБД с помощью ODBC Link и соответствующего ODBC-драйвера, практически это осуществимо не всегда по той же са­мой причине. Доступ к данным этой СУБД необходимо осуще­ствлять с помощью ADO/OLE DB (либо с помощью объектной модели клиентской части этой СУБД).

Oracle, Sybase, IBM DB2, Informix, InterBase. Для всех пере­численных СУБД существуют BDE-драйверы прямого доступа (SQL Links). Кроме того, СУБД доступны с помощью ODBC Link и ODBC-драйверов в случае, когда в качестве средства раз­работки используется Delphi Professional или C++ Builder Pro­fessional, не имеющие SQL Links в своем составе. Для этих ука­занных СУБД нередко имеется по нескольку ODBC-драйверов разных производителей, иногда поддерживающих разную функ­циональность.

В случае использования объектно-ориентированных возмож­ностей Oracle 8 на данный момент более предпочтительно при­менение BDE механизма доступа к данным, так как объектные типы данных этой СУБД поддерживаются ее BDE-драйвером прямого доступа (и не поддерживаются имеющимися версиями OLE DB-провайдеров). Однако поддержка этих возможностей на уровне компонентов и классов в Delphi и C++ Builder возможна только начиная с версии 4.0.

 


Дата добавления: 2015-11-04; просмотров: 305 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
В программе возможны изменения последовательности экскурсий или замена их на равноценные| Механизм ODBC

mybiblioteka.su - 2015-2024 год. (0.009 сек.)