12. Просмотр сумм зарплаты

Цель работы – получение информации из двух таблиц

Общие сведения

Для того, чтобы распечатать ведомость заработной платы или просто проверить выданные суммы, пользоваться только таблицей ЗАРПЛАТА неудобно. Требуется знать, какому сотруднику соответствует каждый табельный номер. Но сведения о сотрудниках находятся в таблице КАДРЫ. К ней приходится часто обращаться для поиска нужных сведений.

Поскольку эта операция является рутинной, часто встречается в практике и требует больших затрат времени, она автоматизирована в СУБД. Более того, реализация данной задачи является одним из основных требований к реляционным СУБД, к которым относится и Access.

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

Если просто ввести в запрос две таблицы и выводить поля ФИО, ТабНом из таблицы КАДРЫ и поле Зарплата из таблицы ЗАРПЛАТА, то Вы получите огромный список, в который войдут все возможные комбинации зарплат и фамилий. Чтобы выводились только нужные фамилии, в выбираемых из двух таблиц записях должны совпадать табельные номера.

Это достигается путем установления связей между таблицами в базе данных.

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

Связь можно установить постоянно. Весь набор постоянных связей называется Схемой данных. Она отражает стабильные свойства системы таблиц и переносится во все запросы при их создании.

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

НЕ нашли? Не то? Что вы ищете?

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

Задание

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

Порядок выполнения работы

1. Нажмите на панели инструментов кнопку Схема данных. Выберите таблицы КАДРЫ и ЗАРПЛАТА.

В выбранных таблицах ключевые поля отмечены жирным шрифтом.

Протяните указатель мыши от поля ТабНом таблицы КАДРЫ в поле ТабельныйНомер таблицы ЗАРПЛАТА. Эти поля соединятся линией – связью. Появится окно свойств этой связи.

В окне имеются несколько флажков. Один из них – Обеспечение целостности данных. Он задает проверку при вводе новых данных. Нельзя будет ввести зарплату для несуществующего работника.

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

Внимание. Если связь не устанавливается, закройте схему данных и проверьте выполнение условий целостности данных, после чего повторите попытку.

В данном случае должен установиться тип связи Один ко многим, так как в одной таблице ТабНом – ключевое поле и не может повторяться, а в другой – не ключевое (один сотрудник может получить несколько зарплат). Поле ТабельныйНомер – часть ключа в таблице ЗАРПЛАТА.

Та таблица, у которой связываемое поле является ключевым, называется главной, а другая – подчиненной.

Проверка целостности производится при вводе данных в подчиненную таблицу.

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

Если же установить флажок Каскадное удаление связанных записей, то при удалении сотрудника из таблицы КАДРЫ (например при его увольнении с работы), будут удалены и все записи о его зарплате.

Внимание. Установка обеспечения целостности данных требует определенных навыков. Соблюдайте осторожность при удалении, так как в отличие от запросов, каскадные операции не предупреждают обо всех последствиях и всем масштабе удалений. А восстановить удаленные записи невозможно.

Для изменения свойств связи выделите нужную связь, щелкнув по линии связи, и в контекстном меню выберите опцию Изменить связь.

Внимание. Ввиду «тонкости» линии связи лучше щелкать по ней левой кнопкой до тех пор, пока она не станет выделенной (при выделении линия становится толще). Потом щелкните по выделенной связи правой кнопкой.

Удаление выделенной связи также производится с помощью контекстного меню или нажатием клавиши Delete.

Если Вам потребуется удалить таблицу из схемы данных, то удалите вначале все ее связи, а затем и саму таблицу (выделив ее и нажав клавишу Delete).

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

Продумайте вид обеспечения целостности и достоверности данных, установите нужный режим.

Закройте окно схемы данных.

2. Создайте новый запрос на выборку сведений о заработной плате по месяцам.

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

Задайте порядок сортировки одновременно по месяцам, районам, фамилиям.

Просмотрите результаты созданного запроса.

Введите в запрос условия отбора:

¨  выбор сведений по одному месяцу;

¨  выбор сведений по одной должности.

Результат работы

¨  Схема данных из двух связанных таблиц.

¨  Запрос на выборку данных из двух таблиц.

Дополнительные задания

1.  При включенном режиме обеспечения целостности данных продемонстрировать реакцию Access на ввод некорректных данных. Проверить все возможные варианты (при создании новых записей в подчиненной таблице, при изменении связанных полей в каждой из таблиц, при удалении строк из любой таблица).

2.  Проверить действия Access при включенных режимах Каскадное обновление связанных полей и Каскадное удаление связанных записей. Уметь продемонстрировать подобные действия преподавателю.