Предпросмотр
(урок інформатики у групі 17Т2 від 03.06.2020р.)
Опрацювати поданий нижче теоретичний матеріал та зробити в зошиті короткий конспект. Виконати вправи із наведених прикладів.
Ключеві поля
Згадаємо, що кожна таблиця повинна мати ключове поле (ключ) — поле, значення якого не повторюється в жодному іншому записі. Таблиця може мати кілька ключових полів, але використовується тільки одне з них, яке називають первинним ключем. Найчастіше первинний ключ складається з одного поля, а як первинний ключ використовується поле типу Лічильник. Якщо в ролі первинного ключа використовуються два і більше полів, його називають складним. Наприклад, у таблиці КАДРИ поле Прізвище не може бути первинним ключем, тому що в мережі магазинів може бути працівник із таким самим прізвищем. А поля Прізвище і Рік народження разом можна вважати таким ключем, оскільки вони, ймовірно, не дублюються.
Для створення первинного ключа потрібно відкрити таблицю в режимі конструктора, виділити поле, що використовується як первинний ключ, і натиснути кнопку Ключове поле, що знаходиться в розділі Знаряддя вкладки Конструктор.
Створити первинний ключ можна також за допомогою контекстного меню певного поля, у якому необхідно виконати команду Ключове поле. Для цього слід відкрити таблицю в режимі конструктора. Скористаємося цим способом, і в таблиці МАГАЗИНИ (із попередньої практичної роботи) визначимо як первинний ключ поле Номер магазину. Поряд із назвою цього поля з’явиться зображення ключа. Далі збережемо таблицю.
Якщо деяке поле в процесі створення структури таблиці оголошено типу Автонумерація, тобто типу Лічильник, то воно стає ключовим за замовчуванням. Його можна також додати в таблицю навіть у тому випадку, якщо
явної потреби в цьому немає.
Сутність і порядок індексування таблиць
Індексування — це процес створення додаткових таблиць для певного поля. Ці таблиці (їх ще називають простими індексними таблицями) зазвичай містять лише одне поле, у якому зберігаються вказівники на певні записи таблиці. За допомогою вказівників визначають порядок розміщення записів, упорядкованих за значенням цього поля.
Приклад 1. Індексна таблиця для поля Директор таблиці МАГАЗИНИ матиме такі значення:
Індексна таблиця для поля Директор |
таблиця МАГАЗИНИ (дивись попередню практичну роботу) |
|||||||||||||||||||||||
|
|
Цифра 2 в першому рядку означає, що першим за алфавітом у таблиці є друге прізвище (Борзов А. С.), цифра 1 — що другим за алфавітом є перше прізвище (Коцюба П. М.), а цифра 3 — що третім за алфавітом є третє прізвище (Середа К. М.).
Індексних таблиць для певної таблиці БД може бути кілька, наприклад за кількістю працівників, за номерами магазинів тощо.
Призначення індексних таблиць
Головним призначенням індексних таблиць є підвищення швидкості пошуку необхідних даних (інколи вона зростає до 5 разів). Щоб знайти деякий запис у таблиці, в Access спочатку потрібно знайти його положення в індексі, потім вибрати
з нього місце запису в таблиці, що використовується для пошуку даних.
Зазначимо, що первинний ключ завжди індексований. За замовчуванням записи таблиці виводяться відсортованими за його значеннями. У процесі введення даних у таблицю обов’язково перевіряється значення первинного ключа на дублювання. Якщо значення дублюється, введення запису блокується. Значення первинного ключа типу Лічильник у процесі введення даних формується автоматично.
Приклад 2. Створимо просту індексну таблицю для полів Директор і Працівників таблиці МАГАЗИНИ. Для цього відкриємо таблицю в режимі конструктора, виберемо поле Директор і в розділі Властивості поля в рядку Індексовано ввімкнемо перемикач Так (Без повторень), оскільки малоймовірно, що в цій мережі магазинів буде два директори з однаковими прізвищами. Для поля Працівників увімкнемо перемикач Так (Повторення дозволені), тому що в магазинах може бути однакова кількість працівників.
Основна вимога до ключів така: значення зовнішнього ключа мають збігатися зі значеннями первинного ключа головної таблиці. Імена цих ключів можуть бути різними, але якщо імена однакові, то процес зв’язування таблиць буде простішим.
Часто первинний ключ таблиці штучно вводять у другу таблицю саме з метою їх зв’язування. Цей ключ не є первинним ключем другої таблиці, тому що його значення можуть повторюватися. Наприклад, поле Магазин є первинним ключем таблиці МАГАЗИНИ, а в таблиці КАДРИ це поле є зовнішнім ключем, тому що в ній значення цього поля дублюються.
Приклад 3. Розглянемо порядок створення зв’язку на прикладі таблиць МАГАЗИНИ і КАДРИ.
- Завантажимо БД atb й у вікні, що відкриється, активуємо вкладку Знаряддя бази даних. Далі натиснемо кнопку Зв’язки. Відкриється вікно Відображення таблиці.
- У вікні Відображення таблиці виберемо таблиці, які потрібно зв’язати (у нашому випадку обидві таблиці), і натиснемо кнопку Додати. На екрані з’являться ці таблиці з іменами їх полів.
- Установимо курсор на первинному ключі таблиці МАГАЗИНИ, натиснемо кнопку миші і, не відпускаючи її, перемістимо курсор у поле зовнішнього ключа й відпустимо кнопку. У результаті відкриється вікно Редагування зв’язків.
- Увімкнемо прапорець Забезпечення цілісності даних. Після цього стануть доступними прапорці Каскадне оновлення пов’язаних полів і Каскадне видалення пов’язаних полів.
Сутність увімкнення прапорців
Забезпечення цілісності даних дає змогу зберегти цілісність даних. Якщо цей прапорець вимкнутий, то в таблиці можна додавати нові записи, змінювати ключові поля й вилучати пов’язані записи без попередження про порушення цілісності.
Сутність каскадного оновлення пов’язаних полів полягає в тому, що за будь-якої зміни первинного ключа в головній таблиці автоматично оновиться значення відповідного поля у всіх зв’язаних таблицях.
Сутність каскадного вилучення пов’язаних полів полягає в тому, що під час вилучення будь-якого запису з головної таблиці автоматично вилучаються зв’язані записи у зв’язаній таблиці.
Отже, каскадне оновлення й каскадне вилучення прискорюють роботу з БД і сприяють підвищенню надійності її функціонування.
- У вікні Редагування зв’язків натиснемо кнопку Створити, у результаті чого у вікні Звяз’ки з’явиться лінія зв’язку між певними полями таблиць.
- Збережемо БД.
У вікні Редагування зв’язків можна вилучити встановлений зв’язок за допомогою кнопки Скасувати. За допомогою кнопки Створити… можна відкрити нове вікно й установити зв’язок заново.
- Повернемося до вікна Редагування зв’язків (якщо в цей момент його немає на екрані, слід виконати команду Змінення зв’язків області Знаряддя — і вікно відкриється). Далі натиснемо кнопку Тип об’єднання… З’явиться вікно Параметри об’єднання.
- За замовчуванням установлюється перший тип об’єднання, який називають об’єднанням за еквівалентністю. Зазвичай розробники БД установлюють відношення за еквівалентністю. Натиснемо в цьому вікні кнопку ОК і закриємо вікно Редагування зв’язків.