Normalization اصولی برای کاهش تکرار کنترلنشده داده و جلوگیری از ناهنجاری درج، بهروزرسانی و حذف است.
نرمالسازی به معنی حذف همه تکرارها نیست، در برخی بارهای کاری Denormalization آگاهانه برای بهبود عملکرد انجام میشود.
اگر نام مشتری در هر سفارش مستقل ذخیره شود، اصلاح آن ممکن است نیازمند بهروزرسانی چند ردیف باشد. Normalization رابطه مشتری و سفارش را روشن میکند.
نمونه کوتاه
CREATE TABLE customers (id BIGINT PRIMARY KEY, name VARCHAR(100));
نمونه رابطه نرمالشده
CREATE TABLE customers(id BIGINT PRIMARY KEY, name TEXT);
CREATE TABLE orders(
id BIGINT PRIMARY KEY,
customer_id BIGINT REFERENCES customers(id)
);
نرمالسازی از تکرار بیدلیل داده و ناهماهنگی هنگام تغییر جلوگیری میکند. گاهی برای Readهای پرتکرار دینرمالیزیشن کنترلشده مفید است.