
- •Вступ до баз даних. Загальна характеристика основних понять
- •1.1. Розвиток основних понять представлення даних
- •Лекція 6
- •Друга стадія концептуального проектування бд. (Моделі даних субд. Представлення концептуальної моделі засобами моделі даних субд)
- •6.1. Представлення концептуальній моделі засобами моделі даних субд
- •6.2 Типові моделі даних субд і представлення концептуальної моделі
- •6.2.1. Мережева модель даних
- •6.2.2. Ієрархічна модель даних
- •6.2.3. Реляційна модель даних
- •6.2.4. Багатовимірна модель даних
- •6.3. Засоби автоматизованого проектування концептуальної моделі
- •Лекція 6
- •Друга стадія концептуального проектування бд. (Моделі даних субд. Представлення концептуальної моделі засобами моделі даних субд)
- •6.1. Представлення концептуальній моделі засобами моделі даних субд
- •6.2 Типові моделі даних субд і представлення концептуальної моделі
- •6.2.1. Мережева модель даних
- •6.2.2. Ієрархічна модель даних
- •6.2.3. Реляційна модель даних
- •6.2.4. Багатовимірна модель даних
- •6.3. Засоби автоматизованого проектування концептуальної моделі
- •Лекція 7
- •Формалізація реляційної моделі
- •7.1. Формалізований опис відношень і схеми відношень
- •7.2. Маніпулювання даними в реляційній моделі
- •7.3. Операції реляційної алгебри
- •Лекція 8
- •Використання формального апарату для оптимізації схем відношень
- •8.1. Проблема вибору раціональних схем відношень
- •8.2. Функціональні залежності (залежності між атрибутами відношення)
- •8.3. Декомпозиція схеми відношення
- •8.4 .Вибір раціонального набору схем відношень шляхом нормалізації
- •8.5. Приклад нормалізації до 3нф
- •8.6. Цілісна частина реляційної моделі. Реалізація умови цілісності даних в сучасних субд
- •Лекція 9
- •Фізичні моделі даних (внутрішній рівень)
- •9.1. Структура пам'яті еом
- •9.2. Представлення екземпляра логічного запису
- •9.3. Організація обміну між оперативною і зовнішньою пам'яттю
- •9.4. Структури зберігання даних у зовнішній пам'яті еом
- •9.4.1. Послідовне розміщення фізичних записів
- •Пошук запису із заданим значенням ключа
- •9.4.2. Розміщення фізичних записів у вигляді спискової структури
- •Пошук запису із заданим значенням ключа
- •9.4.3. Використання індексів (індексування)
- •Пошук і читання запису із заданим значенням ключа
- •Модифікація (коректування) запису
- •Видалення запису
- •Додавання запису
- •9.4.5. Розміщення записів з використанням хешування
- •Пошук запису із заданим значенням ключа і читання
- •Модифікації запису
- •Видалення запису
- •Додавання запису
- •9.4.6. Комбіновані структури зберігання
- •Лекція 10
- •Структура сучасної субд на прикладі Microsoft sql Server 2008
- •10.1 Загальна структура субд
- •10.2. Архітектура бази даних. Логічний рівень
- •Тип даних hierarchyid
- •Просторові типи даних
- •Індекси
- •Представлення
- •Складки
- •Обмеження
- •Правила
- •Значення за замовчуванням
- •10.3. Архітектура бази даних. Фізичний рівень
- •Файли і файлові групи
- •Сторінки і екстенти
- •Сторінки файлів даних
- •Організація таблиць та індексів
- •Управління роботою з екстентами і вільним місцем
- •Відстежування вільного місця
- •Лекція 11
- •Програмне забезпечення роботи з сучасними базами даних
- •11.1. Основні завдання програмного забезпечення баз даних
- •11.2. Проблеми створення і ведення реляційних баз даних
- •11.3. Поняття мови sql і його основні частини
- •11.3.1. Історія виникнення і стандарти мови sql
- •11.3.2. Переваги мови sql
- •11.3.2. Загальна характеристика sql
- •Термінологія
- •Різновиди sql
- •Лекція 12
- •Основні оператори мови sql. Інтерактивний sql
- •12.1. Загальне уявлення про основні оператори мови sql
- •12.2 Інтерактивний режим роботи з sql (інтерактивна sql)
- •12.3. Використання мови sql для вибору інформації з таблиці
- •12.4. Використання sql для вибору інформації з декількох таблиць
- •12.5. Використання sql для вставки, редагування і видалення даних у таблицях
- •Лекція 13
- •Використання мови sql у прикладних програмах
- •13.1. Програмний (вбудований) sql
- •13.2. Статичний sql
- •13.3. Динамічний sql
- •13.4. Інтерфейси програмування додатків (api). Db‑Library, odbc, oci, jdbc
- •Протокол odbc
- •Протокол jdbc
- •Бібліотека db-Library
- •Лекція 14
- •Напрями розвитку баз даних
- •14.1. Об'єктно-орієнтований підхід до організації баз даних
- •Об'єктно-орієнтоване програмування
- •Об'єктно-орієнтовані бази даних
- •Об'єктно-реляційні субд
- •14.2. Розподілені бази даних
- •14.3. Сховища даних
- •Основи криптології
8.2. Функціональні залежності (залежності між атрибутами відношення)
Нехай R(A1, A2 ..., An) – схема відношення, а X і Y – підмножини {A1, A2 ..., An}.
Функціональна залежність на відношенні R – це твердження вигляду "Якщо два кортежі R збігаються по атрибутах множини X {A1, A2 ..., An} (тобто ці кортежі мають у відповідних один одному компонентах одні і ті ж значення для кожного атрибуту множини X), то вони повинні збігатися і по атрибутах множини Y {A1, A2 ..., An}. Формально ця залежність записується виразом X Y, причому говориться, що X функціонально визначає Y.
Часто використовується інше твердження: X функціонально визначає Y або Y функціонально залежить від X (позначається X Y) тоді і лише тоді, коли кожне значення множини X відношення R пов'язане з одним значенням множини Y відношення R. Інакше кажучи, якщо два кортежі R збігаються за значенням X, вони збігаються і за значенням Y.
Зауваження. Взагалі кажучи, під терміном "відношення" можуть матися на увазі два поняття:
відношення як змінна, яка може набувати різних значень (таблиця, в рядки і стовпці якої можуть бути вписані різні значення);
відношення, як набір конкретних значень (таблиця із заповненими елементами).
Функціональні залежності характеризують всі відношення, які можуть бути значеннями схеми відношення R в принципі. Тому єдиний спосіб визначити функціональні залежності – уважно проаналізувати семантику (сенс, зміст) атрибутів.
Функціональні залежності є, зокрема, обмеженнями цілісності, тому доцільно перевіряти їх при кожному оновленні бази даних.
Приклад функціональних залежностей для відношення ІСПИТОВА ВІДОМІСТЬ
Код студента Прізвище
Код студента, Код іспиту Оцінка
Приклад функціональних залежностей для відношення СТУДЕНТ, наведених на початку цієї лекції
Код студента Прізвище
Код студента Факультет
Відмітимо, що остання залежність існує за умови, що один студент не може навчатися на декількох факультетах.
Повна множина функціональних залежностей
Для кожного відношення існує досить певна множина функціональних залежностей між атрибутами даного відношення. Причому із однієї або більше функціональних залежностей, властивих даному відношенню, можна вивести інші функціональні залежності, також властиві цьому відношенню.
Задану множину функціональних залежностей для відношення R позначимо F, повну множину функціональних залежностей, які логічно можуть бути отримані з F, називатимемо замиканням F і позначатимемо F+.
Якщо множина функціональних залежностей збігається із замиканням даної множини, то така множина функціональних залежностей називається повною.
Введені поняття дозволяють формально визначити поняття ключа.
Нехай існує деяка схема R з атрибутами A1A2...An, F – деяка множина функціональних залежностей і X – деяка підмножина R. Тоді X називається ключем, якщо, по-перше, у F+ існує залежність X A1A2...An і, по-друге, ні для якої підмножини Y, що входить в X, залежність Y A1A2...An не належить F+.
Повною функціональною залежністю називається залежність неключового атрибуту від усього складеного ключа.
Частковою функціональною залежністю називатимемо залежність неключового атрибуту від частини складеного ключа.
Для обчислення замикання множини функціональних залежностей використовуються наступні правила виведення (аксіоми Армстронга):
Нехай відома деяка схема відношення R{A1, A2 ..., An} з множиною атрибутів U={A1, A2 ..., An} і множиною функціональних залежностей F, заданих на множині U.
Аксіома рефлективності. Якщо Y входить в X, а X входить в U (Y X U), то X Y логічно випливає із F. Це правило дає тривіальні залежності, оскільки в них права частина міститься в лівій частині.
Аксіома поповнення. Якщо X Y і Z є підмножина U, то XZ YZ. У цьому випадку функціональна залежність X Y або містилася у вихідній множині F, або може бути виведена з F з використанням описуваних аксіом.
Аксіома транзитивності. Якщо X Y і Y Z, то X Z.
Справедлива наступна теорема.
Теорема. Аксіоми Армстронга є повними і надійними.
Це означає, що використовуючи їх ми виведемо всі можливі функціональні залежності, що логічно випливають із F, і не виведемо жодних зайвих залежностей.
Існує декілька інших правил виведення, які випливають із аксіом Армстронга.
Правило самовизначення. X Х.
Правило об'єднання. Якщо X Y і X Z, то X YZ.
Правило псевдотранзитивності. Якщо X Y і WY Z, то XW Z.
Правило композиції. Якщо X Y і Z W, то X W YW.
Правило декомпозиції. Якщо X Y і Z входить в Y, то X Z.
Треба відзначити, що обчислення замикання множини функціональних залежностей є трудомістким завданням при чималій кількості атрибутів. Це пояснюється великою кількості тривіальних залежностей.