Что такое хорошее описание KISS нормальной формы Boyce-Codd?

Вы можете изменить

<nav class = "navbar navbar-default">

на

<nav class = "navbar navbar-expand">

, сделав панель навигации горизонтальной

24
задан manlio 24 March 2014 в 14:04
поделиться

2 ответа

Определение Chris Date на самом деле довольно хорошо, пока Вы понимаете то, что он имеет в виду:

Каждый атрибут

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

должен представить факт

, Каждый атрибут является единственным фактом, не набором фактов. Изменение на один бит в атрибуте изменяет целое значение. Ваша дата рождения является фактом. Действительно ли Ваше полное имя является фактом? Ну, в некоторых случаях это, потому что при изменении фамилии, полное имя отличается, правильно? Но специалисту по генеалогии у Вас есть фамилия и фамилия, и если Вы изменяете свою фамилию, Ваша фамилия не изменяется, таким образом, они - отдельные факты.

о ключе,

Один атрибут является особенным, это - ключ. Ключ является атрибутом, который должен быть уникальным для всей информации в Ваших данных и никогда не должен изменяться. Ваше полное имя не является ключом, потому что оно может измениться. Ваш Номер социального страхования не является ключом, потому что они снова используются. Ваш SSN плюс дата рождения не является ключом, даже если комбинация никогда не может снова использоваться, потому что атрибут не может быть комбинацией двух фактов. GUID является ключом. Число, которое Вы увеличиваете и никогда повторное использование, является ключом.

целый ключ,

один только ключ должен быть достаточен [ и необходимый! ] для идентификации значений; Вам не могли представить те же данные различные ключи, ни может подмножество столбцов ключа быть достаточным для идентификации факта. Предположим, что у Вас была адресная книга с ключом GUID, значениями имени и адреса. Нормально иметь то же имя, появляющееся дважды с различными ключами, если они представляют различных людей и не являются "теми же данными". Если Mary Jones в изменениях в учетной политике ее имя к Mary Smith, Mary Jones в Продажах не меняет свое имя также. С другой стороны, если у Mary Smith и John Smith есть тот же конкретный адрес, и это действительно - то же место, это не позволяется. Необходимо создать новую пару ключ/значение с конкретным адресом и новый ключ.

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

и только ключ

не должно быть ничего кроме ключа, который определяет Ваши значения. Например, если Вам разрешают адрес "Тадж-Махала" (предполагающий, что существует только один), Нельзя городское значение в той же записи, с тех пор если бы Вы знаете адрес, Вы также знали бы город. Это также открыло бы возможность того, чтобы там быть больше чем одним Тадж-Махалом в другом городе. Вместо этого необходимо снова создать вторичный ключ Местоположения с уникальными значениями как Taj, Белый дом в DC, и так далее, и их города. Или запретите "адреса", которые уникальны для города.

Так помогают мне, Codd.

49
ответ дан Dour High Arch 28 November 2019 в 22:47
поделиться

Вот некоторые полезные выборки от страницы Wikipedia на Третья Нормальная форма :

Bill Kent определяет Третью Нормальную форму этот путь:

Каждый неключевой атрибут "должен обеспечить факт о ключе, целом ключе и только ключе".

Требование, чтобы неключевые атрибуты зависеть от "целого ключа" гарантировали, что таблица находится в 2 нФ; далее требуя, чтобы неключевые атрибуты зависеть от "только ключа" гарантировали, что таблица находится в 3 нФ.

Chris Date адаптирует мнемосхему Kent для определения Нормальной формы Boyce-Codd:

"Каждый атрибут должен представить факт о ключе, целом ключе и только ключе". Здесь требование касается каждого атрибута в таблице, не только неключевых атрибутов.

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

Что касается того, как заставить таблицу удовлетворить BCNF, необходимо представить дополнительную зависимость с другим атрибутом и возможно путем разделения атрибутов на другую таблицу.

11
ответ дан Bill Karwin 28 November 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: