Каноническая обложка в каком нормальном виде?
Я хочу знать, в какой нормальной форме находится каноническое покрытие. Я знаю, что перед нормализацией мы находим каноническое покрытие, поэтому я думаю, что оно находится в первой нормальной форме. Но это может быть не в нормальной форме, так как определение 1NF в Википедии - это то, что ни в одной строке не должно быть дубликата:
Первая нормальная форма обеспечивает соблюдение следующих критериев:
- Устранить повторяющиеся группы в отдельных таблицах.
- Создайте отдельную таблицу для каждого набора связанных данных.
- Определите каждый набор связанных данных с первичным ключом
1 ответ
Нормальные формы применяются к отношениям (значениям и переменным), а не к каноническим покрытиям. Обложка - это набор FD (функциональных зависимостей), из которого следуют все FD в отношении. Каноническая обложка - это обложка определенной формы. Если у вас есть каноническое покрытие и атрибуты отношения, вы можете найти, в какой нормальной форме находится отношение.
Ни одна строка не может иметь дубликат по определению "отношения". Отношение имеет множество строк. (Таблицы SQL, однако, могут иметь повторяющиеся строки.) Ни один столбец / атрибут не может быть "многозначным" или "повторяющейся группой". Атрибут имеет значение.
В реляционных статьях есть много глупостей, включая ту, которую вы цитируете. Но из этого ответа я:
По определению, атрибут кортежа отношения имеет значение из домена. Re: "повторяющиеся группы": не может быть, это что-то из предреляционных баз данных. Re "неатомарная": Кодд определил отношения как способные иметь доменные отношения. Он указал, что единственный способ, которым значение можно считать (в повседневном смысле) неатомарным в реляционном контексте, - это оценивать отношения. Т.е. он определил "атомарный" в реляционном контексте, чтобы обозначить не отношение. Он определил "нормализованный", чтобы обозначить отсутствие относительных (то есть неатомарных) атрибутов. (Все это в 1970 году.) Позже он определил "1NF" как нормализованный. И разработали "2NF" и "3NF". Затем (после Кента и Бойса) "BCNF". Таким образом, его использование этих терминов не предполагало доменных отношений.
Но теория нормализации представлена независимо от областей. Т.е. считается, что это просто декомпозиция по проблемным JD [объединить зависимости]. Таким образом, "1NF" также используется для того, чтобы быть просто отношением. А остальные "НФ" привыкают независимо от доменов. (Хотя, если существуют домены, имеющие отношение к отношениям, то могут существовать ограничения, отличные от FD и JD, но похожие на них, которые вызывают разные, но сходные аномалии и которые вызывают ограничения и аномалии в компонентах даже после декомпозиции для всех проблемных JD.) Независимо от того, является ли отношение имеет домены, имеющие отношение к значению, и независимо от того, что вы подразумеваете под "1NF" или "нормализованным" или "нормализацией", процедура разложения, которой вы следуете, чтобы удалить проблемные JD из проблемных FD в то, что вы называете [a ]NF, является независимо от доменов.
Из другого:
Не существует такого понятия, как "многозначный атрибут" в отношении. Кортеж имеет значение атрибута для каждого имени атрибута. [...] Если у вас есть атрибут, который, по вашему мнению, содержит несколько частей, т.е. вы хотите выполнять общий запрос о деталях без использования операторов с параметрами их типов, то обычно лучше иметь отдельную таблицу с атрибутами для эти части. Но это не решается путем нормализации. Можно считать, что любое значение состоит из нескольких частей несколькими способами, и именно ваше приложение / запросы определяют, когда вы прекращаете создавать таблицы, чьи атрибуты являются значениями частей других значений и просто имеют атрибут для значения. Точно так же, если у вас есть набор атрибутов, которые играют сходную роль (часто с похожими именами), то обычно хорошо иметь отдельную таблицу с одним атрибутом для роли. Но это не решается путем нормализации.
Ключи- кандидаты имеют значение для FD, MVD, JD и нормализации. PKs [первичные ключи] нет. Вы можете выбрать один CK как "PK", но его первичность не имеет отношения к реляционной модели. Это может иметь отношение к какому-либо методу информационного моделирования или продукту.
Если у вас есть особые опасения по поводу ваших отношений, атрибутов, типов атрибутов, канонического покрытия или процесса нормализации, вам следует объяснить это в своем вопросе.