Jump to content

Нормальная форма доменного ключа

Нормальная форма ключа домена ( DK/NF или DKNF ) — это нормальная форма, используемая при нормализации базы данных , которая требует, чтобы база данных не содержала никаких ограничений, кроме ограничений домена и ограничений ключа.

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

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

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

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

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

Нарушение ДКНФ встречается в следующей таблице:

Богатый человек
Богатый человек Тип богатого человека Чистая стоимость в долларах
Стив Миллионер 124,543,621
Родерик Миллиардер 6,553,228,893
Катрина Миллиардер 8,829,462,998
Гэри Миллионер 495,565,211

(Предположим, что домен для «Богатый человек» состоит из имен всех богатых людей из заранее определенной выборки богатых людей; домен для «Тип богатого человека» состоит из значений «Миллионер» и «Миллиардер»; и домен для «Чистый капитал» в долларах состоит из всех целых чисел, больших или равных 1 000 000.)

Существует ограничение, связывающее тип богатого человека с собственным капиталом в долларах, хотя мы не можем вывести одно из другого. Ограничение гласит, что собственный капитал миллионера будет составлять от 1 000 000 до 999 999 999 включительно, тогда как собственный капитал миллиардера будет составлять 1 000 000 000 или выше. Это ограничение не является ни ограничением домена, ни ограничением ключа; поэтому мы не можем полагаться на ограничения домена и ключевые ограничения, чтобы гарантировать, что противоречивая комбинация «Тип богатого человека/Чистый капитал в долларах» не попадет в базу данных.

Нарушение DKNF можно устранить, удалив столбец «Тип богатого человека». Статус богатого человека как миллионера или миллиардера определяется его собственным капиталом в долларах, как это определено в таблице статуса благосостояния, поэтому никакая полезная информация не теряется.

Богатый человек
Богатый человек Чистая стоимость в долларах
Стив 124,543,621
Родерик 6,553,228,893
Катрина 8,829,462,998
Гэри 495,565,211
Статус богатства
Статус Минимум Максимум
Миллионер 1,000,000 999,999,999
Миллиардер 1,000,000,000 999,999,999,999

Внешние ключи

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

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

См. также

[ редактировать ]
  • Феджин, Рональд (1981). «Нормальная форма реляционных баз данных, основанная на доменах и ключах» (PDF) . Транзакции ACM в системах баз данных . 6 (3): 387–415. CiteSeerX   10.1.1.73.373 . дои : 10.1145/319587.319592 . S2CID   14664427 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d8b53cef573a99622cabec0df1b0c5f8__1711547100
URL1:https://arc.ask3.ru/arc/aa/d8/f8/d8b53cef573a99622cabec0df1b0c5f8.html
Заголовок, (Title) документа по адресу, URL1:
Domain-key normal form - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)