SQL

Объясните, пожалуйста, на пальцах разницу между 2НФ и 3НФ. Не могу понять.

2+1=3нф
Вадим Яркаев
Вадим Яркаев
82 769
Лучший ответ
Александр Соколов 2+1 < 3нф.
3нф накладывает дополнительные требования. Помимо 1нф и 2нф
смотри на сайте формы заполнения там другая отчетность
Если на пальцах:
1НФ:
– каждая ячейка таблицы содержит только одно значение
– каждая запись уникальна
Пример 1НФ

ФИО, Адрес, Машина, Обращение
Иванов Иван Иванович; ул Космонавтов 1-11; Вольво; Мистер
Петров Пётр Петрович; ул Слесарей 2-22; Уаз; Мистер
Петров Пётр Петрович; ул Слесарей 2-22; Газ; Мистер
Сидорова Ольга Олеговна; ул Капитанов 3-33; БМВ; Миссис

Не 1НФ:
Иванов Иван Иванович; ул Космонавтов 1-11; Вольво; Мистер
Иванов Иван Иванович; ул Космонавтов 1-11; Вольво; Мистер
Петров Пётр Петрович, Сидорова Ольга Олеговна; ул Слесарей 2-22; Уаз; Мистер

2НФ:
– должны выполняться требования 1НФ
– первичный ключ с одной колонкой

2НФ:
ФИО, Адрес, Машина, Обращение
1;Иванов Иван Иванович; ул Космонавтов 1-11; Вольво; Мистер
2;Петров Пётр Петрович; ул Слесарей 2-22; Уаз; Мистер
3;Петров Пётр Петрович; ул Слесарей 2-22; Газ; Мистер
4;Сидорова Ольга Олеговна; ул Капитанов 3-33; БМВ; Миссис

Не 2НФ:
Первичный ключ (ФИО, Машина)

3НФ:
– выполняются требования 2НФ
– отсутствуют транзитивные зависимости

Тут есть зависимость между ФИО и обращением (поменяли имя, может потребоваться менять обращение):

ID,Иванов Иван Иванович; ул Космонавтов 1-11; Вольво; Мистер
1;Петров Пётр Петрович; ул Слесарей 2-22; Уаз; Мистер
2;Петров Пётр Петрович; ул Слесарей 2-22; Газ; Мистер
3;Сидорова Ольга Олеговна; ул Капитанов 3-33; БМВ; Миссис

Решается разносом взаимозависимых полей по разным таблицам:
ФИО+Адрес в первую, машины во вторую, обращения в третью.
Павел Зубарев
Павел Зубарев
1 098