Сотрудник набросал значения новой таблицы следующим образом:
"Foo", "some value 1"
"Foo", "some value 2"
"Foo", "some value 3"
"Bar", "some value 3"
Это единственные столбцы в таблице. Имена столбцов: Кол1, Кол2.
Один человек сказал, что эта таблица не нормализована, другой сказал, что это так.
Конкретным аргументом в пользу того, что он нарушил нормализацию, является то, что удаление трех записей с "Foo" в Col1 "Foo" больше не будет присутствовать в системе. Этот человек сказал, что должна быть справочная таблица, содержащая столбец ID и имя. Таблица выше будет ссылаться на идентификатор этой таблицы как его FK.
Аргумент, что он не был нормализован, заключается в том, что в таблице не было третьего столбца, зависящего от первого (3-я нормализованная форма).
Я думаю, что путаница заключается в том, что она является 1NF и удовлетворяет этому примеру:
Customer Tr. ID Date Amount
Jones 12890 14-Oct-2003 -87
Jones 12904 15-Oct-2003 -50
Wilkins 12898 14-Oct-2003 -21
Stevens 12907 15-Oct-2003 -18
Stevens 14920 20-Nov-2003 -70
Stevens 15003 27-Nov-2003 -60
из http://en.wikipedia.org/wiki/Database_normalization.
Но звучит так, как будто это нарушает это правило: «Одна и та же информация может быть выражена в нескольких строках; поэтому обновления таблицы могут привести к логическим несоответствиям». Это относится к нормализации за пределами 1NF.
Таким образом, похоже, что исходная таблица будет нарушать 2NF и, следовательно, 3NF, но будет удовлетворять 1NF. Это правильно?