1. 11 клас. Інформатика. Академічний рівень
Урок №46
Тема: Запити в СУБД
Мета:
● закріпити поняття про
○ етапи створення баз даних
○ системи керування базами даних
○ таблиці бази даних
● Ознайомити:
○ з поняттям запитів у базі даних
● відпрацювати прийоми створення запитів у СКБД LibreOffice Base
● розвивати
○ спостережливість
○ аналіз предметної області
○ логічне та критичне мислення
○ загальнокультурну компетентність
● виховувати:
○ культуру найменування файлів та об’єктів бази даних
○ культуру введення даних
Хід уроку
І. Організаційний етап
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка
виконання домашнього завдання.
ІІ. Мотивація навчальної діяльності
1. Що таке бази даних?
2. Які види моделей баз даних вам відомі?
3. Чим характеризується реляційна модель бази даних?
4. Які основні поняття реляційної бази даних, що вони означають?
5. Назвіть та поясніть етапи сворення бази даних.
6. Опишіть модель сутність – зв’язок для предметної області “Шкільна бібліотека”
ІІІ. Вивчення нового матеріалу
Ви вже знаєте що таке бази даних в загальному вигляді. За означенням, бази
даних створюються для зберігання сукупності взаємнозв’язаних даних про визначену
групу об’єктів, а також для автоматизації роботи з ними. Автоматизованість роботи із
складною структурою даних обумовлює не тільки здатність додавати, видаляти та
редагувати вміст таблиць, а ще й діставати з них необхідну користувачеві інформацію.
Це означає, що ми маємо навчитись «коректно запитувати» у бази даних необхідну для
нас інформацію.
Загальні поняття
Запит — це формулювання користувачем своєї інформаційної потреби до деякої
бази даних, найважливіший інструмент будьякої системи управління базами даних
2. (СУБД).
Запит (як категорія БД) — це спеціальний об’єкт, призначений для вибірки даних
з таблиць бази, а також для виконання обчислень та інших операцій з базовими
таблицями, включаючи їхнє перетворення. На відміну від реальної таблиці, цей набір
записів реально не існує в базі даних. У результаті запиту утворюється таблиця. Її
інформація є актуальною, тобто відбиває останні зміни даних.
Відповідно до функцій виділяють такі типи запитів:
1. Запит на вибірку – вибирає дані з однієї або декількох таблиць і подає їх
підсумковою таблицею. У складних запитах на вибірку можлива наявність
обчислюваних віртуальних полів. Запити на вибірку є основним видом запитів, на
їх основі побудовано решту запитів. Вони можуть поділятися на:
○ групові або підсумкові запити — підсумовують дані з однієї або
декількох таблиць у формі електронної таблиці, слугують для аналізу
даних і побудови діаграм і графіків, є незмінним, статичним набором
даних.
○ перехресний запит — це груповий запит, який відображає вибіркові дані
в компактному і легкому для читання вигляді, у вигляді двовимірної
матриці, так само як і зведені таблиці в табличному редакторі.
2. Запити на зміну — вносять в таблиці значні зміни, відмінити які не можна. В
LibreOffice Base такі запити часто заблоковані, тобто на виконання таких запитів
необхідно мати специфічні права доступу. Запити такого типу поділяють підтипи:
○ запит на видалення записів;
○ запит на долучення записів;
○ запит на створення таблиці;
○ запит на оновлення значень полів.
Окремо можна виділити параметричні запити або запити з параметрами. Ці
запити, при запуску пропонують ввести необхідний параметр (параметри) у
відповідному діалоговому вікні (вікнах). Параметр може бути умовою для відбору
записів. Таким чином, користувач замість багатьох запитів на вибірку з різними умовами
використовує один запит з параметром, який залежно від величини параметра виводить
різні дані. Наприклад, параметр може бути невідомою величиною для розрахунків. У
цьому випадку результат розрахунків залежить від заданої величини параметра.
Будьякий запит, що містить умови можна перетворити в запит з параметром.
Виконаний запит — це віртуальна таблиця, що відображає найсвіжіші дані,
вибрані з базових таблиць згідно з умовами. Це тимчасовий об'єкт, утворений у пам'яті
машини на момент виконання запиту. Запити оперують завжди зі свіжими даними, тому
всі розрахунки здійснюють у запитах. Складні запити містять віртуальні поля, де йде
опрацювання даних. На диску у базі даних при потребі зберігають інструкцію запиту як
окремий об’єкт.
Оновлюваний запит — це динамічний набір даних. В оновлюваних запитах
можна редагувати дані й долучати нові, всі зміни можна буде зберегти у базових
таблицях, віртуальні поля буде перераховано. Ознака оновлюваного запиту — символ *
(новий запис) в кінці таблиці. Зазвичай це запити на вибірку.
3. Неоновлюваний запит — це статичний набір даних, призначений лише для
перегляду. Якщо змінити властивості запиту на вибірку, можна перетворити його на
статичний набір даних.
Записати умови запиту можна порізному. LibreOffice Base підтримує типи запитів
QBE і SQL.
Запит QBE — запит за зразком, ангійською Query By Example. Його формують
заповненням бланка запиту у вікні Конструктора запитів. Подають (графічним) бланком,
який містить імена полів однієї або декількох таблиць у вигляді заголовків стовпців. У
стовпцях можуть бути вирази. У рядках бланка указують ім'я таблиці, порядок
сортування, вивід на екран, умови відбору. Бланк запиту нагадує бланк розширеного
фільтру. На відміну від розширеного фільтру в запиті вказують конкретні поля для
виводу в підсумковій таблиці. При заповненні бланка запит можна виконати
(«програти»), щоб переконатися у правильному відборі записів. Для цього
використовують кнопку на панелі інструментів «Виконати». Готовий запит зберігають,
вказавши ім'я. Як усталено буде «Запит1».
Запит SQL — послідовність вказівок мовою структурованих запитів,
англійською Structured Query Language. Такі вказівки потрібно виконати зі вхідним
набором даних для створення вихідного набору. У запит можуть входити вирази і
статистичні функції. Запит до серверу чи запит на об'єднання можна створити лише
мовою SQL.
Будьякий запит, незалежно від способу його створення, можна проглянути у
вигляді SQL інструкції, використавши вказівку меню Зміни / Редагувати у режимі SQL...
Вкладений запит — запит, дані якого використовує інший запит. У цьому
7.
Крок 3 — визначення умови відбору даних з вихідних таблиць.
Крок 4 дає можливість обрати степінь докладності подання інфомації
таблицеюрезультатом: докладний запит (відображати всі записи запиту) чи
підсумковий (відображати лише записи агрегатних функцій, де функції можна обрати у
прихованому списку з відповідною назвою).
8.
Кроки 5 і 6 визначають наявність та умову групування. Вони часто неактивні навіть при
наявності записів в таблиці, які можна групувати.
Крок 7 дає можливість дати нові назви (псевдоніми) обраним полям.
Крок 8 — визначення назву запиту та можливість переглянуду загальної інформації
щодо властивостей таблиці запиту у полі Огляд.
9.
Створення запиту в режимі дизайну
1. У діалоговому вікні Додати таблицю чи запит додати у вікно запиту ті таблиці
або запити, на основі яких створюють запит.
Таблиці або запити повинні бути зв'язані між собою, інакше запит не буде виконано.
Якщо зв'язки вказано за допомогою Схеми Даних, їх буде автоматично відображено в
усіх запитах. Інакше зв'язки необхідно створити безпосередньо у вікні запиту за тим же
принципом, що і на схемі даних. При виконанні запиту на основі таблиць з непрямими
зв'язками необхідно додати в запит весь ланцюжок зв'язаних між собою таблиць у
потрібній послідовності.
2. Вибрати поля для Запиту.
10.
Це можна зробити кількома способами:
○ вибрати із списку, що розкривається, ім'я таблиці а потім ім'я поля у
відповідних рядках бланку запиту;
○ двічі клацнути в табличці на назві поля;
○ перетягнути на стовпець бланку назву одного поля чи кількох або символ *
(всі поля). При цьому ім'я таблиці автоматично з'явиться на бланку.
3. Визначити виведення на екран полів запиту у відповідному рядку бланку. Іноді
поле бере участь у запиті, але його не відображають на екрані. Наприклад, якщо
воно існує лише для коректного запису умови. Видимі поля позначають
прапорцями, а невидимі поля залишаються без прапорців.
11. 4. Вказати впорядкування за потрібними полями, вибравши із списку, що
розкривається, варіанти: за збільшенням, за зменшенням, відсутній. Як усталено
впорядкування не здійснюють.
5. Замовити умови відбору в одному рядку або в кількох рядках. Якщо умови
вказано в одному рядку, то їх сполучено логічною операцією «І»
якщо в різних рядках — логічною операцією «АБО».
12.
6. Проглянути результат роботи: виконати запит, використовуючи кнопку Виконати
запит або натиснувши функціональну клавішу F5.
7. Відредагувати запит у режимі роботи з бланком у Конструкторі або в режимі
SQL. Можна змінити таке:
○ послідовність стовпців (виділенням і перетягуванням);
○ ширину стовпців (перетягуванням за заголовок);
○ властивості поля запиту (підпис, заголовок, формат, маску) через
контекстне меню стовпця. Змінити назвипідписи полів не вдасться, якщо
поля вже має підпис — властивість, вказану в базовій таблиці.
8. Зберегти запит як об'єкт, давши йому ім'я (як усталено Запит1).
Створення запиту в SQLподанні
Створення запиту у SQLподанні передбачає знання мови SQL і специфічного
синтаксису формування запитів. Для створення запитів у текстовому форматі в
LibreOffice Base існує SQLподання, яке буде подано чистим аркушем, якщо запит ще не
створено, або аркушем з SQLкодом, якщо запит відкрито для редагування у
SQLподанні.
13.
Після визначення інструменту створення запитів можна приступати до знайомства з
процесом створення різних типів запитів. Створення запитів за допомогою режиму
дизайну дає більше можливостей для варіацій з умовами й функціями та не вимагає
набуття знань щодо SQL, тому надалі приклади подано саме для цього режиму.
Запит на вибірку без умови (ще називають простий запит) дає можливість витягнути
з таблиці / іншого запиту (з кількох зв'язаних між собою таблиць / запитів) дані вказаних
користувачем полів за всіма записами в них. Для цього потрібно лише визначити
видимими ті поля з таблиць, які цікавлять користувача.
Наприклад, для визначення оцінок кожного студента з кожного предмета необхідно
виділити такі поля: Прізвище, Ім'я, Назва_дисципліни, Оцінка, які розташовано у трьох
різних таблицях.
Результатом цього запиту буде така таблиця:
14.
Запит на вибірку з умовою дає можливість витягнути з таблиці / іншого запиту (з
кількох зв'язаних між собою таблиць / запитів) дані вказаних користувачем полів за
всіма записами, які задовольняють попередньо заданій умові. Для цього потрібно
визначити видимими ті поля з таблиць, які цікавлять користувача, та в рядку Критерій
ввести умову.
Для визначення студентів, у яких оцінки з визначених у базі даних предметів не менші за
4, необхідно:
● виділити поля: Прізвище, Ім'я, Назва_дисципліни, Оцінка, які розташовано у
трьох різних таблицях;
● записати в рядку Критерій поля Оцінка: >=4.
15. Для визначення студентів, у яких оцінки з математики не перевищують 4, необхідно:
● виділити поля: Прізвище, Ім'я, Назва_дисципліни, Оцінка, розташовані у трьох
різних таблицях;
● записати в рядку Критерій поля Оцінка: <=4;
● записати в рядку Критерій поля Назва дисципліни: Математика (звертайте увагу
на регістр і розмір літер в текстовому записі).
Результатом цього запиту буде така таблиця:
Таким самим чином можна сформувати умови із знаками: =, <, >, >=, <= та
використанням логічних функцій OR (або), AND (і), NOT (заперечення).
17.
Під час запуску запиту з параметром на екрані буде повідомлення про введення
параметра Ввід параметру, де у полі Параметри відображено текст, записаний раніше
в рядку Критерій, а в розділі Значення користувач має ввести відповідну величину за
даним критерієм.
Замість кількох запитів для різних груп студентів доцільно створити один запит з
параметром — номером групи. Якщо необхідно створити пошук за конкретною
дисципліною з виведенням списку оцінок, то Критерій виглядатиме так:
:Введіть_номер_групи;
:Дисципліна.
Результатом такого запиту буде таблиця:
18.
Запит з обчислюваними полями отримують таким чином. Для обчислюваних
віртуальних полів у стовпець замість імені поля вводять дію, яку треба виконати з
відповідними полями. Причому назви полів вводять у лапках, а дію – математичним
символом без пробілів. Назву обчислюваного поля вводять у рядку Псевдонім.
Наприклад, для обчислення стипендії, яку отримають студенти з урахуванням пільгових
надбавок, використовують таку форму запису: "Розмір_стипендії"+"Розмір_пільг".
Результатом описаного запиту буде така таблиця:
19.
Після виконання описаних вище вказівок по створенню запитів база даних буде містити
7 запитів, виконання яких буде відображатися в розділі Документ вікна бази даних. На
поданому нижче малюнку у цьому розділі відображено відповідь на запит, який виділено
у переліку запитів.
IV. Практичне завдання
Створення запитів на прикладі бази даних МагазинМ.odb
V. Підсумок уроку. Узагальнення матеріалу.
20. 1. Що таке запит?
2. Яке призначення запитів?
3. Які типи запитів?
4. У чому відмінності запиту й фільтра?
5. Який алгоритм створення запиту у режимі дизайну?
6. Який алгоритм створення запиту за допомогою Помічника?
7. Що такеє запит QBE?
8. Яка роль грають зв'язків між таблицями при побудові запитів?
9. Які особливості побудови запитів з розрахунковими полями?
10. Що таке параметричні запити? Які вони мають особливості?
Виставлення оцінок.
VI. Домашнє завдання.
п. 3.8 підручника читати, відповідати на питання (ст.160).