פרק : 7 נרמול קבצים 1 דוגמא • נתונה טבלה : קורסים (מס’ קורס , שם קורס , קוד מחלקה , שם מחלקה( • טבלה זו מכילה "אנומליות" ) (Anomalies תופעות לא.

Download Report

Transcript פרק : 7 נרמול קבצים 1 דוגמא • נתונה טבלה : קורסים (מס’ קורס , שם קורס , קוד מחלקה , שם מחלקה( • טבלה זו מכילה "אנומליות" ) (Anomalies תופעות לא.

Slide 1

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 2

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 3

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 4

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 5

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 6

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 7

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 8

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 9

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 10

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 11

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 12

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 13

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 14

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 15

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 16

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 17

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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


Slide 18

‫פרק ‪: 7‬נרמול קבצים‬

‫‪1‬‬

‫דוגמא‬
‫• נתונה טבלה‪ :‬קורסים‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה‪ ,‬שם מחלקה(‬
‫• טבלה זו מכילה "אנומליות"‬
‫ )‪(Anomalies‬תופעות לא רצויות הנובעות משילוב‬‫נתונים משתי ישויות שונות‪:‬‬
‫“קורסים”‬
‫“מחלקות”‬
‫‪2‬‬

‫אנומליות )‪(Anomalies‬‬
‫אנומליות ההוספה )‪(Insertion Anomaly‬‬
‫• אין אפשרות להוסיף מחלקה שעדיין אינה מציעה‬
‫אף קורס‬
‫• מכיוון שמפתח הטבלה הוא‪ :‬מס’ קורס‪ ,‬לא ניתן‬
‫להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס‬
‫הראשון שהמחלקה מציעה‬

‫‪3‬‬

‫אנומליות הביטול )‪(Delition Anomaly‬‬
‫• במקרה ורוצים לבטל קורס שהינו הקורס היחיד‬
‫שמחלקה מסוימת מציעה כי אז‬
‫ביטול הקורס (ביטול שורה) יוצר איבוד נתונים‬
‫נוספים‪“ :‬קוד מחלקה” ו‪“ -‬שם מחלקה”‬

‫‪4‬‬

‫אנומליות העדכון)‪(Update Anomaly‬‬
‫• במקרה ומחלקה מסוימת מציעה מספר קורסים ‪-‬‬
‫שינוי שם מחלקה‬
‫(מ‪“ -‬הנדסת נתונים” ל‪“ -‬הנדסת מידע”)‬
‫מצריך עדכון בכל השורות הרלוונטיות‬
‫• דבר זה מביא לאי דיוק בנתונים‬

‫‪5‬‬

‫נירמול נתונים‬
‫• תהליך שיטתי ופורמלי למניעת אנומליות‬

‫‪6‬‬

‫מבנה ברמת נירמול ראשונה (‪(NF1‬‬
‫• בטבלה לא מנורמלת ברמת נירמול ראשונה יש יותר‬
‫מערך אחד התלוי בתלות פונקציונלית בעמודה‬
‫מסוימת (עמודות מסוימות) בטבלה‬
‫• בטבלה לא מנורמלת יש חזרות‬
‫• לדוגמא‪ :‬מס’ פריט‪ ,‬שם פריט‪ ,‬מס’ מחסן‪ ,‬כמות ‪,‬מס’‬
‫מחסן‪ ,‬כמות‪ ,‬מס’ מחסן‪ ,‬כמות‪, …...‬‬

‫‪7‬‬

‫מבנה ברמת נירמול ראשונה (‪- (NF1‬‬
‫חסרונות‬
‫• אחזור כל הפריטים במחסן מס’ ‪ 3‬הינה פעולה‬
‫מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות‬
‫בתוך כל שורה‬
‫• ביטול כמות במחסן מסוים הינו בעיתי כי צריך לצמצם‬
‫עמודות ריקות‬

‫‪8‬‬

‫מעבר למבנה מנורמל מדרגה ראשונה‬
‫• המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י‬
‫סילוק עמודות מרובות ערכים‬
‫• נקבל ‪ 2‬טבלאות‪:‬‬
‫טבלת פריטים‪ :‬מס’ פריט‪ ,‬שם פריט‬
‫• טבלת מחסנים‪ :‬מס’ פריט‪ ,‬מס’ מחסן‪ ,‬כמות‬

‫‪9‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שנייה ישנה עמודה‬
‫אחת או יותר התלויה‪/‬ות בתלות פונקציונלית רק‬
‫בחלק של המפתח הראשי של הטבלה‬
‫• לדוגמא‪ :‬טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬שם ספק‪ ,‬מחיר(‬

‫• מבנה לא מנורמל זה סובל מכל האנומליות שהוזכרו מעלה‬

‫‪10‬‬

‫מבנה ברמת נירמול שניה (‪(NF2‬‬
‫• המעבר למבנה מנורמל ברמה שניה יבוצע ע”י פרוק‬
‫הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫• טבלת ספקים (מס’ ספק‪ ,‬שם ספק(‬
‫• טבלת פריט‪-‬ספק (מס’ פריט‪ ,‬מס’ ספק‪ ,‬מחיר(‬

‫‪11‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• בטבלה לא מנורמלת ברמת נירמול שלישית ישנה‬
‫עמודה אחת או יותר התלויה‪/‬ות בתלות פונקציונלית‬
‫בעמודה‪/‬ות אחרת‪/‬ות שאינה‪/‬ן משתתפות במפתח‬
‫הראשי‬
‫• לדוגמא‪:‬‬
‫טבלת קורסים‬
‫(מס’ קורס‪ ,‬שם‪ ,‬קוד מחלקה‪,‬שם מחלקה(‬
‫‪12‬‬

‫מבנה ברמת נירמול שלישית (‪(NF3‬‬
‫• המעבר למבנה מנורמל ברמה שלישית יבוצע ע”י‬
‫פירוק הטבלה ל‪ 2 -‬טבלאות‪:‬‬
‫טבלת קורסים ‪-‬‬
‫(מס’ קורס‪ ,‬שם קורס‪ ,‬קוד מחלקה)‬
‫טבלת מחלקות ( קוד מחלקה‪ ,‬שם מחלקה(‬

‫‪13‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• טבלה ברמת נירמול ראשונה‪ ,‬שנייה ושלישית עלולה‬
‫להכיל כפילויות‬
‫• לדוגמא‪ :‬ספרים‪-‬מרצים (מס’ מרצה‪ ,‬מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫• בקורס אחד יכולים ללמד מספר מרצים‬
‫• באותו קורס יכולים להשתמש במספר ספרי לימוד‬

‫‪14‬‬

‫מבנה ברמת נירמול רביעית (‪NF)4‬‬

‫‪15‬‬

‫תלות פונקציונלית רב‪-‬ערכית‬
‫• טבלה עם עמודות ‪ A, B, C‬המשתתפות במפתח וכל‬
‫ערך של ‪ A‬קשור לאוסף כל שהוא של ערכים של ‪B‬‬
‫באופן בלתי תלוי בעמודה‪C‬‬

‫‪16‬‬

‫מבנה ברמת נירמול רביעית (‪(NF4‬‬
‫• בטבלה לא מנורמלת ברמת נירמול רביעית קימת‬
‫תלות פונקציונלית רב ערכית‬
‫• המעבר למבנה מנורמל מרמה רביעית יבוצע ע”י‬
‫פרוק הטבלה ל‪ 2-‬טבלאות‪:‬‬
‫קורסים‪-‬מרצים (מס’ קורס‪ ,‬מס’ מרצה)‬
‫קורסים‪-‬ספרים (מס’ קורס‪ ,‬קוד ספר לימוד(‬

‫‪17‬‬

‫תרגיל‬
‫•‬

‫•‬
‫•‬

‫•‬
‫‪18‬‬

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