Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по БД.doc
Скачиваний:
28
Добавлен:
24.09.2019
Размер:
291.84 Кб
Скачать

8. Проектирование реляционных бд. Нормализация.

Нормализация – это процесс реорганизации данных с целью приведения таблицы к непротиворечивому и корректному состоянию и уменьшение избыточности инфы.

Цель нормализации: -экономие памяти, - устранение избыточности, - исключение противоречия, - упрощение управления.

Проблемы ненормализованных таблиц: - избыточность данных(повтор инфы), - аномалии обновления (в разных местах, разные данные), - аномалии удаления, аномалии ввода.

Эля устранения этих проблем используется нормализация.

Основное понятие нормализации: НФ.

Основные сво-ва НЫ:

-Каждая следующая НФ в некотором смысле лучше предыдущей, - при переходе к следующей НФ св-ва предыдущих сохраняются.

Проектирование начинается с описание предметной области, затем строится ненормализованная таблица.

1НФ-значение всех атрибутов отношения должно быть атомарными.

2НФ-отношение должно находится в 1НФ и каждый не ключевой атрибут полностью зависит от первичного ключа.

Для перехода от 1НФ ко второй:

  1. Определить на какие части можно разбить первичный ключа так, чтобы некоторые из не ключевых полей зависели от одной их этих частей причем эти части могут содержать несколько атрибутов.

  2. Создать новую таблицу для каждой части такого ключа и группы зависящих от нее полей и переместить их в эту таблицу.

  3. Удалить из исходной таблицы поля, перемещенные в другую таблицу, кроме тех которые станут внешним ключом.

3НФ-отношение находится во 2НФ и каждый не ключевой атрибут не транзитивно зависит от первичного ключа.

Переход к 3НФ:

  1. Определить все поля от которых зависят другие.

  2. Создать новую таблицу для каждого такого поля или группы зависящих от него полей и переместить их в эту таблицу. Поле от которого зависит все остальные поля станет первичным ключом новой таблицы.

  3. Удалить перемещенные поля их исходной, оставив лишь те их них, которые станут внешними ключами.

На практике проектирование 3НФ схем отношений в большинстве случаев достаточно.

Нормальная форма Бойса-Кодда

Нормальная форма Бойса-Кодда требует, чтобы в таблице был только один потенциальный первичный ключ. Чаще всего у таблиц, находящихся в третьей нормальной форме, так и бывает, но не всегда. Если обнаружился второй столбец (комбинация столбцов), позволяющий однозначно идентифицировать строку, то для приведения к нормальной форме Бойса-Кодда такие данные надо вынести в отдельную таблицу.

Четвертая нормальная форма

Для приведения таблицы, находящейся в нормальной форме Бойса-Кодда, к четвертой нормальной форме необходимо устранить имеющиеся в ней многозначные зависимости. То есть обеспечить, чтобы вставка / удаление любой строки таблицы не требовала бы вставки / удаления / модификации других строк этой же таблицы.

Пятая нормальная форма

Таблицу, находящуюся в четвертой нормальной форме и, казалось бы, уже нормализованную до предела, в некоторых случаях еще можно бывает разбить на три или более (но не на две!) таблиц, соединив которые, мы получим исходную таблицу. Получившиеся в результате такой, как правило, весьма искусственной, декомпозиции таблицы и называют находящимися в пятой нормальная форме.