A flat export like order_export repeats things: Rosa Vidal's email appears on every line of every order she placed. Repetition causes anomalies. Change her email and you must find every row (miss one and the data disagrees with itself). Delete her only order and you lose that she exists.
Normalization stores each fact once:
- 1NF: one value per cell, and no repeating groups like
product1, product2, product3 columns.
- 2NF: in a table with a composite key, every other column depends on the whole key. A product's name depends on the product alone, not on (order, product).
- 3NF: no column depends on another non-key column. A customer's city depends on the customer, not on the order.
In practice that means one table per thing (customers, products, orders, order lines), linked by keys. Reporting databases sometimes repeat data on purpose to make queries simpler, but they start from a normalized design.