- •39 Інформаційні системи та субд Історія розвитку
- •Основні функції сучасної субд
- •Моделі даних
- •Ранні підходи до організації бд
- •Принципи концептуального проектування
- •Базові поняття моделі «Сутність-зв'язок»
- •Реляційна модель даних Базові поняття реляційної моделі даних
- •Властивості відношень
- •Реляційна модель даних: три складові
- •Проектування рбд за допомогою концепції функціональних залежностей Поняття функціональної залежності
- •Друга і третя нф. Алгоритм декомпозиції
- •Нормальна форма Бойса-Кодда
- •Багатозначні залежності. Четверта нормальна форма
- •Надлишкові фз. Мінімальне покриття
- •Перетворення концептуальної моделі в реляційну
- •1:*, Кп багатозв'язкової суті є необов'язковим.
- •Перетворення відношень супертип - підтип
- •Приклад проектування рбд на основі концептуальної моделі
- •Лабораторний практикум по проектуванню рбд Лабораторна робота №1
- •Лабораторна робота №2
- •Лабораторна робота № 3
- •Контрольні завдання по проектуванню рбд
Властивості відношень
Тепер дамо теоретико-множинний опис поняття відношення.
DEF. N-арним відношенням R називають підмножину декартової похідної D_1 X D_2 X … X D_N множин D_1, D_2, …, D_N (N>=1), необов’язково різних.Вихідні множини D_1, D_2, …, D_N називаються доменами.
Коротко обговоримо витікаючі з цього визначення фундаментальні властивості відношень.
Відсутність кортежів-дублікатів виходить з визначення відношення як безлічі кортежів. З цієї властивості витікає наявність в кожного відношення так званого первинного ключа - мінімального набору атрибутів, значення яких однозначно визначають кортеж відношення.
Рис. 6
Для кожного відношення, принаймні, повний набір його атрибутів унікальний. Проте при формальному визначенні первинного ключа потрібна "мінімальність", тобто в набір атрибутів первинного ключа не повинні входити такі атрибути, які можна відкинути без збитку для основної властивості, - однозначно визначати кортеж.
Поняття первинного ключа є виключно важливим у зв'язку з поняттям цілісності баз даних. Слід зазначити, що в багатьох практичних реалізаціях РСУБД допускається порушення властивості унікальності кортежів для проміжних відношень, що породжуються неявно при виконанні запитів. Такі відношення є не множиною, а мультимножиною.
Відсутність впорядкованості кортежів також є наслідком визначення відношення-екземпляра як множина кортежів. Відсутність вимоги до підтримки порядку на множині кортежів відношення дає додаткову гнучкість СУБД при зберіганні баз даних в зовнішній пам'яті і при виконанні запитів до бази даних.
Відсутність впорядкованості атрибутів. Для посилання на значення атрибуту в кортежі відношення завжди використовується ім'я атрибуту.
Атомарність значень атрибутів означає, що атрибут не може бути відношенням. Ця властивість виходить з визначення домену як потенційної множини значень простого типа даних.
DEF. Відношення знаходиться в першій нормальній формі (1НФ), якщо всі його атрибути атомарні.
Відношення, що знаходиться в 1НФ, також називають універсальним або нормалізованим відношенням. Приклад ненормалізованного відношення наведено в табл. 1.
Таблиця 1
Кафедра |
Тел. |
Особистий номер |
Прізвище |
Посада |
Оклад |
Назва предмета |
К-сть годин |
МО ЕОМ |
4-89 |
201 |
Фролов |
доцент |
380 руб. |
СПО БКС |
36 72 |
202 |
Костін |
доцент |
380 руб. |
Алгебра |
48 | ||
ПМ |
4-88 |
301 |
Бойко |
професор |
520 руб. |
Алгебра |
48 |
Фізики |
4-12 |
401 |
Глазов |
асистент |
270 руб. |
Фізика Оптика |
52 30 |
Нормалізовані відношення складають основу класичного реляційного підходу до організації баз даних. Вони володіють деякими обмеженнями (не будь-яку інформацію зручно представляти у вигляді плоских таблиць), але суттєво спрощують маніпулювання даними.
Реляційна модель даних: три складові
Модель даних описує деякий набір родових понять і ознак, якими повинні володіти всі конкретні СУБД і керовані ними бази даних, якщо вони ґрунтуються на цій моделі. Наявність моделі даних дозволяє порівнювати конкретні реалізації, використовуючи один спільну мову.
Термін «модель даних» був введений в ужиток стосовно до реляційних систем і найбільш ефективно використовується саме в цьому контексті, хоча можна говорити про ієрархічної, мережевої, і навіть концептуальної моделях даних.
Найбільш поширена трактування реляційної моделі даних, очевидно, належить Дейту. Згідно Дейту, реляційна модель складається з трьох частин, що описують різні аспекти реляційного підходу: структурної частини, маніпуляційної частини і цілісної частини.
У структурній частині моделі фіксується, що єдиною структурою даних, що використовується в реляційних БД, є нормалізоване n-арне відношення.
У маніпуляційній частині моделі вводяться два фундаментальних механізми маніпулювання реляційними БД - реляційна алгебра і реляційне числення. Перший механізм базується на класичній теорії множин, а другий - на класичному логічному апараті обчислення предикатів першого порядку. Ця частина реляційної моделі вводить міру реляційності будь-якого конкретного мови РБД: мова називається реляційною, якщо вона має не меншу потужність, ніж реляційна алгебра або реляційне числення.
У цілісній частині реляційної моделі даних фіксуються дві базові вимоги цілісності, які повинні підтримуватися в будь реляційної СУБД.
Перша - вимога цілісності сутностей: будь-яке відношення має володіти первинним ключем.
Друге - вимога цілісності по посиланнях. На відміну від теоретико-графових моделей в реляційній моделі зв’язки між відношеннями підтримуються неявно. У кожному зв’язку одне відношення виступає як основне, а інше в ролі підлеглого, тобто один кортеж основного відношення може бути пов’язаний з декількома кортежами підлеглого відношення.Таким чином, основними в реляційних БД є зв'язки типа "один-один", зв'язки типа "безліч-безліч" моделюються за допомогою додаткової таблиці зв'язку (див. тему "Перетворення концептуальної моделі в реляційну"). Для підтримки зв'язків в схему підлеглого відношення додають первинний ключ основного відношення. Атрибути такого роду називаються зовнішнім ключем.
Вимога цілісності по посиланням полягає в тому, що для кожного значення зовнішнього ключа підлеглого відношення в основному відношенні повинен знайтися кортеж з таким же значенням первинного ключа, інакше значення зовнішнього ключа підлеглого відношення має бути невизначеним (тобто ні на що не вказувати).
Обмеження цілісності сутності і по посиланнях повинні підтримуватися СУБД.
Для дотримання цілісності сутності досить гарантувати відсутність в будь-якому відношенні кортежів з одним і тим же значенням первинного ключа.
З цілісністю по посиланнях справи йдуть декілька складніше.
Зрозуміло, що при оновленні відношення (вставці нових кортежів або модифікації значення зовнішнього ключа в існуючих кортежах), що посилається, досить стежити за тим, щоб не з'являлися некоректні значення зовнішнього ключа. Але як бути при видаленні кортежу з відношення, на яке веде посилання?
Тут існують три підходи, кожен з яких підтримує цілісність по посиланням.
1. Забороняється проводити видалення кортежу з основного відношення, якщо на нього існують посилання.
2. При видаленні кортежу, на який є посилання, у всіх кортежах підлеглого відношення, що посилаються, значення зовнішнього ключа автоматично стає невизначеним.
3. Каскадне видалення полягає в тому, що при видаленні кортежу з основного відношення, автоматично видаляються всі кортежі, що посилаються, з підлеглого відношення.
У розвинених реляційних СУБД зазвичай можна вибрати спосіб підтримки цілісності по посиланнях для кожної окремої ситуації визначення зовнішнього ключа. Звичайно, для прийняття такого рішення необхідно аналізувати вимоги конкретної прикладної області.