МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Bauman Moscow State Technical University
1
Б е л и к ов А н д р е й И в а н ов и ч , к . т. н . , д о ц е н т
к а ф е д р а М Т - 11 " Эл е к т р о н н ы е т ех н о л о г и и в м а ш и н о с т р о е н и и "
Информационное
обеспечение разработок
Москва, 2015
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
2
АНОМАЛИИ МОДИФИКАЦИИ
– удаление строки с потерей информации о двух и более сущностях.
Аномалия вставки – при вставке строки необходимо добавить данные о двух и более сущностях.
Аномалия удаления
ФАКУЛЬТЕТ (КодСтудента, Факультет, ПлатаЗаОбучениеГод)
КодСтудента
Факультет
ПлатаЗаОбучениеГод
110
МТ
1500
111
СМ
1300
112
ИБМ
1800
КодСтудента
Факультет
Факультет
ПлатаЗаОбучениеГод
110
МТ
МТ
1500
111
СМ
СМ
1300
112
ИБМ
ИБМ
1800
СТУДЕНТ-ФАКУЛЬТЕТ (КодСтудента, Факультет)
ФАКУЛЬТЕТ-ПЛАТА (Факультет, ПлатаЗаОбучениеГод)
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
3
Нормализация – устранение аномалий модификации и выявление отдельных
независимых сущностей с вынесением их в отдельные таблицы.
ЦЕЛЬ – уменьшение объема дублируемой информации, увеличение гибкости работы
с данными, снижение вероятности возникновения ошибок при заполнении БД.
НОРМАЛЬНЫЕ ФОРМЫ ОТНОШЕНИЙ
1НФ (первая нормальная форма)
2НФ (вторая нормальная форма)
3НФ (третья нормальная форма)
4НФ (четвертая нормальная форма)
НФБК (нормальная форма Бойса-Кодда)
5НФ (пятая нормальная форма)
ДКНФ (доменно-ключевая нормальная форма)
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Теория построения и разработки баз данных
4
Аппарат для анализа схемы БД и оптимизации –
функциональные зависимости (ФЗ)
Рассматриваются по отношению к
ИДЕНТИФИЦИРУЮЩЕЙ функции ключа.
Анализируются функциональные зависимости неключевых
атрибутов от ключа.
ТИПЫ ФЗ:
1. Полная – (НЕ полная) Ф.Зависимость.
2. Транзитивная Ф.Зависимость.
3. Многозначные Зависимости.
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Первая нормальная форма
5
1НФ – Первая нормальная форма
1НФ
– Первая нормальная форма (подвержена аномалиям, не
оптимальна)
Отношение R находится в первой нормальной форме, когда удовлетворяет
следующим требованиям (сформулированным Э.Ф.Коддом):
1.
2.
3.
4.
5.
6.
7.
В строках располагается информация о сущности.
В столбцах содержатся данные об атрибутах (свойствах) сущности.
В ячейках размещаются только одиночные значения.
Значения записей столбца имеют один тип данных.
Каждый столбец имеет уникальное имя в пределах таблицы.
Таблица не может содержать двух идентичных (одинаковых) строк.
Порядок следования столбцов и строк не имеет значения.
6
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
2НФ – Вторая нормальная форма
1НФ – проблемы для Таблицы «Секции» (наличие аномалий):
*при удалении студента «122» будет потеряна информация о плате в секции «бокс»
*нельзя ввести данные о новой секции, пока в нее не будет записан студент
Причины возникновения: функциональная зависимость атрибутов от части ключа
(Секция->Плата). «Плата» зависит частично от ключа «КодСтудента, Секция» !!!
СЕКЦИИ (КодСтудента, Секция, Плата)
СТУДЕНТ-СЕКЦИЯ
(КодСтудента, Секция)
СЕКЦИЯ-ПЛАТА
(Секция, Плата)
2НФ
КодСтудента
Секция
Плата
110
плавание
150
110
футбол
110
111
волейбол
120
111
плавание
150
122
бокс
100
112
шахматы
100
– Вторая нормальная форма (снимает проблемы композитных ключей)
Отношение R находится во второй нормальной форме, когда находится в 1НФ
и каждый из неключевых атрибутов полностью зависит от всего ключа.
7
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
3НФ – Третья нормальная форма
ПРОЖИВАНИЕ
(КодСтудента, Общежитие, Плата)
КодСтудента
Общежитие
Плата
100
№9
120
110
№4
110
111
№9
120
121
№4
110
132
№8
100
142
№5
100
2НФ – проблемы для Таблицы «Проживание»: (наличие аномалий):
*при удалении студента «142» будет потеряна информация о плате в общежитии №5
*нельзя ввести данные о новом общежитии, пока не поселится студент
Причины возникновения: транзитивная функциональная зависимость неключевого
атрибута «Плата» от ключа «КодСтудента»
Функциональные зависимости: КодСтудента->Общежитие и Общежитие->Плата
Транзитивная зависимость: КодСтудента->Общежитие->Плата
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
8
3НФ – Третья нормальная форма
РЕШЕНИЕ – Декомпозиция 2НФ с аномалиями на новые отношения:
ПРОЖИВАНИЕ
(КодСтудента, Секция, Плата)
СТУДЕНТ-ПРОЖИВАНИЕ
(КодСтудента, Общежитие)
3НФ
СТОИМОСТЬ ПРОЖИВАНИЯ
(Общежитие, Плата)
– Третья нормальная форма (решение для транзитивных
зависимостей)
Отношение R находится в третьей нормальной форме, если находится во
2НФ и каждый неключевой атрибут не является транзитивно
зависимым от первичного ключа.
9
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
НФБК – Нормальная форма Бойса-Кодда
1. Студент может посещать один или несколько учебных курсов.
2. На учебном курсе может быть несколько преподавателей.
3. Каждый преподаватель может осуществлять научное руководство над студентом только в
рамках одного учебного курса.
КодСтудента
УчебныйКурс
Преподаватель
100
Физика
Бойль
110
Химия
Клапейрон
111
Физика
Мариотт
121
Физика
Бойль
133
Биология
Дарвин
133
Химия
Клапейрон
НаучныйРуководитель
(КодСтудента, УчебныйКурс,
Преподаватель)
3НФ – проблемы для Таблицы «НаучныйРуководитель»:
*при удалении студента «111» будет потеряна информация о том, что
«Мариотт» преподает физику
Функциональные зависимости:
Преподаватель->УчебныйКурс
КодСтудента не определяет УчебныйКурс и не определяет Преподавателя
Причины аномалии: детерминант «Преподаватель» не является ключом
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
НФБК – Нормальная форма Бойса-Кодда
РЕШЕНИЕ – Декомпозиция 3НФ с аномалиями на новые отношения:
НаучныйРуководитель
(КодСтудента, УчебныйКурс, Преподаватель)
Студент-Руководитель
(КодСтудента, Преподаватель)
Руководитель-УчебныйКурс
(Преподаватель, УчебныйКурс)
Детерминант –
атрибут, от которого полностью функционально зависит другой атрибут.
Отношение R находится в нормальной форме Бойса-Кодда в том
случае, если каждый детерминант является ключом.
10
11
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
4НФ – Четвертая нормальная форма
СТУДЕНТ
(КодСтудента, УчебныйКурс, Секция)
КодСтудента
УчебныйКурс
Секция
100
Физика
Плавание
100
Химия
Плавание
111
Физика
Плавание
111
Химия
Плавание
111
Физика
Борьба
111
Химия
Борьба
НФБК – проблемы для Таблицы «Студент»: (наличие избыточности данных):
Причины возникновения: наличие многозначных зависимостей
Многозначные зависимости:
КодСтудента->->УчебныйКурс
КодСтудента->->Секция
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
4НФ – Четвертая нормальная форма
РЕШЕНИЕ – Декомпозиция НФБК с избыточностью данных на новые отношения:
СТУДЕНТ
(КодСтудента, УчебныйКурс, Секция)
СТУДЕНТ-УчебныйКурс
(КодСтудента, УчебныйКурс)
4НФ
СТУДЕНТ-Секция
(КодСтудента, Секция)
– Четвертая нормальная форма (снимает проблему многозначных
зависимостей)
Отношение R находится в четвертой нормальной форме, если
находится в форме НФБК и не имеет многозначных зависимостей.
12
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
13
5НФ – Пятая нормальная форма
5НФ – содержит аномалии модификации.
НЕТ простой теоретической интерпретации причин возникновения
Устранение аномалий формы – достигается декомпозицией на три и более
новых отношения
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
14
Нормализация – устранение аномалий модификации и выявление отдельных
независимых сущностей с вынесением их в отдельные таблицы.
ЦЕЛЬ – уменьшение объема дублируемой информации, увеличение гибкости работы
с данными, снижение вероятности возникновения ошибок при заполнении БД.
НОРМАЛЬНЫЕ ФОРМЫ ОТНОШЕНИЙ
1НФ (первая нормальная форма)
2НФ (вторая нормальная форма)
3НФ (третья нормальная форма)
4НФ (четвертая нормальная форма)
НФБК (нормальная форма Бойса-Кодда)
5НФ (пятая нормальная форма)
ДКНФ (доменно-ключевая нормальная форма)
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
ДКНФ – доменно-ключевая нормальная форма. 1981 г. – R.Fagin.
Домен (domain – область, сфера) – четко определенный
именованный набор значений, которые может принимать атрибут.
Фиксированный набор значений или более общее определение формата
значений.
15
16
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
Оптимизация структуры БД – нормализация
ДКНФ –
доменно-ключевая нормальная форма. 1981 г. – R.Fagin.
Отношение находится в ДКНФ, если каждое ограничение, накладываемое на
него, является логическим следствием определения доменов и ключей.
Ограничение – правило, регулирующее значения атрибутов (правила редактирования
и ограничения связей, внутренние ограничения отношений, функциональные и
многозначные зависимости).
СТУДЕНТ
(КодСтудента, Курс, Общежитие, Плата)
СТУДЕНТ
(КодСтудента,Курс,Общежитие)
Общежитие-Плата
(Общежитие, Плата)
Атрибут
Домен
Значение
КодСтудента
ИдентифСтудента
Целое число,
3-и цифры
Курс
ГодОбучения
1,2,3,4,5,Д
Общежитие
Номер
Целое число,
2-е цифры
Плата
ПлатаЗаПроживание
Любая
денежная
сумма
МГТУ имен и Н.Э.Баумана, к афедра МТ-11 "Элек тронные технол ог ии в маш иностроении"
end
Спасибо за
внимание!
17