הבדל בין נורמליזציה לדנורמליזציה

הבדל בין נורמליזציה לדנורמליזציה
הבדל בין נורמליזציה לדנורמליזציה

וִידֵאוֹ: הבדל בין נורמליזציה לדנורמליזציה

וִידֵאוֹ: הבדל בין נורמליזציה לדנורמליזציה
וִידֵאוֹ: מה ההבדל בין This, That, These, Those? 2024, נוֹבֶמבֶּר
Anonim

נורמליזציה לעומת דה-נורמליזציה

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

מהי נורמליזציה?

נורמליזציה הוא תהליך שמתבצע כדי למזער את היתירות הקיימות בנתונים בבסיסי נתונים יחסיים. תהליך זה יחלק בעיקר טבלאות גדולות לטבלאות קטנות יותר עם פחות יתירות (הנקראים "צורות רגילות"). טבלאות קטנות יותר אלו יהיו קשורות זו לזו באמצעות קשרים מוגדרים היטב. במסד נתונים מנורמל היטב, כל שינוי או שינוי בנתונים יחייבו לשנות רק טבלה בודדת. צורה נורמלית ראשונה (1NF), צורה נורמלית שנייה (2NF) והצורה הנורמלית השלישית (3NF) הוצגו על ידי אדגר פ. קוד. הצורה הרגילה של Boyce-Codd (BCNF) הוצגה ב-1974 על ידי Codd ו-Raymond F. Boyce. צורות נורמליות גבוהות יותר (4NF, 5NF ו-6NF) הוגדרו, אך נעשה בהן שימוש נדיר.

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

מה זה דנורמליזציה?

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

מה ההבדל בין נורמליזציה לדנורמליזציה?

– נורמליזציה ודנורמליזציה הם שני תהליכים הפוכים לחלוטין.

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

– נורמליזציה מתבצעת כדי למנוע חריגות במסד הנתונים.

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

– לעתים קרובות מומלץ "לנרמל עד שזה כואב, לבטל את הנורמל עד שזה עובד".

מוּמלָץ: