Схема даних в Access: створення, редагування, оновлення

17 0 Новини високих технологій

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

Зв'язку в базах даних

В якості прикладу розглянемо зв'язку в БД туристичного агентства. До її складу входить таблиця готелів Таїланду – країни, в яку турагентство відправляє гостей. Готелі розташовані в різних регіонах Королівства.
Схема даних в Access: створення, редагування, оновлення
Якщо компанія працює з готелями тільки кількох регіонів, а в кожній з областей знаходяться десятки або сотні готелів, то заповнювати кожен раз полі регіону для кожного готелю – марна робота. Тому в базі створюється окрема таблиця, яка містить список регіонів, а при введенні готелю користувач просто вибирає потрібний з випадаючого списку.


Схема даних в Access: створення, редагування, оновлення
За аналогією доданий список країн для компанії, що працює з кількома державами. Тоді до переліку регіонів додається ще одне поле – «Країна», а в базу вноситься довідник країн, найменування яких потім вибираються зі списку. Таблиці пов'язані типу один-до-багатьох. Це означає, що одна запис з таблиці «Регіони» зустрічається багато разів у таблиці «Готелі». Крім цього, існують види «багато-до-багатьох» і «один-до-одного». Але остання вкрай рідко застосовується на практиці. Нижче ми розглянемо, як ці типи позначаються на схемах даних у Access.

Схема даних БД

У наведеному прикладі «Готелі» пов'язані з «Регіонами», а ті, у свою чергу, з «Країнами». Ця інформація, написана текстом, не надто наочно показує зв'язки між об'єктами. І в нашій базі всього три таблиці, а їх можуть бути сотні. Тримати в голові всі з'єднання розробнику важко.


В якості допоміжного засобу в базах створюються схеми даних, які наочно візуально показують всі об'єкти і відносини між ними. В Access схеми даних створюються за допомогою спеціального інструменту. Для нашої БД це виглядає так:
Схема даних в Access: створення, редагування, оновлення
Прямокутниками позначені таблиці зі списком полів, лінії між ними – зв'язку. На лінії зв'язку в місцях примикання до прямокутникам таблиць зроблені позначення: «1» і «?». Вони показують, який тип зв'язку застосований в цьому відношенні. Значок «1» у таблиці-джерела зі значком «?» у приймача позначають вид «один-до-багатьох». Обидві зв'язку в нашій БД – такого типу. Відповідно, дві одиниці у двох кінців лінії говорять про вигляді «один-до-одного», а два знака нескінченності – «багато-до-багатьом».

Створення схеми даних

Для створення схеми даних в Access доданий інструмент на панелі «Робота з базами даних». СУБД автоматично створює схему з тим таблиць і зв'язків, що існують в базі. Наведена вище схема створена системою самостійно. Користувач може внести зміни в макет. Деякі з них не позначаться на структурі БД, тільки на відображенні інформації. А деякі приведуть до змін в структурі.
В режимі "Конструктора" доступна операція «Очистити макет». При її виконанні екран схеми даних в Access очищається, а таблиці і відносини ховаються. Це не означає, що вони пропадають з бази - просто не відображаються в макеті схеми. Операція «Приховати таблицю» зробить те ж дію над виділеним об'єктом. Він просто зникне з екрана разом зі своїми лініями-відносинами. Повернути приховані таблиці допоможе операція «Показати таблицю». Вибираються об'єкти, які потрібно додати в макет. При цьому згідно з ним відображаються автоматично.

Створення відносин між таблицями

У нашому прикладі відношення між таблицями вже були визначені під час створення. Зупинимося більш детально на тому, як це зробити. Як ми вже знаємо, «Готелі» містить поле «Регіон», дані для якого беруться з однойменної таблиці. При додаванні стовпця «Регіон» зазначається тип поля Підстановки і відношення».
Схема даних в Access: створення, редагування, оновлення
Відкриється майстер створення поля, в якому ми вибираємо варіант отримання значення комірок з іншого об'єкта. На другому кроці майстра вибираємо об'єкт, з якого будуть підставлятися значення. У нашому випадку це таблиця «Регіони». Зі списку доступних для відображення полів нам потрібно «Найменування» - в таблиці готелів будуть показані назви регіонів. При необхідності задаємо порядок сортування найменувань і ширину стовпця.
На останньому кроці даємо ім'я нового поля і вказуємо параметр цілісності. Детальніше на ньому ми зупинимося нижче. Після натискання на кнопку «Готово» в таблицю готелів додано стовпець «Регіон», значення для нього беруться із зазначеного об'єкта.
Схема даних в Access: створення, редагування, оновлення
Зв'язок між таблицями готелів та регіонів тепер відображається на схемі.

Зміна відносин

Якщо відношення не додано додавання стовпця в об'єкт, це робиться безпосередньо в макеті схеми даних в Access. Як створити нову зв'язок, покажемо на прикладі. Натисніть кнопку «Змінити зв'язку». У редагуванні відносин для створення нової зв'язки натисніть «Нове». У формі «Створення» вибираємо таблиці для зв'язку і поля, які будуть відповідати один одному.
Схема даних в Access: створення, редагування, оновлення
Для вже створеної зв'язку є можливість змінювати параметри об'єднання записів у запитах. Для цього викликаємо діалогове вікно схеми даних MS Access «Зміна зв'язків» і натискаємо кнопку «Об'єднання». У формі редагування параметрів запропоновані варіанти об'єднань:
  • У першому випадку в результати запиту відображаються тільки ті рядки, в яких поля таблиць «Готелі» та «Регіони» збігаються.
  • У другому випадку об'єднуються всі рядки «Регіонів» і тільки співпадаючі «Готелів».
  • В третьому ситуація зворотна другого – всі рядки «Готелів» об'єднуються із співпадаючими «Регіонів».
  • Ми залишаємо автоматичний вибір системи – перший варіант.

    Схема даних в Access: створення, редагування, оновлення

    Цілісність даних БД

    Зв'язки між об'єктами БД на схемі даних в Access підводять нас до поняття цілісності даних. Як було показано вище, при створенні зв'язків між полями об'єктів бази вказується параметр цілісності. Якщо він включений, зв'язку між об'єктами підтримуються і охороняються системою. Покажемо це наочно на прикладі бази туристичної компанії. В «Готелі» готель з найменуванням Anantara Lawana Koh Samui Resort відноситься до регіону Самуї. Припустимо, ми видалили цей район з «Регіонів». Тепер поле посилається на запис, якої не існує. Це і є порушення цілісності. Аналогічно при встановленому вимозі дотримання цілісності ми не зможемо вибрати в цьому полі район «Чіанг Май», тому що його не існує в таблиці регіонів.
    Схема даних в Access: створення, редагування, оновлення
    При необхідності схеми бази даних Access вивантажуються в звіт і відправляються на друкувальний пристрій, перетворюються у файл або відправляються по електронній пошті.