
Работа
с БД
Базы данных
Delphi предоставляет программисту компоненты, используя которые он может создать программу работы практически с любой базой данных: от Microsoft Access до Microsoft SQL Server и Oracle.
База данных и СУБД
База данных — это файл или совокупность файлов определенной структуры, в которых находится информация. Программная система, обеспечивающая работу с базой данных, называется системой управления базой данных (СУБД). СУБД обеспечивает создание базы данных, наполнение ее информацией, решение задач поиска, а также отображение информации. Типичным примером СУБД является Microsoft Access.
В архитектуре СУБД можно выделить ядро. Ядро СУБД обеспечивает решение задач манипулирования данными (поиск, редактирование, добавление, удаление) и не зависит от других компонентов СУБД, например, обеспечивающих взаимодействие с пользователем.
Локальные и удаленные базы данных
В зависимости от расположения данных и программы, которая обеспечивает доступ к ним, различают локальные и удаленные базы данных.
В локальной базе данных файлы данных, как правило, находятся на диске того компьютера, на котором работает программа манипулирования данными. Локальные базы данных не обеспечивают одновременный доступ к информации нескольким пользователям. Несомненным достоинством локальной базы данных является высокая скорость доступа к информации Microsoft Access — это типичная локальная база данных.
В удаленных базах данных файлы базы данных размещают на отдельно доступном по сети, компьютере (сервере). Программы, обеспечивающие работу с удаленными базами данных, строят по технологии "клиент-сервер: Программа-клиент, работающая на компьютере пользователя, обеспечивает прием команд от пользователя, передачу их серверу, получение и отображение данных. Серверная часть (сервер) работает на удаленном компьютере, принимает запросы (команды) от клиента, выполняет их и пересылает данные клиенту. Программа, работающая на удаленном компьютере, проектируется так, чтобы обеспечить одновременный доступ к базе данных многим пользователям. В большинстве случаев в качестве серверной части используется стандартный сервер баз данных, например, Borland InterBase, Microsoft SQL Server, MySQL или Oracle. Таким образом, разработка программы paботы с удаленной базой данных в большинстве случаев сводится к разработке программы-клиента.
Структура базы данных
База данных (в широком смысле) — это набор однородной, как правит упорядоченной по некоторому критерию, информации.
На практике наиболее широко используются так называемые реляционные базы данных (от англ. relation — отношение, таблица). Реляционная база данных— это совокупность таблиц данных. Так, например, базу данных Projects (Проекты) можно представить как совокупность таблиц Projects (Проекты), Tasks (Задачи) и Resources (Ресурсы), а базу данных Contacs-(Контакты)— одной-единственной таблицей Contacts (Контакты). Доступ таблице осуществляется по имени.
Строки таблиц данных называются записями и содержат информацию об объектах базы данных. Например, строка таблицы Tasks (Задачи) базы данных Projects (Проекты) может содержать название задачи, дату, когда должна быть начата работа, и идентификатор ресурса, который назначен на выполнение задачи. Доступ к записям осуществляется по номеру.
Записи состоят из полей (поле - ячейка в строке таблицы). Поля содержат информацию о характеристиках объекта. Доступ к полю осуществляется по имени. Например, поля записей таблицы Tasks могут содержать: идентификатор задачи (поле TaskiD), название задачи (поле Title), идентификатор проекта, частью которого является задача (поле ProjiD), дату, когда работа по выполнению задачи должна быть начата (поле start), информацию о состоянии задачи (поле status) и идентификатор ресурса, который назначен на выполнение задачи (поле ResiD). При представлении данных в табличной форме имена полей указывают в первой строке таблицы.
Физически база данных представляет собой файл или совокупность файлов, в которых находятся таблицы. Например, в Microsoft Access все таблицы, образующие базу данных, хранятся в одном файле.
Механизмы доступа к данным
Существует достаточно много механизмов доступа к данным. В Delphi до недавнего времени основной технологией доступа к данным являлась технология BDE, в основе которой лежит процессор баз данных Borland Database Engine (BDE), представляющий собой набор библиотек, драйверов и утилит. BDE обеспечивает работу практически с любой из существующих баз данных. Однако значительным недостатком реализации программы работы с базой данных на основе технологии BDE является достаточно трудоемкий процесс ее развертывания: помимо самой программы работы с базой данных на компьютер пользователя необходимо установить BDE и выполнить его настройку. Другой широко распространенной технологией доступа к данным является разработанная Microsoft технология ADO (ActiveX Data Object). Несомненное ее достоинство — универсальность.
Компоненты доступа к данным
Компоненты, обеспечивающие работу с базами данных, находятся на вкладках dbGo, dbExpress, InterBase и BDE.
Компоненты вкладки dbGo для доступа к данным используют разработанную Microsoft технологию ADO.
Koмпоненты dbExpress обеспечивают так называемый однонаправленный (unidirectional) доступ удаленным базам данных на основе разработанной Borland (CodeGear) технологии dbExpress.
Вкладки InterBase и InterBaseAdmin содержат компоненты, обеспечивающие работу с базами данных InterBase.
Компоненты вкладки BDE для доступа к данным используют Borland Database Engine — процессор баз данных, реализованный в виде набора динамических библиотек и драйверов.
Следует обратить внимание на то, что компоненты доступа к данным напрямую с базами данных не взаимодействуют, доступ к базе данных (сервер; обеспечивают соответствующие драйверы. Таким образом, чтобы программа (компонент) могла получить доступ к базе данных, на компьютере должен быть соответствующий драйвер. На компьютер разработчика драйверы доступа к базам данных устанавливаются в процессе установки Delphi.
На вкладках DataControls и DataAccess находятся компоненты, обеспечивающие Отображение и редактирование данных (DBGrid, DBText, DBEdit, DBMemo и др.), хранение данных во время работы программы (clientDataSet), а также управление данными (DBNavigator).
Создание базы данных
Программы работы с базами данных обычно работают с существующими файлами данных и, как правило, не предоставляют пользователю возможность создать базу данных. Поэтому, перед тем как приступить к разработке программы работы с базой данных, необходимо, как минимум, создать файл базы данных с помощью соответствующей СУБД.
База данных Microsoft Access
Процесс разработки программы работы с базой данных Microsoft Access рассмотрим на примере. Создадим программу, обеспечивающую работу с базой данных Записная книжка (notebook.mdb). Для доступа к базе данных будем использовать технологию ADO.
Перед тем как приступить к непосредственной работе над программой, необходимо с помощью Microsoft Access создать файл базы данных notebook.mdb и поместить в него таблицу contact.
Также в каталоге D:\Database\ следует создать каталог Images. В этом каталоге будем хранить иллюстрации.
Таблица Contacts базы данных Записная книжка (notebook.mdb)
Поле |
Тип |
Размер |
Name |
Текстовый |
50 |
Phone |
Текстовый |
30 |
Comment |
Текстовый |
100 |
Здесь надо обратить внимание на следующее. Строго говоря, базы данных Microsoft Access как таковой не существует. Microsoft Access— это СУБД, программа, которая обеспечивает работу с базами данных формата Microsoft Jet (в процессе установки операционной системы на компьютер пользователя устанавливается ядро баз данных Microsoft Jet).