Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД ACCESS (3).doc
Скачиваний:
3
Добавлен:
06.12.2018
Размер:
1.28 Mб
Скачать

Связи между таблицами

Реляционные БД создаются с помощью той или иной системы управления базой данных (СУБД). Реляционная БД это обычно система связанных таблиц. Создание связей и последующее их использование – одно из назначений СУБД.

Пусть требуется создать БД из двух таблиц (например, из таблиц «Жители» и «Машины»). Пусть у этих двух таблиц есть одинаковое поле (совпадают имена полей и домены). В случае таблиц на рисунках 1 и 3 это поле «ФИО». В одной из таблиц совпадающее поле должно являться ключом – это обязательно при задании связей (в примере это требование выполняется: «ФИО» – ключ в таблице «Жители»). Эта таблица называется главной (материнской), потому что при удалении в ней любой записи нужно удалить записи с тем же ФИО в «Машины». (Таблица с ключевым полем связи всегда является главной. Поле «ФИО» в таблице «Жители» является ключом, так как его конкретные значения однозначно связаны с определенными объектами (людьми). Поэтому записи в «Жители» однозначно соответствуют жителям города. Удаление записи означает, что человек перестал быть жителем города. Следовательно, должны быть удалены записи о нем из остальных таблиц.)

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

Задание связи как операция, выполняемая при работе с СУБД, состоит в том, что пользователь объявляет поля двух таблиц полями связи. При этом:

1. У полей связи должны совпадать домены (совпадение имен не обязательно).

2. Хотя бы в одной из таблиц поле связи должно быть ключом.

При задании связи одну из связанных таблиц СУБД будет считать главной. Хотя СУБД смысла таблиц «не понимает», главной «автоматически» будет считаться таблица, для которой поле связи является ключом. Если поле связи ключевое в обеих таблицах, то главная будет выбрана по правилу: домен поля связи главной таблицы включает в себя домен внешнего ключа.

Реляционная БД – это БД, которая имеет структуру в виде связанных между собой таблиц. При этом таблицы удовлетворяют требованиям, приведенным в разделе «Таблицы реляционной БД».

Отдельная запись в каждой таблице содержит сведения относительно конкретного «объекта». В таблице «Жители» – относительно конкретного гражданина, в таблице «Машины» – относительно конкретной автомашины. Основное назначение связей между таблицами – упрощение (ускорение) отбора данных, касающегося «объекта», определяемого ключевым полем главной таблицы. Так, если в рассматриваемом примере задана связь по полю «ФИО», то СУБД легко ответит на запрос относительно данных, касающихся такого «объекта», как гражданин Кулев Иван Иванович. Например, ответит на запрос: «Вывести следующие данные о Кулеве Иване Ивановиче: адрес, место работы, номера автомашин, которыми он владеет, марки этих машин». Благодаря заданию связи по полю «ФИО» СУБД будет искать номера машин и их марки в таблице «Машины» в записи с тем же значением «ФИО», которому в таблице «Жители» соответствуют адрес и место работы (рисунок 4). Другими словами, СУБД объединит данные, находящиеся в соответствующих записях. Содержание (смысл) основного термина «связь между таблицами»:

Задание связи – это задание для СУБД правила объединения данных: разрешается объединять данные из соответствующих записей двух таблиц. При этом соответствуют друг другу записи, в которых значения поля связи совпадают.

Помимо задания связи для отбора данных необходимо задать и другие условия отбора записей (раздел «2.3. Работа с СУБД. Запросы»).

номер

ФИО

марка

КЯ 45-42

Кулев…

ауди

……

…….

…..

….

КЯ 12-67

Кулев…

жигули

….

КЯ 56-98

Жаров..

вольво

….


Рис. 4