Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб раб 2 Таблицы 2010.doc
Скачиваний:
2
Добавлен:
19.11.2018
Размер:
859.14 Кб
Скачать

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

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

Термин Главная показывает только, что таблица находится на стороне "Один" отношения 1:М и не связан со смыслом БД. Так, в вышеприведенном примере сведения о поставках важнее, чем о поставщиках, однако именно таблица с данными поставщиков в такой связи будет называться Главной. Если же связываются отделы с их сотрудниками, Главной и по названию и по смыслу будет таблица отделов.

Названия полей не обязательно должны совпадать (хотя это и удобно), но их тип и размер должны быть одинаковыми (тип Счетчик связывают с Числовым типом с размером поля Длинное целое). Данные числового типа обязательно должны иметь одинаковый размер поля, т.е. нельзя связать поля с размерами Длинное целое и Байт. В связях могут участвовать и таблицы, и запросы.

Создание полей подстановки

Часто данные в некоторых полях повторяются. Например, если нужны сведения о поставках, то в записях о разных поставках одного поставщика данные поставщика будут одинаковыми. Чтобы избежать повторного ввода данных и связанных с этим ошибок, используют несколько таблиц: в одной таблице – данные о поставках, а в другой – сведения о поставщиках. Поля обеих таблиц можно будет использовать в одном запросе, если в обеих таблицах есть поле, содержащее код поставщика. По этим полям связывают таблицы.

Для создания подстановки достаточно в режиме Конструктора выбрать для данного поля в списке типов данных последнюю строчку – Мастер подстановок (рис. 2.9).

Рис. 2.9 Вызов Мастера подстановок

Рис. 2.10 Первое окно Мастера подстановок

Рис. 2.11 Второе окно Мастера подстановок

Рис. 2.12 Третье окно Мастера подстановок

Рис. 2.13 Четвертое окно Мастера подстановок

Рис. 2.14 Пятое окно Мастера подстановок

Рис. 2.15 Шестое окно Мастера подстановок

Рис. 2.16 Седьмое окно Мастера подстановок

Отношения между таблицами

Существуют 3 вида отношений между таблицами: один-к-одному (обозначается 1:1), один-ко-многим (1:М) и многие ко многим (М:М). Часто на схемах вместо буквы М используют символ (бесконечность).

Отношение один-к-одному означает, что каждой записи Главной таблицы соответствует 1 запись в Связанной таблице и наоборот. Этот тип связи используется не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением 1:1 обычно используется для отделения части таблицы по соображениям защиты информации.

Отношение один-ко-многим означает, что одной записи Главной таблицы могут соответствовать несколько записей Связанной таблицы, а одной записи Связанной таблицы соответствует 1 запись в Главной таблице. Это наиболее используемый вид связи между таблицами.

Отношение многие-ко-многим означает, что одной записи таблицы «А» могут соответствовать несколько записей таблицы «В», а одной записи таблицы «В» соответствует несколько записей в таблице «А». Например, сущности Проживающие и Квартиры находятся в отношении М:М. Для реализации связи типа М:М в Access создается дополнительная таблица (в данном примере – Расселение), содержащая внешние ключи обеих таблиц. При этом каждая из исходных таблиц связана с таблицей Расселение как 1:М.

Схема данных

Связь между таблицами без обеспечения целостности данных можно определить при работе с запросом, но чтобы не делать этого в каждом новом запросе, можно описать все связи БД в Схеме данных. Для. этого нужно на вкладке Работа с базами данных в группе Отношения нажать кнопку Схема данных (рис. 2.17). Откроется вкладка Конструктор для Работы со связями (рис. 2.18) и окно Схемы данных (рис. 2.19).

Рис. 2.17 Группа Отношения на вкладке Работа с базами данных

Рис. 2.18 Работа со связями, вкладка Конструктор

Рис. 2.19 Схема данных

Затем кнопкой Отобразить таблицу  (см. рис. 2.18) вызвать диалоговое окно Добавление таблицы (рис. 2.20), выбрать таблицу (или запрос) и кнопкой Добавить поместить ее на схему данных. Когда на схеме будут все нужные таблицы, закрыть диалог кнопкой Закрыть. После этого нужно создать связь, протащив мышкой поле Главной таблицы, по которому устанавливается связь, на соответствующее поле Связанной таблицы. При удалении таблиц из макета схемы данных кнопками Очистить макет или Скрыть таблицу (см. рис. 2.18) ни таблицы, ни ранее описанные связи из базы не удаляются.

Рис. 2.20 Диалоговое окно Добавление таблицы

Для изменения характеристик связи выделить нужную линию связи щелчком правой кнопки мыши и выбрать в контекстном меню команду Изменить связь. При этом откроется диалоговое окно Изменение связей (рис. 2.21).

Рис. 2.21 Диалоговое окно Изменение связей

В окне Изменение связей можно:

  • задать обеспечение целостности данных соответствующим флажком,

  • разрешить каскадное обновление, т.е. изменение внешнего ключа записи в Связанной таблице при изменении ключа связанной записи в Главной таблице,

  • разрешить каскадное удаление, т.е. удаление записей в Связанной таблице при удалении связанной записи в Главной таблице,

  • изменить параметры объединения связанных таблиц, щелкнув по кнопке . При этом откроется диалоговое окно Параметры объединения (рис. 2.22), в котором описывают поведение объединения, когда не для всех записей одной таблицы есть связанные записи в другой таблице.

Рис. 2.22 Диалоговое окно Параметры объединения

Изображение линии связи с обеспечением целостности отличается символами 1 и (для стороны "Один" и "Много" соответственно), а с нестандартными параметрами объединения - стрелкой к той таблице, из которой показываются не все записи (см. связь между таблицами Кредит и Список на рис. 2.19).