Между таблицами могут устанавливаться бинарные (между двумя таблицами), тернарные (между тремя таблицами) и, в общем случае, n-арные связи. Рассмотрим наиболее часто встречающиеся бинарные связи.
При связывании двух таблиц выделяют основную и дополнительную (подчиненную) таблицы. Логическое связывание таблиц производится с помощью ключа связи.
Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких полей, которые в данном случае называют полями связи (ПС).
Суть связывания состоит в установлении соответствия полей связи основной и дополнительной таблиц. Поля связи основной таблицы могут быть обычными и ключевыми. В качестве полей связи подчиненной таблицы чаще всего используют ключевые поля.
Связывание таблиц в БД. Основные виды связей
При проектировании реальных БД информацию обычно размещают в нескольких
таблицах. Таблицы при этом связаны семантикой информации. В реляционных СУБД для
указания связей таблиц производят операцию их связывания.
Укажем выигрыш, обеспечиваемый в результате связывания таблиц. Многие СУБД при
связывании таблиц автоматически выполняют контроль целостности вводимых в базу
данных в соответствии с установленными связями. В конечном итоге это повышает
достоверность хранимой в БД информации.
Кроме того, установление связи между таблицами облегчает доступ к данным.
Связывание таблиц при выполнении таких операций как поиск, просмотр, редактирование,
выборка и подготовка отчетов обычно обеспечивает возможность обращения к,
произвольным полям связанных записей. Это уменьшает количество явных обращений к
таблицам данных и число манипуляций в каждой из них.
Основные виды связи таблиц
Между таблицами могут устанавливаться бинарные (между двумя таблицами),
тернарные (между тремя таблицами) и, в общем случае, nарные связи. Рассмотрим
наиболее часто встречающиеся бинарные связи.
При связывании двух таблиц выделяют основную и дополнительную (подчиненную)
таблицы. Логическое связывание таблиц производится с помощью ключа связи.
Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких
полей, которые в данном случае называют полями связи (ПС).
Суть связывания состоит в установлении соответствия полей связи основной и
дополнительной таблиц. Поля связи основной таблицы могут быть обычными и ключевыми.
В качестве полей связи подчиненной таблицы чаще всего используют ключевые поля.
В зависимости от того, как определены поля связи основной и дополнительной таблиц
(как соотносятся ключевые поля с полями связи), между двумя таблицами в общем случае
могут устанавливаться следующие четыре основные вида связи (табл. 3.2):
один один (1:1);
один много (1:М);
много один (М:1);
много много (М:М или M:N).
Таблица Характеристика видов связей таблиц
Дадим характеристику названным видам связи между двумя таблицами и приведем
примеры их использования.
Связь вида 1:1
Связь вида 1:1 образуется в случае, когда все поля связи основной и дополнительной
таблиц являются ключевыми. Поскольку значения в ключевых полях обеих таблиц не
повторяются, обеспечивается взаимнооднозначное соответствие записей из этих таблиц.
Сами таблицы, по сути, здесь становятся равноправными.
Пример 1.
Пусть имеются основная 01 и дополнительная Д1 таблицы. Ключевые поля обозначим
символом "*", используемые для связи поля обозначим символом "+".
В приведенных таблицах установлена связь между записью (а, 10) таблицы 01 и записью
(а, стол) таблицы Д1. Основанием этого является совпадение значений в полях связи.Аналогичная связь существует и между записями (в, 3) и (в, книга) этих же таблиц. В
таблицах записи отсортированы по значениям в ключевых полях.
Сопоставление записей двух таблиц по существу означает образование новых
"виртуальных записей" (псевдозаписей). Так, первую пару записей логически можно
считать новой псевдозаписью вида (а, 10, стол), а вторую пару псевдозаписью вида
(в,3,книга).
На практике связи вида 1:1 используются сравнительно редко, так как хранимую в двух
таблицах информацию легко объединить в одну таблицу, которая занимает гораздо меньше
места в памяти ЭВМ. Возможны случаи, когда удобнее иметь не одну, а две и более
таблицы. Причинами этого может быть необходимость ускорить обработку, повысить
удобство работы нескольких пользователей с общей информацией, обеспечить более
высокую степень защиты информации и т. д. Приведем пример, иллюстрирующий
последнюю из приведенных причин.
Пример 2.
Пусть имеются сведения о выполняемых в некоторой организации научно
исследовательских работах. Эти данные включают в себя следующую информацию по
каждой из работ тему (девиз и полное наименование работ), шифр (код), даты начала и
завершения работы, количество этапов, головного исполнителя и другую дополнительную
информацию. Все работы имеют гриф "Для служебного пользования" или "секретно".
В такой ситуации всю информацию целесообразно хранить в двух таблицах: в одной из
них всю секретную информацию (например, шифр, полное наименование работы и
головной исполнитель), а в другой всю оставшуюся несекретную информацию. Обе
таблицы можно связать по шифру работы. Первую из таблиц целесообразно защитить от
несанкционированного доступа.
Связь вида 1:М
Связь 1:М имеет место в случае, когда одной записи основной таблицы соответствует
несколько записей вспомогательной таблицы.