29
Створення зв’язків між таблицями 1

створення зв’язків між таблицями

  • Upload
    -

  • View
    127

  • Download
    2

Embed Size (px)

Citation preview

Page 1: створення зв’язків між таблицями

1

Створення зв’язків між таблицями

Page 2: створення зв’язків між таблицями

2

Актуалізація• Які зв’язки між таблицями ви знаєте?

Page 3: створення зв’язків між таблицями

3

Створення зв’язку“один-до-багатьох”

Як визначити в якому класі вчаться учні?

Page 4: створення зв’язків між таблицями

4

Створення зв’язку “один-до-багатьох”

Додамо поле “клас” до таблиці “учні” тазв’яжемо його із таблицею класів

Щоб не виникало помилок при заповненні застосуйте

тип поля“Мастер подстановок”, в

якому значення будуть вводитися із таблиці

Page 5: створення зв’язків між таблицями

5

Створення зв’язку “один-до-багатьох”

Поля, що містять значення ключів інших таблиць називають зовнішнім ключем

Поле “клас” із таблиці “учні” – є зовнішнім ключем

Page 6: створення зв’язків між таблицями

6

Створення зв’язку “один-до-багатьох”

Ключове поле таблиці називають первинним ключем

Поле “назва” із таблиці “Класи” – є первинним ключем

Поле “код” із таблиці “Учні” – є первинним ключем

Page 7: створення зв’язків між таблицями

7

Створення зв’язку “один-до-багатьох”

Щоб у реляційній базі даних реалізувати зв’язок“один-до-багатьох”

В А1∞

у таблиці В потрібно створити зовнішній ключ, який посилається на таблицю А

Page 8: створення зв’язків між таблицями

8

Графічне подання зв’язків у Access

1. Вибрати вкладку Работа с базами данных

2. Натиснути кнопку

3. У вікні Добавление таблицы обрати необхідні таблиці натискаючи кнопку Добавить

4. Після додавання необхідних таблиць натиснути кнопку Закрыть

Page 9: створення зв’язків між таблицями

9

Графічне подання зв’язків у Access

5. Обрати первинний ключ таблиці А (Класи) перетягнути лінію зв’язку на зовнішній ключтаблиці В (Учні)

6. У вікні Изменение связей натисніть кнопку Создать

Page 10: створення зв’язків між таблицями

10

Забезпечення цілісності даних

Зовнішній ключ таблиці не може містити значень, яких не містить ключ головної таблиці!!!Учень не може навчатися в класі 12В, 5С і т. п. оскільки поле “Назва” із таблиці “Класи” таких значень не має

Кл. ПКМ на лінії зв’язку та обрати Изменить связь

Page 11: створення зв’язків між таблицями

11

Порушення обмежень цілісності

Випадок 1. Коли створюється зв’язок, значення зовнішнього ключа порушують обмеження цілісності.

У цьому випадку Access не дозволить створити зв’язок, доки не буде усунено порушення.

Наприклад, до таблиці “Учні” в поле “Клас” введено значення 13Б.

Page 12: створення зв’язків між таблицями

12

Порушення обмежень цілісності

Випадок 2. Після створення зв’язку змінюють значення зовнішнього ключа зв’язаної таблиці.

У цьому випадку Access не дозволить внести такі зміни, якщо вони не будуть перед цим внесені до головної таблиці

Наприклад, до таблиці “Учні” в поле “Клас” є намагання ввести значення 13Б.

Page 13: створення зв’язків між таблицями

13

Порушення обмежень цілісності

Випадок 3. Після створення зв’язку змінюють значення ключа головної таблиці.

У цьому випадку Access заблокує зміни

Шлях 1

Page 14: створення зв’язків між таблицями

14

Порушення обмежень цілісності

Випадок 3. Після створення зв’язку змінюють значення ключа головної таблиці.

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

Шлях 2

Page 15: створення зв’язків між таблицями

15

Порушення обмежень цілісності

У цьому випадку Access заблокує видалення

Шлях 1

Випадок 4. Після створення зв’язку запис головної таблиці видаляють.

Page 16: створення зв’язків між таблицями

16

Порушення обмежень цілісності

У цьому випадку Access здійснить каскадне видалення даних: записи зв’язаної таблиці, що відповідають видаленому запису головної таблиці, також автоматично видалятимуться

Шлях 2

Випадок 4. Після створення зв’язку запис головної таблиці видаляють.

Page 17: створення зв’язків між таблицями

17

Створення зв’язку“багато-до-багатьох”

Як визначити в якому класі викладають учителі?

Page 18: створення зв’язків між таблицями

18

Створення зв’язку “багато-до-багатьох”

Створимо додаткову таблицю із зовнішніми ключами

Page 19: створення зв’язків між таблицями

19

Створення зв’язку “багато-до-багатьох”

Щоб у реляційній базі даних реалізувати зв’язок“багато-до-багатьох” між таблицями А і В

В А∞

потрібно створити додаткову таблицю С, а в ній два зовнішні ключі, що посилатимуться на А і В

В С∞ ∞ А11

Page 20: створення зв’язків між таблицями

20

Створення зв’язку “багато-до-багатьох”

Щоб створити між таблицями А і В зв’язок “багато-до-багатьох” , необхідно створити допоміжну таблицю С і приєднати до неї таблиці А і В зв’язками “один-до-багатьох”

Page 21: створення зв’язків між таблицями

21

Створення зв’язку“багато-до-багатьох”

Як визначити в якому класі викладають учителі?

Page 22: створення зв’язків між таблицями

22

Створення зв’язку “багато-до-багатьох”

Створимо додаткову таблицю із зовнішніми ключами

Page 23: створення зв’язків між таблицями

23

Створення зв’язку “багато-до-багатьох”

Щоб у реляційній базі даних реалізувати зв’язок“багато-до-багатьох” між таблицями А і В

В А∞

потрібно створити додаткову таблицю С, а в ній два зовнішні ключі, що посилатимуться на А і В

В С∞ ∞ А11

Page 24: створення зв’язків між таблицями

24

Створення зв’язку “багато-до-багатьох”

Щоб створити між таблицями А і В зв’язок “багато-до-багатьох” , необхідно створити допоміжну таблицю С і приєднати до неї таблиці А і В зв’язками “один-до-багатьох”

Page 25: створення зв’язків між таблицями

25

Створення зв’язку“один-до-одного”

Як в якому класі учитель є класним керівником?

Page 26: створення зв’язків між таблицями

26

Створення зв’язку “один-до-одного”

Додамо до таблиці “Класи” поле “Класний керівник”

Page 27: створення зв’язків між таблицями

27

Створення зв’язку “один-до-одного”

При створенні поля “Класний керівник” змінити значення властивості Индексированное поле

Саме це дозволить створити зв’язок типу“один-до-одного”

Page 28: створення зв’язків між таблицями

28

Створення зв’язку “один-до-одного”

Індексовані поля – це ті, за значенням яких СКБД шукає записи в таблиці. Щоб СКБД могла відрізнити один запис від іншого, розробнику надано можливість забороняти повторення значень індексованого поля

Page 29: створення зв’язків між таблицями

29

Створення зв’язку “один-до-одного”Коли в Access на схемі данихвідображають зв’язок “одни-до-одного”, первинний ключ потрібно перетягувати на зовнішній, а не навпаки!Оскільки СКБД вважатиме зв’язаною ту таблицю, на яку перетягують поле, а головною – ту, з якої тягнуть.