Печатать эту главуПечатать эту главу

Лабораторная работа № 6. Основы работы в СУБД Microsoft Access. Создание новой базы данных

2. «СОЗДАНИЕ НОВОЙ БАЗЫ ДАННЫХ»

2.7. ЗАДАНИЕ 7. Установка связей между таблицами

Организация связей между таблицами

 Когда между таблицами устанавливается связь, это означает, что величины из одной таблицы ставятся в соответствие величинам из другой таблицы.

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

Существуют условия, которым должны соответствовать типы данных связываемых полей.

  • Общие или связываемые поля должны быть одинакового типа.
  • Если оба связываемых поля имеют числовой тип, они должны иметь и одинаковые значения свойства Размер поля.
  • Поле с типом Счетчик можно связать с числовым полем, у которого свойство Размер поля имеет значение Длинное целое.

Поскольку при проектировании БД Факультет сразу предполагалось, что все таблицы этой БД будут связаны между собой, рассмотрим в качестве примера создание таких связей. Для этого необходимо открыть окно Схема данных и добавить в него те таблицы, которые будут связаны. Окно Схема данных – это удобное и наглядное графическое представление связей для открытой базы данных, где можно добавлять таблицы, определять тип связи и устанавливать параметры целостности данных между таблицами. Итак, следуя рекомендациям ЗАДАНИЯ 7, установите связи между таблицами БД Факультет.

 

  1. Открыть базу данных и выполнить команду горизонтального меню Сервис>Схема данных или щелкнуть на кнопке   Схема данных панели инструментов. Откроется диалоговое окно Схема данных. Если БД уже открыта, то создавать или изменять связи между открытыми таблицами нельзя, поэтому перед началом работы их следует закрыть.
  2. В том случае, если в окно Схема данных еще не добавлены никакие таблицы, сразу откроется окно Добавление таблицы. Если оно не появится, выполните команду горизонтального меню Связи>Добавить таблицу или щелкните на кнопке  Добавить таблицу на панели инструментов.
  3. Дважды щелкните на имени таблицы (например, Учетная карта), которая должна быть включена в окно схемы данных.
  4. Выполните шаг 3 требуемое число раз, чтобы включить в рабочую область окна Схемы данных все необходимые таблицы. Затем щелкните на кнопке Закрыть. Для нашего примера таких таблиц будет пять, и в итоге все они появятся в окне Схема данных в виде отдельных окон, где перечислены поля, содержащиеся в таблицах (рис. 18).
  5. Создайте теперь связь между таблицами Учетная карта  и  Ведомость. Как отмечалось ранее, это связь типа «один к одному». Каждой записи первой таблицы соответствует одна (и не более) связанная запись второй таблицы (и, соответственно, наоборот).

В обеих таблицах роль первичного ключа выполняет поле ФИО. На этом поле таблицы Учетная карта  нажмите левую клавишу мыши и, удерживая ее, перетащите на поле ФИО таблицы Ведомость. Затем отпустите левую кнопку мыши. (При таком порядке установления связи первую таблицу Учетная карта модно рассматривать как главную, а Ведомость – как подчиненную).

Рис.18. В окне Схема данных отображаются пять таблиц
базы данных Факультет

6. После того, как поле перенесено, появится диалоговое окно Изменение связей (рис. 19). 

Рис. 19. Диалоговое окно Изменение связей позволяет
определить параметры создаваемой связи

 7. Щелкните в этом окне на кнопке Создать, в результате между двумя полями появится тонкая линия объединения (рис. 20).

8. Теперь создайте связь между таблицами Учетная карта и Группы. Здесь, как уже отмечалось, связь типа «один ко многим». Одна из таблиц – Группы – называется родительской, или главной (общее поле Nгр является в ней первичным ключом), а вторая –дочерней, или подчиненной(поле Ngr в ней – это внешний ключ).Теперь, как и в п.5, первичный ключ надо выделить и совместить со вторичным, установив тем самым связь между указанными таблицами.

Рис. 20. Таблицы Учетная карта и Ведомость  теперь
связаны между собой

 

9. Теперь необходимо повторить шаги 5 – 7 для каждой пары таблиц, которые необходимо связать между собой. Сделайте это самостоятельно, получив в результате этих операций в окне Схема данных структуру связей, изображенную на рис. 21.

Рис. 21. В окне Схема данных отображены все связи между таблицами

базы данных Факультет

10. Сохраните созданные связи, используя стандартные приемы Windows для сохранения. Но, даже, если Вы не сделаете этого, программа Access  предложит вам сохранить созданные связи и при закрытии окна Схема данных.

 Обеспечение целостности данных в базе

При определении связи между полями двух таблиц в диалоговом окне Изменение связей имеется опция Обеспечение целостности данных (рис. 19). Целостность данных –  это система правил, регулирующих взаимодействие между связанными таблицами и обеспечивающих корректность хранимых в таких таблицах данных. Целостность данных подразумевает, что данные, введенные в общее поле двух связанных таблиц, должны совпадать.

Если используются условия целостности данных, то Access будет поддерживать следующие правила.

  • В поле внешнего ключа дочерней таблицы нельзя ввести значение, не содержащиеся в поле первичного ключа родительской таблицы. Таким образом, если попытаться указать в поле Ngr номер группы, отсутствующий в списке Группы (поле Nгр), при сохранении  записи программа Access выдаст сообщение об ошибке.
  • Программа Access не позволяет удалить запись родительской таблицы, если в дочерней таблице имеются связанные с ней записи. Например, нельзя удалить из таблицы Преподаватели  сведения о преподавателе, если он является куратором и о нем имеется запись в таблице Группы.
  • Нельзя изменить значение первичного ключа в родительской таблице, если для данной записи существуют связанные записи в дочерней таблице. Например, если попытаться изменить название кафедры в поле Deprt таблицы Кафедры, то это сделать будет невозможно, т.к. в таблице Преподаватели существуют записи, в которых используется старое название (рис. 22).

 

Рис. 22. Предупреждение Access о невозможности изменения данных,
которое может нарушить их целостность

 При выборе опции Обеспечения целостности в окне Изменение связей (рис. 19) становятся доступными еще две опции, которые позволяют активизировать автоматическое выполнение каскадного удаления и каскадного обновления данных.

  • Если поставить флажок на опции Каскадное обновление связанных полей, то при любом изменении данных первичного ключа в родительской таблице (например, названия кафедры в поле Deprt таблицы Кафедры) автоматически будут обновляться соответствующие значения в поле связанной таблицы (поле Deprt таблицы Преподаватели). Благодаря внесению необходимых изменений в связанную таблицу целостность данных не будет нарушена. Если эта опция не включена, изменить значение ключевого поля первичной таблицы не удастся, как это уже было показано в предыдущем пункте.
  • Когда установлен флажок в опции Каскадное удаление связанных полей, то при удалении записи в родительской таблице автоматически будут удаляться соответствующие записи в дочерней связанной таблице. Например, если такого рода связь установлена между таблицами Учетная карта и Ведомость, то при удалении записи из одной таблицы Учетная карта  автоматически будет удалена такая же запись из таблицы Ведомость