Практическая работа №5.
Тема: Межтабличные связи, ключевые слова и индексы.
Цель: Освоить методы создания межтабличных связей, ключевых полей и индексов на примере таблицы Личные дела базы данных Борей.
Последнее что нужно сделать, прежде чем начать ввод данных в новую таблицу, - определить связи таблицы Личные дела с другими таблицами базы данных , а также назначить ключевое поле и создать индексы для сортировки и поиска данных.
Каждому сотруднику, о котором имеется единственная запись в таблице Сотрудники, может соответствовать множество записей в таблице Личные дела. Личное дело каждого сотрудника может содержать множество записей: запись о приеме на работу, ежеквартальные записи о результатах его работы, записи об изменении оплаты его труда и т.д. Это значит, что каждой записи таблицы Сотрудники соответствует несколько записей таблицы Личные дела. Таким образом, таблица Личные дела связана с таблицей Сотрудники отношением многие-к-одному.
Ход работы.
Создание межтабличных связей.
Для того чтобы создавать связи между таблицами было легко и удобно, Access предлагает специальный режим: в окне Схема данных вы найдете наглядное графическое представление межтабличных связей. Чтобы перейти в этот режим и установить связь между двумя таблицами, выполните перечисленные ниже действия.
Откройте базу данных Борей.mdb.
Щелкните на кнопке Окно базы данных на панели инструментов, чтобы активизировать окно базы данных.
Щелкните на кнопке Схема данных, расположенной на панели инструментов База данных, или выберите из меню команду Сервис =>Схема данных, чтобы открыть окно Схема данных (рис.1).
Рис.1. Схема данных базы данных Борей.mdb.
Теперь щелкните на кнопке Отобразить таблицу на панели инструментов или выберите команду Связи => Добавить таблицу из меню Access. Перед вами появится диалоговое окно Добавление таблицы (рис.2).
Рис.2. Вкладка Таблицы диалогового окна Добавление таблицы отображает список всех таблиц базы данных.
Для данного примера добавьте в окно Схема данных таблицу Личные дела, дважды щелкнув мышью на имени таблицы в списке таблиц или выделив имя таблицы в списке и щелкнув на кнопке Добавить. Щелкните на кнопке Закрыть.
Перетащите вниз нижнюю границу окна Схема связей, чтобы создать в нем пространство для отображения всех полей таблицы Личные дела. Перетащите в окне Схема связей таблицу Личные дела под таблицу Товары и перетащите вниз нижнюю границу таблицы Личные дела, чтобы были видны все её поля.
Связь между таблицами Сотрудники и Личные дела основывается на поле КодСотрудника таблицы Сотрудники, являющимся первичным ключом в данной таблице, и на поле КодСотрудника, являющимся внешним ключом таблицы Личные дела.Щелкните мышью на поле КодСотрудника таблицы Сотрудники и перетащите его на поле КодСотрудника таблицы Личные дела. Перед вами появится диалоговое окно Изменение связей (рис. 3).
Рис.3. Установление связей между таблицами.
Т еперь щелкните в диалоговом окне Изменение связей на кнопке Объединение. Перед вами появится диалоговое окно Параметры объединения. Поскольку нам нужно, чтобы в дальнейшем при объединении данных таблиц отображались все записи таблицы Сотрудники, независимо от того, имеется ли соответствующая запись в таблице Личные дела, нужно выбрать второй тип объединения (рис.4). Чтобы закрыть диалоговое окно Параметры объединения, щелкните по кнопке ОК.
Рис.4. Диалоговое окно Параметры объединения.
В диалоговом окне Изменение связей есть очень полезная опция – Обеспечение целостности данных. Если установить соответствующий флажок, то при вводе пользователем в таблицу личные дела значения поля КодСотрудника, Access проверит, есть ли в таблице Сотрудники запись с таким кодом (значением поля КодСотрудника). Если такой записи не окажется, Access выдаст предупреждающее сообщение и откажется сохранять в таблице Личные дела записи, относящиеся к несуществующему сотруднику. Такая процедура называется обеспечением целостности. Связи между этими двумя таблицами требуют обеспечения целостности данных, поэтому убедитесь в том, что вы установили флажок, как показано на рис.5.
В Access работа по обеспечению целостности данных при каскадном удалении и каскадном обновлении данных автоматизирована, для обеспечения целостности данных нужно просто установить флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей в диалоговом окне Изменение связей, открытом для конкретной межтабличной связи. В нашем задании нет необходимости устанавливать флажок опции Каскадное обновление связанных полей, поскольку вы не можете изменить значение поля КодСотрудника в таблице Сотрудники, так как это поле счетчика. Однако вы можете удалять записи в таблице Сотрудники, поэтому установка флажка опции Каскадное удаление связанных записей предохранит вас от появления записей – сирот в таблице Личные дела (т.е. записей, не имеющих связанных с ними записей из таблицы Сотрудники).
Рис.5. Обеспечение целостности данных.
Щ елкните на кнопке Создать, чтобы новая связь появилась в окне Схема данных (рис.6).
Рис.6. Схема данных с новой связью между таблицами Сотрудники и Личные дела.
Теперь щелкните на кнопке закрытия окна Схема данных и подтвердите сохранение изменений.