מסד נתונים גדול המוגדר כקשר יחיד עלול לגרום לשכפול נתונים. חזרה זו על הנתונים עלולה לגרום ל:
- הופך את היחסים לגדולים מאוד.
- זה לא קל לתחזק ולעדכן נתונים מכיוון שזה כרוך בחיפוש רשומות רבות ביחס.
- בזבוז וניצול לקוי של שטח דיסק ומשאבים.
- הסבירות לטעויות וחוסר עקביות עולה.
אז כדי להתמודד עם הבעיות האלה, עלינו לנתח ולפרק את היחסים עם נתונים מיותרים לקשרים קטנים יותר, פשוטים יותר ובנויים היטב, המספקים תכונות רצויות. נורמליזציה היא תהליך של פירוק היחסים ליחסים עם פחות תכונות.
הערך של מחרוזת Java
מהי נורמליזציה?
- נורמליזציה היא תהליך ארגון הנתונים במסד הנתונים.
- נורמליזציה משמשת כדי למזער את היתירות מקשר או מערך יחסים. הוא משמש גם לביטול מאפיינים לא רצויים כמו חריגות הכנסה, עדכון ומחיקה.
- נורמליזציה מחלקת את הטבלה הגדולה יותר לקטנה יותר ומקשרת אותם באמצעות קשרים.
- הטופס הרגיל משמש להפחתת יתירות מטבלת מסד הנתונים.
למה אנחנו צריכים נורמליזציה?
הסיבה העיקרית לנרמול היחסים היא הסרת החריגות הללו. כישלון בביטול חריגות מוביל לעודף נתונים ועלול לגרום לשלמות הנתונים ולבעיות אחרות ככל שמסד הנתונים גדל. נורמליזציה מורכבת מסדרה של קווים מנחים שעוזרים להנחות אותך ביצירת מבנה מסד נתונים טוב.
ניתן לסווג חריגות בשינוי נתונים לשלושה סוגים:
סוגי צורות רגילות:
נורמליזציה פועלת דרך סדרה של שלבים הנקראים צורות נורמליות. הצורות הרגילות חלות על יחסי פרט. אומרים שהקשר הוא בצורה נורמלית במיוחד אם הוא עונה על אילוצים.
להלן הסוגים השונים של צורות רגילות:
צורה רגילה | תיאור |
---|---|
1NF | יחס הוא ב-1NF אם הוא מכיל ערך אטומי. |
2NF | יחס יהיה ב-2NF אם הוא ב-1NF וכל התכונות שאינן מפתח פונקציונליות מלאות תלויות במפתח הראשי. |
3NF | יחס יהיה ב-3NF אם הוא ב-2NF ולא קיימת תלות במעבר. |
BCNF | הגדרה חזקה יותר של 3NF ידועה כצורתו הרגילה של בויס קוד. |
4NF | יחס יהיה ב-4NF אם הוא בצורה הרגילה של בויס קוד ואין לו תלות רב-ערכית. |
5NF | יחס הוא ב-5NF. אם הוא נמצא ב-4NF ואינו מכיל תלות בהצטרפות, ההצטרפות צריכה להיות ללא הפסדים. |
היתרונות של נורמליזציה
- נורמליזציה עוזרת למזער את יתירות הנתונים.
- ארגון מסד נתונים כולל גדול יותר.
- עקביות נתונים בתוך מסד הנתונים.
- עיצוב מסד נתונים הרבה יותר גמיש.
- אוכף את הרעיון של שלמות יחסים.
חסרונות של נורמליזציה
- אתה לא יכול להתחיל לבנות את מסד הנתונים לפני שאתה יודע מה המשתמש צריך.
- הביצועים מתדרדרים כאשר מנרמל את היחסים לצורות נורמליות גבוהות יותר, כלומר, 4NF, 5NF.
- זה מאוד גוזל זמן וקשה לנרמל יחסים ברמה גבוהה יותר.
- פירוק רשלני עלול להוביל לתכנון רע של מסד נתונים, מה שיוביל לבעיות חמורות.