- •Теория нормализации.
- •Ненормализованная
- •Приведение к I Нормальной форме
- •Алгоритм приведения отношения к I НФ:
- •2. Атрибуты исходного отношения, не входящие в повторяющуюся группу, образуют отдельное отношение, ключом
- •Приведение отношения ко II-й нормальной форме.
- •Поставка (Шифр изделия*, Шифр поставщика*, Наименование изделия, Сведения о поставщике, Цена, Количество)
- •Нарушение условий II НФ приводит к ряду неудобств:
- •Алгоритм приведения отношений ко II НФ (с наименьшим количеством проекций):
- •2.Выписать все неполные функциональные зависимости от частей ключа
- •3.Сгруппировать полученные зависимости, таким образом, чтобы в одной группе содержались все функциональные зависимости
- •4.Каждой группе поставить в соответствие одну проекцию исходного отношения.
- •Деятельность программиста (Номер программиста*, Номер программы*, Имя программиста, Имя программы, Количество рабочих часов)
- •Полная функциональная зависимость
- •Отношения во II НФ:
- •Примечание: Если ключ отношения содержит один элемент, то есть не является сцепленным, то
- •Приведение отношения ко III НФ.
- •Устранение транзитивной зависимости состоит в расщеплении исходного отношения на два.
- •Студент (Номер зачётной книжки*, Имя студента, Стипендия, Номер курсового проекта, Дата сдачи)
- •Недостатки отношения Студент:
- •Отношение R задано в III нормальной форме, если оно задано во II НФ,
- •Алгоритм приведения отношений к III НФ.
3.Сгруппировать полученные зависимости, таким образом, чтобы в одной группе содержались все функциональные зависимости с одинаковыми левыми частями.
(Шифр поставщик*, Шифр изделия*)
1 Количество
(Шифр поставщика*, Шифр изделия*)
Цена
2
3
Шифр изделия* |
|
|
|
Наименование |
изделия |
|
|
|
|
Шифр поставщика* |
|
|
|
Сведения о |
поставщике |
|
|
|
|
4.Каждой группе поставить в соответствие одну проекцию исходного отношения.
Отношения во II НФ:
Поставка (Шифр изделия*, Шифр поставщика*, Количество, Цена)
Изделие (Шифр изделия*, Наименование) Поставщик (Шифр поставщика*, Сведения о поставщике)
Полученные проекции должны удовлетворять следующим свойствам:
•Каждая проекция- это отношения во II НФ;
•результат сцепления всех полученных проекций является исходным отношением.
Деятельность программиста (Номер программиста*, Номер программы*, Имя программиста, Имя программы, Количество рабочих часов)
№
программис
т
№
программы
Имя
программис
т
Имя
программы
Кол-во раб часов
*
*
Полная функциональная зависимость
(Номер программиста*, |
|
|
Кол-во рабочих часов |
|
Номер программы*) |
|
|
||
|
|
|
||
Неполные функциональные зависимости: |
||||
Номер программиста* |
|
|
Имя программиста |
|
|
|
|||
Номер программы* |
|
|
Имя программы |
|
|
|
|||
Отношения во II НФ:
Прогр(Номер программиста*,Номер программы*, Количество рабочих часов)
Программисты(Номер программиста*, Имя программиста)
Программы(Номер программы*, Имя программы)
Примечание: Если ключ отношения содержит один элемент, то есть не является сцепленным, то это отношение задано во II НФ, так как в этом случае атрибуты полностью зависят от ключа
Студент (Номер зачётной книжки*, Имя студента, Стипендия, Номер курсового проекта, Дата сдачи)
Отношение Cтудент находится в I и II НФ.
Приведение отношения ко III НФ.
Приведение к III НФ состоит в устранении транзитивной зависимости.
Пусть А, В и С три атрибута или три набора атрибутов отношения R. Если С зависит от В, а В зависит от А, то С зависит от А. Если при этом обратное соответствие неоднозначно ( т. е. А не зависит от В или В не зависит от С), то говорят, что С транзитивно зависит от А.
А*
В
С
Устранение транзитивной зависимости состоит в расщеплении исходного отношения на два.
А* |
В* |
|
В |
С |
|
Студент (Номер зачётной книжки*, Имя студента, Стипендия, Номер курсового проекта, Дата сдачи)
№ зачетной |
* |
книжки |
Имя
студента
Стипенди
я
№
проекта
Дата
сдачи
Недостатки отношения Студент:
•До момента привлечения конкретного студента к работе над данным курсовым проектом, дату сдачи некуда было записать.
•Если вдруг студенты прекратили работу над данным курсовым проектом и проект приостановлен для привлечения новых студентов, уничтожаются все данные, содержащие дату сдачи проекта.
•Изменение даты сдачи проекта приводит к необходимости поиска всех записей содержащих эту дату и их модификации.
