Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум БД_в_ред_11_сокр

.pdf
Скачиваний:
56
Добавлен:
08.04.2015
Размер:
4.46 Mб
Скачать

12.Создайте простой запрос «Движение сотрудников», в который соберите из всех таблиц все поля, кроме полей внешних и первичных ключей. Сортировка по дате приказа. Проверьте, что данный запрос правильно выводит информацию.

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