При проектировании реальных БД информацию обычно размещают в нескольких таблицах. Таблицы при этом связаны семантикой информации. В реляционных СУБД для указания связей таблиц производят операцию их связывания.
Достоинства связывания таблиц.
- повышает достоверность хранимой в БД информации.
- облегчает доступ к данным.
- уменьшает количество явных обращений к связанным таблицам данных, при выполнении таких операций, как поиск, просмотр и подготовка отчетов
- уменьшает число манипуляций в каждой из связанных таблиц.
Основные виды связи таблиц
Между таблицами могут устанавливаться бинарные (между двумя таблицами), тернарные (между тремя таблицами) и, в общем случае, n-арные связи.
При связывании двух таблиц выделяют основную и дополнительную (подчиненную) таблицы. Логическое связывание таблиц производится с помощью ключа связи. Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких полей, которые в данном случае называют полями связи. Суть связывания состоит в установлении соответствия полей связи основной и дополнительной таблиц.
В зависимости от того, как определены поля связи основной и дополнительной таблиц (как соотносятся ключевые поля с полями связи), между двумя таблицами в общем случае могут устанавливаться четыре основных вида связи
Связь вида 1:1 (один к одному)
Связь вида 1:1 образуется в случае, когда все поля связи основной и дополнительной таблиц являются ключевыми. Поскольку значения в ключевых полях обеих таблиц не повторяются, обеспечивается взаимно-однозначное соответствие записей из этих таблиц. Сами таблицы, по сути, здесь становятся равноправными.
Пример 1.
Пусть имеются основная Ol и дополнительная Д1 таблицы. Ключевые поля выделены курсивом. Используемые для связи поля выделены подчеркиванием.
Таблица О1 | |
Инв. № | Кол-во |
Таблица Д1 | |
Инв. № | Название |
Шкаф | |
Стол |
В приведенных таблицах установлена связь между записью (1234, 12) таблицы Ol и записью (1234, шкаф) таблицы Д1. Основанием этого является совпадение значений в полях связи. Аналогичная связь существует и между записями (7853, 56) и (7853, стол) этих же таблиц.
Сопоставление записей двух таблиц по существу означает образование новых «виртуальных записей» (псевдозаписей). Так, первую пару записей логически можно считать новой псевдозаписью вида (1234, 12, шкаф), а вторую пару — псевдозаписью вида (7853, 56, стол).