Проектування реляційної бази даних
1. Етапи проектування реляційної бази даних
Для проектування реляційної бази даних потрібно:
1.Визначити об’єкти, які містяться в базі даних.
2.Визначити зв’язки між об’єктами.
3.Визначити основні властивості об’єктів.
4.Визначити зв’язки між властивостями об’єктів.
5.Створити робочий словник даних для визначення таблиць, що входять до бази даних.
6.Визначити відношення між таблицями баз даних, засновуючись на зв’язках між об’єктами даних, що містяться в таблиці, і включити цю інформацію до словника даних.
7.Продумати операції, що виконуються при створенні та зміні інформації таблиць, включаючи забезпечення цілісності даних.
8.Визначити, як використовувати індекси для прискорення виконання запитів, щоб уникнути сильного уповільнення роботи при додаванні даних до таблиці і надмірного збільшення об’єму дискового простору, що займається базою.
9.Визначити користувачів, яким дозволений доступ до даних, їх редагування, а також зміна при необхідності структури таблиць.
10.Описати структуру бази даних в цілому, завершити створення словників даних для своєї бази та для кожної таблиці, що міститься в ній, розробити процедури для операцій з базою даних, включаючи створення резервних копій і відновлення вихідних файлів.
2. Типи таблиць і ключів в реляційних базах даних
-базова таблиця. В реляційній базі даних базовою таблицею називається таблиця, яка включає один або декілька стовпців властивостей об’єкту і містить первинний ключ, що однозначно визначає цей об’єкт. Базова таблиця повинна містити первинний ключ. Базові таблиці часто називають первинними, оскільки вони мають первинний ключ.
-проміжна таблиця. Таблиця, що не є базовою, яка використовується для забезпечення зв’язків між іншими таблицями, називається таблицею відношень. Ключові поля в таблиці відношень повинні бути зовнішніми ключами, що зв’язані з первинними ключами базової таблиці.
-первинний ключ. Первинний ключ складається з набору значень, які однозначно визначають рядок (запис) базової таблиці. Будь-якому значенню первинного ключа повинна відповідати один і тільки один рядок (запис) таблиці. Первинний ключ включає одне поле тільки в тому випадку, якщо це поле не містить значень, що повторюються.
-ключі-кандидати. Будь-який стовпець або група стовпців, які задовольняють вимогам, що накладаються на значення первинного ключа, є кандидатами на те, щоб стати первинним ключем.
-складені ключі. Якщо для виконання умов, що накладаються на значення первинного ключа, заданий ключ включає декілька полів таблиці, то тоді він називається складеним.
-зовнішні ключі. Зовнішній ключ – це стовпець, значення якого відповідають значенням первинного ключа з іншої зв’язаної таблиці.
3. Схематичні моделі даних
Існує багато методів створення схем моделей даних. Одним з найбільш розповсюджених є метод, в яокму використовується схема “Елемент - Відношення”(E-R), яка була розроблена Пітером Ченом в 1976 р. E-R схеми призначені для наглядного представлення відношень між об’єктами і поведінки елементів.
Рис. 5.1.
Елементи даних вказані у прямокутниках, атрибути даних – в овалах, а відношення між елементами – в ромбах. (рис. 5.1 ). Відно-шення між об’єктами бази даних на концептуальному етапі можуть визначатися їх поведінкою. Таким чином E-R схеми включають принаймні одне дієслово, об’єкт якого знаходиться справа від символу відношення. Символи наносяться на схему по мірі конкретизації моделі. Однією з переваг E-R схем є те, що їх можна використовувати для представлення на порівняно невеликому просторі концептуальної моделі великих схем з багатьма базами даних.
Графічний опис структури таблиць у формі полосок, які містять імена полів і показують спрощені відношення між даними, використову-ється для того, щоб користувачам було легше зрозуміти розроблену модель даних. Діаграма, на якій показано логічне представлення даних, називається схемою.
4. Нормалізація даних в реляційній моделі
Нормалізацією називається формальна процедура, в ході якої тарибути даних групуются в таблиці, а таблиці групуються в бази даних. Задачами нормалізацї є:
вилучення з таблиць інформації, що повторюється;
створення структури, в якій передбачена можливість її майбутніх змін;
створення структури, в якій вплив структурних змін на додатки, що використовують дані цієї бази даних, зведено до мінімума.
4.1. Перша нормальна форма
Для першої нормальної форми потрібно, щоб таблиця була двовимірною і не містила груп, що повторюються. У таких таблиць є тільки дві характеристики – довжина (кількість записів або рядків) та ширина (кількість полів або стовпців). Вона не повинна містити комірок, що включають кілька значень. Для того, щоб в одній комірці містилося кілька величин, необхідно ввести третій вимір – глибину, за допомогою якої можна зберігати в одній комірці одразу декілька значень.
4.2. Друга нормальна формаДля другої нормальної форми потрібно, щоб дані у всіх не ключових стовпцях повністю залежали від первинного ключа і кожного елемента (стовпця) первинного ключа, якщо ключ є складеним. Під повною залежністю розуміються те, що значення в кожному не ключовому стовпці однозначно визначається значенням первинного ключа. Якщо одне з полів не залежить від величини первинного ключа, то необхідно включити в ключ доповнювальні таблиці. Перед перевіркою на відповідність другій нормальній формі таблиця повинна бути приведена до першої нормальної форми. Друга нормальна форма дозволяє видалити більшу частину даних, що повторюються, які часто залишаються після першого етапу нормалізації.
4.3. Третя нормальна форма
Для третьої нормальної форми потрібно, щоб всі неключові стовпці таблиці не тільки залежали від первинного ключа таблиці, але були незалежними один від одного, тобто, щоб були відсутні транзитивні функціональні залежності між стовпцями таблиці. Для цього потрібно, щоб таблиці були попередньо приведені до першої та другої нормальної форми.
5. Типи відношень
а) Відношення “один-до-одного”
Найпростішим відношенням між таблицями є відношення “один-до-одного”. В такому відношенні одному запису однієї таблиці відповідає тільки один запис у іншій. Таблиці, що зв’язані відношенням “один-до-одного” можна об’єднати в одну таблицю, яка складається з полів обох таблиць. Відношення “один-до-одного” часто використовують для розділення таблиць, що містять велику кількість полів. Наприклад, це може бути потрібним для того, щоб скоротити час перегляду полів, що містять певний набір даних. В деяких випадках необхідно керувати доступом до частин таблиць, які містять важливі або конфиденційні дані. На рис. 5.2 показана E-R схема для таблиці “Інженер” та “Комп’ютер”. Одиниці з обох сторін ромба вказують на відношення “один-до одного”.
Рис. 5.2.
Таблиця з обов’язковим відношенням “один-до-одного” є базовими. Таблиця, зв’язана необов’язковим відношенням з базовою є зв’язаною таблицею. Для зберігання бази данних, що містить декілька таблиць, що зв’язані відношеннями “один-до-одного”, деякі з яких є необов’язковими, потрібно менше місця на диску.
б) Відношення типу “один-до-багатьох”
Відношення “один-до-багатьох” зв’язує один запис першої таблиці з декількома записами другої за допомогою первинного ключа базової таблиці і відповідного йому зовнішнього ключа зв’язаної таблиці. Зовнішній ключ таблиці, що містить велику кількість відношень, може входити до складеного первинного ключа, але він є зовнішнім по відношенню до базової таблиці. Відношення “один-до-багатьох” використовується найбільш часто. На E-R схемі, що показана на рис.5.3 , це відношення позначено символом m.
1m
Рис. 5.3.
в) Відношення “багато-до-одного”
Відношення “багато-до-одного” протилежно відношенню “один-до-багатьох”. Якщо вибір відношення “багато-до-одного” або “один-до-багатьох” не має великої ролі, то відношення між таблицями називається рефлексивним. Відношення “багато-до-одного” є відображенням відношення “один-до-багатьох”. Всі відношення “багато-до-одного” в Access є рефлексивними. E-R схема для рефлексивних відношень виглядає, як показано на рис. Рефлексивні відношення позначаються дієсловом у відповідній формі, який розміщується зовні ромба, що визначає відношення.
6. Звязування таблиць між собою в Access 9x
Основні переваги систем керування базами даних реалізуються при роботі не з окремими таблицями, а з групами взаємозалежних таблиць. Для створення зв'язків між таблицями СКБД Ассеss 9х має спеціальне діалогове вікно, що називається “Схема данных”.
1. Вікно “Схема данных” відкривається натисненням лівої кнопки миші на однойменній кнопці панелі інструментів або командою “Сервис -> Схема данных”.
2. Якщо раніше ніяких зв'язків між таблицями бази не було, то при відкритті вікна “Схема данных” одночасно відкривається вікно “Добавление таблицы”, у якому можна вибрати потрібні таблиці для включення в структуру міжтабличних зв'язків.
3. Якщо зв'язку між таблицями вже були задані, то для введення в схему даних нової таблиці треба натиснути правою кнопкою миші на схему даних і в контекстному меню вибрати пункт “Добавить таблицу”.
4. Ввівши в схему даних усі таблиці, що треба зв'язати, можна приступати до створення зв'язків між полями таблиць.
5. Зв'язок між полями встановлюють шляхом перетягування імені поля з однієї в таблиці в іншу на відповідне йому зв'язане поле.
6. Після перетягування відкривається діалогове вікно “Связи”, у якому можна задати властивості зв'язку , що утвориться.
7. Вмикання прапорця “Обеспечение условия целостности даних” дозволяє захиститися від випадків вилучення записів з однієї таблиці, при яких зв'язані з ними дані інших таблиць залишаться без зв'язку. Щоб умова цілісності могла існувати, поле основної таблиці повинно обов'язково бути ключовим і обидва поля повинні мати однаковий тип.8. Прапорці “Каскадное обновление связанных полей” і “Каскадное удаление связанных записей” забезпечують одночасне відновлення або вилучення даних у всіх підпорядкованих таблицях при їхній зміні в головній таблиці. Якщо клієнт Соколова вийде заміж і змінить прізвище на Воронову, то доведеться внести зміну тільки в поле Прізвище таблиці “Клієнти”. У інших таблицях зміни відбудуться автоматично.
9. Для ліквідації зв’язку між таблицями необхідно у вікні “База данных” вибрати зв’язану таблицю, а потім вибрати пункт “Правка”->”Удалить”.
.