Эта таблица в первой нормальной форме? - PullRequest
0 голосов
/ 13 марта 2019

Я сейчас изучаю нормальные формы SQL.

Допустим, у меня есть следующая таблица, первичный ключ - ID пользователя

userid    FirstName    LastName    Phone
1         John         Smith       555-555
1         Tim          Jack        432-213
2         Sarah        Mit         454-541
3         Tom          jones       987-125

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

  1. Строки содержат данные о сущности.
  2. Столбцы содержат данные об атрибутах сущностей.
  3. Все записи в столбце относятся к одному виду.
  4. Каждый столбец имеет уникальное имя.
  5. Ячейки таблицы содержат одно значение.
  6. Порядок столбцов не имеет значения.
  7. Порядок строк не важен.
  8. Нет двух одинаковых строк.
  9. Должен быть назначен первичный ключ

Я не уверен, что мой стол нарушает Восьмое правило. Нет двух одинаковых строк.

Потому что первые две записи в моей таблице

1         John         Smith       555-555
1         Tim          Jack        432-213

использовать один и тот же идентификатор пользователя, это означает, что они считаются повторяющиеся строки?

Или дубликаты записей означают, что каждый ряд данных в строке должно быть одинаковым, чтобы запись считалась дублирующейся строкой см пример ниже?

1         John         Smith       555-555
1         John         Smith       555-555

РЕДАКТИРОВАТЬ1: Извините за путаницу

Вопрос, который я пытался задать, прост

Эта таблица в первой нормальной форме?

userid    FirstName    LastName    Phone
1         John         Smith       555-555
1         Tim          Jack        432-213
2         Sarah        Mit         454-541
3         Tom          jones       987-125

На основании 9 правил, приведенных в учебнике, я думаю, что это так, но я не был уверен, что

если правило 8 Нет двух одинаковых строк

был нарушен из-за двух записей, которые используют один и тот же первичный ключ.

Учебное пособие и проф. Не совсем ясны по этому вопросу, поэтому я задаю этот вопрос.

1 Ответ

2 голосов
/ 13 марта 2019

Или дубликаты записей означают, что каждый ряд данных в строке должен быть одинаковым, чтобы запись считалась дублирующейся строкой, см. Пример ниже?

Они имеют в виду, что - последний из ваших выборов. Целые строки - это то, что должно быть «одинаковым». Это нормально, если две строки имеют одинаковые значения для одного или нескольких столбцов, если отличаются один или несколько столбцов.

Это потому, что отношение содержит набор значений, которые являются кортежами / строками / записями, а набор представляет собой набор значений, которые различны.

Но SQL и некоторые реляционные алгебры имеют разные понятия «идентично» в случае NULL по сравнению с реляционной моделью без NULL. Вы должны прочитать, что говорит об этом ваш учебник, если вы хотите точно знать, что они подразумевают под этим. Две строки, имеющие NULL в одном столбце, считаются разными. (Точка 9 может обобщать что-то с NULL. Зависит от объяснения в книге.)


PS

Нет единого понятия, что такое отношение. Не существует единого понятия «идентичный». Нет единого понятия 1NF.

Пункты 3-8 лучше описать как (плохие) способы ограничения того, как интерпретировать изображение таблицы, чтобы получить отношение. Ваш учебник, кажется (странно) делает "1NF" свойством такой интерпретации изображения стола. Обычно мы просто определяем отношение, чтобы быть определенной вещью, поэтому, если оно у вас есть, оно должно иметь определенные свойства. Тогда «в 1NF» применяется к отношению и означает «является отношением» и больше не используется, либо означает, что сохраняются определенные дополнительные ограничения. Отношение - это набор кортежей / строк / записей, и в виде отношений, которые ваши 3-8 описывают, они представляют собой наборы пар имя-значение атрибута / столбца / поля, а значения в паре с именем должны быть парного типа. с таким именем в некоторой схеме / заголовке, который представляет собой набор пар типа имя, который определяется как часть отношения или как внешняя по отношению к нему.

Ваш учебник, кажется, не представляет вещи ясно. Это определение «1NF» также уникально в том смысле, что хотя 3-8 являются математическими, 1 и 2 являются неформальными / эвристическими (& 9 может быть одним или обоими). ​​

...