Научная статья на тему 'СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ ДОСТУПА К ДАННЫМ'

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ ДОСТУПА К ДАННЫМ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
81
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДОСТУП К ДАННЫМ / BDE / OLE / ODBC / ADO / DATA ACCESS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Нуйкин М.В.

В статье рассматривается важность проблемы выбора технологии к данным. На выбор технологии доступа влияет выбор средства разработки приложения и средства реализации базы данных. В статье приводится сравнение некоторых технологий доступа.The article discusses the importance of the choice of technology problems to data. The choice of access technology affects the choice of application development tools and means to implement the database. The article provides a comparison of some access technologies.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ ДОСТУПА К ДАННЫМ»

УДК 004.652.3

Нуйкин М.В. студент 4 курса

факультет информационных систем и технологий Поволжский Государственный Университет Телекоммуникаций и Информатики

Россия, г. Самара

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ ДОСТУПА К ДАННЫМ

Аннотация

В статье рассматривается важность проблемы выбора технологии к данным. На выбор технологии доступа влияет выбор средства разработки приложения и средства реализации базы данных. В статье приводится сравнение некоторых технологий доступа.

Ключевые слова: доступ к данным, BDE, OLE, ODBC, ADO.

COMPARATIVE ANALYSIS OF DATA ACCESS TECHNOLOGY

Annotation: the article discusses the importance of the choice of technology problems to data. The choice of access technology affects the choice of application development tools and means to implement the database. The article provides a comparison of some access technologies.

Keywords: data access, BDE, OLE, ODBC, ADO.

Технологией доступа к данным называется система интерфейсов, обеспечивающая взаимодействие между приложением и базой данных. Во многих системах управления базами данных имеются библиотеки, содержащие интерфейсы прикладного программирования (application programming interface — API), представляющие собой функции, при помощи которых можно выполнять с данными те или иные действия.

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

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

На выбор технологии доступа влияет выбор средства разработки приложения и средства реализации базы данных.

ODBC (англ. Open Database Connectivity)— это программный интерфейс (API) доступа к базам данных, разработанный фирмой Microsoft, в сотрудничестве с Simba Technologies на основе спецификаций Call Level

Interface (CLI). Впоследствии CLI был стандартизован ISO ISO/IEC 90753:2003. (англ.)

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

• приложения больше не связаны с прикладным API какой-то одной СУБД;

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

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

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

• средства поддержки ODBC разработаны с учетом требований стандартов X/Open и CLI (Call Level Interface);

• в настоящее время существуют драйверы ODBC для различных типов самых распространенных СУБД.

В интерфейс ODBC включены следующие элементы:

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

• стандартный метод подключения и регистрации в СУБД;

• стандартное представление для данных различных типов;

• стандартный набор кодов ошибок;

• типовой синтаксис SQL-операторов, построенный на использовании спецификации X/Open и ISO CGI.

Рис. 1. Архитектура ODBC

Общая архитектура ODBC включает четыре элемента (рисунок 1):

1. Приложение. Этот компонент выполняет обработку данных и вызов функций библиотеки ODBC для отправки SQL-операторов СУБД и выборки возвращаемой СУБД информации.

2. Менеджер драйверов. Он выполняет загрузку драйверов по требованию приложения.

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

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

Исходя из вышесказанного, можно отметить, что технология ODBC предлагает единый интерфейс доступа к разнообразным базам данных SQL. Язык SQL используется в ней как основной стандарт доступа к данным. Интерфейс ODBC (встроенный в язык Си) обеспечивает высокую степень универсальности: одно приложение может обращаться к разным SQL-совместимым СУБД посредством общего кода. Это позволяет разработчику создавать и распространять приложения "клиент/сервер" без учета особенностей конкретной СУБД, в результате одно и то же приложение получает возможность доступа к базам данных различных СУБД, поддерживающих язык SQL. Подобные функциональные возможности технологии ODBC позволяют разрабатывать приложения СУБД разного типа. Для связи приложений с разнотипными СУБД используются соответствующие ODBC-драйверы. Как уже говорилось, технология ODBC уже фактически принята как отраслевой стандарт.

Технология ODBC предусматривает создание дополнительного уровня между приложением и используемой СУБД. Службы ODBC обеспечивают

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

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

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

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

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

Технология Microsoft ActiveX Data Objects обеспечивает универсальный доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB.

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

На основе технологии ADO в Delphi созданы соответствующие компоненты-наборы TADOTable, TADOQuery, TADOStoredProc, повторяющие в функциональном отношении компоненты TTable, TQuery, TstoredProc, но не требующие развертывания и настройки на клиентской машине BDE.

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

Windows технологии ActiveX, причем провайдер реализуется как СОМ-сервер, а ADO-компоненты - как COM-клиенты. На машине сервера создается и размещается источник данных. В случае файл/серверных систем отдельные таблицы типа dBASE, FoxPro, Paradoxи т.п. должны управляться соответствующим ODBC-драйвером, а в роли провайдера используется Microsoft OLE DB Provider for ODBC drivers. На их основе создается единый файл, содержащий все необходимые таблицы, индексы, хранимые процедуры и прочие элементы БД. Такой файл управляется машиной баз данных Microsoft Jet 4.0 Database Engine, а в роли провайдера используется Microsoft Jet 4.0 OLE DB Provider. Если используется промышленный сервер данных Oracle или MSSQL Server, данные не нуждаются в какой-либо предварительной подготовке, а в роли провайдера используется соответственно Microsoft OLE DB Provider for Oracle или Microsoft OLEDB Provider for SQLServer. Нетрудно обнаружить и явный недостаток такой технологии: ADO не может использоваться, если для соответствующей структуры данных (в частности, для БД многих популярных серверов -InterBase, Informix, DB2 и прочих не создан нужный провайдер или ODBC драйвер.

ADOStoftdPtôc

Рис. 2. Компоненты ADO

На машине клиента располагаются связные компоненты TADOConnection и компоненты-наборы данных TADOTable, TADOQuery, TADOStoredProc (рисунок 2), а также не показанные на рисунке компоненты-наборы TADODataSet и командные компоненты TADOCommand. Каждый из этих компонентов может связываться с провайдером данных либо с помощью связного компонента TADOConnection, либо минуя его и используя собственное свойство ConnectionString. Таким образом, TADOConnection играет роль концентратора соединений с источником данных компонентов -наборов и в этом смысле подобен компоненту TDatabase в традиционной архитектуре сBDE.Компоненты-наборы TADODataSet в функциональном плане повторяют свойства уже известных из предыдущих версий Delphi компонентов TClientDataSet технологии MIDAS. Командные компоненты TADOCommand предназначены для реализации запросов на языке

управления данными DDL (Data Definition Language), то есть для реализации SQL-запросов, которые не возвращают данные (запросы типа CREATE, DROP, UPDATE и т.п.). Специальный компонент RDSConnection (не показан на рисунке) создан для упрощения связи с MS Internet Explorer и предназначен для разработки интранет-приложений. Компоненты-наборы с помощью хорошо известных по предыдущим версиям Delphi компонентов-источников TDataSource и визуализирующих компонентов TDBGrid, TDBMemo, TDBEdit и т.п. обеспечивают необходимый интерфейс с пользователем программы.

Стоит отметить что скорость доступа к данным с помощью СОМ-средств (а технология ActiveX, являющаяся краеугольным камнем ADO, целиком базируется на СОМ) в общем случае оказывается заметно ниже традиционного для Delphi механизма на основе BDE (для некоторых типичных случаев скорость уменьшается в десятки раз).

BDE (сокр. от англ. Borland Database Engine — «движок баз данных Borland») — 32-битный движок баз данных под Microsoft Windows для доступа к базам данных из Borland Delphi, C++ Builder, IntraBuilder, Paradox for Windows и Visual dBASE for Windows.

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

Имеющийся набор драйверов баз данных даёт единообразный доступ к стандартным источникам данных: Paradox, dBASE, FoxPro, Access, а также текстовым БД. Вы можете добавлять драйверы Microsoft ODBC при необходимости подключения к ODBC-сокету. Кроме того, Borland предоставляет SQL Links для доступа к широкому диапазону мощных СУБД, включая Informix, DB2, InterBase, Oracle и Sybase.

В BDE используется «Local SQL», подмножество стандарта ANSI-92 языка SQL, расширенное для поддержки используемых в Paradox и DBF (называемых в BDE «стандартными» таблицами) соглашений о наименовании таблиц и полей. Local SQL позволяет вам использовать SQL для запросов к локальным «стандартным» таблицам, которые не находятся на серверах БД, в т. ч. удалённых. Local SQL также является необходимым средством для создания запросов с выборками из многих таблиц, часть которых локальна, а часть находится на удалённых SQL-серверах.

До появления ADO большинство таких «независимых от BDE» компонентов были специализированными и могли работать с определенным типом СУБД, например, dBase или InterBase, либо со средствами поддержки определенной технологии, например, ODBC. Существовали такие компоненты, которые обладали собственными средствами выполнения функций BDE. Однако при работе с этими компонентами возникали проблемы уникальности интерфейса, который разительно отличался от привычного интерфейса компонентов, ориентированных на BDE. Поэтому

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

У ADO, в cравнении с BDE, есть и другие недостатки. Во-первых, при использовании ADO нужно явно указывать в строке подключения имя провайдера сервера и базы данных, а это затрудняет переориентирование ADO-компонента на работу с другой базой данных или другим типом СУБД.

Во-вторых, в отличии от BDE, для однородного объединения таблиц из разных баз данных нельзя использовать SQL в сочетании с ADO-компонентами (причем это не зависит от того, созданы ли эти базы данных с помощью одной и той же СУБД или разных СУБД).

Есть и еще одно предостережение, которое касается сопровождения приложений, использующих ADO-компоненты. Нужно постоянно отслеживать изменения, которые вносятся разработчиками в элементы операционной среды, связанные с работой ADO-компонентов и СУБД (например, ядро Jet, с которыми работают базы данных Access).

Из всего вышесказанного вытекают следующие преимущества технологии ADO:

• Большая часть программных средств поддержки этой технологии поставляется в составе ОС, а потому разработчик БД-приложения избавлен от необходимости их внедрения.

• Использование ADO позволяет получить доступ к данным, созданным с помощь нетрадиционных технологий, таких как XML.

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

• В отличие от BDE-компонентов, механизм ADO позволяет остановить работу программ базы данных без потери информации с помощью Program Reset.

Использованные источники:

1. Дарахвелидзе, П. Г. Программирование в Delphi 7 / П. Г. Дарахвелидзе, Е. П. Марков - СПб.: БХВ-Петербург, 2003. - 784 с

2. Основы SQL [Электронный ресурс] - URL: http://www. intuit.ru/studies/courses/5/5/lecture/156

3. Росинский В. В. Метод организации доступа к удаленным источникам данных в корпоративных информационных системах / В. В. Росинский, 2011

i Надоели баннеры? Вы всегда можете отключить рекламу.