Перестройка набора отношений при введении новых типов данных должна быть минимальна.
При выполнении операций, включение, удаление, модификации в базе данных не должно быть аномалий (трудностей).
Состав отношений базы данных должен быть минимальным (на практике минимальная избыточность атрибутов).
Выбранные первичные ключи должны быть минимальными.
На значения атрибутов можно накладывать ограничения, даже в явном виде. Для этого обычно используют язык предикатов.
Традиционно атрибуты нумеруются порядковыми номерами. На практике более удобно каждому атрибуту присвоить имя. Тогда, в процессе поиска в базе данных, к атрибутам обращаются по именам.
Основным ограничением является невозможность представления в отношениях кортежей-дубликатов. Это означает, что каждое отношение R имеет хотя бы один первичный ключ.
Функциональные зависимости. Для правильного построения схем реляционной базы данных необходимо знать, какие из атрибутов являются зависимыми.
Определение. Функциональная зависимость означает: атрибут В в отношении R функционально зависит от атрибута А, если в каждый момент времени каждому значению атрибута А соответствует не более, чем одно значение атрибута В из этого же отношения. Это означает, что А однозначно определяет В:А→В.
Например,
*
*
* - возможные ключи.
Требования к рациональному размещению атрибутов в отношении.
Пример аномалии операции модификации.
Поставки (название поставщика, адрес, товар, цена, количество и т.д.). В базе адрес поставщика повторяется для каждого товара. Если у поставщика изменился адрес, то изменения следует сделать во всех кортежах. Если это не так, то база данных противоречива.
Для выполнения этих требований необходима нормализация исходных схем отношений. Это делается с помощью композиции, декомпозиции, назначения новых ключей.
На практике введено четыре уровня нормализации отношений, а значит и четыре нормальных формы: 1НФ, 2НФ, 3НФ, 4НФ. Эти формы подчиняются правилу вложенности по возрастанию номеров. Если отношение в 4НФ, значит оно находится и в 3НФ, и во 2НФ, и в 1НФ.
1НФ
Определение. Отношение R находится в 1НФ тогда, когда все его атрибуты являются атомарными, т.е. значения соответствующих доменов рассматриваются как неделимые, а не как множество каких-то элементарных доменов.
На практике переход к 1НФ означает переход от произвольной структуры данных к двумерным отношениям.
Примечание. Если отношение находится в 1НФ, то этого достаточно для работы языка запросов, остальные требования могут не выполняться.
2НФ.
Схема отношения R находится во 2НФ, если она находится в 1НФ и каждый ее атрибут, не являясь первичным в этом отношении, полностью зависит от первичного ключа.
На практике переход во 2НФ означает устранение всех неполных зависимостей атрибутов, не являющихся основными, от первичных ключей.
СЛОЖНОЕ А* 2НФ А* А* Разбиваем
ОТНОШЕНИЕ В* В* D на два
С С простых
D отношения
Рассмотрим пример.
*
*
* 2НФ
*
Примечание. 1) Расщепление отношений до 2НФ может быть вызвано естественным ростом базы, поэтому на практике его рекомендуется осуществлять заранее.