Попередня сторінка          Зміст           Наступна сторінка          Електронні посібники ВНТУ

 

 

ЛАБОРАТОРНА РОБОТА № 5
ПРОЕКТУВАННЯ РЕЛЯЦІЙНОЇ БАЗИ ДАНИХ

 

Мета: опис предметної сфери, створення концептуальної та логічної моделі БД.

 

1.1 Теоретичні відомості

 

5.1.1 Етапи проектування реляційної БД

Для проектування реляційної БД потрібно:

Визначити об’єкти, які містяться в БД.

Визначити зв’язки між об’єктами.

Визначити основні властивості об’єктів.

Визначити зв’язки між властивостями об’єктів.

Створити робочий словник даних для визначення таблиць, що входять до БД.

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

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

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

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

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

 

5.1.2 Типи таблиць і ключів в реляційних БД

 

В реляційній базі даних існують базові та проміжні таблиці.

Базова таблиця – таблиця, яка включає один або декілька стовпців властивостей об’єкту і містить первинний ключ, що однозначно визначає цей об’єкт. Базова таблиця повинна містити первинний ключ. Базові таблиці часто називають первинними, оскільки мають первинний ключ.

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

Розглянемо типи ключів в реляційній БД:

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

Ключі-кандидати. Будь-який стовпець або група стовпців, які задовольняють вимогам, що накладаються на значення первинного ключа, є кандидатами на те, щоб стати первинним ключем.

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

Зовнішні ключі – це стовпець, значення якого відповідають значенням первинного ключа з іншої зв’язаної таблиці.

 

5.1.3 Схематичні моделі даних

Існує багато методів створення схем моделей даних. Одним з найбільш розповсюджених є метод, в якому використовується схема “Елемент - Відношення” (E-R) (рис. 5.1), яка була розроблена Пітером Ченом в 1976 році. E-R схеми призначені для наглядного представлення відношень між об’єктами і поведінки елементів.

 

Рисунок 5.1 – Схема “Елемент - Відношення”

 

Елементи даних вказані у прямокутниках, атрибути даних – в овалах, а відношення між елементами – в ромбах. Відношення між об’єктами БД на концептуальному етапі можуть визначатися їх поведінкою. Таким чином E-R схеми включають принаймні одне дієслово, об’єкт якого знаходиться справа від символу відношення. Символи наносяться на схему по мірі конкретизації моделі. Однією з переваг E-R схем є те, що їх можна використовувати для представлення на порівняно невеликому просторі концептуальної моделі великих схем з багатьма БД.

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

 

5.1.4 Нормалізація даних в реляційній моделі

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

Задачами нормалізацї є:

  • ➢ вилучення з таблиць інформації, що повторюється;
  • ➢ створення структури, в якій передбачена можливість майбутніх змін;
  • ➢ створення структури, в якій вплив структурних змін на додатки, що використовують дані цієї БД, зведено до мінімуму.

Для першої нормальної форми потрібно, щоб таблиця була двовимірною і не містила груп, що повторюються. У таких таблиць є тільки дві характеристики – довжина (кількість записів або рядків) та ширина (кількість полів або стовпців). Вона не повинна містити комірок, що включають кілька значень. Для того, щоб в одній комірці містилося кілька величин, необхідно ввести третій вимір – глибину, за допомогою якої можна зберігати в одній комірці одразу декілька значень.

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

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

Типи відношень

Найпростішим відношенням між таблицями є відношення “один-до-одного”. В такому відношенні одному запису однієї таблиці відповідає тільки один запис у іншій. Таблиці, що зв’язані відношенням “один-до-одного” можна об’єднати в одну таблицю, яка складається з полів обох таблиць. Наприклад, це може бути потрібним для того, щоб скоротити час перегляду полів, що містять певний набір даних. В деяких випадках необхідно керувати доступом до частин таблиць, які містять важливі або конфіденційні дані. На рис. 5.2 показана E-R схема для таблиці “Інженер” та “Комп’ютер”. Одиниці з обох сторін ромба вказують на відношення “один-до одного”.

 

Рисунок 5.2 – E-R схема для таблиці “Інженер” та “Комп’ютер”

 

Таблиця з обов’язковим відношенням “один-до-одного” є базовою. Таблиця, зв’язана необов’язковим відношенням з базовою є зв’язаною таблицею. Для зберігання бази даних, що містить декілька таблиць, що зв’язані відношеннями “один-до-одного”, деякі з яких є необов’язковими, потрібно менше місця на диску.

Відношення “один-до-багатьох” зв’язує один запис першої таблиці з декількома записами другої за допомогою первинного ключа базової таблиці і відповідного йому зовнішнього ключа зв’язаної таблиці. Зовнішній ключ таблиці, що містить велику кількість відношень, може входити до складеного первинного ключа, але він є зовнішнім по відношенню до базової таблиці. Відношення “один-до-багатьох” використовується найбільш часто. На E-R схемі, що показана на рис.5.3 , це відношення позначено символом m.

 

Рисунок 5.3 – E-R схема для таблиці “Паром” та “Порти”

 

Відношення “багато-до-одного” протилежне відношенню “один-до-багатьох”. Якщо вибір відношення “багато-до-одного” або “один-до-багатьох” не має великої ролі, то відношення між таблицями називається рефлексивним. Відношення “багато-до-одного” є відображенням відношення “один-до-багатьох”. Всі відношення “багато-до-одного” в Access є рефлексивними. Рефлексивні відношення позначаються дієсловом у відповідній формі, яке розміщується зовні ромба, що визначає відношення.

 

5.1.5 Звязування таблиць між собою в Access

Зв’язок між таблицями можна створити за допомогою вікна “Зв’язки” або перетягуванням поля з області Список полів. Під час створення зв’язку між таблицями спільні поля можуть мати різні імена, хоча часто вони однакові. Проте такі поля мають містити дані одного типу. Якщо поле первинного ключа має тип “Лічильник”, зовнішній ключ може бути полем типу “Число”, якщо обидва поля мають однакові значення властивості Розмір поля (FieldSize)Наприклад, поля типів “Лічильник” і “Число” можна зіставляти, якщо властивість Розмір поля (FieldSize) обох полів має значення Long Integer (довге ціле). Якщо обидва спільні поля мають тип “Число”, вони повинні мати однакове значення властивості Розмір поля (FieldSize).

Створення зв’язку між таблицями за допомогою вікна “Зв’язки”.

  1. У вкладці Файл виберіть команду Відкрити.
  2. У діалоговому вікні Відкрити виберіть і відкрийте БД.
  3. У вкладці Знаряддя бази даних у групі Зв’язки натисніть кнопку Зв’язки.
  4. Якщо зв’язки ще не визначено, автоматично відображається діалогове вікно Відображення таблиці.
  5. Якщо воно не відображається, у вкладці Конструктор у групі Зв’язок натисніть кнопку Відобразити таблицю.
  6. У діалоговому вікні Відображення таблиці відображаються всі таблиці й запити в базі даних. Щоб переглянути лише таблиці, виберіть вкладку Таблиці. Щоб переглянути лише запити, виберіть вкладку Запити. Для перегляду як таблиць, так і запитів виберіть вкладку Разом.
  7. Виберіть одну або кілька таблиць чи запитів і натисніть кнопку Додати. Закінчивши додавати таблиці й запити до вікна “Зв’язки”, натисніть кнопку Закрити.
  8. Перетягніть поле з однієї таблиці (зазвичай це первинний ключ) до спільного поля (зовнішнього ключа) в іншій таблиці. Щоб перетягнути кілька полів, натисніть клавішу CTRL, клацніть потрібні поля, а потім виконайте перетягування. Відобразиться діалогове вікно Редагування зв’язків.
  9. Переконайтеся, що відображувані імена полів відповідають спільним полям зв’язку. Якщо ім’я поля неправильне, клацніть його й виберіть зі списку нове поле.
  10. Щоб забезпечити для цього зв’язку обмеження цілісності, установіть прапорець Забезпечення цілісності даних.
  11. Натисніть кнопку Створити. Між двома таблицями буде зображено лінію зв’язку. Якщо встановлено прапорець Забезпечення цілісності даних, лінія на кінцях виглядає товстішою. Крім того, знову ж таки, якщо встановити прапорець Забезпечення цілісності даних, над товстішим відрізком лінії з одного боку відображатиметься число 1, а над товстішим відрізком лінії з іншого боку – знак нескінченності ().

Примітка:

  • Створення зв’язку “один-до-одного”. Обидва спільні поля (зазвичай, поля первинного та зовнішнього ключів) повинні мати унікальний індекс. Це означає, що для властивостей Індексовано цих полів потрібно встановити значення Так (без повторень). Якщо обидва поля мають унікальні індекси, у програмі Access створюється зв’язок “один-до-одного”.
  • Створення зв’язку “один-до-багатьох”. Поле на стороні зв’язку “один” (зазвичай, первинний ключ) повинно мати унікальний індекс. Це означає, що для властивості Індексовано цього поля потрібно встановити значення Так (без повторень). Поле на стороні “багато” не повинно мати унікальний індекс. Воно може мати індекс, але він має підтримувати повторення. Це означає, що властивість Індексовано повинна мати значення або Ні (No), або Так (повторення дозволені). Коли одне поле має унікальний індекс, а друге поле такого індексу не має, у програмі Access створюється зв’язок “один-до-багатьох”.
  • Створення зв’язку таблиці за допомогою області “Список полів”. Ви можете додати поле до наявної таблиці, відкритої в поданні таблиці, перетягнувши його з області Список полів. В Список полів відображаються поля, доступні у зв’язаних таблицях, а також поля, доступні в інших таблицях. Якщо перетягнути поле з “іншої” (незв’язаної) таблиці, а потім запустити майстер підстановок і виконати його вказівки, між таблицею в області Список полів і таблицею, до якої перетягується поле, буде автоматично встановлено зв’язок “один-до-багатьох”. До цього, створеного програмою Access, зв’язку посилальні обмеження цілісності за промовчанням не застосовуються. Для застосування посилальних обмежень цілісності зв’язок слід відредагувати.

Відкриття таблиці у вікні табличного подання даних

  1. На вкладці Файл виберіть команду Відкрити.
  2. У діалоговому вікні Відкрити виберіть і відкрийте БД.
  3. В області переходів клацніть правою кнопкою миші таблицю, до якої потрібно додати поле та з якою потрібно створити зв’язок, а потім натисніть кнопку Відкрити.

Відкриття області “Список полів”

Натисніть сполучення клавіш ALT+F8. Відобразиться область Список полів. В області Список полів відображаються всі інші таблиці бази даних, згруповані за категоріями. Під час роботи з таблицею у вікні табличного подання даних у програмі Access відображаються поля в одній із двох категорій області Список полівПоля, наявні в пов’язаних таблицях і Поля, наявні в інших таблицях. У першій категорії перелічуються всі таблиці, які мають зв’язок із таблицею, що зараз використовується, а у другій категорії – усі таблиці, з якими поточна таблиця не має зв’язків.

Якщо в області Список полів клацнути знак плюс (+), розташований поруч з іменем таблиці, буде відображено список усіх полів, доступних у цій таблиці. Щоб додати поле до таблиці, перетягніть його з області Список полів до таблиці у вікні табличного подання даних.

Додавання поля та створення зв’язку з області “Список полів”

  1. В області Список полів у розділі Поля, наявні в інших таблицях клацніть знак плюс (+), розташований поруч з іменем таблиці, щоб відобразити список полів.
  2. Перетягніть потрібне поле з області Список полів до таблиці, відкритої у вікні табличного подання даних.
  3. Після появи лінії вставлення вставте поле. Запуститься майстер підстановок.
  4. Дотримуйтесь інструкцій майстра підстановок.

Відобразиться таблиця у вікні табличного подання даних.

Якщо перетягнути поле з “іншої” (незв’язаної) таблиці, а потім запустити майстер підстановок і виконати вказівки, між таблицею в області Список полів і таблицею, до якої перетягується поле, буде автоматичного встановлено зв’язок “один-до-багатьох”. Для застосування посилальних обмежень цілісності зв’язок слід відредагувати.

 

5.2 Завдання до лабораторної роботи

 

  1. Розробити ER-модель і первинні таблиці БД.
  2. Провести нормалізацію первинних таблиць.
  3. Ввести нормалізовані таблиці в СУБД.
  4. Призначити первинні ключі всім таблицям:
    • а) Увійти у режим конструктора;
    • б) Встановити курсор навпроти потрібного ключового поля і натиснути кнопку «Ключове поле»;
    • в) При необхідності призначення ключем декількох полів натиснути клавішу Ctrl і, не відпускаючи її, виділити кольором потрібні поля і натиснути кнопку «Ключове поле».
  5. Створити зв’язки між ключовими полями всіх таблиць. Задати властивості нового зв’язку: “забезпечення цілісності"; "каскадне оновлення полів".
  6. Створити запит, який містить в собі поля з різних таблиць.

 

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

 

  1. Назвіть основні етапи проектування реляційної БД.
  2. З якою метою виконується нормалізація?
  3. Що називають нормалізацією відношень?
  4. З яких етапів складається життєвий цикл БД?
  5. Що відбувається на етапі концептуального проектування БД?
  6. Що відбувається на етапі логічного проектування БД?
  7. Які ви знаєте рівні проектування інформаційних систем?
  8. Які особливості проектування реляційних БД?
  9. Перша нормальна форма та методи її досягнення.
  10. Друга нормальна форма та її характеристики.
  11. Третя нормальна форма та її характеристики.
  12. Зв’язки між сутностями та їх утворення.