Страницы

пятница, 27 сентября 2013 г.

Простая бд Access - Зарплата

Задание База данных "Зарплата" MS Access (2 вариант)..
База данных должна содержать следующие элементы:

Таблица «Должности»: код должности; должность.
Таблица «Тарифы»: код должности; разряд; ставка, р./ч.
Таблица «Работники»: отдел; код должности; разряд; табельный номер; Ф.И.О.
Таблица «Табель»: год; месяц; табельный номер; количество отработанных часов; дата начисления зарплаты

Поле со списком – таблица «Работники», поле Отдел.
Поле подстановки – Код должности в таблице «Тарифы», источник таблица «Должности».

Запросы на выборку:
1. Должность и тарифная ставка работника Р. Л. Иванова.
2. Работники отдела «Проектирование» с тарифной ставкой от 180 до 250 р./ч.
3. Работники отдела «Проектирование», разряд которых выше 10-го.

Запрос с вычисляемым полем
Зарплата работника (таблица «Табель»).

Групповой запрос:
Количество отработанных часов каждым работником (таблица «Работники»).

Запрос с параметром:
Работники отдела N

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

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

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

Вот какая получается схема данных в MS Access. 


База данных несложная. Но есть одна особенность – составной ключ в таблице «Тарифы». Он состоит из полей «Код должности» и «Разряд». То есть получается, что по отдельности одно и то же значение кода должности или тарифа может встречаться в таблице не один раз, но сочетание их должно быть уникально. У нас не может быть двух конструкторов с одинаковыми разрядами в одной таблице. И, как видим, связь между таблицами «Тарифы» и «Работники» не имеет свойства «Обеспечение целостности данных». Ввиду неуникальности ключа «Разряд» вид этой связи многие-ко-многим. Но, как мы и говорили, сочетание «Код должности + Разряд» уникально, так что все в порядке, в конечном итоге получается один-ко-многим.

По структуре таблиц базы данных. Таблицы «Должности» и «Тарифы» – это справочники-классификаторы. Таблица «Должности – главная к таблицам «Работники» и «Тарифы» (поля связи Код должности). Таблица «Работники» содержит сведения о сотрудниках и является главной к «Табелю». В «Табеле» содержится вся информация по отработанному времени сотрудников.

Дальше делаем запросы.
Первый запрос на выборку:


Второй запрос на выборку


В этом запросе используем функцию Between. Она возвращает значения из указанного диапазона, в данном случае ставку от 180 до 250 р/ч.
Третий запрос на выборку


Запрос с вычисляемым полем


Групповой запрос


Запрос с параметром


Делаем отчет. Многотабличный запрос


Отчет в режиме конструктора: