Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторн_ роботи 1-3.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.51 Mб
Скачать

1. Логічне проектування реляційної бд.

Фаза логічного проектування БД вимагає наступних дій:

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

– перевірка моделі за допомогою концепції послідовної нормалізації;

– перевірка підтримки цілісності даних.

2. Спрощення концептуальної моделі даних.

Для перетворення концептуальної моделі в реляційну необхідно спростити концептуальну модель, а саме спростити або виключити деякі її структури даних, що не підходять для реляційних СУБД, а саме:

– зв'язки типу "багато до багатьох";

– складні зв'язки;

– рекурсивні зв'язки;

– зв'язки з атрибутами;

– множинні атрибути;

– надлишкові зв'язки.

2.1. Виключення зв'язку типу "багато до багатьох".

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

Приклад. Викладач може читати кілька курсів, а той самий курс може читатися декількома викладачами (рис. 3.1).

Уведемо додатковий об'єкт ЧИТАННЯ й визначимо нові два зв'язки:

– Викл_читає типу 1:N між об'єктами ВИКЛАДАЧ і ЧИТАННЯ;

– Курс_читається типу 1:M між об'єктами ЧИТАННЯ й КУРС.

2.2. Виключення складних зв'язків.

Складним вважається зв'язок, у якому беруть участь більше двох об'єктів (N-арний зв'язок). Виключення такого зв'язку з концептуальної моделі здійснюється за наступним сценарієм:

– до моделі вводиться новий об'єкт;

– складний зв'язок заміняється бінарними зв'язками типу "один до багатьох" між вихідними об'єктами та новоствореним об'єктом, причому кількість бінарних зв'язків дорівнює ступеню складного зв'язку.

Приклад. Нехай заняття за деяким курсом ведуться деяким викладачем у деякій лабораторії.

Концептуальна модель у цій ситуації містить структуру даних, що включає тернарний зв'язок:

Тернарний зв'язок, що відображає відношення між викладачем, заняттями та лабораторією, заміняється трьома бінарними зв'язками типу "один до багатьох", для чого вводиться додатковий об'єкт ЛАБ_ЗАНЯТТЯ:

– зв'язок ВИКЛ_ВЕДЕ для об'єктів ВИКЛАДАЧ і ЛАБ_ЗАНЯТТЯ;

– зв'язок В для об'єктів ЛАБОРАТОРІЯ та ЛАБ_ЗАНЯТТЯ;

– зв'язок ВЕДУТЬСЯ для об'єктів ЗАНЯТТЯ й ЛАБ_ЗАНЯТТЯ.

2.3. Виключення рекурсивних зв'язків.

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

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

Введемо додатковий об'єкт РОЛЬ_СПІВРОБІТНИКА та встановимо наступні зв'язки:

– ПРАЦЮЄ – зв'язок типу "один до багатьох";

– КЕРУЄ – зв'язок типу "один до одного".

2.4. Виключення зв'язку з атрибутами.

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

Приклад. Розглянемо ситуацію, де зв'язок ЧИТАЄ має свій атрибут Час.

Для виключення з моделі такого зв'язку введемо додатковий об'єкт ЛЕКЦІЯ та припишемо йому атрибут Час. Між вихідними та новим об'єктом встановимо наступні зв'язки:

– Читає_в – зв’язок типу 1:N між об'єктами ВИКЛАДАЧ і ЛЕКЦІЯ;

– Читається – зв'язок типу 1:N між об'єктами КУРС і ЛЕКЦІЯ.

2.5. Виключення множинних атрибутів.

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

Приклад. Допустимо, що в моделі присутня ВІДДІЛ організації, що має атрибут Номер_телефону. Якщо у відділі встановлений не один, а кілька телефонів, то даний атрибут має множинний тип. Для його виключення з моделі введемо додатковий об'єкт ТЕЛЕФОН і встановимо його зв'язок з об'єктом ВІДДІЛ.

2.6.Виключення надлишкових зв'язків.

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