
- •Раздел 1. Проектирование баз данных. 2
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi. 25
- •Раздел 1. Проектирование баз данных.
- •1.1. Основы построения баз данных. Модели данных.
- •1.1.1. Реляционная модель данных.
- •1.1.2. Нормализация базы данных.
- •1.2. Проектирование базы данных методом “сущность-связь”.
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi.
- •2.1. Технология создания информационной системы.
- •2.1.1.Создание таблиц базы данных в Database Desktop.
- •2.1.2. Целостность базы данных.
- •Программа bde Administrator и модули данных.
- •Компоненты доступа и работы с данными. Тема: Наборы данных. Состояние и режимы наборов данных.
- •Тема: Объекты поля. Операции с полями.
- •Тема. Отображение и выбор значения поля.
- •Тема. Визуальные компоненты отображения записей из набора данных.
- •Закладки.
- •Тема. Ограничения на вводимые значения.
- •Тема. Сортировка набора данных.
- •Тема. Операции с таблицей базы данных.
- •Тема. Фильтрация записей.
- •Тема. Поиск записей.
- •Тема. Модификация набора данных.
- •Тема. Работа с отчетами
- •Отчет для связанных наборов данных
- •Составной отчет
- •Модули данных
- •Конструктор отчетов Rave Report
- •Реляционный способ доступа к данным.
- •Основные сведения о языке sql.
- •Оператор выбора Select.
- •Агрегирование и группирование записей.
- •Объединение таблиц.
- •Вложенные запросы.
- •Модификация записей.
- •Примеры баз данных
Программа bde Administrator и модули данных.
Доступ к базе данных из Delphi осуществляется через процессор баз данных BDE (Boland Database Engine). BDE – это набор драйверов, которые обеспечивают доступ к данным в БД. Администратор BDE позволяет настраивать:
параметры псевдонима БД (название, тип, путь),
параметры драйвера (тип, язык),
системные установки (установки по умолчанию, форматы даты, времени и числовые форматы).
Для настройки выбирается нужный объект, после этого в правой части окна открывается доступ к списку параметров этого объекта.
Добавить новый объект можно командой ObjectNew(Ctrl+N).
Удалить объект: выделить объект и выполнить ObjectDelete.
Текущее состояние объекта помечается значком:
зеленый треугольник – объект в режиме редактирования
зеленый треугольник с красными лучами – вновь созданный, еще не сохраненный, в режиме редактирования,
красный треугольник – объект в режиме редактирования, некоторые изменения являются некорректными и не могут быть сохранены,
красный треугольник с красными лучами – созданный и еще не сохраненный объект находится в режиме редактирования, некоторые данные не корректны и не могут быть сохранены,
ярко-зеленый квадрат – объект открыт.
Псевдоним (alias) – специальное имя для обозначения каталога, в котором находятся файлы БД.
Для создания псевдонима нужно в BDE выполнить:
выбрать вкладку Databases,
выполнить команду ObjectNew,
в появившемся окне New Database Alias (Новый псевдоним БД) выбрать тип драйвера: для Paradox и dBase это STANDARD и нажать Ok.
Будет создан новый псевдоним STANDARD1.
Для работы с локальными БД псевдоним имеет три параметра (вкладка Definition):
DEFAULT DRIVER – формат таблиц БД – для Paradox это STANDARD.
ENABLE BCD – указывает на необходимость перевода чисел в формат BCD для более точного выполнения вычислений. По умолчанию FALSE.
PATH – указывает расположение (каталог) БД. После создания псевдонима путь не определен, и его необходимо установить.
Например, для БД “Teachers” можно задать E:\Teachers. Псевдоним задать Teachers.
Схема взаимодействия между приложением (программой) и БД имеет вид:
Создадим в Delphi простое приложение для работы с таблицей Prepod из БД Teachers, которое обеспечит просмотр и редактирование полей, удаление и вставку новых записей. Для этого на форме разместим следующие компоненты.
Table1:TTables (вкладка BDE) – не визуальный компонент, обеспечивает доступ к таблице БД, создает набор данных, который передает все данные из физической таблицы БД с помощью BDE.
Свойства:
DataBaseName:AnsiString- имя БД, выбирается из списка доступных псевдонимов. Например, Teachers.
TableName – имя физической таблицы БД, выбирается из списка имен всех основных таблиц выбранной БД. Например, Prepod.db;
Active: Boolean – активность таблицы: если Active=True набор данных находится в открытом состоянии; при Active=False – в закрытом. Значение Active=True устанавливается только после установки свойств DataBaseName и TableName.
Name: TString – имя компонента, например, TbPrepod;
DataSourse1:TDataSource (вкладка Data Access) – не визуальный компонент, источник данных для их отображения, является посредником между Table1 и визуальными компонентами.
Свойства:
DataSet : TDataSet - определяет от какого компонента TTable будут приняты данные для отображения, значение выбирается из списка. Например,
DataSource1.DataSet:=TbPrepod; // подключение к TbPrepod
Enable: Boolean - отображение данных. Например,
DataSource1.Enable:= False; // отключение отображения данных
DataSource1.Enable:= True; // подключение отображения данных
Name: TString – имя компонента, например, DsPrepod;
DBGrid1:TDBGrid (вкладка DataControls) – отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки – записям таблицы БД (как в электронной таблице).
Свойство:
DataSourse: TDataSourse – имя источника набора данных для отображения на сетке. Выбирается из выпадающего списка или программно. Например,
DBGrid1.DataSourse:=DsPrepod;
DBNavigator: TDBNavigator (вкладка DataControls) – содержит кнопки для выполнения операций с набором данных (редактирование, добавление, удаление).
Свойства:
Flat: Boolean – управляет внешним видом навигатора. Flat=False – объемный вид кнопок, Flat=True – плоский вид кнопок.
DataSourse: TDataSourse – имя источника набора данных. Например,
DBNavigator1.DataSource:=DsPrepod;
Взаимосвязь компонентов приложения и таблицы БД представлена на следующей схеме:
При разработке сложных приложений для работы с базами данных разделяют логику работы и пользовательский интерфейс. В Delphi используются модули данных – компоненты контейнеры типа TDataModule – невидимые формы, на которых размещают невизуальные компоненты (наборы данных, источники данных, провайдеры и другие элементы, которые осуществляют связь с базами данных).
Существует три типа модуля данных: простой модуль, удаленный модуль, Web-модуль.
Рассмотрим простой модуль данных. Для добавления простого модуля данных к проекту нужно в главном меню Delphi выполнить команду FileNewDataModule. В окне модуля компоненты размещаются также как и на форме.
В окне Object TreeView строится дерево, помещенных в модуль компонентов наборов данных и источников данных, их полей, ограничений и т.п.
Свойства
Name – имя модуля.
Tag – используется пользователем по своему усмотрению
События
OnCreate
OnDestroy
В обработчики этих событий помещают соответственно операторы соединения с базой данных и разрыва соединения. Например,
Table1.Active:=true;
Table1.Active:=false;
При обращении к содержащимся в модуле данных компонентам нужно указать для них составное имя следующего формата:
<Имя модуля данных>. <Имя компонента>
Например,
procedure TForm1.FormCreate(Sender: TObject);
begin
DataModule2.Table1.DatabaseName:='Teachers';
DataModule2.Table1.TableName:='prepod.db';
DataModule2.DataSource1.DataSet:=DataModule2.Table1;
DBGrid1.DataSource:=DataModule2.DataSource1;
DBNavigator1.DataSource:=DataModule2.DataSource1;
DataModule2.Table1.Active:=true;
end;
Причем файл проекта должен иметь вид:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {DataModule2: TDataModule};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Чтобы обеспечить возможность доступа к компонентам модуля данных в модуле формы нужно в список uses раздела implementation включить ссылку на модуль данных, то есть
uses unit2;
В модуле данных можно размещать другие невизуальные компоненты, например, ImageList, OpenDialog, Timer.
Модуль данных позволяет отделить управление БД от обработки данных, создать модуль, совместно используемый несколькими приложениями. Управление БД через общий модуль дает возможность определить для всех пользователей одинаковые режимы и правила работы с базой данных.
Удаленный модуль данных предназначен для работы с удаленными БД в трехуровневой архитектуре “клиент-сервер”.
Web-модуль предназначен для работы с БД в сети Интернет и является посредником между браузером и сервером БД.