Третья нормальная форма

редактировать

Третья нормальная форма (3NF ) - это схема базы данных подход к проектированию для реляционные базы данных, в которых используются принципы нормализации для уменьшения дублирования данных, предотвращения аномалий данных, обеспечения ссылочной целостности и упрощения управления данными. Он был определен в 1971 году Эдгаром Ф. Коддом, английским ученым-компьютерщиком, который изобрел реляционную модель для управления базами данных.

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

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

Кодд позже понял, что 3NF не устранил все нежелательные аномалии данных, и в 1974 году разработал более сильную версию для решения этой проблемы, известную как нормальная форма Бойса – Кодда.

Содержание

  • 1 Определение третьего нормальная форма
  • 2 «Ничего, кроме ключа»
  • 3 Вычисление
  • 4 Выведение условий Заниоло
  • 5 Нормализация за пределами 3NF
  • 6 Рекомендации по использованию в средах отчетности
  • 7 См. также
  • 8 Ссылки
  • 9 Дополнительная литература
  • 10 Внешние ссылки

Определение третьей нормальной формы

Третья нормальная форма (3NF) - это нормальная форма, используемая в нормализация базы данных. 3NF был первоначально определен Э. Ф. Кодд в 1971 г.

Определение Кодда утверждает, что таблица находится в 3NF тогда и только тогда, когда выполняются оба следующих условия:

  • Отношение R (таблица) находится в второй нормальной форме (2NF).
  • Каждый непростой атрибут R нетранзитивно зависит от каждого ключа R.

Не -prime атрибут R - это атрибут, который не принадлежит ни одному ключу-кандидату R.A транзитивная зависимость - это функциональная зависимость, в которой X → Z ( X определяет Z) косвенно, в силу X → Y и Y → Z (где Y → X не так).

Было дано определение 3NF, которое эквивалентно определению Кодда, но выражается иначе. Карло Заниоло в 1982 г. Это определение утверждает, что таблица находится в 3NF тогда и только тогда, когда для каждой из ее функциональных зависимостей X → A выполняется хотя бы одно из следующих условий:

  • X содержит A (то есть A является подмножество X, что означает, что X → A является тривиальной функциональной зависимостью),
  • X - это суперключ,
  • для каждого элемента A \ X, t он устанавливает разницу между A и X, является основным атрибутом (т.е. каждый атрибут в A \ X содержится в некотором ключевом кандидате ).

Определение Заниоло дает четкое представление о разнице между 3NF и более строгая нормальная форма Бойса – Кодда (BCNF). BCNF просто исключает третью альтернативу («Каждый элемент A \ X, установленная разница между A и X, является основным атрибутом»).

«Ничего, кроме ключа»

Билл дал примерное определение 3NF, данное Коддом, параллельно с традиционным обязательством дать правдивые показания в суде. Кент: «[каждый] неключевой [атрибут] должен предоставлять факт о ключе, весь ключ и ничего, кроме ключа». Распространенный вариант дополняет это определение клятвой: «Так помоги мне Кодд ".

Требование наличия« ключа »гарантирует, что таблица находится в 1НФ ; требуя, чтобы неключевые атрибуты были зависимыми на «весь ключ» обеспечивает 2NF ; дальнейшее требование, чтобы неключевые атрибуты зависели от «ничего, кроме ключа», обеспечивает 3NF. Хотя эта фраза является полезной мнемоникой, тот факт, что она упоминает только один key означает, что он определяет некоторые необходимые, но недостаточные условия для удовлетворения 2-й и 3-й нормальных форм. И 2NF, и 3NF одинаково относятся ко всем ключам-кандидатам в таблице, а не только к одному ключу.

Chris Date относится к Краткое изложение Кента как «интуитивно привлекательной характеристики» 3NF и отмечает, что с небольшой адаптацией оно может служить определением немного более сильной нормальной формы Бойса – Кодда : «Каждый атрибут должен представлять факт о ключе, весь ключ и ничего, кроме ключа ». Версия определения 3NF слабее, чем Date ' s Вариант BCNF, поскольку первый касается только обеспечения зависимости неключевых атрибутов от ключей. Основные атрибуты (которые являются ключами или их частями) вообще не должны быть функционально зависимыми; каждый из них представляет собой факт о ключе в смысле предоставления части или всего ключа. (Это правило применяется только к функционально зависимым атрибутам, так как его применение ко всем атрибутам неявно запрещает составные ключи-кандидаты, поскольку каждая часть любого такого ключа нарушает предложение «весь ключ».)

Пример Таблица 2NF, которая не соответствует требованиям 3NF:

Победители турниров
ТурнирГодПобедительДата рождения победителя
Indiana Invitational1998Эл Фредриксон21 июля 1975 г.
Cleveland Open1999Боб Альбертсон28 сентября 1968 г.
Де-Мойн Мастерс1999Эл Фредриксон21 июля 1975 года
Индиана Инвитэйшнл1999Чип Мастерсон14 марта 1977 г.

Поскольку каждая строка в таблице должна сообщать нам, кто выиграл конкретный турнир в конкретный год, составной ключ {Tournament, Year} представляет собой минимальный набор атрибутов, гарантированно однозначно идентифицирующих строку. То есть {Tournament, Year} - это кандидатный ключ для таблицы.

Нарушение 3NF происходит из-за того, что непростой атрибут (дата рождения Победителя) транзитивно зависит от ключа кандидата {Турнир, Год} через непервичный атрибут Победитель. Тот факт, что дата рождения Winner функционально зависит от Winner, делает таблицу уязвимой для логических несоответствий, поскольку ничто не мешает одному и тому же человеку отображаться с разными датами рождения в разных записях.

Чтобы изложить те же факты без нарушения 3NF, необходимо разделить таблицу на две части:

Победители турниров
ТурнирыГодПобедитель
Indiana Invitational1998Эл Фредриксон
Кливленд Опен1999Боб Альбертсон
Де-Мойн Мастерс1999Эл Фредриксон
Indiana Invitational1999Чип Мастерсон
Даты рождения победителя
ПобедительДата рождения
Чип Мастерсон14 марта 1977 г.
Эл Фредриксон21 июля 1975 г.
Боб Альбертсон28 сентября 1968 г.

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

Вычисление

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

Вывод условий Дзаниоло

Определение 3НФ, предложенное Карло Заниоло в 1982 г. и приведенное выше, доказывается следующим образом. : Пусть X → A будет нетривиальным FD (т.е. таким, где X не содержит A) и пусть A будет неключевым атрибутом. Также пусть Y будет ключом R. Тогда Y → X.

Нормализация за пределами 3NF

Большинство таблиц 3NF не содержат аномалий обновления, вставки и удаления. Некоторые типы таблиц 3NF, которые редко встречаются на практике, подвержены таким аномалиям; это таблицы, которые либо не соответствуют нормальной форме Бойса – Кодда (BCNF), либо, если они соответствуют BCNF, не соответствуют более высоким нормальным формам 4NF или 5NF.

Соображения по использованию в средах отчетности

Хотя 3NF идеально подходил для машинной обработки, сегментированный характер модели данных может быть трудным для восприятия человеком-пользователем. Аналитика с помощью запросов, отчетов и информационных панелей часто упрощалась с помощью модели данных другого типа, которая обеспечивала предварительно рассчитанный анализ, такой как линии тренда, расчеты за период до даты (за месяц до даты, за квартал до даты, за год до даты). на сегодняшний день), кумулятивные расчеты, базовая статистика (среднее, стандартное отклонение, скользящие средние) и сравнения за предыдущий период (год назад, месяц назад, неделя назад), например трехмерное моделирование и не только трехмерное моделирование, сглаживание звезд с помощью Hadoop и науки о данных.

См. Также

Ссылки

Дополнительная литература

Внешние ссылки

Последняя правка сделана 2021-06-11 09:04:13
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте