Midسختی 3 از ۵· در 60٪ مصاحبههای این حوزه پرسیده شده
Normalization چیست و چرا مهم است؟
☆نشان کردنپاسخ کوتاه
فرایند سازماندهی جداول برای کاهش افزونگی داده و جلوگیری از ناسازگاری، با تقسیم داده به چند جدول مرتبط.
پاسخ کامل
در فرم نرمال اول/دوم/سوم، دادههای تکراری (مثل نام مشتری در هر ردیف سفارش) به یک جدول جدا (Customers) منتقل و با کلید خارجی به آن ارجاع داده میشود. این کار از ناسازگاری داده (مثلاً یک نام اشتباه در ۱۰۰ ردیف) جلوگیری میکند.
مثال کد
-- بدون نرمالسازی: نام مشتری در هر سفارش تکرار میشود
-- با نرمالسازی:
CREATE TABLE Customers (Id INT PRIMARY KEY, Name NVARCHAR(100));
CREATE TABLE Orders (Id INT PRIMARY KEY, CustomerId INT REFERENCES Customers(Id));
نکته مهم
گاهی برای کارایی خواندن، عمداً داده Denormalize میشود (تکرار کنترلشده)؛ این یک مصالحهٔ آگاهانه است، نه اشتباه.
اشتباه رایج
❌ نرمالسازی افراطی که Queryهای ساده را به Joinهای بسیار پیچیده تبدیل میکند.
