Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диго С.М. Базы данных проектирование и использование.doc
Скачиваний:
780
Добавлен:
14.05.2016
Размер:
12.04 Mб
Скачать

5.2.4. Связывание таблиц

После того как таблицы созданы, можно задать их связанность. Для этого надо выбрать позицию меню Сервис/Схема данных (либо щелкнуть по соответствующей кнопке на панели инструментов). Да­лее в открывшемся окне Схема данных следует добавить в окно те таблицы, между которыми будет определяться связь. Такие таблицы чаще всего связаны отношением 1:М. Для установления связи нужно позиционироваться на поле связи (обычно это первичный ключ) в основной таблице (та, которая стоит на стороне «1»), не отпуская кла­вишу мыши, перетащить появившийся значок на соответствующее поле в зависимом файле и отпустить клавишу мыши. После этого на экране появится окно Изменение связей (рис. 5.23). Далее следует определить, нужно ли задавать ограничения целостности связи, и если да, то выбрать режимы корректировок (обновления и удаления). Если вы задаете ограничения целостности, то поле связи основной записи должно быть проиндексировано.

В рассматриваемом в качестве примера случае при связывании таблиц «Кафедра» и «Сотрудник» ограничение целостности следует задать, чтобы в таблице «Сотрудник» не появлялись коды кафедр, которые отсутствуют в справочнике «Кафедра». Задавать «каскадное обновление связанных полей» в данном случае не имеет смысла. Кас­кадное обновление означает, что при изменении первичного ключа в основной таблице соответствующие поля в связанной таблице авто­матически изменяются. В таблице «Кафедра» поле «Код_кафедры» имеет тип «Счетчик». Это означает, что изменять значение этого поля нельзя. Задавать каскадное удаление в данном случае тоже опасно, поскольку в случае ликвидации какой-то кафедры и удаления соот­ветствующей записи из таблицы «Кафедра» окажутся удаленными из таблицы «Сотрудник» все записи сотрудников, работавших на этой кафедре.

Для связи же таблиц «Сотрудник» и «Дети» (рис. 5.24) каскадное удаление вполне уместно.

Существуют понятия внутреннего, левого и правого соединения. В окне Изменение связей, появляющемся при установлении связи между двумя таблицами, есть кнопка Объединение, щелкнув по которой пользователь попадает в окно Параметры объединения, в ко­тором он может выбрать один из трех вариантов:

  1. объединение только тех записей, в которых значения связан­ных полей обеих таблиц совпадают;

  2. объединение всех записей первой таблицы и только тех запи­сей из второй таблицы, в которых значения связанных полей обеих таблиц совпадают;

  3. объединение всех записей второй таблицы и только тех запи­сей из первой таблицы, в которых значения связанных полей обеих таблиц совпадают.

Первый из перечисленных вариантов обозначает внутреннее, вто­рой - левое, третий - правое соединение.

Параметры объединения влияют на то, какие записи из связан­ных таблиц будут выводиться в ответ при просмотре базы данных. Поэтому при реализации запросов следует обязательно иметь в виду, как связаны таблицы, и при необходимости изменять параметры объе­динения. Более подробно эти аспекты будут изложены при рассмот­рении языков запросов (см. главы 6 и 7).