Урок 17 Інформатика 11(ІКТ)
Обчислення підсумкових показників для груп записів.
Мета.
Навчальна. Ознайомити з обчисленням підсумкових показників для груп записів.
Розвиваюча. Розвивати логічне та алгоритмічне мислення.
Виховна. Виховувати культуру мовлення.
Тип уроку. Урок засвоєння нових знань.
Учні повинні знати:
Учні повинні уміти:
Матеріали для роботи з учнями:
План
Хід уроку
1. Організація початку уроку.
3. Актуалізація опорних знань.
4. Мотивація навчальної діяльності.
На попередньому занятті ми вибирали в таблицях записи, що задовольняють певні критерії. Але в багатьох випадках вибрати записи — значить зробити тільки половину справи, адже часто з ними потрібно виконати якісь підсумкові операції: підрахувати їх кількість, підсумувати значення того чи іншого поля тощо. Підсумкову операцію, наприклад обчислення середнього віку учнів у кожному класі або визначення кількості класів, у яких викладає кожен учитель, часто виконують відразу над багатьма групами записів. У табличному процесорі для виконання таких завдань, нагадаємо, використовують проміжні підсумки та зведені таблиці, а в СКБД застосовують спеціальні різновиди запитів. Крім того, у СКБД Microsoft Access засобом відображення на аркушах друкованого формату підсумкових характеристик для груп записів є звіти. Ці засоби ми розглянемо на сьогоднішньому уроці.
5. Вивчення нового матеріалу.
Групові операції в запитах
Уважно розгляньте таблицю 10.1. Це таблиця Учні, відсортована за значеннями поля клас. Один із результатів сортування полягає в тому, що записи учнів, які навчаються в одному класі, розташовано поруч. Інакше кажучи, таблицю згруповано за полем клас: спочатку розташовано групу учнів 10А класу, потім —10Б, 11А, і нарешті — 11Б класу.
У цій таблиці легко обчислювати підсумкові показники для груп записів. Наприклад, у табл. 10.2 показано результат обчислення для кожного класу кількості учнів і дати народження наймолодшого з них.
Групування шляхом сортування ми виконували в табличному процесорі Microsoft Excel. У СКБД Microsoft Асееве для групування записів сортувати таблицю не потрібно. Групування і обчислення підсумкових операцій здійснюють за допомогою конструктора запитів. У вікні конструктора потрібно клацнути правою кнопкою миші поле, за значеннями якого будуть виділятися групи, і вибрати у контекстному меню команду Групповые операции (Групові операції). Після цього в бланк запиту буде додано рядок Групповая операция (рис. 10.1, а).
З рис. 10.1, б видно, що результати групування рядків таблиці в табличному процесорі та в СКБД дещо відмінні. У СКБД результатом запиту з групуванням є таблиця, де кожна група записів початкової таблиці «згортається» в один запис (наприклад, на рис. 10.1, б замість двох записів «10Б» ми бачимо один). Власне об’єднання кількох записів в один в реляційних базах даних і називається групуванням.
Група — це набір записів з однаковим значенням певного поля. Під групуванням розуміють процес об’єднання групи записів в один; поле, значення якого однакові, називається полем групування.
Однак із самого факту згортання кількох записів в один мало зиску. Групування стає справді корисним, якщо до груп записів застосовують певну підсумкову операцію. Найуживанішими підсумковими операціями вважаються:
♦ визначення кількості записів (Count);
♦ обчислення сумарного значення (Sum);
♦ обчислення середнього значення (Avg);
♦ обчислення максимуму (Мах);
♦ обчислення мінімуму (Min).
Усі операції, крім визначення кількості записів, виконують над значеннями певного поля підсумків. Зауважте, що це не поле групування, а якесь інше поле числового типу, грошового типу або типу дата/час. На рис. 10.1 полем групування є клас, полем підсумків — дата народження, а підсумковою операцією — обчислення максимуму (у наймолодшого учня дата народження максимальна). Тип підсумкової операції вибирають зі списку, що розкривається кнопкою, розташованою в клітинках рядка Групповая операция справа -
Зазначимо, що коли підсумкова операція полягає у визначенні кількості записів у групі, то в конструкторі запитів ми також маємо вибрати певне поле підсумків, але неважливо, яке саме. Справді, кількість рядків не залежить від того, за яким стовпцем ми її підраховуємо.
Для допитливих.
Як полів групування, так і полів підсумків у запиті може бути кілька. Якщо використовують кілька полів групування, то до однієї групи відносять записи, які в усіх цих полях мають однакові значення.
Завдання 10.1
У базі даних школа створіть і виконайте запит типачити дату народження наймолодшого учня в кожному класі.
Поле підсумків можна використовувати н ум оті х відбору так само, як і будь-яке інше поле. Самі умоїш :шмпсують у рядку Условие отбора конструктора запитів. Як приклад розглянемо подані на рис. 10.2 бланк і результат виконання запиту «Ви значити класи, всі учні яких народилися до 1 січня 1998 року». СКБД виконує запит за таким алгоритмом.
Запити з групуванням можна створювати не за однією, а за кількома таблицями, з’єднуючи їх так само, як і в запитах без групування. Приклади кількатабличних запитів із групуванням буде розглянуто далі.
Для допитливих.
У запитах із групуванням можна вказувати лише поля групування та підсумків, адже тільки вони мають одне значення для кожної групи і тому можуть бути подані у вигляді одного запису. «Звичайного» поля не може бути, оскільки в кожній групі його значень багато і незрозуміло, яке з них відобразити в таблиці результатів.
Завдання 10.2
Створіть і виконайте запит визначити класи, всі учні яких народилися до 1 січня 1998 року.
Приклади запитів
Приклад 1
Для кожного вчителя визначити, скількох учнів він навчає.
Вікно конструктора запиту зображено на рис. 10.3. Прізвища та паспорти вчителів беремо з таблиці Учителі, яку з’єднано з таблицею Викладання, її — з таблицею класів, а вже таблицю класів — з таблицею учнів. Зауважте, що прямий зв’язок між таблицею класів та вчителів видалено, оскільки він визначає, хто є класним керівником, а це за умовою запиту не потрібно. Полями групування є паспорт та прізвище вчителя. Поле підсумків може бути будь-яким, оскільки підсумкова операція — обчислення кількості записів.
Приклад 2
Припустимо, що до таблиці учнів додано поле успішність, у якому зберігається середній бал в табелі за минулий навчальний рік. Запит є таким: визначити прізвища класних керівни ків тих класів, середня успішність у яких нижча за 8 балів.
Вікно конструктора запиту зображено на рис. 10.4. У запиті два поля групування: прізвище вчителя та назва класу. Групувати записи за назвою класу потрібно тому, що саме для всіх учнів кожного класу обчислюється середня успішність, а за прізвищем вчителя — тому, що значення цього поля відображається. Пояснимо друге твердження. У запиті з групуванням, нагадаємо, будь-яке поле має бути полем групування або підсумків. Прізвище вчителя — це не підсумкове значення, а отже, відповідне поле має бути полем групування, а не підсумків.
Зауважте також, що в цьому запиті на результат підсумкової операції накладено умову відбору (середня успішність нижча 8 балів). Зрозуміло, що ця умова перевірятиметься для вже згрупованої таблиці, тобто відповідати чи не відповідати їй будуть цілі класи.
Приклад З
Визначити середню успішність учнів, яких навчає Сошко Катерина.
Вікно конструктора запиту зображено на рис. 10.5. У цьому запиті умову відбору (учитель — Сошко Катерина) накладено на поле групування. Можна вважати, що запит виконується так: після з’єднання таблиць відбираються записи, що стосуються Сошко Катерини, а потім обчислюється середнє значення поля успішність в отриманій таблиці.
Завдання 10.3
Реалізуйте запити, розглянуті в прикладах 1-3. Для створення запитів з прикладів 2 і 3 додайте до таблиці Учні поле успішність.
Завдання 10.4
Реалізуйте такі запити в базі даних школа (до таблиці учнів додано поле успішність).
а) Визначити найвищу успішність учнів НА класу.
б) Для кожного класу визначити, скільки математиків у ньому викладає.
в) Визначити, у скількох учнів, молодших за 16 років, викладає Петрова Ніна Володимирівна. (Подумайте, яке обмеження потрібно накласти на дату народження учня.)
6. Висновки.
7. Завдання для самостійного виконання
а) Визначити назви класів, у яких навчається більше 2 учнів.
б) Визначити прізвища вчителів, які викладають більш, ніж в одному класі.
в) Визначити дату народження наймолодшого учня.
г) Визначити кількість учителів, що є класними керівниками.
д) Для кожного вчителя визначити максимальну успішність його учнів (використайте поле успішність).
е ) Визначити прізвище наймолодшого учня.
є*) Визначити спеціальності, за якими працюють тільки вчителі-жінки.
8. Питання для роздумів
9. Завдання для досліджень.
10. Домашнє завдання.