Практикум БД_в_ред_11_сокр
.pdf12.Создайте простой запрос «Движение сотрудников», в который соберите из всех таблиц все поля, кроме полей внешних и первичных ключей. Сортировка по дате приказа. Проверьте, что данный запрос правильно выводит информацию.
13.Создайте новый запрос «Движение сотрудников с зарплатами», содержащий следующие поля:
[Код_Сотрудника], [Фамилия], [Должность], [Отдел], [Тип Приказа], [Дата Приказа], [Надбавка] и [Оклад]
Зарплата:=Вычисляемое поле (Для удобства дальнейшей работы постройте выражение c фиксированным значением курса, исключив свободное поле [Курс]).
14.Для определения количества принятых, переведенных и уволенных сотрудников создайте в запросе «Движение сотрудников с зарплатами» три дополнительные колонки [Приняты], [Переведены], [Уволены]. Постройте вычисления в них так, чтобы в каждой из них стояли 1, если [Тип приказа] соответствует наименованию колонки, и 0, если тип приказа другой. Для данной задачи используйте в Построителе условный оператор:
->Встроенные функции->Управление-> IIf(«expr»;«truepart»;«falsepart»).
Вычисляемое выражение Приняты: =IIf([Тип приказа]=1;1;0)
Вычисляемое выражение Переведены: =IIf([Тип приказа]=2;1;0)
Вычисляемое выражение Уволены: =IIf([Тип приказа]=3;1;0)
15.Для выборки сотрудников, работающих в АКБ «Буревестник» на текущую дату, создайте запрос «Список работающих», в котором отберите последние записи о каждом
91
сотруднике (группировка по [Код_Сотрудника], в остальных колонках функция Last)
и исключите уволенных. Рассчитайте зарплату каждого работающего.
16.Создайте отчет с итогами «О текучести кадров в отделах» на основе запроса «Движение сотрудников с зарплатами» с группировкой по отделам и сортировкой по [Фамилии]. Итоги подведите суммированием значений в полях: [Приняты], [Переведены], [Уволены].
17.Создайте отчет «Фонд оплаты труда» на текущую дату, используя в качестве источника запрос «Список работающих». Группировка по должностям, итоги по полю [Зарплата]. В заголовке отчета должна автоматически проставляться дата его составления.
Самостоятельно
Совет. Общее правило подготовки отчета – сначала сконструировать запрос, отбирающий нужную информацию, сортирующий ее по выбранному полю, производящий необходимые вычисления в дополнительных вычисляемых колонках запроса, и только затем строить на его основе отчет. Хотя MS Access позволяет строить отчет, оперируя полями, взятыми из таблиц, это все равно приводит к построению запроса, который, правда, скрыт от пользователя.
1.Постройте отчет о текучести кадров в определенном году. Он похож на запрос п.16, однако, нужно обеспечить выборку записей «Журнала приказов», относящихся только к
92
определенному году, вводимому пользователем. Этот год должен отображаться в заголовке отчета.
2.Создайте новый запрос «Льготы по зарплате сотрудников», скопировав запрос «Список сотрудников». В КОНСТРУКТОРЕ добавьте в запрос следующие поля: [Дети] и [Пол]. Вычислите поле [Льготы]: IIf(AND([Дети]>0, [Пол]=женский); 13%[Дети]*[МРОТ];0). Это структура вычислений, а не готовая формула.
3.Создайте новый запрос «Адреса сотрудников» на основе запроса «Движение сотрудников
сзарплатами» со следующими полями:
a.[Фамилия], [Имя] – используются для выражения Сотрудник:=[Фамилия] +” ”+Left([Имя];1)+”.”
b.Возраст:=Вычисляемое поле (Вычисляет возраст),
c.[Адрес],
d.[Телефон домашний].
4.Откройте запрос для просмотра. Информация выводится правильно, но записи о сотрудниках повторяются столько раз, сколько у него было переводов. Для устранения повторений введите группировку по полю [Фамилия], а для всех остальных полей определите в строке «Группировка» функцию Last, которая выводит последнюю запись.
5.Постройте отчет на основании запроса «Адреса сотрудников». О сотрудниках должна выводиться только информация: фамилия, инициалы, возраст, адрес и телефон. В итогах отчета должно указываться общее количество сотрудников в списке отчета.
93
Упр. 13. Самостоятельная работа
Спроектировать ИС «Контроль поручений». Создать для нее новую БД «КП.mdb». ИС должна вести учет и хранить информацию о выполняемых поручениях сотрудниками АКБ «Буревестник». Пример информации о поручениях сотрудников – в таблицах.
ПОРУЧЕНИЕ |
|
ВЫПОЛНЯЕТ |
Составление Бизнес-плана Бан- |
1. |
Иванов |
ка |
|
|
|
2. |
Птичкина |
Анализ Бизнес-плана заемщика |
1. |
Иванов |
|
2. |
Петров |
|
3. |
Птичкина |
Подготовка договора с заемщи- |
1. |
Сидоров |
ком |
|
|
Финансовый анализ баланса за- |
1. |
Сидоров |
емщика |
|
|
|
2. |
Петров |
|
|
|
|
3. |
Иванов |
|
|
|
СОТРУДНИК |
|
ВЫПОЛНЯЕТ |
Иванов |
1. |
Финансовый анализ баланса за- |
|
|
емщика |
|
2. |
Составление Бизнес-плана Банка |
|
3. |
Анализ Бизнес-плана заемщика |
Птичкина |
1. |
Анализ Бизнес-плана заемщика |
|
2. |
Составление Бизнес-плана Банка |
Петров |
1. |
Анализ Бизнес-плана заемщика |
|
|
|
|
1. |
Финансовый анализ баланса за- |
|
|
емщика |
Сидоров |
2. |
Подготовка договора с заемщи- |
|
|
ком |
|
3. |
Финансовый анализ баланса за- |
|
|
емщика |
94
Новая БД будет включать следующие таблицы:
«Сотрудники» – скопируем таблицу «Сотрудники» из файла «Кадры.mdb»
«Список поручений» – новая таблица.
«Поручения сотруднику» – новая (третья) таблица, через которую разрешается проблема связи «Многие-ко-многим».
Порядок выполнения задания
1. Создайте в режиме КОНСТРУКТОРА новые таблицы: Структура таблицы «Список поручений»:
КодП |
Счетчик (ключ) – код поручения |
Поручение |
Текст (20 символов) |
Стоимость |
Денежный, Формат/Маска ##.###« тыс. руб.» |
Премия |
Числовой (Байт), Формат/Маска ##«%» |
Структура таблицы «Поручения сотруднику»: |
|
КодПС |
Счетчик (ключ) – код поручения сотруднику |
КодП |
Числовой (Длинное целое) – Внешний ключ, подстановка из таб- |
|
лицы «Список Поручений» |
КодС |
Числовой (Длинное целое) – Внешний ключ, подстановка из таб- |
|
лицы «Сотрудники» |
ДатаПоруч |
Дата/Время (Условие на значение >= сегодняшней дате; значе- |
|
ние по умолчанию равно сегодняшней дате) |
95
СрокИсп |
Число (Байт), Формат поля: ##« дней» |
ОтмОбИсп |
Логическое, Подстановка: Список значений: -1; «Выполнено»; 0; |
|
«Не выполнено»; значение по умолчанию соответствует состоя- |
|
нию не выполненного поручения. |
2.Создайте с помощью мастера простые формы для ввода информации в таблицы «Список Поручений» и «Поручения Сотруднику».
3.Используя созданные формы, заполните таблицы данными из приведенных контрольных примеров: «Список поручений» и «Поручения сотруднику».
КодП |
НазвПоруч |
Стоимость |
Премия |
|
1 |
Составление Бизнес-плана Банка |
10 тыс. руб. |
10% |
|
2 |
Анализ Бизнес-плана заемщика |
15 |
тыс. руб |
15% |
3 |
Подготовка договора с заемщиком |
5,5 |
тыс. руб |
5% |
4 |
Финансовый анализ баланса заемщика |
50 |
тыс. руб |
15% |
Пример таблицы «Список поручений»
96
КодП |
КодС |
ДатаПоруч |
СрокИсп |
ОтмОбИсп |
|
1 |
Иванов |
01.MM.YY |
7 |
дней |
Не выполнено |
1 |
Птичкина |
01.MM.YY |
14 |
дней |
Не выполнено |
2 |
Иванов |
03.MM.YY |
3 |
дней |
Не выполнено |
2 |
Петров |
03.MM.YY |
1 |
дней |
Не выполнено |
2 |
Птичкина |
03.MM.YY |
2 |
дней |
Не выполнено |
3 |
Сидоров |
07.MM.YY |
3 |
дней |
Не выполнено |
4 |
Сидоров |
09.MM.YY |
12 |
дней |
Не выполнено |
4 |
Петров |
09.MM.YY |
13 |
дней |
Не выполнено |
4 |
Иванов |
09.MM.YY |
14 |
дней |
Не выполнено |
Пример таблицы «Поручения сотруднику»
Внимание: все даты относятся к текущему (YY) году, MM – текущий месяц +1.
4.Создайте с помощью МАСТЕРА сложные формы на основе всех полей из таблиц: «Список поручений», «Сотрудники», «Поручения сотруднику»:
по поручениям,
по сотрудникам.
5.Проведите вычисления в новых (свободных) полях:
количество поручений одного сотрудника и количество сотрудников, имеющих одинаковые поручения (Встроенные функции, статистические –> Count(«expr»))
97
даты исполнения поручения для каждого сотрудника и максимальную дату исполнения поручения (Встроенные функции, статистические –>Max(«expr»))
6.Создайте с помощью МАСТЕРА запросы:
подробный запрос, включающий фамилии сотрудников, их должности, названия поручений, дату поручения, отметку об исполнении с условием отбора только тех поручений, срок исполнения которых наступит завтра;
запрос с итогами премии, выплачиваемой каждому сотруднику за все выполненные проекты месяца.
7.Создайте с помощью МАСТЕРА отчет с итогами:
группировка по поручениям с указанием сотрудников, даты назначения поручения и даты исполнения, отметки о выполнении, с расчетом среднего срока выполнения поручения;
группировка по сотрудникам с выводом списка всех, уже выполненных каждым сотрудником поручений, расчетом суммы премии каждого сотрудника и итоговой суммы премий по организации.
98
Контрольная работа
Проектирование БД, имеющей между таблицами связь «Многие-ко-многим»
Задание: Построить базу данных, в которой можно сохранить информацию, указанную в таблицах, а также обозначенную в названии задания и показанную стрелками на эскизе. (Вариант «Z101» на стр. 101).
Порядок выполнения задания
1.Нарисовать эскиз схемы данных, в котором указать название для каждой таблицы. Далее перечислить все имена полей (в столбик), входящих в каждую таблицу. Рядом с каждым именем поля написать тип данных и размер поля. При определении типа и размера поля необходимо опираться на данные приведенного примера из таблиц вашего варианта. Определить необходимые ключевые поля (Первичные ключи) и пометить их словом (Ключ). Добавить необходимые Внешние ключи. Нарисовать необходимые связи между таблицами. На связях нужно подписать 1 и М, стрелки линий должны касаться конкретных полей, первичного и внешнего ключей (см. упр. 3). Предоставить эскиз схемы данных на проверку преподавателю, и только после этого переходить к следующему пункту.
99
2.Загрузить программу MS Access, сохранить в своей папке файл БД с именем «Контроль-
ная.mdb».
3.Создать в КОНСТРУКТОРЕ все необходимые таблицы.
4.Для полей, указанных в варианте контрольной работы, использовать маски ввода, форматы и условия на значения.
5.Реализовать в таблицах механизм подстановки для внешних ключей и полей, требующих выбора из фиксированного списка.
6.Отредактировать схему данных с указанием обеспечения целостности данных.
7.Создать простые формы для всех таблиц. Заполнить таблицы с помощью простых форм, включающих все поля каждой таблицы.
8.Построить сложную форму (главная с подчиненной), в соответствии с условиями варианта. Выполнить предложенные вычисления в форме.
9.Создать указанный в задании варианта запрос.
10.Сформировать отчет с группировкой и итогами.
100