Лабораторная работа №6. Система управления базами данных MS Access
Тема: Проектирование многотабличных баз данных
-
Связи между таблицами
Таблица состоит из строк и столбцов и имеет уникальное имя в базе данных. База данных содержит множество таблиц, связь между которыми устанавливается с помощью совпадающих полей. MS Access поддерживает четыре типа отношений между таблицами:
Один-к-одному (каждая запись в одной таблице соответствует только одной записи в другой таблице
Один-ко-многим (каждая запись в одной таблице соответствует многим записям в другой таблице)
Много-к-одному (аналогична записи «один-ко-многим)
Много-ко-многим ( одна запись из первой таблицы может быть связана более чем с одной записью из второй таблицы либо одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы )
Тип отношения «один-ко-многим» является наиболее общим
Рассмотрим на конкретном примере, для чего может понадобиться связь между таблицами.
Допустим Вы уже по всем группам заполнили таблицы «Экзамен», и «Зачет» полностью и выяснилось, что одна из дисциплин в таблице «дисциплины» названа неверно, что в свою очередь отразилось на заполнении таблиц «Зачет», либо «Экзамен». Аналогичная ситуация может случиться с фамилией студента и.т.д…..
Как сделать, чтобы исправив название дисциплины в таблице «Дисциплины», либо, изменив фамилию студента в таблице «Анкета», таблицы « Зачет» и «Экзамен» были бы исправлены автоматически. Для этого надо установить связи между таблицами:
Задание 1
Установите связь между таблицами «Зачет» –[ «Дисциплины», «Анкета» ]
Отношение «один-ко-многим» создается в том случае, когда поле , по которому устанавливается связь ( со стороны отношения «один») должно иметь свойство:
Индексированное поле - Да, совпадения не допускаются»
Это относится к полю «фамилия» в таблице «анкета»
и полю «дисциплина» - в таблице «дисциплины»
Проверьте наличие этих свойств в ваших таблицах, прежде, чем приступить к выполнению задания
-
Для этого выполните следующие действия:
-
Перейти в режим «Таблицы»
-
Если у вас есть открытые таблицы, или формы - закройте их.
-
Нажмите кнопку «Схема данных» на панели управления.
-
Пользуясь «правой мышкой» добавьте в схему все таблицы «Зачет» ,«Анкета», «Дисциплины»
-
Закройте окно «Добавление таблицы» В схеме данных должны появиться три схемы выше указанных таблиц.
-
Поместите указатель мыши на поле «Дисциплины» таблицы «Зачет» и, нажмите левую кнопку и, не отпуская ее, перетащите появившийся значок поля на поле «Дисциплина» таблицы «Дисциплины». Появится диалоговое окно «Связи»
-
Поставьте флажок «Обеспечение целостности данных»
-
Поставьте флажок «Каскадное обновление связанных полей»
-
Нажмите кнопку Обьединение.
-
Выберете опцию 3, OK.
-
Нажмите кнопку Создать. , чтобы подтвердить создание связи.
-
Перейдите в окно « Схема данных», Вы должны увидеть появившуюся связь «один-ко-многим»
-
Аналогично создайте связь между полем «фамилия» таблицы «анкета» и полем «студент» таблицы «Зачет». (последовательность действий та же, что и при установлении связи между таблицами «Дисциплины» – «Зачет», только связываются другие поля)
Задание 2
Если Вы правильно выполнили задание 1, то:
После установления связи изменение полей «фамилия» и «дисциплина» соответственно в таблицах «анкета» «дисциплины» автоматически повлечет связанных с этими полями полей «дисциплина» и «студент»в таблице «Зачет». В свою очередь Вы не сможете ввести в таблицу « Зачет» новые фамилии, или дисциплины, если они отсутствуют в таблицах «Анкета» и «Дисциплины»
Проверьте это!!!!!…
Задание 3
-
Установите связь между таблицами «Экзамен» - [«Анкета», «Дисциплины»] Проверьте, как работают связи!!! СОХРАНИТЬ!!!!!!