Бази даних |
11 клас |
Урок 8. Ключові поля, індекси, зв’язування таблиць.
Цілі:
Тип уроку: Комбінований.
Обладнання та наочність: дошка, комп’ютери з підключенням до мережі Інтернет, підручник Інформатика: бази даних (модуль для учнів 10-11 класів, рівень стандарту)/ В.Д. Руденко, навчальна презентація.
Програмне забезпечення: браузер, офісні програми.
Хід уроку
І. Організаційний етап
ІІ. Актуалізація опорних знань
Фронтальне опитування
ІІІ. Мотивацій навчальної діяльності
Одне з полів таблиці може мати унікальні значення. Для чого, на вашу думку, може використовуватися таке поле?
IV. Вивчення нового матеріалу
Пояснення вчителя з елементами демонстрування презентації
Робота з підручником: § 2.3
Згадаємо, що кожна таблиця повинна мати ключове поле (ключ) — поле, значення якого не повторюється в жодному іншому записі. Таблиця може мати кілька ключових полів, але використовується тільки одне з них, яке називають первинним ключем. Найчастіше первинний ключ складається з одного поля, а як первинний ключ використовується поле типу Лічильник. Якщо в ролі первинного ключа використовуються два і більше полів, його називають складним. Наприклад, у таблиці КАДРИ поле Прізвище не може бути первинним ключем, тому що в мережі магазинів може бути працівник із таким самим прізвищем. А поля Прізвище і Рік народження разом можна вважати таким ключем, оскільки вони, ймовірно, не дублюються.
Для створення первинного ключа потрібно відкрити таблицю в режимі конструктора, виділити поле, що використовується як первинний ключ, і натиснути кнопку Ключове поле, що знаходиться в розділі Знаряддя вкладки Конструктор.
Створити первинний ключ можна також за допомогою контекстного меню певного поля, у якому необхідно виконати команду Ключове поле. Для цього слід відкрити таблицю в режимі конструктора. Скористаємося цим способом, і в таблиці МАГАЗИНИ визначимо як первинний ключ поле Номер магазину. Поряд із назвою цього поля з’явиться зображення ключа (рис. 1). Далі збережемо таблицю.
Рис.1. Структура таблиці МАГАЗИНИ з ключовим полем
Якщо деяке поле в процесі створення структури таблиці оголошено типу Автонумерація, тобто типу Лічильник, то воно стає ключовим за замовчуванням. Його можна також додати в таблицю навіть у тому випадку, якщо
явної потреби в цьому немає.
Розглянемо тепер сутність і порядок індексування таблиць.
Індексування — це процес створення додаткових таблиць для певного поля. Ці таблиці (їх ще називають простими індексними таблицями) зазвичай містять лише одне поле, у якому зберігаються вказівники на певні записи таблиці.
За допомогою вказівників визначають порядок розміщення записів, упорядкованих за значенням цього поля (приклад 1).
Приклад 1. Індексна таблиця для поля Директор таблиці МАГАЗИНИ матиме такі значення:
2 |
1 |
3 |
Цифра 2 в першому рядку означає, що першим за алфавітом у таблиці є друге прізвище (Борзов А. С.), цифра 1 — що другим за алфавітом є перше прізвище (Коцюба П. М.), а цифра 3 — що третім за алфавітом є третє прізвище (Середа К. М.). Індексних таблиць для певної таблиці БД може бути кілька, наприклад за кількістю працівників, за номерами магазинів тощо.
Головним призначенням індексних таблиць є підвищення швидкості пошуку необхідних даних (інколи вона зростає до 5 разів). Щоб знайти деякий запис у таблиці, в Access спочатку потрібно знайти його положення в індексі, потім вибрати
з нього місце запису в таблиці, що використовується для пошуку даних. Зазначимо, що первинний ключ завжди індексований. За замовчуванням записи таблиці виводяться відсортованими за його значеннями. У процесі введення даних у таблицю обов’язково перевіряється значення первинного ключа на дублювання. Якщо значення дублюється, введення запису блокується. Значення первинного ключа типу Лічильник у процесі введення даних формується автоматично (приклад 2).
Приклад 2. Створимо просту індексну таблицю для полів Директор і Працівників таблиці МАГАЗИНИ. Для цього відкриємо таблицю в режимі конструктора, виберемо поле Директор і в розділі Властивості поля в рядку Індексовано ввімкнемо перемикач Так (Без повторень), оскільки малоймовірно, що в цій мережі магазинів буде два директори з однаковими прізвищами. Для поля Працівників увімкнемо перемикач Так (Повторення дозволені), тому що в магазинах може бути однакова кількість працівників.
Основна вимога до ключів така: значення зовнішнього ключа мають збігатися зі значеннями первинного ключа головної таблиці. Імена цих ключів можуть бути різними, але якщо імена однакові, то процес зв’язування таблиць буде простішим.
Часто первинний ключ таблиці штучно вводять у другу таблицю саме з метою їх зв’язування. Цей ключ не є первинним ключем другої таблиці, тому що його значення можуть повторюватися. Наприклад, поле Магазин є первинним ключем таблиці МАГАЗИНИ, а в таблиці КАДРИ це поле є зовнішнім ключем, тому що в ній значення цього поля дублюються.
Приклад 3. Розглянемо порядок створення зв’язку на прикладі таблиць МАГАЗИНИ і КАДРИ (табл. 2.1 і 2.2 відповідно).
1. Завантажимо БД atb й у вікні, що відкриється, активуємо вкладку Знаряддя
бази даних. Далі натиснемо кнопку Зв’язки. Відкриється вікно Відображення таблиці (рис. 2).
2. У вікні Відображення таблиці виберемо таблиці, які потрібно зв’язати (у нашому випадку обидві таблиці), і натиснемо кнопку Додати. На екрані з’являться ці таблиці з іменами їх полів.
3. Установимо курсор на первинному ключі таблиці МАГАЗИНИ, натиснемо кнопку миші і, не відпускаючи її, перемістимо курсор у поле зовнішнього ключа й відпустимо кнопку. У результаті відкриється вікно Редагування зв’язків (рис. 3).
4. Увімкнемо прапорець Забезпечення цілісності даних. Після цього стануть доступними прапорці Каскадне оновлення пов’язаних полів і Каскадне видалення пов’язаних полів. Увімкнемо останній прапорець. Увімкнення прапорця
Забезпечення цілісності даних дає змогу зберегти цілісність даних. Якщо цей прапорець вимкнутий, то в таблиці можна додавати нові записи, змінювати ключові поля й вилучати пов’язані записи без попередження про порушення цілісності. Сутність каскадного оновлення пов’язаних полів полягає в тому, що за будь-якої зміни первинного ключа в головній таблиці автоматично оновиться значення відповідного поля у всіх зв’язаних таблицях. Сутність каскадного вилучення пов’язаних полів полягає в тому, що під час вилучення будь-якого запису з головної таблиці автоматично вилучаються зв’язані записи у зв’язаній таблиці. Отже, каскадне оновлення й каскадне вилучення прискорюють роботу з БД і сприяють підвищенню надійності її функціонування.
5. У вікні Редагування зв’язків натиснемо кнопку Створити, у результаті чого у вікні Звяз’ки з’явиться лінія зв’язку між певними полями таблиць (рис. 4). Збережемо БД.
У вікні Редагування зв’язків можна вилучити встановлений зв’язок за допомогою кнопки Скасувати. За допомогою кнопки Створити… можна відкрити нове вікно й установити зв’язок заново.
6. Повернемося до вікна Редагування зв’язків (якщо в цей момент його немає на екрані, слід виконати команду Змінити зв’язків області Знаряддя — і вікно відкриється). Далі натиснемо кнопку Тип об’єднання… З’явиться вікно Параметри об’єднання.
7. За замовчуванням установлюється перший тип об’єднання, який називають об’єднанням за еквівалентністю. Зазвичай розробники БД установлюють відношення за еквівалентністю. Натиснемо в цьому вікні кнопку ОК і закриємо вікно Редагування зв’язків.
Рис.2.Вікно з переліком таблиць БД
Рис.3. Вікно редагування зв’язків
Рис.4. Зв'язок типу один-до-багатьох між таблицям
V. Засвоєння нових знань, формування вмінь
Робота за комп’ютером
Підручник ст. 33
VI. Підсумки уроку
Фронтальне опитування
Рефлексія
1. Під час уроку я
2. Найбільше мені сподобалося…
3. На уроках найкраще в мене виходило…
4. Я мав (-ла) труднощі з…
5. Я хотів би ще дізнатися про…
VІI. Домашнє завдання
Підручник § 2.3 ст. 28-33
VІІI. Оцінювання роботи учнів