4.4. Зв’язки між таблицями. СУБД Access є дозволяє створювати багатотабличні бази даних і зв’язувати таблиці між собою. Зв’язування таблиць дозволяє створювати бази даних з відносно невеликими таблицями, а потім використовувати потрібні поля з різних таблиць в інших об’єктах БД. Якщо якась база даних містить багато полів, то її можна розбити на декілька таблиць. Перевагою багатотабличних БД є скорочення роботи під час її заповнення, а недоліком можна назвати ускладнення логіки під час конструювання бази даних. Але, тільки створивши декілька різних зв’язаних таблиць власноручно, можна робити які-небудь висновки. 3.1. Що треба для створення зв’язаних таблиць? Вимоги до таблиць: При зв’язуванні двох таблиць, в кожній з них повинні існувати схожі за логікою поля. Ці поля повинні бути одного типу. І в одній з таблиць хоча б одне поле повинно бути ключове. Поле, через яке здійснюється зв’язок, є «агентом» цієї таблиці в іншій таблиці. Не можна зв’язувати таблиці, які не мають між собою нічого спільного. Під час конструювання структури таблиць краще вважати, що ми просто розбиваємо одну велику таблицю на декілька малих. Для прикладу створімо дві таблиці: 1) Учителі (мал. 27) 2) Класи (мал. 28) 3) В таблиці класи полю учитель надати ознаку ключове. 4) Заповнити таблицю «Учителі»: Табельн Ном учитель предмет кабінет 1 Семенов А.Д. фізика 12 2 Кононов Б.К. математика 17 3 Сігульська Д.Б. фізкультура 4 5 Потапська В.І. біологія 22 6 Семенова Р.А. іноземна мова 30 7 Курасов М.С. інформатика 34 5) Обрати команду Сервис – Схема данных. Добавити в схему обидві таблиці. 6) Із таблиці учителі перетягнути поле учитель до поля кл.керівник таблиці класи. На цьому етапі роботи виникне діалогове вікно (мал. 29) в якому будуть показані поля що зв’язуються. На пункті Обеспечение целостности данных треба встановити прапорець, щоб підключити систему правил для зв’язаних таблиць які дозволяють уникнути випадкового знищення, або зміни даних. Після натискання кнопки Создать, на екрані виникне схема зв’язку між таблицями (мал. 30). В даному прикладі зв’язок називається один до багатьох, тобто дані на одного учителя із таблиці «учитель» можуть бути використані в багатьох записах таблиці класи. Відтепер, ми маємо змогу створювати об’єкти (запити, форми, звіти), використовуючи обидві таблиці, як джерела. Побудуємо запит на вибірку, з використанням цих таблиць. Пригадаємо, що таблиця учитель заповнена, а таблиця класи порожня. Отже за допомогою конструктора створіть новий запит. В верхньому вікні Ви бачите схему обох таблиць. Оберіть для запиту із таблиці учитель поля предмет, кабінет; із таблиці класи – поля кл_керівник, профіль. Виконайте запит. Як бачимо, він порожній. Заповнювати запити з декількох таблиць треба починати з ключових полів. В нашому випадку це поле кл_керівник. Введіть прізвище Кононов Б.К. Поля кабінет і предмет заповняться даними автоматично. Залишилося заповнити тільки два порожні поля Клас і профіль. Клас профіль кл_керівник Кабінет предмет Кононов Б.К. 17 математика Практичне завдання для закріплення: 1) Побудуйте дві таблиці: Довідник фірм. ном Назва адр Телефон директор 1 Folio Київ, вул Чоколовка,12 234-12-16 Андрій Чемоданов 2 Compy Київ, вул. Наддніпрянська,43 224-78-12 Коста Маргенаєв 3 Корзина Киів, вул. Челябінська, 22 517-30-23 Костянтин Сорока 4 Тайвань Черкаси, вул. Плотинна, 21 23-17-88 Микола Коваль Склад Код ТОВАР Ціна(грн) Постачальник К_ть 1 Celeron 500 120 Folio 32 2 Celeron 700 190 Folio 22 3 Celeron 900 250 Корзина 45 4 Celeron 950 300 Compy 21 5 DIMM 128 Mb 160 Тайвань 30 6 DIMM 256 Mb 300 Тайвань 45 Поле постачальник в цій таблиці зробити як поле підстановок із таблиці Фірми. 2) Зв’яжіть дві таблиці полями Назва – постачальник. 3) Перетягніть в запит поля Товар, Постачальник, телефон, Ціна(грн), К_ть з обох таблиць. 4) Поле Сума($) побудуйте за допомогою конструктора виразів, за такою формулою ([Ціна(грн)]*[К_ть])/5,30. 5) Приблизний результат виконання цієї вправи: ТОВАР Поста-чальник телефон Ціна(грн) К_ть Сума($) Celeron 500 Folio 234-12-16 120 32 724,53 Celeron 700 Folio 234-12-16 190 22 788,68 Celeron 900 Корзина 517-30-23 250 45 2122,64 Celeron 950 Compy 224-78-12 300 21 1188,68 DIMM 128 Mb Тайвань 23-17-88 160 30 905,66 DIMM 256 Mb Тайвань 23-17-88 300 45 2547,17
|