База данных может являться просто местом физического хранения информации либо может быть реализована в виде сервера баз данных. В первом случае для доступа к данным приложению необходимо знать формат, в котором хранится информация, во втором – правила связи с сервером и прокол обмена информацией. Форматы данных и протоколы обмена сложны и существенно отличаются друг от друга, поэтому создание приложения СУБД является трудоемким процессом. Однако на логическом уровне данные, получаемые от сервера (или из места их хранения), не зависят от типа базы данных – они представляются в виде таблиц, между которыми организованы связи.
Поэтому были созданы механизмы, связывающие приложение и базу данных, то есть, с одной стороны, выполняющие функции полу-чения данных из базы (с учетом особенностей хранения или правил обмена), а с другой – реализующие интерфейс для доступа к данным на логическом уровне, не зависящий от выбранного типа базы данных. Таких механизмов разработано множество, причем большинство из них в некоторой степени универсальны и предназначены для работы с разными видами баз данных, а для доступа к широко распространенным базами данных обычно можно выбрать один из нескольких механизмов.
Механизмы доступа к базам данных снижают сложность обмена информацией с базами, однако интерпретация результатов их работы также достаточно трудоемка. Поэтому в Delphi (как и в некоторых других инструментах программирования) реализованы наборы компонентов, предназначенные для взаимодействия с механизмами обмена.
Таким образом, можно выделить несколько субъектов, участвующих в движении информации между базой данных и приложением (например, пользовательским интерфейсом):
1) интерфейсная часть приложения или его программная часть, манипулирующая информацией, хранимой в базе данных. Для организации пользовательского интерфейса к информации баз данных в Delphi предусмотрены специальные компоненты;
2) компоненты, обеспечивающие связь приложения с механизмом доступа к базе данных;
3) механизм доступа к базе данных;
4) база данных.
На рис. 1.2 представлена схема движения информации между приложением и базой данных.
Рис. 1.2. Движение информации от базы данных к приложению
Из рисунка видно, что при разработчике приложения-СУБД на Delphi программист работает с наборами компонентов, предназначенных для обмена информацией с базами данных и ее отображения. В зависимости от выбранного механизма доступа к базе данных некото-рые наборы компонентов могут не использоваться, однако все они, вне зависимости от особенностей используемой базы данных и механизма доступа к ней, имеют схожие свойства и методы, так как основная их часть унаследована от класса TDataSet (Data Set – набор данных).
Операционная система Windows имеет в своем составе несколько механизмов доступа к базам данных: ODBC, OLE DB и ADO. Технология ODBC (от англ. Open Database Connectivity – открытый механизм доступа к базам данных1 ) - это компонент операционной системы Windows, предназначенный для унификации доступа к информации, хранящейся в базах данных различных видов. ODBC состоит из набора драйверов, осуществляющих операции обмена с определенными базами данных, и менеджера драйверов, осуществляющего передачу запросов от приложения к драйверу и передачу информации от драйвера к приложению (рис. 1.3).
Рис. 1.3. Движение информации между приложением и БД при использовании ODBC
Для получения и изменения данных используется язык запросов SQL, вне зависимости от того, поддерживается ли он базой данных, к которой обращается приложение. Если база данных не поддерживает язык SQL, то доступ к ней не отличается от доступа к БД, поддерживающим SQL. В этом и заключается унификация доступа к базам данных системой ODBC – приложение указывает название драйвера, ко-торый должен использоваться для подключения к базе данных, и передает запрос, в котором описан состав требуемой информации. Далее механизм ODBC выполняет все необходимые операции по получению информации, скрывая от приложения специфику работы с конкретной базой данных. Доступ приложений к ODBC осуществляется через API-функции2 , реализованные в динамических библиотеках. В Delphi работа с ODBC реализуется через другой механизм доступа к БД – BDE (рассмотрен ниже). Технология OLE DB (от англ. Object Linking and Embedding DataBase – механизм доступа к базам данных с помощью технологии OLE) представляет собой набор СОМ-интерфейсов, обеспечивающих универсальный доступ приложений к базам данных и другим хранилищам информации (в том числе и нереляционным - файловым системам, системам электронной почты и др.), в которых результатом за-просов является информация, представленная в табличной форме.
Характерной особенностью механизма OLE DB является то, что данные, возвращаемые OLE DB приложению, представляют собой не просто массив информации, а СОМ-объект, обладающий, помимо самой информации, методами управления этой информацией (например, фильтрация и сортировка). Логическая схема доступа к данным с помощью OLE DB представлена на рис. 1.4.
Рис. 1.4. Движение информации между приложением и БД при использовании OLE DB
Приложение, называемое потребителем данных, обращается к поставщику данных, который перенаправляет запрос от приложения к базе данных, либо обрабатывает запрос самостоятельно. Таким образом, поставщик данных аналогичен драйверам ODBC и BDE. Механизм OLE DB имеет доступ к ODBC, поддерживая, таким образом, большое количество драйверов, реализованных для ODBC.
Недостатком OLE DB (и соответственно технологии ADO, построенной на OLE DB) является более низкое быстродействие по сравнению с механизмами ODBC и BDE. Это связано с использованием СОМ-объектов, применение которых нагружает операционную систему. Однако работа механизмов связи с базой данных при использовании OLE DB обычно занимает меньшее время по сравнению с работой самой базы данных по выдаче запроса.
Механизм OLE DB напрямую не поддерживается в Delphi и доступен только через механизм ADO. Технология ADO (от англ. ActiveX Database Objects – механизм доступа к базам данных через объекты ActiveX) – технология доступа к данным, разработанная Microsoft, является надстройкой над механизмом доступа OLE DB и предназначена для унификации работы с поставщиками данных OLE DB. Обеспечивает удобный и надежный доступ к данным, хотя и несколько более медленный, чем в технологиях BDE и dbExpress. Хорошо подходит для работы с системами управ-ления базами данных (СУБД) от фирмы Microsoft (MS Access, MS SQL Server), поскольку не требует дополнительных компонентов (библиотек, драйверов), так как они уже есть на компьютере пользователя. Схема доступа к информации с помощью ADO представлена на рис. 1.5.
Рис. 1.5. Движение информации между приложением и БД при ис-пользовании ADO
Механизм ADO предоставляет несколько основных СОМ-объектов, используемых для получения и управления информацией (имеются дополнительные СОМ-объекты, расширяющие функциональность ADO):
• Connection для управления соединением с базой данных и передачи запросов поставщику данных;
• Command для управления информацией о запросе к базе данных или команде;
• Recordset, содержащий таблицу, которая является результатом запроса к базе данных;
• Field, содержащий описание поля в таблице, возвращенной поставщиком данных. Список всех полей таблицы содержится в подобъекте Fields объекта RecordSet;
• Error, содержащий расширенную информацию об ошибке, о которой сообщил поставщик данных. Если ошибок несколько, доступ к ним можно получить с помощью объекта Errors.
Непосредственный доступ из Delphi возможен только к ADO. Помимо компонентов для доступа к ADO, Delphi имеет компоненты для получения информации из баз данных с помощью механизма BDE фирмы Borland, а также компоненты dbExpress, осуществляющие прямой доступ к различным видам баз данных. Рассмотрим остальные технологии доступа к данным, доступные в Delphi 1. BDE (англ. Borland Database Engine – механизм доступа к базам данных фирмы Borland) – базовая технология доступа к БД от фирмы Borland, является аналогом ODBC и имеет схожую с ней архитектуру. Этот механизм позволяет получать доступ к реляционным БД с помощью специальных BDE драйверов или через ODBC драйверы. Исторически является первой технологией доступа к БД в средах Borland. Существенным недостатком использования этой технологии является достаточно трудоемкий процесс развертывания программы работы с базой данных: помимо самой программы на компьютере пользователя необходимо установить BDE и выполнить его настройку, а также от-сутствие поддержки со стороны фирмы-разработчика.
Рис. 1.6. Движение информации между приложением и БД при использовании BDE
2. dbExpress – более новая и совершенная технология доступа к удаленным БД от фирмы Borland. Схема работы этого механизма аналогична схеме работы BDE, но при использовании dbExpress не происходит обращения к ODBC. При использовании этого механизма нет необходимости развертывания dbExpress вместе с приложением: достаточно установить только dll-библиотеку либо прилинковать драйвер к исполняемому файлу. Технология dbExpress по сравнению с BDE обеспечивает более быстрый и удобный доступ к данным. 3. InterBase – специализированная технология доступа к серверу БД Borland InterBase. При работе с этой СУБД обеспечивает наивысшую производительность по сравнению с другими технологиями.
Принципы работы с БД с использованием любой из вышеперечисленных технологий практически одинаковы. Основы работы с БД будем рассматривать на примере технологии ADO. Сноски:
1 Открытость механизма ODBC заключается в том, что состав драйверов, используемых системой можно расширять для поддержки других видов баз данных
2 API (Application Programming Integface) – готовый набор функций операционной системы (библиотека подпрограмм), который могут использовать разработчики приложений
Опубликовал Kest
July 05 2010 07:58:56 ·
0 Комментариев ·
13830 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.