Лабораторная работа 4

Установка отношений между базами данных

Цели работы:

Краткие сведения из теории

Установка отношений между базами данных

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

Поле, с помощью которого осуществляется связывание таблиц, в главной (родительской) базе данных называется главным (первичным) ключом, а в подчиненной (дочерней) – внешним.

Требования к ключам (индексам):

Задание

  1. Проверьте проект базы данных на предмет проектирования связей (ключи первичные, вторичные).
  2. В проекте базы данных предметной области выделите 2–3 связанные таблицы (родственные таблицы). Родственные таблицы должны иметь хотя бы одно общее поле (ключ).
  3. Установите отношение между данными таблицами.
  4. Сохраните отношение в виде файла с расширением VUE.
  5. Просмотрите связанные базы данных на экране.
  6. Добавьте данные в связанные базы данных.
  7. Выполните сортировку связанных баз данных.
  8. Просмотрите команды, сгенерированные в окне команд и дайте им разъяснение.

Технология работы

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

Для установки отношения между базами данных нужно открыть диалоговое окно Вид (команда Окноñ Вид). В рабочих областях, начиная с первой, нужно открыть базы данных, начиная с главной, и по очереди все второстепенные. Родительскую базу данных надо проиндексировать по главному ключу и объявить его активным. Второстепенные базы данных нужно проиндексировать по внешним ключам и их тоже сделать активными (рис. 4.1), т.е. в диалоговом окне Настройка базы эти индексы следует отметить пиктограммой ключа.

Рис. 4.1. Диалоговое окно Вид

Далее в диалоговом окне Вид нужно установить курсор на родительскую базу данных и нажать командную кнопку Отношения. В правом, до сих пор пустом списке, появляется имя маркированной базы данных с "хвостиком" связи (рис. 4.2).

Рис. 4.2. Диалоговое окно Вид

Рис. 4.3. Проектирование отношения

Затем выберите в списке рабочих областей базу данных, которая должна быть подчинена первой таблице. FoxPro откроет диалоговое окно Конструктор выражений, которое предназначено не только для установки отношения между таблицами, но и для решения других задач (рис. 4.3). В этом диалоговом окне нужно в поле SET RELATION установить имя поля, которое является общим для обеих таблиц и ранее было определено как главный индекс. После чего следует нажать командную кнопку ОК.

Когда отношение установлено во Вид-окне (в правой его части), этот факт иллюстрируется соединительной линией между обеими базами данных. Имя базы данных набранное с небольшим отступом вправо обозначает, что эта таблица подчинена первой базе данных (рис. 4.4).

Рис.4.4. Связь 1:1 в окне Вид

FoxPro по умолчанию создает отношение 1:1, т.е. одной записи из главной базы данных может быть поставлена в соответствие только одна единственная запись дочерней базы данных. Для того, чтобы создать 1:n-отношение нужно установить курсор мыши на родительскую базу данных в рабочих областях и выполнить щелчок на командной кнопке 1-к-многим. Открывается диалоговое окно Один-к-многим (рис. 4.5).

В этом диалоговом окне FoxPro оперирует понятиями Родительский алиас (псевдоним) и Наследующий алиас. Использование алиаса для доступа к базе позволяет обойтись кратким обозначением, а не использовать полную спецификацию файла базы данных.

Рис. 4.5. Объявление 1:n-отношения

Доступ к дочерним таблицам осуществляется с помощью наследующего алиаса. Для установления связи выбирается командная кнопка Добавить все и с помощью ОК закрывается диалог. 1:n-связь установлена. Этот факт индицируется в правом списке окна Вид двойной горизонтальной соединительной линией (рис. 4.6).

Рис. 4.6. Связь 1:n в окне Вида

Отношение между базами данных существует лишь до конца текущего сеанса работы FoxPro. При новом запуске программы отношение не возобновляется. Поэтому необходимо установленное отношение сохранить в виде файла с расширением VUE. Для этого нужно активизировать диалоговое окно Вид и выбрать команду Файлñ Сохранить как….

Рис. 4.7. Диалоговое окно сохранения связи между файлами в виде файла

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

Отчет по работе должен содержать:

  1. В проектных материалах диаграмму отношений сущностей.
  2. На диске Х:\ файлы *.vue. Комментарии (выражение отношения).
  3. В тетради описание команд, сгенерированных при установлении отношения.

Контрольные вопросы

  1. Понятие "главный ключ".
  2. Понятие "внешний ключ".
  3. Суть мощности отношений 1:1.
  4. Суть мощности отношений 1: М.
  5. Правила проектирования отношений (связей) таблиц. Назвать необходимые условия для установления отношений.
  6. Правила просмотра связанных отношений.
  7. Ограничения целостности при работе со связанными отношениями при добавлении, удалении, корректировке записей.