Say you run an e-commerce store. A naive design puts everything in one orders table: order_id, customer_name, customer_email, customer_address, product_name, product_price, quantity. A customer with three orders has their name and address written three times. A product that appears in 10,000 orders has its price copied 10,000 times. Raise that price and you face 10,000 updates, with a real chance of leaving some rows stale.
Normalized to 3NF, this becomes four tables. customers holds id, name, email, address. products holds id, name, price. orders holds id, customer_id, created_at. order_items holds order_id, product_id, quantity. Now a customer's address lives in one row, a product's price lives in one row, and a price change is a single UPDATE.
This is exactly how the schema behind a tool like an online store or a banking ledger is laid out. Postgres and MySQL are both designed around this style. To show an order on screen you join the four tables, and the database engine, with proper indexes on the foreign keys, does that quickly for typical order sizes.