Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення


НазваСпецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення
Дата конвертації01.05.2013
Розмір445 b.
ТипПрезентации


Спецкурс “Основи баз даних”

Розділ 11.

Автоматизоване видалення, оновлення і додавання даних

Повторення

  • Назвіть основні функції систем керування базами даних.

  • Які операції з редагування даних можна виконувати в СКБД MS Access?

  • Опишіть загальну структуру та спосіб інтерпретації вибіркового запиту SQL.

  • Що таке каскадне оновлення та каскадне видалення даних?



Мотивація навчання

Відкривши таблицю, ви можете не лише вводити до неї нові записи, але й змінювати або видаляти наявні. Проте в режимі редагування таблиці це зручно робити тільки тоді, коли потрібно змінити чи видалити невелику кількість записів. Наприклад, якщо якийсь учень перейшов із 10А класу до 10Б, слід відкрити таблицю Учні, знайти відповідний запис та ввести нове значення в поле клас. Але якщо в базі даних є кілька тисяч записів щодо учнів багатьох шкіл, то наприкінці навчального року, коли вони переходять у наступний клас, змінювати всі їхні записи вручну буде вкрай проблематично.

Автоматизувати подібні операції дозволяє спеціальний різновид запитів — запити на оновлення даних. Те саме можна сказати і про додавання та видалення записів. Запити на додавання, оновлення та видалення даних ми і будемо вивчати.

Видалення даних

Розглянемо детальніше задачу оновлення бази даних школа після завершення навчального року. Вона складається з кількох дрібніших підзадач, а саме:
    • Видалити записи, що стосуються одинадцятикласників, оскільки вони більше не є учнями.
    • Змінити записи всіх інших учнів: у полі клас замість 10А записати 11А, замість 10Б — 11Б, замість 9А — 10А і т.д.
    • Змінити відомості про викладання і класне керівництво: якщо певний учитель викладав у 10А класі, тепер він, скоріш за все, викладатиме в 11А, якщо він був класним керівником 9Б, то стане керівником 10Б тощо.


Видалення даних

Звичайно, подібним списком оновлення, які потрібно виконати в базі даних наприкінці навчального року, не обмежуються. Якийсь учитель може помінятися, якийсь — звільнитися, учень може перевестися в інший клас або школу тощо. Проте зазначені зміни локальні, вони стосуються окремих записів і тому їх можна вносити вручну, в той час як три перелічених вище завдання варто виконувати автоматизовано над багатьма записами відразу.

Почнемо з автоматизованого видалення записів одинадцятикласників. Його здійснюють за допомогою запиту на видалення даних, порядок створення та виконання якого описано у вправі 11.1.

Запит на видалення даних призначено для видалення з таблиці записів, що задовольняють певну умову.

Вправа 11.1

Створіть і виконайте запит видалити з таблиці Учні записи, що стосуються одинадцятикласників.
  • Створіть копію файлу бази даних школа, назвавши її школа_кінець_року. Надалі працюйте з цією копією.

  • Відкрийте конструктор запитів. У вікні Добавление таблицы виберіть таблицю Учні, оскільки запит стосується учнів, після чого клацніть кнопку Добавить і закрийте це вікно.

  • Задайте тип запиту. Клацніть кнопку Удаление на стрічці Конструктор. Після виконання цієї команди бланк запиту зміниться: замість рядків Сортировка та Вывод на экран з'явиться рядок Удаление.

  • Уведіть у бланк запиту дані за зразком, показаним на рис. Поле клас перетягніть з верхньої частини вікна конструктора, а умову відбору введіть уручну.

  • Запустіть запит на виконання кнопкою із знаком оклику. Буде відображено вікно з проханням підтвердити видалення 3 записів. Клацніть у ньому кнопку Да.

  • Відкрийте таблицю Учні і переконайтеся, що відомостей про одинадцятикласників тепер у ній немає.



Принцип дії запиту

Під час виконання запиту видаляються ті записи, які задовольняють умову відбору, накладену на значення одного або кількох полів. Цю умову задають у бланку запиту так само, як і в запиті на вибірку даних: у рядку Поле слід вказати назву поля, а в рядку Условие отбора умову, яку мають задовольняти значення цього поля. У цьому запиті умова має вигляд Like "11*". Як ви вже знаєте, це означає «всі значення, що починаються з символів 11», тобто значення, що відповідають одинадцятикласникам.

У мові SQL запит на видалення даних має дуже просту структуру:

DELETE *

FROM ім'я таблиці

WHERE умова відбору записів

Наприклад, SQL-текст запиту, створеного у вправі 11.1, виглядатиме так:

DELETE *

FROM Учні

WHERE клас Like “11*"

Слово DELETE у перекладі з англійської означає «видалити», а в цілому останній запит слід читати так: «видалити з таблиці Учні записи, у яких значення поля клас починається з символів 11». Символ * після слова DELETE означає «всі поля»: коли ми видаляємо той чи інший запис, видаляються всі його поля.

Завдання 11.1

Створіть і виконайте запити на видалення з таблиці Викладання всіх записів, що стосуються викладання в 11 класах, а потім — на видалення з таблиці Класи всіх записів про 11 класи.

Зауважте, що якби під час створення зв'язків між таблицями Класи та Учні, а також Класи і Викладання було задано режим каскадного видалення даних, видаляти всі відомості про 11 класи було б простіше. А саме, достатньо було б видалити записи про 11 класи з таблиці Класи, а записи про одинадцятикласників і викладання в 11 класах видалилися б при цьому автоматично.

До уваги!

У фразі WHERE запиту на видалення можна використовувати логічну зв'язку AND, оператор IN та всі інші засоби, які використовують у фразі WHERE вибіркового запиту. Це дає змогу конструювати достатньо складні умови відбору записів, що видалятимуться. Наприклад, запит видалити відомості про вчителів, що викладають в 11 класах, виглядатиме так:

DELETE *

FROM Учителі

WHERE паспорт IN (SELECT учитель FROM Викладання WHERE клас Like “11*”)

Оновлення даних

Коли після завершення навчального року дані про одинадцяті класи видалено, учнів усіх інших класів потрібно перевести до наступного класу: учнів 9А класу — до 10А, учнів 10Б — до 11Б тощо. Це ми зробимо за допомогою запиту на оновлення даних, однак спочатку, щоб полегшити завдання, внесемо зміни в схему даних.

Оновлення схеми даних

У базі даних школа_кінець_року виділимо окреме поле для номера, або паралелі класу (наприклад, 10,11) та окреме поле для букви (наприклад, А,Б). Ці зміни зображено на рис. Зауважте, що тепер ключ таблиці класів складатиметься з двох атрибутів, які обидва потрібно використовувати у зв'язках з таблицями Викладання та Учні, відповідним чином змінивши в них зовнішні ключі. У вправі 11.2 опишемо детально, як оновити схему даних.

Вправа 11.2

Оновіть схему даних школа_кінець_року згідно з рис. Вам потрібно замінити поле назва у таблиці Класи двома іншими полями, створити у цій таблиці складений ключ і змінити відповідним чином її зв'язки з таблицями Викладання та Учні.

Вправа 11.2

1. Відкрийте вікно Схема данных на стрічці Работа с базами данных, та видаліть зв'язки між таблицями Класи та Учні, а також Класи та Викладання. Щоб видалити зв'язок, потрібно виділити його, клацнувши лінію зв'язку лівою кнопкою миші, а потім на­тиснути клавішу Del та підтвердити видалення.

2. Змініть структуру таблиці Класи. Для цього перейдіть в режим конструктора цієї таблиці і виконайте такі дії.

а) Додайте нове поле перед полем назва, клацнувши його правою кнопкою миші й вибравши з контекстного меню команду Добавить строки.

б) Дайте новому полю назву паралель та виберіть тип Числовой, а поле назва перейменуйте на буква.

в) Створіть складений ключ з полів паралель та буква: клацніть індикатори цих полів, утримуючи клавішу Ctrl, а потім клацніть кнопку «ключ» . На індикаторах обох полів має з'явитися позначка у вигляді ключа.

Вправа 11.2

3. Додайте числові поля паралель до таблиць Викладання та Учні, а поля клас в цих таблицях перейменуйте на буква.

4. Змініть дані у таблицях Класи, Учні та Викладання, поді­ливши назви класів на дві частини. Наприклад, замість значення 10А в полі назва запишіть 10 у полі паралель і А в полі буква.

5. Створіть зв'язок між таблицями Класи та Учні. Для цього у вікні схеми даних, утримуючи клавішу Ctrl, виділіть у таблиці Класи поля паралель та буква і перетягніть їх на таблицю Учні. У вікні Изменение связей задайте такі зв'язки, як показано на рис. Після цього схема даних має набути потрібного вигляду.

6. Створіть зв'язок між таблицями Класи та Викладання.

Запити на оновлення даних

Повернімося до нашого завдання: автоматично збільшити на 1 значення поля паралель у всіх записах таблиці Учні. Для цього створимо і виконаємо запит на оновлення даних. Як це зробити, розглянемо у вправі 11.3.



Вправа 11.3

Створіть і виконайте запит збільшити на 1 значення поля паралель у всіх записах таблиці Учні.

1. Відкрийте конструктор запитів. У вікні Добавление таблицы виберіть таблицю Учні, оскільки запит стосується учнів, після чого клацніть кнопку Добавить і закрийте це вікно.

2. У меню Запрос виберіть команду Обновление або клацніть кнопку Обновление на стрічці Конструктор — так ви задасте тип запиту. Після виконання цієї команди бланк запиту зміниться: замість рядків Сортировка та Вывод на экран з'явиться рядок Обновление, у якому потрібно ввести формули для обчислення нових значень. Рядка Вывод на экран не буде, оскільки запит на оновлення даних ніякої інформації на екрані не відображує.

Вправа 11.3

3. Введіть у бланк запиту дані за зразком, показаним на рис.

4. Запустіть запит на виконання і підтвердьте оновлення записів.

5. Відкрийте таблицю Учні і переконайтеся, що всі значення поля паралель збільшено на 1.



У запиті на оновлення даних не обов'язково оновлювати всі записи якоїсь таблиці. Можна задати умову відбору тих записів, що оновлюватимуться. Наприклад, розглянемо таку ситуацію: із 10Б класу вибуло багато учнів і керівництво школи вирішило об'єднати його з 10А, залишивши для об'єднаного класу назву 10А. Тоді в таблиці Учні потрібно змінити тільки записи учнів 10Б, надавши полю буква цих записів значення А. Бланк запиту перевести всіх учнів 10Б класу до 10А виглядає так, як на рис.

У запиті на оновлення даних не обов'язково оновлювати всі записи якоїсь таблиці. Можна задати умову відбору тих записів, що оновлюватимуться. Наприклад, розглянемо таку ситуацію: із 10Б класу вибуло багато учнів і керівництво школи вирішило об'єднати його з 10А, залишивши для об'єднаного класу назву 10А. Тоді в таблиці Учні потрібно змінити тільки записи учнів 10Б, надавши полю буква цих записів значення А. Бланк запиту перевести всіх учнів 10Б класу до 10А виглядає так, як на рис.

Загальна структура запиту на оновлення даних мовою SQL

Загальна структура запиту на оновлення даних мовою SQL така:

UPDATE ім'я таблиці

SET поле1=вираз1, поле2 = вираз2, ...

WHERE умова відбору записів

Отже, у фразі UPDATE вказують назву таблиці, значення в якій оновлюватимуться, у фразі WHERE — умову, за якою відбираються оновлювані записи, а у фразі SET — список присвоєнь.

У лівій частині кожного присвоєння (до символу =) записують ім'я оновлюваного поля, а в правій — арифметичний вираз, за яким обчислюється його нове значення.

 

SQL-текст запит перевести всіх учнів 10Б класу до 10А матиме такий вигляд:

UPDATE Учні

SET буква="A"

WHERE паралель=10 AND буква="Б“

Завдання 11.2

Реалізуйте та виконайте запит перевести всіх учнів 10Б класу до 10А. Створіть копію файлу бази даних школа_кінець_року, у якій і виконайте завдання.

Додавання даних

Коли база даних інтенсивно експлуатується, дані в неї додаються щодня і ви знаєте, як це робити в режимі редагування таблиць або за допомогою форм. Однак зараз нас цікавить той і випадок, коли потрібно додати відразу багато записів і робити це вручну занадто довго. Дві найпоширеніші ситуації, коли необхідно додавати великі масиви записів, такі:

♦ базу даних реструктуризують, внаслідок чого створюються нові таблиці, у які потрібно додавати дані з наявних таблиць;

♦ у базу імпортують дані з зовнішніх джерел (інших баз даних, електронних таблиць тощо).

У першому випадку в MS Access створюють запит на додавання даних, а в другому застосовують майстер імпорту даних. Розглянемо обидва ці випадки детальніше.

Додавання даних всередині бази

Повернімося до бази даних школа, у якій ще не видаляли відомостей про одинадцятикласників, та застосуємо до випускників інший підхід. А саме, їхні записи ми не видалятимемо, а перенесемо до таблиці Випускники. Ця таблиця міститиме всі атрибути таблиці Учні, крім атрибута клас, який буде замінено атрибутом ВНЗ для зазначення, до якого вищого навчального закладу поступив випускник.

Для перенесення даних з однієї таблиці в іншу в межах однієї бази даних потрібно створити два запити: за допомогою запиту на додавання дані буде скопійовано в цільову таблицю, а за допомогою запиту на видалення — видалено з вихідної. Як реалізувати цей підхід на практиці, опрацюємо у вправі 11.4.

Запит на додавання даних призначено для копіювання даних з однієї таблиці в іншу. У запиті можна вказати, з яких полів у які копіюватимуться дані, а також якій умові мають відповідати записи, звідки дані копіюватимуться.

Вправа 11.4

Створіть таблицю Випускники та перенесіть до неї відомості про всіх одинадцятикласників.

1. Створіть копію файлу бази даних школа, назвавши її школа_додані_дані. Надалі працюйте з цією копією.

2. Створіть таблицю Випускники з атрибутами код, прізвище, ім'я, дата народження, стать, успішність та ВНЗ. Для атрибута код оберіть числовий тип і задайте розмір поля Длинное целое, атрибут ВНЗ зробіть текстовим, а всі інші — такими самими, як і в таблиці Учні.

3. Створіть запит на додавання відомостей про одинадцятикласників з таблиці Учні до таблиці Випускники.

а) Запустіть конструктор запитів і у вікні Добавление таблицы виберіть таблицю Учні (ту, з якої додаватимуться записи).

б) У меню Запрос або на стрічці Конструктор виберіть тип запиту — Добавление. Буде відображено вікно Добавление, у якому зі списку имя таблицы потрібно вибрати таблицю Випускники (ту, в яку додаватимуться записи) і клацнути кнопку ОК.

в) Сформуйте бланк запиту такого вигляду, як на рис. , перетягуючи у його стовпці поля таблиці Учні.

Вправа 11.4

Зауважте, що в рядку Поле вказано назви полів вихідної таблиці (Учні), а в рядку Добавление — назви відповідних полів цільової таблиці (Випускники). Оскільки поля клас у цільовій таблиці немає, рядок Добавление у відповідному стовпці порожній, але натомість слід заповнити рядок Условие отбора, адже саме за умовою, накладеною на значення поля клас, відбиратимуться записи учнів для подальшого копіювання.

4. Запустіть запит на виконання і підтвердьте додавання записів.

5. Відкрийте таблицю Випускники і переконайтеся, що всі записи одинадцятикласників у неї скопійовано.

6. Видаліть записи про одинадцятикласників з таблиці Учні, створивши для цього запит на видалення даних (згадайте вправу 11.1).

Загальна структура простого SQL-запиту на додавання даних

INSERT INTO ім'я цільової таблиці (список полів цільової таблиці)

SELECT список полів вихідної таблиці

FROM ім'я вихідної таблиці

WHERE умова відбору записів

Зокрема SQL-текст запиту, створеного у вправі 11.4, буде таким:

INSERT INTO Випускники (код, прізвище, [ім'я], [дата народження], стать, успішність)

SELECT код, прізвище, [ім'я] , [дата народження], стать, успішність

FROM Учні

WHERE клас Like "11*"

Завдання 11.3

Створіть таблицю Математики такої самої структури, як і таблиця Учителі, а також запит, що копіюватиме відомості про всіх математиків з таблиці Учителі в таблицю Математики.

Імпорт даних

Припустимо, створюється нова база даних школи і директор попросив усіх класних керівників надати оператору бази даних списки учнів в електронних таблицях тієї самої структури, що й таблиця Учні.

Перед оператором постає завдання імпортувати дані з електронних таблиць у таблицю БД. Його виконують за допомогою майстра імпорту даних, роботу з яким відпрацюємо у вправі 11.5.

Вправа 11.5

Імпортуйте дані з електронної таблиці в таблицю Учні.

1. Створіть електронну таблицю з відомостями про трьох учнів 9А класу. Щоб не помилитися під час уведення даних, експортуйте таблицю Учні у файл MS Excel, а потім змініть у ньому дані за допомогою табличного процесора.

а) Відкрийте таблицю Учні і виконайте команду Файл ►клацніть кнопку Excel в області Экспорт на стрічці Внешние данные.

б) У вікні Экспорт объекта зі списку формату файлу виберіть формат, у поле имя файла введіть слово Учні. Після цього кнопку ОК, а потім, у вікні Сохранение шагов экспорта, кнопку Закрыть.

в) Закрийте таблицю Учні.

Вправа 11.5

г) Відкрийте електронну книгу Учні.xlsx і залиште в таблиці на аркуші Учні рядок заголовків та три рядки даних. Якщо дані деяких стовпців у клітинки не вміщуються (про це свідчать символи ########), розширте ці стовпці. Змініть код, прізвище, ім'я та дату народження учнів, а також уведіть клас — 9А. Стежте за тим, щоб нововведених кодів не було в таблиці Учні, адже значення поля код мають бути унікальними. Збережіть та закрийте електронну книгу.

2. Імпортуйте відомості з електронної книги в базу даних.

а) Клацніть кнопку Excel в області Импорт на стрічці Внешние данные.

б) У вікні вибору джерела даних за допомогою кнопки Обзор виберіть файл електронної книги, установіть перемикач Добавить копию записей в конец таблицы та вкажіть у списку праворуч від нього таблицю Учні.

в) Клацніть кнопку OK, а потім — кнопку Готово.

3. Відкрийте таблицю Учні і переконайтеся, що відомості про нових учнів було імпортовано успішно.

Висновки

  • Запити на додавання, видалення і оновлення даних застосовують тоді, коли потрібно скопіювати, перемістити, додати, видалити або змінити відразу багато записів якоїсь таблиці.

  • Запит на видалення даних призначено для видалення з таблиці записів, що задовольняють певну умову.

  • Запит на оновлення даних призначено для автоматичного змінення значень в усіх або деяких записах певної таблиці. Спосіб змінення визначається окремою формулою для кожного поля, значення якого оновлюється.

  • Запит на додавання даних призначено для копіювання даних з однієї таблиці в іншу. У запиті можна вказати, з яких полів у які копіюватимуться дані, а також якій умові мають відповідати записи, звідки дані копіюватимуться.

  • Щоб перемістити дані з вихідної таблиці в цільову, потрібно спочатку виконати запит на додавання, який скопіює дані у цільову таблицю, а потім — запит на видалення, який видалить їх з вихідної таблиці.

  • Додати дані з зовнішніх джерел, зокрема інших баз даних та електронних книг, можна за допомогою майстра імпорту.



Завдання для самостійного виконання

1. Реалізуйте і виконайте запити на видалення даних. Для виконання завдань створіть копію бази даних школа.

а) Видалити відомості про хлопців-десятикласників, чия успішність нижча за 6 балів.

б) Видалити відомості про те, у яких класах викладає

Корбут Василь Петрович.

в) Видалити відомості про класи, у яких не викладає жодного вчителя-математика.

2. Реалізуйте і виконайте запити на оновлення даних. Для виконання завдань створіть копію бази даних школа.

а) Перерахувати успішність одинадцятикласників з 12- бальної шкали на 100-бальну, помноживши значення поля успішність на коефіцієнт 100/12.

б)3амінити спеціальність усіх фізиків, які викладають у 10 або 11 класах, на «фізика/математика».

Домашнє завдання

  • Опрацювати розділ 11

  • Виконати вправи розділу 11

  • Здати тестові завдання в он-лайн режимі (сайт І. Завадського)

  • Готуватися до ДПА



Схожі:

Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconСпецкурс “Основи баз даних” Розділ Інтерфейс користувача бази даних Повторення
...
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconРозділ Бази даних. Системи управління базами даних Інформатика 11 клас
Програмне забезпечення, призначене для створення баз даних, оновлення даних, що зберігаються в них, забезпечення зручного доступу...
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconСпецкурс “Основи баз даних” Розділ Основи мови запитів Повторення
Результатом виконання будь-якого вибіркового запиту є віртуальна таблиця, що існує нетривалий час, поки ви її не закриєте
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconАвтоматизоване видалення та оновлення даних Проблемна ситуація
Якщо в базі даних кілька тисяч записів для учнів багатьох шкіл і наприкінці навчального року їх потрібно "перевести " в наступний...
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconСпецкурс “Основи баз даних” Розділ Поглиблене семантичне моделювання Повторення
Як приклад продовжимо розглядати предметну область «школа», поступово додаючи до неї нові сутності та розширюючи її на всі школи...
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconСпецкурс “Основи баз даних” Розділ Створення зв'язків між таблицями Повторення
Кожен із цих типів зв'язків у скбд реалізують по-своєму. Почнемо із найпоширенішого типу зв'язку — «один-до-багатьох»
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconСпецкурс “Основи баз даних” Розділ 10. Групування даних Повторення
Це таблиця Учні, відсортована за значеннями поля клас. Один із результатів сортування полягає в тому, що записи учнів, які навчаються...
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconСпецкурс “Основи баз даних” Розділ Модель “сутність-зв’язок” Актуалізація опорних знань
Зв'язки властиві не лише об'єктам, а і сутностям. Не лише об'єкт, а й сама сутність має певний набір параметрів
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconІнформації Зобов’язати Міністерство оборони надати копії свідоцтва про державну реєстрацію баз персональних даних + 32 грн. 19 коп. Реєстрацію баз персональних даних здійснено Реєстрацію баз персональних даних здійснено
Порада звернутися до Державної служби з питань захисту персональних даних (держателя реєстру)
Спецкурс “Основи баз даних” Розділ 11. Автоматизоване видалення, оновлення і додавання даних Повторення iconОснови баз даних Розділ 8 Вибирання даних Вибирання даних з однієї таблиці
Щоб відсортувати записи таблиці за зростанням або спаданням значень якогось поля, потрібно встановити курсор у цьому полі та клацнути...

Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка