6 -я нормальная форма, запрос переоценки, эффективная реализация

dba.stackexchange https://dba.stackexchange.com/questions/8994

Вопрос

Я нашел эту статью, написанную Хью Дарвеном для того, чтобы избежать нулей в моей базе данных: Ссылка на сайт, В нем описывается, как реализовать базы данных в 6 -й нормальной форме, чтобы вы могли избежать нуле. Логика описана в языковом руководстве D. Я понимаю, как преобразовать всю эту логику в SQL Server. Но в конце он показывает, насколько хорошо это может быть реализовано в текущих системах управления базами данных, а затем я вижу эту часть, которая мне нужно реализовать:

  • Запрос переоборудования: может быть сделан, но, вероятно, будет работать ужасно. Может быть предпочтительнее хранить Pers_info в качестве единой таблицы под обложками, так что таблицы, возникающие в результате разложения, могут быть реализованы в качестве сопоставления с этим. Но текущая технология не дает чистого отделения физического хранения от логического дизайна. Возможно, что -то для следующего поколения инженеров -программистов, с которыми можно схватить?

Он предлагает хранить Pers_info как отдельную таблицу под обложками, но что это действительно значит? Как я бы реализовал это в SQL Server?

Это было полезно?

Решение

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

Он говорит о СУБД, хранящих его как единственный стол, а не ты Хранив его в виде единственного таблица.

Сама реляционная модель ничего не говорит о физическом хранении. Требуется только, чтобы «база данных была воспринимается пользователем как таблицы. Анкет Анкет Анкет На физическом уровне, на самом деле, система может хранить данные так, как ей нравятся. Анкет . "(Введение в системы баз данных, 7 -е изд., CJ Date, стр. 61)

Итак, Дарвен говорит, что если дизайнер базы данных объявляет набор из 6 -е таблиц вместе с их

  • Ключи кандидата,
  • распределенные ключи,
  • иностранные ключи,
  • иностранные распределенные ключи,
  • и так далее,

Тогда СУБД можно свободно

  • осуществлять Этот набор из 6 -е таблиц в виде одной таблицы в табличном пространстве SQL,
  • Спрятать эта реализация с одним столом от пользователя и
  • Раскрывайте пользователям набор обновляемых представлений, которые неразличимы из таблиц 6NF, которые, как заявил дизайнер базы данных.

Сказав все это, вы можете обойти отсутствие поддержки СУБД, создав одну таблицу на вершине обложки (так сказать), и создать набор обновляемых представлений, которые неразличимы от вашего дизайна 6NF. Отменить разрешения на одну таблицу и требуют, чтобы все пользователи использовали только обновляемые представления. Что ты не мочь DO, чтобы СДБМ позаботились обо всех этих деталях, основанных исключительно на серии логически правильных, 6NF создания табличных операторов.

Другие советы

Скачать бесплатную книгу PDF доктора Хью Дарвен, Введение в теорию реляционной базы данных. Анкет В частности, глава 7 и WIFE_OF_HENRY_VIII пример. Таким образом, 6NF всегда достижимо, но не всегда может быть желательным на практике, если это затрудняет писать ограничения.

Это также кратко упоминается в База данных, типы и реляционная модель.

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

Смотрите также Третий манифест домашняя страница.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top