Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Друга і третя НФ. Алгоритм декомпозиції
DEF. Відношення знаходиться в Другій Нормальній Формі (2НФ), якщо воно знаходиться в 1НФ і з нього виключені всі функціонально неповні залежності. DEF. БД знаходиться в Другій Нормальній Формі (2НФ), якщо всі її відношення знаходяться в 2НФ. DEF. Відношення знаходиться в Третій Нормальній Формі (3НФ), якщо воно знаходиться в 2НФ і з нього виключені всі транзитивні функціональні залежності. DEF. БД знаходиться в Третій Нормальній Формі (3НФ), якщо всі її відношення знаходяться в 3НФ. Основним прийомом нормалізації відношення є декомпозиція без втрат. Опишемо коротко загальний алгоритм декомпозиції. Скорочено аномальну ФЗ називатимемо неповну або транзитивну залежність. 1. Для кожного детермінанта аномальної функціональної залежності виписується своє відношення з цим детермінантом як ПК відношення. 2. Виписується відношення зв'язку, в яке включаються всі атрибути, що не увійшли до відношень з пункту 1, плюс до них всі ПК відношень з пункту 1 (поля зв'язку). Слід пам'ятати, що нормалізація 1НФ проводиться послідовно 1НФ —» 2НФ —» 3НФ, тобто спочатку проводиться декомпозиція 1НФ по всіх функціонально неповних залежностях, а потім, отримані відношення розбиваються з метою позбавлення від транзитивних залежностей. Застосуємо цей алгоритм до відношенню ВИКЛАДАЧ_ДИСЦИПЛІНА. · Приведемо відношення до 2НФ, тобто позбавимося від функціонально неповних залежностей: Назва предмета → К-сть годин Особистий номер → <Прізвище, Посада, Кафедра, Оклад, Телефон> В результаті отримаємо три відношення: ВИКЛАДАЧ = < Особистий номер, Прізвище, Посада, Оклад, Кафедра, Телефон>; ПРЕДМЕТ = <Назва предмету, К-сть годин>; НАВАНТАЖЕННЯ = < Особистий номер (FK), Назва предмету (FK)> Знаком FK позначені поля зв’язку, що називаються зовнішніми ключами (foreign key). · Два останніх відношення не містять транзитивних залежностей, тому знаходяться в 3НФ. Відношення ВИКЛАДАЧ містить три транзитивних залежності: Посада → Оклад; Кафедра → Телефон; Телефон → Кафедра. Примінимо алгоритм декомпозиції для цих ФЗ. Строге слідування алгоритму потребує розбиття відношення ВИКЛАДАЧ на чотири ТАРИФНА_СІТКА = < Посада, Оклад> ТЕЛ_ДОВ1 = < Кафедра, Телефон (FK)> ТЕЛ_ДОВ2 = < Телефон, Кафедра (FK)>
ВИКЛАДАЧ = < Особистий номер, Прізвище, Посада, Кафедра (FK)>. В останнє відношення замість атрибуту Кафедра можна включити атрибут Телефон. Включення обох атрибутів у відношення ВИКЛАДАЧ надлишково. Більш того, можна в результаті аналізу наочної області і переговорів із замовником БД відмовитися від однієї сторони взаємно-однозначної залежності. Тоді відповідне відношення ТЕЛ_ДОВ1 або ТЕЛ_ДОВ2 пропаде. Проте якщо необхідно зберегти в схемі РБД обидві залежності, то доведеться залишити обидва відношення. В результаті 3НФ РБД ВИКЛАДАЧ_ПРЕДМЕТ складається з шести відношень ПРЕДМЕТ = < Назва предмету, К-сть годин>; НАВАНТАЖЕННЯ = < Особистий номер (FK), Назва предмету (FK)> ТАРИФНА_СІТКА = < Посада, Оклад> ТЕЛ_ДОВ1 = < Кафедра, Телефон (FK)> ТЕЛ_ДОВ2 = < Телефон, Кафедра (FK)> ВИКЛАДАЧ = < Особистий номер, Прізвище, Посада (FK), Кафедра (FK)>.
Нормальна форма Бойса-Кодда В області реляційних БД Коддом доведено твердження про те, що більшість аномалій в БД будуть усунені в разі належної декомпозиції кожного відношення в нормальну форму Бойса - Кодда (НФБК). DEF. Відношення знаходиться в НФБК тоді і лише тоді, коли воно знаходиться в 3НФ, і кожен його детермінант є так само і можливим первинним ключем. Відношення ВИКЛАДАЧ_ПРЕДМЕТ не знаходиться в НФБК. Для доказу порівняємо можливі ключі і детермінанти (таблиця. 3). Проте РБД ВИКЛАДАЧ_ПРЕДМЕТ, що складається з шести відношень, знаходиться в НФБК, оскільки кожне її відношення знаходиться в НФБК (див. таблиці. 4). Таблиця 3
Таблиця 4
Може здатися, що будь-яке відношення, що знаходиться в 3НФ знаходиться і в НФБК. Проте це не так. Приклади слід шукати у відношеннях з декількома можливими первинними ключами.
Розглянемо процес здачі студентом сесії. Структура відношення, що відображує це явище, може мати вигляд: УСПІШНІСТЬ = <№Зал.Кн., ID_студента, Дисципліна, Дата, Оцінка> Під ID_студента розуміється деякий номер, який привласнений студентові під час вступу, наприклад, в деканаті (залікова книжка може бути загублена, видана нова з іншим номером, а ID не міняється протягом всього періоду навчання). Структура ФЗ в цьому випадку зображена на рис. 8. Множина ВПК: {<№Зал.Кн.>, < ID_студента >} У відношенні успішність немає ні функціонально неповних, ні транзитивних залежностей. Дійсно, взаємно-однозначна ФЗ №Зал.Кн. ID _Студента не може бути ідентифікована як неповна, оскільки не є залежністю між неключовими атрибутами. Рис. 8 Таким чином, відношення УСПІШНІСТЬ знаходиться в 3НФ. В той же час воно не знаходиться в НФБК, оскільки безліч ВПК і Детермінантів не збігається (таблиця. 5). Таблиця 5
Щоб привести відношення УСПІШНІСТЬ до НФБК слід розділити його два одним з наступних способів: СТУДЕНТ1 = < №Зал.Кн., ID_студента > УСПІШНІСТЬ = < №Зал.Кн., Дисципліна, Дата, Оцінка> або СТУДЕНТ2 = < ID_студента, №Зал.Кн.> УСПІШНІСТЬ = < ID_студента, Дисципліна, Дата, Оцінка> З точки зору теорії нормалізації ці схеми рівнозначні, тому слід робити остаточний вибір з додаткових міркувань, наприклад, якщо при втраті залікових книжок їх відновлюють під іншим номером, то переважно друга схема. Відзначимо, що у будь-якому випадку ми відмовилися від одного з напрямів взаємно-однозначної відповідності, інакше нам було б потрібно обидва відношення СТУДЕНТ1 і СТУДЕНТ2.
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-26; просмотров: 182; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.128.129 (0.011 с.) |