1632
правки
Изменения
м
Нормализацию целесообразно понимать следующим образом: она Нормализация помогает спроектировать привести базу данных таким образом, чтобы сделать более логически приемлемыми операции обновления отдельных кортежей, что в противном случае (т.е. когда проект базы данных не нормализован) может оказаться затруднительнымк виду обеспечивающему минимальную логическую избыточность. Эта цель достигается благодаря тому, что в полностью нормализованном проекте предикаты переменных отношения имеют более простой вид.
rollbackEdits.php mass rollback
'''Нормализация''' — процесс преобразования отношений реляционной базы данных к виду, отвечающему одной из нормальных форм.
}}
__TOC__
===Цели===
===Следствия===
Полная нормализация приводит к замедлению работы базы так как увеличивается количество увеличению количества логически независимых переменных отношения ⇒ увеличивается количество отдельно хранимых физических файлов, что в свою очередь приводит может привести к появлению большего количества операций ввода-вывода, что и замедляет работуснижению скорости выборки ⇒ к замедлению работы базы данных.
==Средства нормализации==
Для приведения базы данных в нормальную форму будет применяться декомпозиция без потерь. При построении такой декомпозиции используются операции соединения и проекции.
===Проекция===
{{Определение
'''Проекция''' отношения <tex>R</tex> на множество атрибутов <tex>X</tex>: <tex>\pi_X(R) =\{r \cap X|r\in R\}</tex> — это отношение удовлетворяющее свойствам:
* Его заголовок формируется из заголовка отношения <tex>R</tex> путем удаления всех атрибутов, не указанных в множестве <tex>X</tex>
* Тело состоит из всех кортежей <tex>{Х_1 :r_1 , X_2 :r_2, . . . , X_n :r_n }</tex>, таких что в отношении <tex>R</tex> присутствует кортеж со значением <tex>r_1</tex> атрибута <tex>X_1</tex>, <tex>r_2</tex> атрибута <tex>X_2</tex> и т.д.
}}
====Пример некорректной декомпозиции====
При обратном соединении полученных отношений исходное отношений не было восстановлено — появились записи, которых не было ⇒ декомпозиция некорректна.
{| class="wikitable"
|-
Поскольку <tex>X → Y</tex>, существует единственный <tex>y: (x, y) ∈ π_{XY}(R) ⇒ y = y' ⇒ (x, y, z) ∈ R</tex>
}}
Доказательсто первого пункта не опирается на наличие функциональной зависимости ⇒ справедливо следствие:
'''Следствие''' Исходное отношение <tex>R</tex> всегда является подмножеством соединения отношений, полученных при декомпозиции.
==См. также==