Основные понятия

Функциональная зависимость

Глава 6. Теория нормализации реляционной модели данных

Теория нормализации схем отношений реляционной модели данных – это теория, устанавливающая, каким обра­зом исходная схема отношений может быть преобразована в другую результирующую схему, которая эквивалент­на в некотором смысле исходной и в каком-то смысле лучше ее. Таким образом эта теория должна ответить на следующие вопросы:

· какие существуют критерии эквивалентности схем отношений;

· какие существуют критерии оценки качества схем отношений;

· какие существуют механизмы эквивалентных преобразований схем отношений, дающие более качествен­ные схемы.

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

Понятие функциональной зависимости (functional dependence) является краеугольным в теории проектирования реляционных баз данных.

Определение. Пусть задано отношение R, которое содержит наборы атрибутов A и B. В отношении R B функционально зависит(depends functionally) от A и А функционально определяет В, тогда и только тогда, когда каждое значение проекции R[А] в любой момент времени связано точно с одним значением проекции R[В].

Эта функциональная зависимость обозначается следующим образом: R.А ® R.В, если же априори известна принадлежность А и В отношению R, то пишется А ® В. Формально функциональная зависимость определяется следующим образом:

Понятие функциональной зависимости может быть естественным образом сужено на случай, когда A и B являются отдельными атрибутами.

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

Определение. Набор К атрибутов отношения R называется возможным ключом(candidate key) отношения R, если верно, что:

а) каждый атрибут отношения R функционально зависит от К;

б) ни один атрибут из набора К не может быть удален без нарушения свойства (а).

Можно дать следующее формальное определение возможного ключа. Пусть М – полный набор атрибутов отношения R Подмножество атрибутов К отношения R является возможным ключом, если

а) "А Í М R.K ® R.A

б) "К' Ì K $B Í M R.K' R.B

Символ указывает, что функциональная зависимость отсутсвует.

В любом отношении существует как минимум один возможный ключ, так как набор всех атрибутов отношения удовлетворяет свойству (а), затем этот набор можно "сжать" так, чтобы он удовлетворял свойству (б)

Поскольку в отношении может существовать более одного ключа, то один из них иногда называется первичным ключом (primary key). Любой из возможных ключей может быть первичным. Любое множество атрибутов, содержащее возможный ключ, называется сверхключом (superkey).

Атрибуты, которые входят в какой-нибудь возможный ключ отношения, называются ключевыми атрибутами (key attributes).

Атрибуты, которые входят в первичный ключ отношения, называются первичными атрибутами (primary attributes). Остальные атрибуты называются непервичными.