|
Zulu поддерживает работу с реляционными базами данных, используя сервис
Borland Database Engine (BDE) компании Inprise. Основной объектом, с которым
оперирует BDE, является база данных. Это может быть действительная база
данных, например Microsoft SQL Server или база данных Microsoft Access,
а может быть совокупность таблиц Paradox или dBase. Zulu также оперирует
понятием база данных, однако, здесь под этим термином подразумевается
совокупность таблиц и связей между ними, объединенных для выполнения запроса
к реальной базе данных с целью получить заданный пользователем срез информации.
База данных Zulu задается файлом-описателем базы данных, имеющий расширение
ZB, именуемый в дальнейшем zb-файлом.
Физически файлы таблиц могут располагаться в удобном для пользователя
месте (на сервере, на локальной машине в отдельном каталоге, в том же
каталоге, что и файлы графической базы данных). Желательно чтобы файл
описателя базы данных хранился в том же каталоге, что и файл графической
базы данных. Описатель базы данных Zulu хранит следующую информацию:
- Список таблиц, участвующих в запросе;
- Если необходимо - набор Справочников;
- Набор запросов, задающих правила выбора значений из таблиц и содержащих
ссылки на таблицы, из которых выполняется выборка, связи между таблицами,
набор полей для вывода с пользовательскими названиями.
Рассмотрим пример базы данных, связывающей объекты слоя "Адресные
точки" с семантической информацией - адресом здания. Допустим, что
адрес дома задается названием улицы или проспекта, типом ("улица",
"проспект", "набережная" и т.д.) и номером дома. Базовой
таблицей для задания адреса будет таблица address.db, связывающая идентификаторы
элементов слоя (поле Sys) с кодом адреса и номером дома. Таблица addrcode.db
будет связывать код адреса с парой идентификаторов названия улицы и типа,
соответственно названия ("Невский", "Гороховая", "Сенная"
и т.д.) будут храниться в таблице street.db, а типы ("проспект",
"улица", "площадь" и т.д.) - в таблице strtype.db.
Нам же нужно получить для запрашиваемого элемента слоя информацию в виде
названия, типа и номера дома. Таким образом, схема данных для нашего примера
будет иметь вид, представленный на рисунке ниже:
Для создания описателя базы данных, который реализует этот пример необходимо
выполнить следующее:
- Набрать список таблиц, участвующих в запросе (в данном случае таблицы
address.db, addrcode.db, street.db, strtype.db);
- Из выбранных таблиц набрать список полей, участвующих в запросе (в
нашем примере все поля участвуют в запросе);
- Добавить связи между полями таблиц.
- В нашем случае, как видно из рисунка, надо указать следующие связи:
Address.AddrCode->AddrCode.Addr_Code,
AddrCode.Street_Code->Street.Street_Code,
AddrCode.Type_Code->StrType.Street_Type
- Указать поле связи с картой (для рассматриваемого примера - поле Address.Sys);
- Оставшиеся поля, не вошедшие в связи, будут отображаться в результатах
запроса. Для них можно задать пользовательские название, которые будут
отображаться в браузере базы данных. Так, в нашем примере для поля Address.Bld_No
название зададим как "Номер дома", для Street.Name - "Название",
а для Strtype.Name - "Тип";
- Задать название базы данных (например - "Адресные точки"),
после чего сохранить описатель в файле с расширением .zb.
Как видно из примера, приведенного выше, создание базы данных состоит
из нескольких этапов:
- Создание описателя баз данных (см. Создание описателя баз данных).
- Создание структуры таблиц с помощью СУБД, таблицы в формате Paradox
могут быть созданы непосредственно в системе Zulu (см. Создание таблицы).
- При необходимости создание и включение таблиц - справочников (см.
Создание
справочника).
- Создание запроса, в котором определяются все поля, входящие в семантическую
БД (см. Создание запроса).
- При необходимости установка связей между таблицами (см. Создание запроса).
- При необходимости создание форм вывода (см. Создание формы).
- Подключение семантической БД к объектам слоя (см. Подключение базы данных к объектам).
Раздел включает в себя следующие подразделы:
|