YourLib.net
Твоя библиотека
Главная arrow Базы данных. Проектирование и создание (С.М. Диго) arrow 5.3. Связывание таблиц
5.3. Связывание таблиц

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

   База данных обычно включает несколько взаимосвязанных таблиц. После того, как таблицы созданы, следует задать их связанность. Для этого надо выбрать кнопку «Схема данных» на вкладке «Работа с базами данных» (рис. 5.38).

 Рис. 5.38. Вид ленты вкладки Работа с базами данных

Рис. 5.38. Вид ленты вкладки Работа с базами данных

   Далее, в открывшейся вкладке «Схема данных» следует добавить те таблицы, между которыми будет определяться связь. Таблицы, между которыми определяется связь, чаще всего, связаны отношением 1:М. Для установления связи надо позиционироваться на поле связи (обычно это первичный ключ) в основной таблице (та, которая стоит на стороне «1») и, не отпуская клавишу мыши, перетащить появившийся значок на соответствующее поле в «зависимом» файле и отпустить клавишу мыши. После этого на экране появится окно «Изменение связи» (рис. 5.39). Далее следует определить, надо ли задавать ограничения целостности связи, и если да, то выбрать режимы корректировок (обновления и удаления). Если вы задаете ограничения целостности, то поле связи основной записи должно быть проиндексировано. При связывании таблиц СОТРУДНИК и ЗНАНИЕ_ИН_ЯЗ выбрано «Обеспечение целостности данных» и «каскадное удаление связанных данных». Позиция «каскадное обновление связанных записей» не отмечена потому, что каскадное обновление означает, что при изменении первичного ключа в основной таблице соответствующие поля в связанной таблице автоматически изменяются, но в поле КОД СОТРУДНИКА в таблице СОТРУДНИК имеет тип «счетчик», а значение поля типа «счетчик» не может быть изменено.

 Рис. 5.39. Задание связи и ограничений целостности по связи

Рис. 5.39. Задание связи и ограничений целостности по связи

   При связывании таблиц КАФЕДРА и СОТРУДНИК ограничение целостности также следует задать, чтобы в таблице СОТРУДНИК не появлялись коды кафедр, которые отсутствуют в справочнике КАФЕДРА. Задавать же «каскадное обновление связанных полей» в данном случае, так же как и предыдущем примере, не имеет смысла, так как в таблице КАФЕДРА поле КОД_КАФЕДРЫ имеет тип «Счетчик». Задавать каскадное удаление в данном случае опасно, так как в случае ликвидации какой-либо записи в таблице КАФЕДРА окажутся удаленными все записи сотрудников, работавших на этой кафедре.
   Для связи же таблиц СОТРУДНИК и ДЕТИ каскадное удаление вполне уместно.
   Обеспечить ссылочную целостность можно и иным способом - используя поле подстановки: если значения будут переноситься из связанной таблицы, то в подчиненной не может появиться значение, отсутствующее в основной таблице.
   Существуют понятия внутреннего, левого и правого соединения. В окне «Изменение связи», появляющемся при установлении связи между двумя таблицами, есть кнопка «Объединение», нажав на которую пользователь попадает в окно «Параметры объединения», в котором он может выбрать одну из трех альтернатив:
   1. объединение только тех записей, в которых значения связанных полей обеих таблиц совпадают;
   2. объединение всех записей первой таблицы и только тех записей из второй таблицы, в которых значения связанных полей обеих таблиц совпадают;
   3. объединение всех записей второй таблицы и только тех записей из первой таблицы, в которых значения связанных полей обеих таблиц совпадают. Первая из перечисленных альтернатив обозначает внутреннее, вторая - левое, третья - правое соединение.
   Кроме явного задания связей между таблицами можно задать возможность автообъединения (рис. 5.40). При этом связываться будут таблицы, которые имеют поля с одинаковыми именами, типами данных и длинами.

Рис. 5.40. Настройка параметров Access 

Рис. 5.40. Настройка параметров Access

 
< Пред.   След. >