1 of 33

Ключові поля, індекси, зв’язування таблиць

За навчальною програмою 2018 року

Урок 8

10

(11)

2 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

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

Найчастіше первинний ключ складається з одного поля й у ролі первинного ключа застосовується поле типу Автонумерація.

10�(11)

3 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

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

Наприклад, у таблиці КАДРИ поле Прізвище не може бути первинним ключем, оскільки в мережі цих магазинів може бути працівник із таким самим прізвищем.

А спільно поля:

Прізвище

Рік народження

та

можна вважати таким ключем, тому що вони, імовірно, не дублюються.

10�(11)

4 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Але складні ключі бажано не використовувати як первинний ключ, оскільки в цьому випадку ускладнюється процес роботи з БД.

10�(11)

5 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

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

10�(11)

6 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

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

10�(11)

7 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Скористаємося цим способом і в таблиці МАГАЗИНИ визначимо як первинний ключ поле Номер магазина. Поряд із його назвою з'явиться малюнок ключа. Далі збережемо цю таблицю.

10�(11)

8 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Якщо деяке поле в процесі створення структури таблиці оголошено типу Автонумерація, тобто типу Лічильник, то воно за замовчуванням стає ключовим.

Його можна також додати в таблицю, навіть у тому випадку, якщо необхідність у ньому відсутня. Поле типу Лічильник обов'язково встановлюється в тому разі, якщо ключ у таблиці взагалі визначити неможливо.

10�(11)

9 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Розглянемо тепер сутність і порядок індексування таблиць.

Індексування — це процес створення додаткових таблиць для певного поля.

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

10�(11)

10 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Наприклад, індексна таблиця для поля Директор таблиці МАГАЗИНИ буде мати такі значення:

Індексна таблиця для поля Директор таблиці МАГАЗИНИ

2

1

3

Цифра 2 у першому рядку означає, що першим за алфавітом у таблиці є друге прізвище (Борзов А. С)

цифра 1 — що другим за алфавітом є перше прізвище (Коцюба П. М,)

цифра 3 — що третім за алфавітом є третє прізвище в таблиці (Середа К.М.).

10�(11)

11 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

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

10�(11)

12 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Головне призначення індексних таблиць — підвищення швидкості пошуку необхідних даних (інколи вона може вп'ятеро пришвидшитися).

Щоб знайти деякий запис у таблиці, в Access 2016 спочатку знаходять його положення в індексі, потім вибирають із нього місце запису в таблиці, яка використовується для пошуку даних. Поля, значення яких змінюються часто, індексувати недоцільно, для однієї таблиці бажано мати не більше 5-6 індексних таблиць.

10�(11)

13 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

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

Значення первинного ключа типу Лічильник у процесі введення даних формується автоматично.

10�(11)

14 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Створимо, наприклад, просту індексну таблицю для полів Директор і Працівників таблиці МАГАЗИНИ.

Для цього відкриваємо таблицю в режимі Конструктора, вибираємо поле Директор і в розділі Властивості поля в рядку Індексовано вмикаємо перемикач Так (Без повторень), оскільки малоймовірно, що в цій мережі магазинів будуть два директори з однаковим прізвищем.

10�(11)

15 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Для поля Працівників умикаємо перемикач Так (Повторення дозволені), тому що в магазинах можлива однакова кількість працівників.

10�(11)

16 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Головна вимога до ключів така: значення зовнішнього ключа мають збігатися зі значеннями первинного ключа головної таблиці.

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

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

10�(11)

17 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

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

Наприклад, поле Магазин є первинним ключем таблиці МАГАЗИНИ, а в таблиці КАДРИ це поле є зовнішнім ключем, тому що в ній значення цього поля дублюються.

10�(11)

18 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Розглянемо порядок створення зв'язку в таблицях МАГАЗИНИ і КАДРИ.

  1. Завантажимо БД atb і у вікні, що відкриється, активуємо вкладку Знаряддя бази даних. Далі натиснемо кнопку Зв'язки.

10�(11)

19 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Продовження…

  1. Відкриється вікно Відображення таблиці.
  1. У цьому вікні вибираємо таблиці, які необхідно зв'язати (у цьому випадку обидві таблиці), і натискаємо кнопку Додати. На екрані з'являться ці таблиці з іменами їх полів.

10�(11)

20 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Продовження…

  1. Установлюємо курсор на первинному ключі таблиці МАГАЗИНИ, натискаємо кнопку миші, не

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

10�(11)

21 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Продовження…

  1. Умикаємо прапорець Забезпечення цілісності даних.

Після цього стануть доступними прапорці Каскадне оновлення пов'язаних полів і Каскадне видалення пов'язаних полів. Умикаємо прапорець Каскадне видалення пов'язаних полів.

10�(11)

22 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Продовження…

  1. Якщо прапорець Каскадне видалення пов'язаних полів вимкнутий, то в таблиці можна додавати нові записи, змінювати ключові поля й видаляти пов'язані записи без попередження про порушення цілісності.

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

10�(11)

23 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Продовження…

  1. Сутність каскадного видалення пов'язаних полів полягає в тому, що під час видалення будь-якого запису з головної таблиці автоматично видаляються зв'язані записи в пов'язаній таблиці.

Таким чином, каскадне оновлення та каскадне видалення прискорюють роботу з БД і сприяють підвищенню надійності її функціонування.

10�(11)

24 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Продовження…

  1. У вікні Редагування зв'язків слід натиснути кнопку Створити, у результаті чого у вікні Зв'язки з'явиться лінія зв'язку між певними полями таблиць.

10�(11)

25 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Продовження…

  1. Повернемося до вікна Редагування зв'язків (якщо в цей момент його немає на екрані, виконуємо команду Змінити зв'язки в області Знаряддя — вікно відкриється).

Далі необхідно натиснути кнопку Тип об'єднання.... З'явиться вікно Параметри об'єднання.

10�(11)

26 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Продовження…

  1. За замовчуванням установлюється перший тип об'єднання (об'єднання за еквівалентністю). Як правило, розробники БД установлюють відношення за еквівалентністю.

Потім слід натиснути в цьому вікні кнопку ОК і закрити вікно Редагування зв'язків.

10�(11)

27 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Для перегляду всіх зв'язків між таблицями бази даних необхідно на відкритій вкладці Знаряддя бази даних натиснути кнопку Зв'язки, активізувати вкладку Конструктор і в розділі Зв'язок натиснути кнопку Усі зв'язки.

10�(11)

28 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

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

10�(11)

29 of 33

Ключові поля, індекси,�зв’язування таблиць

Розділ 2 § 2.3

Для скасування зв'язку між таблицями необхідно встановити курсор на лінії зв'язку, натиснути кнопку миші, а потім — клавішу Del. Можна також відкрити контекстне меню лінії зв'язку й виконати команду Видалити.

10�(11)

30 of 33

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

Розділ 2 § 2.3

  1. Що називають первинним ключем таблиці?
  1. Які первинні ключі називають простими та складними?
  1. Для чого використовується ключове поле типу Лічильник?
  1. Поясніть порядок створення ключового поля.
  1. Що називають індексуванням таблиць?
  1. Як можна скасувати зв'язок між таблицями?
  1. Поясніть порядок зв'язування таблиць.
  1. Із якою метою індексуються таблиці?

10�(11)

31 of 33

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

Проаналізувати

§ 2.3, ст. 28-33

Розділ 2 § 2.3

10�(11)

32 of 33

Працюємо за комп’ютером

Розділ 2 § 2.3

Сторінка

33

10�(11)

33 of 33

Дякую за увагу!

За навчальною програмою 2018 року

Урок 8

10

(11)