
- •Методичні вказівки до виконання курсової роботи з дисципліни «Бази даних»
- •1 Мета та завдання курсової роботи
- •2 Основні етапи виконання курсової роботи
- •2.1 Концептуальне проектування бази даних
- •2.1.1 Аналіз предметної області
- •2.1.2 Визначення типів сутностей та зв’язків
- •2.1.3 Визначення атрибутів сутностей та їх доменів
- •2.1.4 Створення er-діаграми
- •2.2 Логічне проектування бази даних
- •2.2.1 Створення логічної моделі даних
- •2.2.2 Нормалізований набір відношень
- •2.3 Фізичне проектування
- •2.3.1 Проектування бази даних
- •2.3.2 Розробка механізмів захисту
- •3 Вимоги до оформлення пояснювальної записки курсової роботи
2.1.4 Створення er-діаграми
З метою одержання наглядного представлення основних сутностей та типів зв’язків використовують ЕR-діаграму, яка дозволяє графічно подати всі елементи інформаційної моделі. Для цього потрібно користуватися умовними позначками, які використовують в методології інформаційного проектування.
На діаграмах ER-моделі сутність зображується у вигляді прямокутника з іменем сутності в середині нього, а кожен слабкий тип сутностей – у вигляді прямокутника з подвійним контуром. Атрибути ‑ у вигляді еліпсів, які приєднані лініями до відповідної сутності (ім’я атрибута в середині еліпса). Багатозначний атрибут позначають у вигляді еліпса з подвійним контуром. Якщо атрибут є складеним, то його атрибути-компоненти приєднують до нього у вигляді еліпсів. Ім’я атрибута, який є первинним ключем сутності, підкреслюється. Зв’язок між двома сутностями рисують у вигляді ромба із вказаним у ньому іменем зв’язку. Наприклад:
Рисунок 2.1 − Зображення зв’язку між двома сутностями на ЕR-діаграмі
Для зниження рівня деталізації на окремій ER-діаграмі часто вказуються лише ті атрибути, які є первинними ключами зображених сутностей. А в деяких випадках атрибути не зображуються зовсім. Приклад зображення ER-діаграми наведено у додатку Д.
2.2 Логічне проектування бази даних
2.2.1 Створення логічної моделі даних
На цьому етапі потрібно перетворити концептуальну модель даних в логічну, вдосконаливши її. Це передбачає виконання наступних дій:
видалення зв’язків «багато-до-багатьох»;
видалення складних зв’язків;
видалення множинних атрибутів.
Якщо в концептуальній моделі даних існують зв’язки типу «багато-до-багатьох», то їх потрібно видалити шляхом визначення деякої проміжної сутності. Зв’язок «багато-до-багатьох» замінюється на два зв’язки типу «один-до-одного» до новоствореної сутності.
Складним називається зв’язок, який існує між трьома і більше типами сутностей. Якщо в концептуальній моделі існує складний зв’язок, то його потрібно замінити декількома зв’язками типу «один-до-одного» до новоствореної проміжної сутності.
Множинними називаються атрибути, які можуть мати одночасно декілька значень для одного і того ж атрибута сутності. Якщо в концептуальній моделі існують множинні атрибути, то їх потрібно перетворити шляхом визначення нової сутності. Наприклад, атрибут Телефон деякої сутності є множинним, тобто містить декілька номерів телефонів. В такому випадку цей атрибут потрібно видалити і створити нову сутність Телефон, яка буде містити єдиний атрибут Номер_телефону. Причому, між попередньою і новою сутностями буде зв’язок типу «один-до-багатьох».
2.2.2 Нормалізований набір відношень
Цей етап передбачає створення відношень на основі сутностей та зв’язків. Зв’язки між сутностями моделюються за допомогою механізму первинних та зовнішніх ключів. Для кожної сильної сутності потрібно створити відношення, яке буде містити всі прості атрибути цієї сутності. Для кожної слабкої сутності необхідно створити відношення, яке буде містити всі прості атрибути цієї сутності, а також додатково помістити в якості зовнішніх ключів первинні ключі її батьківських сутностей. Така процедура застосовується до усіх сутностей, які спроектовані у логічній моделі даних.
Опис всіх відношень потрібно задокументувати ( додаток Д).
Після цього потрібно використати хоча три нормальних форми для нормалізації відношень. Цей процес використовується для виключення дублюючих даних та протиріч у моделі даних.
Перша нормальна форма передбачає видалення із відношення груп атрибутів, які повторюються. Відношення буде знаходитись у першій нормальній формі, якщо всі його атрибути прості. Перетворення відношення до першої нормальної форми може привести до збільшення кількості атрибутів відношення і зміни первинного ключа.
Наприклад, відношення Студент = (Номер, Прізвище, Ім’я, По батькові, Дата, Група) знаходиться в першій нормальній формі.
Щоб розглянути питання приведення відношень до другої нормальної форми(2НФ), необхідно дати пояснення для таких понять, як функціональна залежність і повна функціональна залежність.
Неключові атрибути логічно зв’язані із первинним ключем, цей зв’язок носить характер функціональної залежності атрибутів.
Функціональна залежність атрибутів ‑ залежність, при якій у відношенні певному значенню ключового атрибута відповідає тільки одне значення не ключового атрибута.
У разі складеного первинного ключа вводиться поняття повної функціональної залежності. Повна функціональна залежність неключових атрибутів полягає в тому, що кожен неключовий атрибут функціонально залежить від ключа, але не знаходиться у функціональній залежності ні від якої його частини.
Відношення знаходитиметься в другій нормальній формі, якщо воно знаходиться в першій нормальній формі, і кожен неключовий атрибут функціонально повно залежить від складового первинного ключа.
Наприклад, відношення Студент = (Номер, Прізвище, Ім’я, По батькові, Дата, Група) знаходиться в першій і в другій нормальній формі, оскільки не ключові атрибути однозначно визначені і функціонально залежать від ключа Номер. Відношення Успішність = (Номер, Прізвище, Ім’я, По батькові, Дисципліна, оцінка) знаходиться в першій нормальній формі і має складений ключ Номер+Дисципліна. Це відношення не знаходиться в другій нормальній формі, оскільки атрибути Прізвище, Ім’я, По батькові не знаходяться в повній функціональній залежності з складеним первинним ключем відношення.
Поняття третьої нормальної форми(3НФ) грунтується на понятті нетранзитивної залежності. Транзитивна залежність спостерігається в тому випадку, якщо один з двох не ключових атрибутів залежить від первинного ключа, а інший не ключовий атрибут залежить від першого не ключового атрибута.
Відношення знаходитиметься в третій нормальній формі, якщо воно знаходиться в другій нормальній формі, і кожен неключовий атрибут нетранзитивно залежить від первинного ключа.
Наприклад, якщо до складу не ключових атрибутів відношення Студент включити прізвище старости групи (Староста), яке визначається тільки номером групи, то одне і те ж прізвище старости буде багато разів повторюватися в різних екземплярах цього відношення. В цьому випадку спостерігаються ускладнення в коректуванні прізвища старости у разі призначення нового старости, а також невиправдана витрата пам’яті для зберігання дублюючої інформації.
Для усунення транзитивної залежності не ключових атрибутів необхідно провести "розщеплювання" початкового відношення. В результаті розщеплювання частина атрибутів віддаляється з початкового відношення і включається до складу інших (можливо, знов створених) відношень.
Наприклад, відношення Студент, яке містить транзитивну залежність не ключових атрибутів представлено у вигляді двох відношень Студент і Група, склад атрибутів яких тотожний початковому відношенню. Відношення Студент = (Номер, Прізвище, Ім’я, По батькові, Дата, Група) знаходиться одночасно в першій, другій і третій нормальній формі.
Рисунок 2.2 − Приклад "розщеплювання" відношення
Процедуру нормалізації потрібно виконати для усіх відношень та описати її. Опису усіх відношень бази даних разом із їх атрибутами наведено у додатку Е.