Microsoft word для в прикладах

Логічна структура реляційної бази даних

Логічна структура реляційної бази даних в Access є адекватним відображенням отриманої інформаційно-логічної моделі, що не вимагає додаткових перетворень. Кожен інформаційний об'єкт моделі даних відображається відповідної реляційної таблицею. Структура реляційної таблиці визначається реквізитний складом відповідного інформаційного об'єкта, де кожен стовпець (поле) відповідає одному з реквізитів об'єкта. Ключові реквізити об'єкта утворюють унікальний ключ реляційної таблиці. Для кожного стовпця задається формат і розмір даних. Рядки (записи) таблиці відповідають екземплярам об'єкта і формуються при завантаженні таблиці.

Зв'язки між об'єктами моделі даних реалізуються однаковими реквізитами - ключами зв'язку у відповідних таблицях. При цьому ключем зв'язку завжди є унікальний ключ головної таблиці. Ключем зв'язку в підпорядкованій таблиці є або деяка частина унікального ключа в ній, або поле, що не входить до складу первинного ключа (наприклад, код кафедри в таблиці ВИКЛАДАЧ). Ключ зв'язку в підпорядкованій таблиці називається зовнішнім ключем.

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

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

Рис.2.14. Логічна структура реляційної бази даних предметної області "Навчальний процес"

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

Технологія створення схеми даних на прикладі бази даних «Навчальний процес»

Включення таблиць в схему даних

Розглянемо процес створення схеми даних відповідно до логічної структурою БД «Навчальний процес». При активному вікні Навчальний процес: База даних (Datebase) натиснемо на панелі інструментів кнопку Схема даних (Relationship). У вікні Додавання таблиці (Show Table) (див рис. 3.23), виберемо вкладку Таблиці (Tables) і, натискаючи кнопку Додати (Add), розмістимо у вікні Схема даних (Relationship) всі раніше створені таблиці бази даних, які відображені у вікні Додавання таблиці (Show Table). Потім натиснемо кнопку Закрити (Close). В результаті у вікні Схема даних (Relationship) будуть представлені всі таблиці бази даних «Навчальний процес» зі списками своїх полів (див. Рис. 3.42).

Визначення зв'язків між таблицями схеми даних

Визначення зв'язків по простому ключу. Встановимо зв'язок між таблицями ГРУПА і СТУДЕНТ по простому ключу НГ.

Для цього у вікні Схеми даних (Relationship) встановимо курсор миші на ключовому полі НГ головною таблиці ГРУПА і перетягнемо його на поле НГ в підпорядкованій таблиці СТУДЕНТ. У вікні Зміна зв'язків (Edit Relationship) в рядку Тип відносини (Relationship Type) встановиться значення один-ко-многим (One-To-Many). Відзначимо параметр Забезпечення цілісності даних (Enforce Referential Integrity). Якщо таблиця ГРУПА і СТУДЕНТ раніше були заповнені коректними даними, між таблицями буде встановлено зв'язок, позначена на схемі як 1: ∞. Це свідчить про реєстрацію зв'язку типу 1: М з параметром підтримки цілісності. В іншому випадку з'явиться повідомлення про неможливість встановити цей тип відносини (див рис. 3.23).

Для забезпечення автоматичного коректування даних у взаємозалежних таблицях встановимо прапорець каскадне оновлення пов'язаних полів (Cascade Update Related Fields) і каскадне видалення пов'язаних записів (Cascade Delete Related Records).

Аналогічні дії виконуються для інших пар таблиць КАФЕДРА → ВИКЛАДАЧ (ключ ККАФ), ПРЕДМЕТ → ВИВЧЕННЯ (ключ КН), ВИКЛАДАЧ → ВИВЧЕННЯ (ключ ТАБН), ГРУПА → ВИВЧЕННЯ (ключ НГ).

Визначення зв'язків по складеному ключу. Визначимо зв'язку між таблицями СТУДЕНТ → УСПІШНІСТЬ, які пов'язані з складеному ключу НГ + НС. Для цього в головній таблиці СТУДЕНТ виділимо обидва цих поля, утримуючи клавішу Ctrl. Перетягнемо обидва поля на поле НГ в підпорядкованій таблиці УСПІШНІСТЬ.

У вікні Зміна зв'язку (Edit Relationships) (рис. 3.41) для ключового поля НС головною таблиці ТАБЛИЦЯ / ЗАПИТ (Table / Query) виберемо відповідне поле підпорядкованої таблиця ПОВ'ЯЗАНА ТАБЛИЦЯ / ЗАПИТ (Table / Query). У цьому ж вікні встановимо режими Забезпечення цілісності даних (Enforce Referenteal Integrity) і інші параметри зв'язку.

Мал. 3.41. Вікно вибору параметрів Зв'язки (Edit Relationships)

Аналогічно визначаються зв'язку між парою таблиць ВИВЧЕННЯ → УСПІШНІСТЬ (складовою ключ зв'язку - НГ + КП + ТАБН + Відзев).

Після визначення зв'язків таблиці можуть переміщатися в межах робочого простору вікна схеми даних. Переміщення і зміни розмірів таблиць здійснюються прийнятими в Windows способами. На рис. 3.42 показана схема даних «Навчальний процес», де таблиці розміщені відповідно до їх відносної підпорядкованістю.

Мал. 3.42. Схема даних БД «Навчальний процес»

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

Перевірка підтримки цілісності в базі даних

На рис. 3.42 в створеній схемі даних БД «Навчальний процес» все зв'язку відзначені символами 1, ∞, що свідчить про встановлення зв'язків типу 1: М (за простим або складеним ключу), для яких буде забезпечуватися цілісність даних.

Перевіримо підтримку цілісності при внесенні змін до таблиці ГРУПА → СТУДЕНТ, пов'язані одне-багатозначними відносинами.

Перевірка цілісності при зміні значень пов'язаних полів в таблицях. Відкриємо таблицю ГРУПА в режимі таблиці. Змінимо значення ключового поля НГ (номер групи) в одному із записів головної таблиці ГРУПА. Переконаємося, що у всіх записах підпорядкованої таблиці СТУДЕНТ, для студентів, які навчаються в цій групі, автоматично також зміниться значення поля НГ. Зміна відбувається оскільки був встановлений параметр каскадне оновлення зв'язаних полів (Cascade Update Related Fields) (див рис. 3.41). Причому ця зміна здійснюється миттєво, як тільки змінна запис перестає бути поточної. Для спостережень за автоматичними змінами в підпорядкованій таблиці відкриємо на екрані одночасно таблиці ГРУПА і СТУДЕНТ. Відкривши інші підлеглі таблиці, можна переконатися, що каскадне оновлення поширюється також на підлеглі таблиці наступних рівнів ВИВЧЕННЯ і УСПІШНІСТЬ.

Змінимо значення ключа зв'язку НГ в підпорядкованій таблиці СТУДЕНТ на значення, що не існує в записах таблиці ГРУПА, і переконаємося, що таке можуть редагувати лише адміністратори, тому що при підтримці цілісності не може існувати запис підпорядкованої таблиці з ключем зв'язку, якого немає в головній таблиці.

Перевірка при додаванні записів в підпорядковану таблицю. Переконаємося, що разом з видаленням запису в головній таблиці ГРУПА видаляються всі підлеглі записи, т. К. Було встановлено параметр каскадне видалення пов'язаних записів (Cascade Delete Related Records).

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

Якщо виконання змін неможливо, з'явиться повідомлення (рис. 3.43).

Ріс.3.43. Повідомлення про неможливість внесення змін до таблиці СТУДЕНТ