Что объединяет повторяющиеся наборы информации о строках в новые сущности, вызываемые при нормализации базы данных?
Я немного запутался по поводу некоторой части нормализации базы данных и подумал, что я бы попросил StackOverflow:
Представьте, что у вас есть следующие отношения, которые связывают продукты с цветами. Обратите внимание, что продукт 1 и продукт 2 используют одинаковый набор цветов (синий и зеленый).
Product_Color Color
+-------------+-------------+ +-------------+-------------+
| Product* | Color* | | ColorId* | Name |
+-------------+-------------+ +-------------+-------------+
| 1 | 1 | | 1 | Blue |
| 1 | 2 | | 2 | Green |
| 2 | 1 | +-------------+-------------+
| 2 | 2 |
+-------------+-------------+
Если я создаю два новых отношения, ColorSet и ColorSet_Color, я могу отобразить одну и ту же информацию, объединив 4 отношения.
Product_ColorSet: ColorSet_Color:
+-------------+-------------+ +-------------+-------------+
| Product* | ColorSetId* | | ColorSetId* | ColorId* |
+---------------------------+ +-------------+-------------+
| 1 | 1 | | 1 | 1 |
| 2 | 1 | | 1 | 2 |
+-------------+-------------+ +---------- --+-------------+
ColorSet: Color:
+-------------+ +-------------+-------------+
| ColorSetId* | | ColorId* | Name |
+-------------+ +-------------+-------------+
| 1 | | 1 | Blue |
| 2 | | 2 | Green |
+-------------+ +----------[--+-------------+
На этом этапе, если бы у меня была большая таблица Product_Color с разумной степенью общих групп цветов, я бы выиграл значительно с точки зрения пространства.
Какое техническое имя для этой операции в контексте нормализации базы данных? Я явно удаляю избыточную информацию, даже если созданная мною сущность на самом деле не существует, это скорее случайный шанс, что существует много совпадений. Что конкретно я меняю, делая это?
Кроме того, кажется, что я мог бы сделать это произвольно для большинства организаций. Что меня удивляет, так это то, что Product_Color и Color уже находятся в 6-й нормальной форме, когда мы начали упражнение (верно?).