Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 10
На сайте нет зарегистрированных пользователей

Пользователей: 13,361
новичок: uehuat
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных междугородних телефонных разговоров на Delphi
Моделирование работы узла коммутации сообщений на GPSS + Пояснительная з...
База данных - рабочее место кассира на Delphi + бд Access

Механизмы доступа к базе данных
База данных может являться просто местом физического хранения информации либо может быть реализована в виде сервера баз данных. В первом случае для доступа к данным приложению необходимо знать формат, в котором хранится информация, во втором – правила связи с сервером и прокол обмена информацией. Форматы данных и протоколы обмена сложны и существенно отличаются друг от друга, поэтому создание приложения СУБД является трудоемким процессом. Однако на логическом уровне данные, получаемые от сервера (или из места их хранения), не зависят от типа базы данных – они представляются в виде таблиц, между которыми организованы связи.
Поэтому были созданы механизмы, связывающие приложение и базу данных, то есть, с одной стороны, выполняющие функции полу-чения данных из базы (с учетом особенностей хранения или правил обмена), а с другой – реализующие интерфейс для доступа к данным на логическом уровне, не зависящий от выбранного типа базы данных. Таких механизмов разработано множество, причем большинство из них в некоторой степени универсальны и предназначены для работы с разными видами баз данных, а для доступа к широко распространенным базами данных обычно можно выбрать один из нескольких механизмов.
Механизмы доступа к базам данных снижают сложность обмена информацией с базами, однако интерпретация результатов их работы также достаточно трудоемка. Поэтому в 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).
Движение информации между приложением и БД при использовании ODBC
Рис. 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.
Движение информации между приложением и БД при использовании OLE DB
Рис. 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.
Движение информации между приложением и БД при ис-пользовании ADO
Рис. 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 и выполнить его настройку, а также от-сутствие поддержки со стороны фирмы-разработчика.
Движение информации между приложением и БД при использовании 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 Комментариев · 12774 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
PDF
PBEditPack
CarGame [Исходник...
Меню проводника в...
БД сеть компьютер...
GamesBase 3.0
Delphi 6. Учебный...
Иллюстрированный ...
Geo-Whois
Учебник для продв...
Delphi. Готовые а...
VFW
Импорт новостей ...
Domen Name IP
Delphi 2006 - Спр...
Tetris 2002
Java 2 - Эффектив...
Игра змейка
Borland C++Builde...
ActiveX в Delphi

Топ загрузок
Приложение Клие... 100771
Delphi 7 Enterp... 97787
Converter AMR<-... 20259
GPSS World Stud... 17014
Borland C++Buil... 14186
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5968
Visual Studio 2... 5205
Microsoft SQL S... 3661
Случайные статьи
Вызов кодов драйвера
Прокладка кабельны...
Пример создания пр...
Генерация программ...
Особенности модаль...
Модули форм
Таблица хэшировани...
Масла Meguin
Когда одного недос...
В восьмой главе ра...
Характерная ситуация
Исключения
Типизация перемен...
Подводные камни вн...
Программные инфрас...
Они отличаются от ...
Request Information
Широкие файловые п...
Различные команды ...
Соглашения и отказ...
Задача. Матрица
Вопросы проектиров...
Проверка грамматик...
Козырек для мытья ...
Протокол BiSync от...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?