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

Anonim

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

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

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

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

-9 ->

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

-> ->

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

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

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

- נורמליזציה ו denormalization הם שני תהליכים כי הם לגמרי הפוכה.

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

- נורמליזציה מתבצעת כדי למנוע אנומליות מסדי נתונים.

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

- מומלץ לעתים קרובות כי אתה צריך "לנרמל עד שזה כואב, denormalize עד שזה עובד".