базы данных в Delphi

Preview:

DESCRIPTION

 

Citation preview

Базы данных в Delphi

Принципы построения Компоненты Database Desktop

Основные понятия

База данных (понятие, виды) Банк данных Приложение баз данных СУБД (назначение, виды) Информационная система

Виды СУБД

Персональные (локальные БД)Paradox, FoxPro, ASCII - файлы и др.

Многопользовательские (архитектура клиент-сервер)Oracle, MS SQL Server, InterBase

Особенности Delphi как СУБД Создание и ведение локальных и клиент -

серверных БД Разработка приложений для любых БД Не имеет своего формата таблиц (языка

описания данных)

Доступ к БД

BDE (Borland Database Engine – процессор баз данных Borland)

это совокупность динамических библиотек и драйверов доступа к данным.

BDE = API + драйвер БД

Архитектуры ИС

В зависимости от взаимного расположения приложения и БД:

локальные БД удаленные БД

(клиент – серверные приложения)

Архитектуры ИС. Локальная архитектура. Однопользовательский режим.

Приложение BDE База данных

Архитектуры ИС. Локальная архитектура. Многопользовательский режим.

ПриложениеBDE

Локальная копия базы данных

ПриложениеBDE

Локальная копия базы данных

База данных

Сервер сети

Архитектуры ИС. Архитектура «клиент – сервер».

•Клиент – приложение пользователя.

•Запрос на языке SQL переправляется удаленным сервером к серверу баз данных.

•Вся обработка выполняется на удаленном сервере.

•Используются промышленные СУБД, например MS SQL Server.

•Такие БД требуют администрирования.

Архитектуры ИС. Архитектура «клиент – сервер». Виды архитектур. Двухзвенная (двухуровневая) – «толстый клиент»

Приложение- клиент

BDE

SQL-Links

или ODBC

Сервер баз данных

База данных

Архитектуры ИС. Архитектура «клиент – сервер». Виды архитектур. Трехзвенная (трехуровневая) – «тонкий клиент»

Приложение- клиент

Компьютер пользователя

BDE

SQL-Links

или ODBC

Сервер баз данных

База данных

Сервер приложений

Реляционные базы данных.Требования к проектированию БД.? ?

?

? ??

??

Средства для работы с базами данных

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

Компоненты для создания приложений БД

Инструментальные средства BDE BDE Administrator Database Desktop SQL Explorer SQL Builder SQL Monitor Data Pump IBConsole InterBase Server Manager SQL Links dbExpress InterBase Server

Самостоятельно!

Компоненты

Невизуальные (для организации доступа к данным)

Визуальные (для управления данными)

Компоненты

Для работы с SQL

Для управления данными с использованием BDE

Компоненты

Для управления данными с использованием технологии ADO (Active Data Objects)

Для работы с сервером InterBase

Компоненты

Для построения систем принятия решений

Роль компонентовФайл базы данных на диске

TTable, Query

TDataSource

TDBGrid и другие воспринимающие данные

Интерфейс пользователя

Класс TDataSet

Основой архитектуры доступа к наборам данных является базовый класс TDataSet

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

Класс TDataSet

TDataSet

TDBDataSet

ТТаЫеTQuery

Класс TQuery

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

Класс ТТаble

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

знает, как обрабатывать индексы как применять специальные приемы,

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

Класс ТТаble

Основные свойства класса ТТаblе, унаследованные от TDataSet:

AutoCalcFields определяет, когда вызвано событие OnCalcField;

FieldDefs список имен полей из набора данных

Active определяет, открыт или нет набор данных

Класс ТТаble

Свойство DatabaseName, унаследованное классом ТТаblе от TDBDataSet, определяет псевдоним базы данных, содержащей таблицу, либо имя каталога, в котором находятся файлы таблиц.

Псевдоним

Псевдоним (Alias) — это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных.

Например, псевдонимом каталога C:\data\spetersburg может быть имя Peterburg.

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

Разрабатывая программу работы с базой данных, программист не может знать, на каком диске и в каком каталоге будут находиться файлы базы данных во время ее использования. Псевдоним – это решение проблемы передачи в программу информации о месте нахождения файлов базы данных.

Псевдоним

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

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

Псевдонимы баз данных и другие настройки BDE хранятся в файле idapi32.cfg, расположенном в том же каталоге, что и файлы BDE.

Алгоритм создания псевдонима Запустить утилиту BDE Administrator Выполнить Object • New. В появившемся

окне выбрать драйвер для доступа к базе данных. Обычно надо оставить выбранным пункт STANDARD.

В правой части окна в качестве значения свойства Path указывается путь к базе данных.

Основные свойства компонента ТТаblе, унаследованные от TBDEDataSet: Filter выражение для отбора данных Filtered значение True выполняет

фильтрацию данных в соответствии с выражением, определенным свойством Filtered

FilterOptions определяет, является ли фильтрование нечувствительным и разрешаются или нечастичные сравнения.

Основные свойства компонента ТТаblе MasterSource определяет источник данных для связи с

другой таблицей DataSource выбирает источник данных Defaultlndex определяет, нужно ли сортировать данные в

таблице Exclusive определяет доступ к используемой таблице при

одновременном обращении к ней нескольких приложений IndexDefs содержит информацию об индексах таблицы IndexFieldNames составляет список индексов для таблицы IndexFields поля текущего индекса TableName таблицы, доступные в данной базе данных ТаbleТуре тип таблицы.

Методы ТТаblе:

CreateTable создание таблицы Append добавление новой записи в конец таблицы Delete удаление записи, на которой стоит курсор DeleteTable удаление таблицы Edit перевод таблицы в режим редактирования записей FieldByName обращение к значению поля записи по имени FindFirst установка курсора на первую запись таблицы,

соответствующей условию отбора First установка курсора на первую запись таблицы Insert перевод таблицы в режим вставки новой записи Next перемещение курсора на следующую запись Post перевод таблицы в режим завершения редактирования.

Схема связи компонентов Компонент таблица (Table) связывается с

физической базой на диске (имя файла базы (DataBaseName), имя таблицы из этой базы (TableName), база открыта для доступа (Active-True).

Компонент «Источник данных» (DataSource) связан с компонентом таблица (Table) через свойство DataSet.

Компоненты воспроизведения данных (страница DataControls) связаны с DataSource и/или с соответствующими полями таблицы базы данных

Схема связиФайл базы данных на диске

TTable

TDataSource

TDBGrid и другие воспринимающие данные

Интерфейс пользователя

Общий алгоритм установки связи приложения с БД1. Создать БД, сохранить ее в папке

проекта (во вложенной папке) и назначить ей псевдоним (при помощи BDE Administrator)

2. Разместить на форме компонент Table (страница BDE) компонент DataSource (страница DataAccess) компоненты для отображения данных

(страница DataControls), например DBGrid

Общий алгоритм установки связи приложения с БД3. Настроить свойство DataSource компонентов

отображения данных = имя компонента DataSource

4. Настроить свойства компонента DataSource DataSet=имя компонента Table

5. Настроить свойства компонента Table (соблюдая последовательность!)

DataBaseName = псевдоним (или имя БД) TableName = имя таблицы БД Active = True (но лучше прописать его изменения в

событиях Create и Destroy для формы)

Для навигации по таблице используется компонент DBNavigator со страницы DataControls

Свойство Active компонента Table Чтобы грамотно оформить приложение, работающее с БД,

необходимо добавить соединение с набором данных в момент начала работы и разорвать его в момент окончания.

Для этого1. Создать обработчик события OnCreate формы:procedure TForml.FormCreate (Sender: TObject); begin Table1.Active := true end;2. Создать обработчик события OnDestroy формы:procedure TForml.FormDestroy(Sender: TObject); begin Table1.Active := false;end;

Способы создания приложения для отображения данных из таблиц БД1 способ: компонент DBGrid.

2 способ: компоненты со страницы DataControl, позволяющие отображать данные не в таблице, а в отдельных полях на форме.

3 способ: использование редактора полей

Редактирование набора данных Перед тем как изменять набор данных, следует узнать, возможно

ли его изменение при помощи свойства CanModify, которое принимает значение True, если набор данных может быть изменен.

Метод Edit переводит набор данных в состояние редактирования. Метод Post -для сохранения измененных данных. Метод Cancel возвращает набор данных в состояние, которое

было при последнем вызове метода Post. Метод Insert - для добавления новой записи по месту

расположения курсора. Метод Append – для добавления записи в конец набора данных. Метод Delete – удаление выбранной записи. Метод Clear Fields очищает поля выбранной записи.

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

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

Он ищет первую запись, удовлетворяющую критерию поиска, и, если такая запись найдена, делает ее текущей. В случае удачного поиска метод возвращает True, в противном случае — False.

Пример использования Locatevar

LocateSuccess: Boolean;SearchOptions: TLocateOptions:

beginSearchOptions ;- [loPartialKey];LocateSuccess := CustTab1e.Locate('Company, Vendor', VarArrayOf(['SightDiver','Point']), SearchOptions);

end;Сорокин стр. 47-50

Поиск записей и фильтрация в наборах данных Метод Lookup находит запись, точно удовлетворяющую условиям

поиска. Этот метод не переводит курсор на найденную запись, но возвращает значения некоторых полей найденной записи в виде вариантного массива.

Пример использования Lookup. Поиск по нескольким полям

varLookupResults: Variant;

beginwith CustTable doLookupResults := LookupC'Company; City'. VarArrayOf(['Sight Diver'.'Christiansted']). 'Company; Addrl; Addr2; State; Zip1);

end:Сорокин стр. 47-50

Поиск записей и фильтрация в наборах данныхСвойство Filter позволяет задать критерии фильтрации. Набор данных

будет отфильтрован, как только его свойство Filtered примет значение True.

В условие фильтрации можно включать логические операторы and, or, not,

<>i <t >( <=, >=.Событие OnFilterRecord возникает, когда в свойстве Filtered

устанавливается значение True. Метод-обработчик события TFilterRecordEvent имеет два параметра. В параметре DataSet передается фильтруемый набор данных, а в параметре Accept — переменная, в которую помещается значение True в случае, если текущая запись соответствует условиям фильтрации.

Сорокин стр. 47-50

Создание баз данных с помощью Database Desktop

DataBase Desktop -- это программа-утилита, являющаяся своеобразным текстовым редактором для таблиц баз данных.

Она позволяет создавать, редактировать и изменять структуру таблиц баз данных.

Алгоритм работы в Database Desktop Задать рабочий каталог - Object • Working Directory и из списка

Aliases выбрать псевдоним. Таким образом, при открытии диалога выбора таблиц (для локальных баз данных) будет открываться именно тот каталог, в котором они располагаются.

Для создания таблицы необходимо выбрать пункт меню Object • New • Table.

Создать и настроить поля Настроить ограничения для полей:

Required Field указывает, что поле должно быть обязательно заполнено данными.

Ограничение Minimum Value определяет минимальное значение, которое может содержаться в поле.

Maximum Value задает максимальное значение, которое может содержаться в поле.

Параметр Default Value определяет значение, которое поле будет принимать по умолчанию.

Параметр Picture определяет шаблон значений, которые будут храниться в поле.

Алгоритм работы в Database Desktop Выбрать языковый драйвер для того, чтобы русский текст отображался

в базе данных без искажений - в списке Table properties выбрать пункт Table Language, нажать кнопку Modify и выбрать в появившемся списке значение Pdox ANSY Cyrillic.

Сохранить таблицу можно при помощи кнопки Save/Save As. Если требуется создать индекс по определенным полям. Для этого в

списке Table properties необходимо выбрать значение Secondary Indexes и нажать кнопку Define. Созданный индекс нужно сохранить.

Определить ссылочную целостность (т.е. установить связи между таблицами).

Нужно открыть главную таблицу и выбрать пункт меню Table Restructure. Таблица откроется для внесения изменений. В списке Table properties нужно выбрать элемент Referential Integrity и нажать кнопку Define.

Затем установить связь. Если надо группа Update rule позволяет задавать правила модификации записей.