Зв'язування таблиць бази даних

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

Прагнення розв'язати цю проблему привело до розробки процедури нормалізації. Нормалізація дозволила виключити дублювання даних.

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

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

У СУБД Access для створення зв'язків між таблицями використовують Мастер подстановок. Порядок установлення зв'язків будемо розглядати на прикладі двох таблиць, які містяться у файлі Свердла. Перша з таблиць, Свердла_1, містить дані про свердла спіральні дрібно розмірні з потовщеним циліндричним хвостовиком за ГОСТ 8034-76 (рис. 1), яка містить основний ряд розмірів, а інша таблиця, Свердла_2 – містить відомості про ті ж свердла, але допоміжного ряду розмірів (рис. 2).

Рис.1

Рис.2

1. З лівого боку вибираємо таблицю Свердла_1 та відкриваємо її у режимі конструктора
(рис. 3).

Рис. 3

2. У цій структурі створюємо ще одне поле з будь-яким іменем. Використаємо ім’я Tools. Далі відкриваємо значення Тип данных, де останнім є рядок Мастер подстановок(рис. 4).

Рис.4

Після активації програми Мастер подстановокна екрані відкривається вікно цієї програми, зображеної на рис. 5.

Рис.5

У цьому вікні перемикач установити у положения Объект «столбец подстановки»... iпісля цього натиснути кнопку Далее.

3. У результаті останньої дії у вікні Мастер подстановокз’явиться нова інформація, показана на рис. 6. Тут покажчик потрібно встановити у положения Таблицыта натиснути кнопку Далее.

Рис.6

4. Після виконання попередньої дії з’явиться вікно, зображене на рис. 7, у якому потрібно вибрати всі поля натисканням кнопки «»», а потім натиснути Далее.

5. У наступних вікна (рис.8-9) потрібно натиснути Далее, а в останньому - Готово(рис. 10).

Рис.7

Рис.8 Рис.9

Рис.10

6. Відкрийте таблицю Свердла_1 для перегляду. У ній з’явився нове поле Tools, що свідчить про вдале встановлення зв’язку між таблицями (рис. 11).

Рис.11

7. Для того, щоб видалити зв'язок між таблиця або редагувати його, потрібно у головному меню на вкладці Работа с базами данныхвибрати схема даних. Після чого у вікні, яке відкриється (рис. 12), відобразяться зв’язані таблиці. Для редагування або видалення зв’язку здійснюється виділіть лінію зв’язку, а потім, натиснувши праву кнопку миші, у меню, що з’явилося, виберіть Изменить связьабо Удалить.

Рис.12

Наприклад, розглянемо базу даних, що складається із двох зв’язаних таблиць: “Постачальники” з полями “Код_Постачальника” та “Назва” і “Товари” з полями “Товар” та “Код_Постачальника”. Ми будемо формувати список постачальників товару і прив’язувати його до нового поля таблиці “Товари”, яке називають полем підстановок.

Такий список створюється шляхом пошуку значень в полі «Код_ Постачальника» таблиці «Постачальники» і виведенні відповідних значень поля “Назва”. При виборі значень із списка задається значення зовнішнього ключа в поточному записі (поле «Код_Постачальника» в таблиці “Товари”), яке співпадає із значенням ключового поля відповідного запису в зв’язаній таблиці (поле “Код_Постачальника” в таблиці “Постачальники”). При цьому створюється об’єднання із зв’язаною таблицею, яке дозволяє відображувати (але не зберігати) значення поля “Назва” з таблиці “Постачальники” в таблиці “Товари”. Зовнішній ключ (значення поля «Код_Постачальника») в таблиці “Товари” зберігається, але не відображується. Це призводить до того, що довільне оновлення даних в таблиці “Постачальники” буде відображатися як в списку, так і в записах в таблиці “Товари”. Поле списку підстановок необхідно визначати з таблиці, яка містить зовнішний ключ і відображує список підстановок. В наведеному прикладі поле списку підстановок буде визначатися з таблиці “Товари”.

Створити нові поля із списком підстановок можно як в режимі конструктора, так і в режимі таблиці.

Однак, якщо поле, яке буде використовуватися як зовнішній ключ для поля підстановок, вже існує, необхідно відкрити таблицю, яка містить це поле, в режимі конструктора і визначити поле підстановок. Наприклад, якщо є таблиця “Товари”, в якій вже визначено поле “Код_Постачальника”, і потрібно перетворити його в поле підстановок, в якому будуть виводитися назви постачальників з таблиці “Постачальники”, то необхідно відкрити таблицю “Товари” в режимі конструктора і перетворити поле “Код_Постачальника” в поле підстановок. Робиться це таким чином.

У верхній частині вікна Товари в блоці Имя поля знаходимо назву Код_ Постачальника. Це ім’я поля, над яким ми проведемо операцію підстановки. Далі відкриваємо значення Тип данных, яке знаходиться в одному рядку з вибраним нами полем. З’являється список типів, де останнім є рядок Мастер подстановок.

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

В результаті цієї операції на екран з’являється нове вікно, в якому показані всі таблиці бази даних за винятком тієї, в яку буде зроблено підстановку поля (в нашому випадку це “Товари”). Виділяємо рядок, який містить назву “Постачальники”, де знаходиться необхідна нам інформація, і натискуємо кнопку Далее.

З’являється нове вікно, що містить два інформаційні блоки. Ліворуч розташовані доступні поля таблиці “Постачальники”, яку ми вибрали на попередньому кроці. Необхідно виділити те поле, над яким здійснюється операція підстановки. В даному випадку це поле “Назва”. Кнопкою одинарна стрілка праворуч це поле переноситься праворуч, де написано Выбранные поля. Кнопкою одинарна стрілка ліворуч це поле переноситься у лівий список. Така необхідність виникає, наприклад, у тому випадку, коли була допущена помилка. Кнопкою подвійна стрілка праворуч переносяться всі поля праворуч, а кнопкою подвійна стрілка ліворуч – справа наліво. Після переносу поля “Назва” необхідно натиснути кнопку Далее.

Після цього з’являється нове вікно, в якому за допомогою миші можна відрегулювати ширину стовпців (у нашому випадку поля “Назва”). Після проведеного регулювання натискують кнопку Далее.

В новому вікні потрібно задати напис для стовпця підстановки. У нашому випадку залишимо напис “Назва” і натиснемо кнопку Готово.

В результаті цього на екрані з’явиться вікно, у якому необхідно підтвердити необхідність збереження таблиці (натиснути кнопку Да). Вікно Мастер подстановок зачиняється і на екран виводиться вікно таблиці “Товари”, відкритого в режимі конструктора. Для поля “Код_Постачальника” у вкладинці Подстановка можна переглянути характеристику поля, приєднаного до таблиці “Товари”.

Зовнішній вигляд цього поля можна переглянути, відкривши таблицю в режимі Открыть. Щоб переконатися в наявності зв’язку між таблицями, виконаємо команду Сервис – Схема Данных, в результаті чого з’явится відповідне вікно, в якому показано лінією зв’язок між ключовими полями.

 

 

ХІД РОБОТИ

Завдання 1

1. Створіть базу даних і присвойте файлу ім'я свого прізвища.

2. Створіть базу даних на основі шаблону.

3. Створіть структури таблиць та заповніть їх записами про 10 товарів, 15 покупців, 12 постачальників, 25 замовлень та 5 типів товару.

1. Заповніть таблиці записами про 10 товарів, 15 покупців, 12 постачальників, 25 замовлень та 5 типів товару. Для внесення даних до таблиць дотримуйтесь індивідуальної теми:

1. Продуктовий магазин

2. Магазин «Будівельних матеріалів»

3. Магазин канцтоварів

4. Магазин «Сантехніки»

5. Книгарня

6. Магазин «Комп’ютерна техніка»

7. Магазин побутової хімії

8. Магазин спецій

9. Квітковий магазин

10. Взуттєвий магазин

11. Магазин верхнього одягу

12. Магазин одягу для чоловіків

13. Магазин хлібо-булочних виробів

14. Ювелірний магазин

15. Магазин текстилю (штори, тканини)

16. Магазин аудіо та відеоапаратури

17. Видавничий центр

18. Магазин кондиторських виробів

19. Меблевий магазин

20. Магазин сувенірів

21. Магазин фотоапаратури

22. Магазин садоводства

23. Продуктовий магазин

24. Магазин «Будівельних матеріалів»

25. Магазин канцтоварів

26. Магазин «Сантехніки»

27. Книгарня

28. Магазин «Комп’ютерна техніка»

29. Магазин побутової хімії

30. Магазин спецій

Завдання 2

1. З допомогою майстра таблиць створіть таблицю “Працівники” та “Замовлено” заповніть їх даними про 8 працівників та 10 замовлень.

 

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

3. Змініть шрифт у таблицях, а також колір комірок. Чи ваші зміни відобразились на всіх таблицях бази даних?

4. У довільній таблиці змініть послідовність полів.

5. Заховайте деякі стовпці таблиці, які на вашу думку містять конфедиційну інформацію.

6. Відмініть опції, які ховають та закріплюють стовпці.

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

8. Перевірте створені вами таблиці, та в разі необхідності відредагуйте їх.

 

Завдання 3

1. Побудуйте зв’язки між таблицями Покупець, Товар, Замовлення, Замовлено, Працівники, Типи, Постачальник згідно описаної процедури.

2. Побудуйте в таблиці “Замовлення” поля підстановок, пов’язані з полями “Код покупця” та “Код працівника”, що дозволить вводити до таблиці значення прізвище покупця та прізвище працівника із списку. Списки формуються на основі таблиць “Покупець” та “Працівники”.

 

Контрольні запитання

 

1. Що таке база даних?

2. Що таке СУБД?

3. Яка структура бази даних?

4. Що таке запис і поле?

5. Опишіть процес створення таблиці.

6. Типи та властивості полів.

7. Вкажіть способи створення первинного ключа.

8. Що таке структура таблиці?

9. Що таке ключове поле? Для чого його використовують?

10. Як можна змінити ширину стовпців чи висоту рядків таблиці?

11. Як можна змінити параметри шрифту однієї таблиці БД?

12. Як можна заховати непотрібні поля?

13. Чи можна зафіксувати певні поля таблиці? Як?

14. Яким чином можна переміщатись по таблиці?

15. Чи можна роздрукувати таблицю? Яким чином?

16. Коли доцільно використовувати СУБД?

17. Якими способами можна створити таблицю?

18. Які вимоги повинно задовольняти ім’я поля?

19. Опишіть функціональні можливості MS Access.

20. Що таке запит, форма, звіт?

21. Як можна побачити зв’язки між таблицями?

22. Як створити зв’язки між таблицями?

23. Які типи зв’язків існують? Опишіть кожен із зв’язків між таблицями.

24. Для чого використовують програмний засіб Access Майстер підстановок?

25. Як створити поле підстановки?

26. Яких типів буває поле підстановок?

27. Які типи даних можна використовувати у таблицях Access? Що визначає тип поля?