Доменно-ключевая нормальная форма (ДКНФ) - это такая форма, когда любая операция добавления или удаления записи не может привести к нарушению целостности данных. Это достигается добавлением дополнительных ограничений на значения полей записи. Поддержание целостности данных возлагается на механизмы конкретной СУБД. Например дефолтовые значения полей, ограничения диапазон данных, триггеры, срабатывающие при создании, модификации или удалении записей и так далее. Словом всё что угодно, что способствует сохранению целостности данных.

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

    Рассмотрим тот же самый пример но с триггером. Мы удаляем некую категорию (не дефолтовую). Срабатывает триггер и удаляет все товары, связанные с этой категорией. Таким образом, при удалении категории у нас не образуется товаров "подвешенных в воздухе". Целостность данных сохранена.

    В данный момент нет никакой информации о том база в какой нормальной форме может быть приведена к ДКНФ. Т.е. можно пытаться приводить базу к этой форме из 3НФ, 2НФ или даже 1НФ. Не факт, что это у вас до конца получится. Однако даже если не получится, прописанные правила добавления и удаления записей а так же ограничения на поля, существенно повысят качество разрабатываемой вами БД.

    PS Ссылки по теме:
    Нормальные формы баз данных ч.1
    Нормальные формы баз данных ч.2

Добавить комментарий


Защитный код
Обновить