БАЗЫ ДАННЫХ ЛЕКЦИЯ 8 тема: ТЕОРИЯ НОРМАЛЬНЫХ ФОРМ Функциональная зависимость Функциональная зависимость (Functional Dependency) – это особого рода ограничение целостности, накладываемое на атрибуты сущности и заключающееся в том, что значениям некоторой группы атрибутов, называемой детерминантом, всегда соответствуют единственные значения другой группы атрибутов, называемых функционально зависимыми. (a1, a2, …) -> (b1,b2,…) Функциональная зависимость • неполная функциональная зависимость от идентификатора ─ детерминант является частью идентификатора и сам функционально определяет некоторые атрибуты • транзитивная функциональная зависимость от идентификатора ─ детерминант функционально зависит от идентификатора и, в свою очередь, сам функционально определяет некоторые атрибуты Функциональная зависимость Нормальные формы Нормальные формы (Normal Forms) — это сущности, удовлетворяющие определенным условиям, гарантирующим отсутствие определенных аномалий при манипулировании данными. Первая нормальная форма Первая нормальная форма (1НФ) — это «простая» идентифицируемая таблица: • на пересечении каждой строки и столбца находятся атомарные данные • идентифицируемость — наличие первичного ключа Сложная таблица «Сложность» по «вертикали» (по столбцам): «Сложность» по «горизонтали» (по строкам): Вторая нормальная форма Вторая нормальная форма (2НФ) — это 1НФ, в которой отсутствуют неполные функциональные зависимости от первичного ключа, что обеспечивает отсутствие соответствующих аномалий. Неполная функциональная зависимость det (Код) → ФИО det (Код) → Назв Третья нормальная форма Третья нормальная форма (3НФ) — это 2НФ, в которой отсутствуют транзитивные функциональные зависимости от первичного ключа, что обеспечивает отсутствие соответствующих аномалий. Транзитивная функциональная зависимость Нормальная форма Бойса-Кодда Нормальная форма Бойса–Кодда (НФБК) — это 1НФ, в которой каждый детерминант является идентификатором Аномалии скрытых сущностей Аномалия вставки Аномалия удаления Аномалия обновления Аномалии скрытых сущностей Устранение аномалий Декомпозиция исходной сущности. «Скрытые» сущности (детерминант + зависящие от него атрибуты) вычленяются в самостоятельную сущность.