Архитектура
баз данных
Приложения баз данных строятся
из элементов пользовательского интерфейса, компонентов, которые предоставляют
наборы данных, и компонентов, предназначенных для соединения с базой данных.
В зависимости от того, как вы организуете эти части приложения, получатся приложения
той или иной архитектуры.
На рис, 15.2 представлена
схема организации приложения базы данных.
Рис.
15.2. Схема приложения базы данных
Рассмотрим все четыре части
приложения баз данных:
- интерфейс пользователя
— предназначен для взаимодействия вашего приложения с пользователем. На
схеме интерфейс пользователя отделен от всех других частей приложения. Отделение
его от других частей имеет некоторые преимущества. Таким образом вы делаете
свое приложение более гибким, т: к. изменения в данной части не повлекут за
собой изменений в модуле данных, и наоборот. В дополнение к вышеописанному,
изоляция части пользовательского интерфейса позволит вам использовать формы
интерфейса пользователя в похожих приложениях;
- источник данных —
обеспечивает канал связи между пользовательским интерфейсом и набором
данных. Многие компоненты, предназначенные для отображения данных, могут использовать
один и тот же источник данных. В этом случае при перемещении по записям базы
данных в каждом из таких компонентов синхронно будут отображаться одинаковые
данные;
- набор данных —
это сердце вашего приложения базы данных. Этот компонент представляет набор
записей из одной или нескольких таблиц базы данных;
- соединение с данными
— зависит от используемого набора данных.
Среда Kylix обеспечивает
поддержку двух типов наборов данных:
- клиентский набор
данных — хранит данные в памяти, благодаря чему пе-ремещение по данным
осуществляется просто и эффективно. Клиентский набор данных обеспечивает простой
метод фильтрации записей и объединения данных. Так как данные кэшируются в
памяти, этот набор данных может содержать ограниченное число записей. Имеется
два типа клиентских наборов данных: общий клиентский набор данных и
клиентский набор данных, использующий SQL. Первый обеспечивает доступ
к данным, работая напрямую с файлами, расположенными на локальных дисках,
соединяясь с другими наборами данных в одном и том же модуле данных или соединяясь
с сервером баз данных. Второй может или использовать файлы, расположенные
на локальных дисках, или соединяться с сервером базы данных;
- однонаправленный
набор данных — может читать данные, описанные в запросе SQL или возвращаемые
хранимой на сервере процедурой. Этот вид набора данных не хранит данные в
памяти и является менее гибким в использовании по сравнению с клиентским набором
данных. Единственным направлением перемещения по записям в однонаправленном
наборе данных является направление, указанное в SQL-запросе команды ORDER
BY. Вы не можете использовать однонаправленный набор данных для обновления
данных. Однако этот вид набора данных обеспечивает быстрый доступ к информации,
хранящейся на сервере базы данных, и может предоставлять значительно больший
объем информации по сравнению с клиентским набором данных.
В дополнение к вышеописанным
наборам данных вы можете создать собственный набор данных. Для этого вам придется
использовать класс TDataSet
в качестве предка.