Learn VisualLearn DB Visual
JA

Protect the Final Stored State

An invariant is a condition that accepted database states must satisfy. PRIMARY KEY and UNIQUE protect identity (for example, products.id), NOT NULL protects required values (for example, qty), CHECK protects conditions on a row (for example, price >= 0), and FOREIGN KEY protects references (for example, orders.customer_id). Application validation improves the interaction, but database constraints cover every writer.

Which two constraints express that every order quantity exists and is greater than zero?