1NF против 2NF против 3NF
Нормализация - это процесс, который выполняется для минимизации избыточности, присутствующей в данных в реляционных базах данных. Этот процесс в основном разделит большие таблицы на меньшие таблицы с меньшим количеством избыточности. Эти меньшие таблицы будут связаны друг с другом через четко определенные отношения. В хорошо нормализованной базе данных любое изменение или модификация данных потребует изменения только одной таблицы. Первая нормальная форма (1NF), вторая нормальная форма (2NF) и третья нормальная форма (3NF) были введены Эдгаром Ф. Коддом, который также является изобретателем реляционной модели и концепции нормализации.
Что такое 1NF?
1NF - Первая нормальная форма, обеспечивающая минимальный набор требований для нормализации реляционной базы данных. Таблица, соответствующая 1NF, гарантирует, что она действительно представляет отношение (т. е. не содержит повторяющихся записей), но для 1NF не существует общепринятого определения. Одним из важных свойств является то, что таблица, соответствующая 1NF, не может содержать никаких атрибутов с реляционными значениями (т. е. все атрибуты должны иметь атомарные значения).
Что такое 2NF?
2NF - вторая нормальная форма, используемая в реляционных базах данных. Чтобы таблица соответствовала 2NF, она должна соответствовать 1NF, и любой атрибут, который не является частью какого-либо ключа-кандидата (т. е. не простые атрибуты), должен полностью зависеть от любого из ключей-кандидатов в таблице.
Что такое 3NF?
3NF - третья нормальная форма, используемая при нормализации реляционных баз данных. Согласно определению Кодда, говорят, что таблица находится в 3НФ тогда и только тогда, когда эта таблица находится во второй нормальной форме (2НФ), и каждый атрибут в таблице, не принадлежащий ключу-кандидату, должен напрямую зависеть на каждом ключе-кандидате этой таблицы. В 1982 году Карло Дзаньоло дал другое определение 3NF. Таблицы, соответствующие 3NF, как правило, не содержат аномалий, возникающих при вставке, удалении или обновлении записей в таблице.
В чем разница между 1NF и 2NF и 3NF?
1NF, 2NF и 3NF - это нормальные формы, которые используются в реляционных базах данных для минимизации избыточности в таблицах. 3NF считается более сильной нормальной формой, чем 2NF, и считается более сильной нормальной формой, чем 1NF. Поэтому в общем случае для получения таблицы, соответствующей форме 3NF, потребуется декомпозиция таблицы, находящейся во 2NF. Точно так же для получения таблицы, соответствующей 2NF, потребуется декомпозиция таблицы, находящейся в 1NF. Однако если таблица, соответствующая 1NF, содержит ключи-кандидаты, состоящие только из одного атрибута (то есть несоставные ключи-кандидаты), такая таблица автоматически будет соответствовать 2NF. Декомпозиция таблиц приведет к дополнительным операциям соединения (или декартовым произведениям) при выполнении запросов. Это увеличит время вычислений. С другой стороны, таблицы, соответствующие более сильным нормальным формам, будут иметь меньше избыточности, чем таблицы, соответствующие только более слабым нормальным формам.