1NF לעומת 2NF לעומת 3NF

נורמליזציה היא תהליך שמתבצע כדי למזער את הפיטורים הנמצאים בנתונים בבסיסי נתונים יחסיים. תהליך זה יחלק בעיקר טבלאות גדולות לטבלאות קטנות יותר עם פחות פיטורים. טבלאות קטנות יותר אלה יהיו קשורות זו לזו דרך מערכות יחסים מוגדרות היטב. במסד נתונים מורמל היטב, כל שינוי או שינוי בנתונים ידרוש שינוי של טבלה אחת בלבד. הצורה הנורמלית הראשונה (1NF), הצורה הנורמלית השנייה (2NF) והצורה הנורמלית השלישית (3NF) הוצגה על ידי אדגר פ. קודד, שהוא גם הממציא את המודל היחסי ואת מושג הנורמליזציה.

מה זה 1NF?

1NF הוא הטופס הנורמלי הראשון, המספק את מערכת הדרישות המינימלית לנרמלת בסיס נתונים יחסי. טבלה העומדת בתקן 1NF מבטיחה שהיא למעשה מייצגת קשר (כלומר, היא אינה מכילה רשומות החוזרות על עצמן), אך אין הגדרה מקובלת כלל ל- 1NF. מאפיין חשוב אחד הוא שטבלה העומדת בתקן 1NF לא יכולה להכיל תכונות המוערכות יחסית (כלומר, לכל התכונות צריכות להיות ערכים אטומיים).

מה זה 2NF?

2NF הוא הצורה הרגילה השנייה המשמשת בבסיסי נתונים יחסיים. לטבלה שעומדת בתקן 2NF, יש לעמוד בתקן 1NF וכל תכונה שאינה חלק ממפתח מועמד כלשהו (כלומר תכונות שאינן פריים) צריכה להיות תלויה במלואה באף אחד ממפתחות המועמד בטבלה.

מה זה 3NF?

3NF הוא הצורה הרגילה השלישית המשמשת בנורמליזציה של מסדי נתונים יחסים. על פי הגדרת ה- Codd, אומרים שטבלה נמצאת ב- 3NF, אם ורק אם, טבלה זו נמצאת בצורה הרגילה השנייה (2NF), וכל תכונה בטבלה שאינה שייכת למפתח מועמד צריכה להיות תלויה ישירות על כל מפתח מועמד בטבלה זו. בשנת 1982 ייצר קרלו זניולו הגדרה שונה לביטוי עבור 3NF. טבלאות העומדות בתקן 3NF בדרך כלל אינן מכילות חריגות המתרחשות בעת הוספה, מחיקה או עדכון רשומות בטבלה.

מה ההבדל בין 1NF ו- 2NF ו- 3NF?

1NF, 2NF ו- 3NF הם צורות נורמליות המשמשות בבסיסי נתונים יחסיים כדי למזער את יתירות הטבלאות. 3NF נחשב כצורה נורמלית חזקה יותר מ- 2NF, והוא נחשב כצורה נורמלית חזקה יותר מאשר 1NF. לכן באופן כללי, קבלת טבלה העומדת בטופס 3NF תחייב פירוק טבלה שנמצאת ב- 2NF. באופן דומה, השגת טבלה שתואמת ל- 2NF תדרוש פירוק טבלה שנמצאת ב- 1NF. עם זאת, אם טבלה העומדת בתקן 1NF מכילה מפתחות מועמדים המורכבים רק מתכונה יחידה (כלומר מפתחות מועמדים שאינם מורכבים), טבלה כזו תעמוד אוטומטית בתקן 2NF. פירוק הטבלאות יביא לפעולות הצטרפות נוספות (או מוצרים קרטזיים) בעת ביצוע שאילתות. זה יגדיל את זמן החישוב. מצד שני, לטבלאות העומדות בטפסים נורמליים חזקים יותר יהיו פחות יתירות מאשר טבלאות שעומדות רק בצורות נורמליות חלשות יותר.