Database Normalization - 1NF, 2NF, 3NF
ב-2018, חברת e-commerce ישראלית שמכיר - 200,000 לקוחות, מחזור של 40 מיליון שקל בשנה - נתקלה בבאג שגרם להפסדים. הם שמרו customer_email ב-orders table ישירות. לקוח שינה מייל → שני records שונים עבורו → ה-analytics חצי מלקוחות "חדשים" שהם לקוחות חוזרים. חצי שנה לתקן את כל ה-queries. ה-root cause: Normalization שלא יושם.
Edgar Codd הגדיר את Normal Forms ב-1970 ו-1971. 55 שנה אחרי, אנשים עדיין בונים schemas עם same mistakes. לא כי הם לא יודעים את הכללים - כי הם לא מבינים למה הכללים קיימים.
כשלומדים Normal Forms, קל להתפתות לחשוב "אלה כללים אקדמיים שלא קשורים לעולם האמיתי". ההיפך הוא הנכון. כל Normal Form נולד כי מישהו, בשנות ה-70, ניתח מה קורה כשmissions עם data redundancy - ומה נשבר. הכללים הם distillation של כשלונות. שווה להבין אותם על ה-concrete examples ולא על ה-abstract definitions.
Codd לא המציא Normalization בוואקום - הוא ניתח מסדי נתונים קיימים שהיו messy, inconsistent, ומלאי anomalies. ה-theoretical framework שהוא פיתח אמר: "יש systematic way לדעת אם schema שלך בריא." הNormal Forms הן checklist. לא "עשיתי 3NF - done" אלא כלי לזיהוי problematic dependencies שמובילים לbug. ב-2025 אנחנו עדיין משתמשים ב-same framework כי הבעיות שהוא פותר הן timeless - data redundancy יוצרת inconsistency בכל מערכת, ללא תלות בשנה.