Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
03 (1).docx
Скачиваний:
15
Добавлен:
10.04.2015
Размер:
1.93 Mб
Скачать

Описание связей между данными

Записи в разных таблицах БД могут быть логически связаны друг с другом: например, таблица «Заказанные товары» должна содержать только те товары, которые описаны в справочнике «Товары». Для описания и контроля логических связей между данными Accessимеет несколько инструментов:

  • схема данных,

  • подстановочные поля,

  • описание связи между полями внутри одной записи.

Работа со схемой данных

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

Контроль правильности ввода данных во внешний ключ таблицы называется контролем ссылочной целостности:Accessпроверяет, что введенные значения внешнего ключа существуют в родительской таблице. В случае ошибки выдается сообщение.

Определение связей между таблицами с помощью схемы данных проводится в следующем порядке:

  1. закрыть все открытые таблицы,

  2. выполнить команду ленты «Работа с базами данных / Схема данных» (рисунок 12),

Рисунок 12 - команда "Показать схему данных"

  1. в открытом окне «Схема данных» добавить все таблицы с помощью команды «Связи / Отобразить таблицу» (рисунок 13),

Рисунок 13 - добавление таблиц в схему данных

  1. перетащить с помощью мыши ключевое поле одной таблицы на поле внешнего ключа в другой таблице (рисунок 14),

Рисунок 14 -определение связей таблиц

  1. определить правило ссылочной целостности (рисунок 15).

Рисунок 15- определение свойств отношения между таблицами

В окне описания связи удостоверьтесь, что связываются именно те столбцы: слева должна быть родительская таблица, а справа – дочерняя. Затем установите переключатели:

  • «Обеспечение целостности»,

  • «Каскадное обновление», если ключевое поле – не счетчик,

  • «Каскадное удаление», если удаление строки в родительской таблице должно автоматически удалить связанные записи в дочерней.

Затем нажмите кнопку «Создать». Между изображениями таблиц появится линия с отметкой типа связи.

Accessразрешает описывать два типа отношений: 1 : М и 1 : 1.

Отношение «Один ко многим». Рассмотрим в БД «Борей» связанные таблицы «Клиенты» и «Заказы». ИД-клиента в таблице «Заказы» может содержать идентификаторы только зарегистрированных клиентов. Поскольку каждому клиенту может соответствовать 0, один или несколько заказов, а каждый заказ всегда относится к одному конкретному клиенту, то мощность отношения между таблицами равна 1 : М. Такие связи характерны для большинства связей в схеме БД. При изменении идентификатора клиентаAccessавтоматически заменит его и в таблице заказов. При удалении клиента заказы также должны быть удалены, иначе будет не понятно, к кому они относятся.

Отношение "один-к-одному". В этом случае каждая запись в одной таблице может быть связана только с одной записью в другой таблице и наоборот. В этом случае ключ одной таблицы совпадает с ключом другой таблицы либо внешний ключ имеет индекс с неповторяющимися значениями. Этот тип связи используют редко, например, для разделения таблицы с очень большим количеством столбцов, для отделения общедоступных данных таблицы от конфиденциальных и др.

Отношение "многие-ко-многим" между двумя таблицами описывают с помощью дополнительной третьей таблицы, то есть разбивают на две связи типа 1 : М (рисунок 22).

Рисунок 16 - реализация связи М : М с помощью таблицы «Заказано»

Например, между таблицами "Заказы" и "Товары" имеется отношение «многие ко многим»: каждый заказ может включать несколько товаров, и каждый вид товара может быть заказан несколько раз. Для реализации этого отношения создается связующая таблица «Заказано», в которую включают два поля – КодЗаказа и КодТовара.

Кроме собственно связи, в этой таблице описаны атрибуты каждого экземпляра связи: количество и цена заказанного товара, скидка в зависимости от объема заказа (таблица 4). Мы видим, что 31 заказ включает 3 товара, каждому из которых соответствует одна строка в связующей таблице.

Таблица 4 – пример связующей таблицы между товарами и заказами

Заказано

ИД

Код заказа

Код Товара

Количество

Цена за единицу

Скидка

27

30

Пиво

1000

14,00р.

5,00%

28

30

Сушеные сливы

30

3,50р.

0,00%

29

31

Сушеные груши

10

30,00р.

0,00%

30

31

Сушеные яблоки

10

53,00р.

0,00%

31

31

Сушеные сливы

10

3,50р.

0,00%

32

32

Цейлонский чай

15

18,00р.

0,00%

Для изменения свойств связинужно дважды щелкнуть по линии связи, чтобы выйти в окно "Изменение связи".Для удалениясуществующей связи следует выделить ее щелчком мыши и нажать клавишу «Delete». Например, чтобы изменить тип данных поля, которое связывает таблицу с другой таблицей, необходимо предварительно удалить установленную связь.

Из окна схемы данных можно быстро перейти в режим конструктора таблиц: щелкните по изображению таблицы на схеме правой кнопкой мыши и выберите «Конструктор таблиц».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]