Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание на практику БД.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.64 Mб
Скачать
  1. Создание связей между таблицами

Как известно из курса лекций по информатике, MS Access поддерживает 4 типа связей между таблицами: “один-к-одному”, “много-к-одному”, “один-ко-многим”, “много-ко-многим”.

  1. Связь “один-к-одному” означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице.

  2. Связь “один-ко-многим” означает, что каждая запись в одной таблице соответствует нескольким записям другой таблицы.

  3. Связь “много-ко-многим” означает, что одна запись в первой таблице может быть связана более чем с одной записью из второй таблицы и одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы.

В MS Access можно устанавливать постоянные связи между таблицами, которые будут поддерживаться при создании форм, отчетов и запросов. Устанавливая связи между таблицами, нужно выбирать поле, которое содержит одну и ту же информацию. Чаще связывают первичный ключ одной таблицы с совпадающими полями другой таблицы.

Создание связей между таблицами осуществляется в окне диалога “Схема данных”.

Определение связи “один-к-одному” (рассмотрим на примере определения связи между таблицами ТОВАРЫ и КАТЕГОРИЯ ТОВАРА. Одной записи в первой таблице соответствует только одна запись в другой таблице):

1-й шаг. Нужно закрыть все таблицы вашей БД. Нельзя создавать или удалять связи между открытыми таблицами.

2-й шаг. Открытие окна диалога “Схема данных”.

Для этого необходимо выбрать в главном меню команду Сервис, выбрать Схема данных или нажать кнопку Схема данных на панели инструментов . На экране появится окно диалога “Схема данных”.

3-й шаг. Добавление в окно диалога связываемых таблиц.

Для этого нужно выбрать команду Связи/Добавить таблицу или нажать кнопку Отобразить таблицу на панели инструментов. Откроется окно диалога “Добавление таблицы”. В списке таблиц поочередно нужно выбрать связываемые таблицы, нажимая кнопку Добавить. После выбора всех необходимых таблиц нужно закрыть диалоговое окно. В окне диалога “Схема данных” появятся связываемые таблицы (рисунок 12).

Рисунок 12 – Добавление таблиц

4-й шаг. Для связывания таблиц нужно выбрать поле в первой таблице и переместить его мышью на соответствующее поле в другой таблице.

5-й шаг. На экране появляется диалоговое окно “Изменение связей” (рисунок 13):

Рисунок 13 – Диалоговое окно «Изменение связей»

Здесь необходимо проверить правильность имен связываемых полей (если нужно – выбрать другие имена полей) и установить обеспечение целостности данных.

Определение целостности данных:

Целостность данных является одним из самых важных требований, предъявляемых к базам данных. Для задания условий целостности данных служат установленные между таблицами отношения.

Условия целостности данных - это набор правил, используемых для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связей данных. Данная операция изменяет только макет в окне диалога “Схема данных”.

Ограничения:

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

  2. Нельзя удалять записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.

  3. Нельзя изменять значение ключевого поля в главной таблице, если имеются записи, связанные с этой записью.

Теперь любая попытка выполнить действие, нарушающее ограничения, приведет к открытию окна диалога с предупреждением, а действие выполнено не будет.

Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, нужно включить режимы каскадного обновления и каскадного удаления. При установленном флажке Каскадное обновление связанных полей изменение значения в ключевом поле главной таблицы приводит к автоматическому обновлению соответствующих значений во всех связанных записях. При установленном флажке Каскадное удаление связанных записей удаление записи в главной таблице приводит к автоматическому удалению связанных записей в подчиненной таблице. Эти флажки устанавливаются в окне диалога “Изменение связей” только после установки опции Обеспечение целостности данных.

Затем нужно нажать кнопку Создать. После этого окно диалога “Схема данных” примет иной вид (рисунок 14):

Рисунок 14 - Окно диалога “Схема данных” после установки связей

Определение связи “один-ко-многим”(рассмотрим на примере создания связи между таблицами ТОВАРЫ и ЗАКАЗЫ, т.к. один товар может быть заказан несколькими клиентами).

Данная связь определяется аналогично связи один-к-одному.

Рисунок 15 – Схема данных после установки связей

Определение связи “многие-ко-многим”

Пример такой связи – между таблицами КЛИЕНТЫ и ОРГАНИЗАЦИИ. Каждый из клиентов может работать в нескольких организациях, при этом каждая организация может работать с несколькими клиентами. Так как связь многие-ко-многим не существует, она осуществляется через дополнительную таблицу. Роль связующей для этих двух таблиц выполняет ВСПОМОГАТЕЛЬНАЯ таблица, содержащая поля, описание которых совпадает с описанием ключевых полей в каждой из двух связываемых таблиц - Код клиента и Код организации. В связующей таблице ключевые поля выполняют роль внешнего ключа.

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

2-й шаг. Определение в связующей таблице ключа, содержащего все ключевые поля двух связываемых таблиц (т.е. в таблице ВСПОМОГАТЕЛЬНАЯ составной ключ: Код клиента и Код организации).

3-й шаг. Определение связи с отношением “один-ко-многим” между каждой из двух таблиц и связующей таблицей (рисунок 16).

Рисунок 16 – Определение связей

Аналогично создаем связи между остальными таблицами. Результат показан на рисунке 17:

Изменение существующей связи

Изменять связи также можно только тогда, когда все таблицы закрыты.

1-й шаг. Нажать кнопку Схема данных на панели инструментов.

2-й шаг. Если таблицы, связи между которыми требуется изменить, не отображаются в окне диалога “Схема данных”, нажмите кнопку Отобразить таблицу на панели инструментов, выберите нужную таблицу, затем нажмите кнопку Закрыть.

3-й шаг. Установите указатель на линию связи, которую требуется изменить, и дважды щелкните мышью. Откроется окно диалога “Изменение связей”, где вносятся нужные изменения (рисунок 13).

Рисунок 17 – Схема данных после создания связей

Удаление связи

  1. Нажать кнопку Схема данных на панели инструментов.

  2. Выделить мышью линию связи, которую нужно удалить.

  3. Нажать клавишу <Delete>.

Аналогично в окне диалога “Схема данных” можно удалить таблицу из макета схемы данных (при этом таблица и ее связи сохранится в базе данных).