This is interesting because the exact example they provide of an order table, when released in a production environment, will more than likely _not_ be 3NF.<p>If you have an order table, with order details line items linked to products, you need to keep an audit log of the state of the database at the time of an order being inserted.<p>Putting it simply, the line must 1) reference the product and 2) duplicate the product details ( price + tax definitely). In case the price of the product changes later, we need to know how much we charged the customer at that point in time.<p>I've worked with a lot of large databases and with the greatest will in the world to keep them normalised, sometimes certain tables will require duplication.