190 likes | 412 Views
פרק 7 : נרמול קבצים. דוגמא. נתונה טבלה: קורסים ( מס’ קורס , שם קורס, קוד מחלקה, שם מחלקה (
E N D
דוגמא • נתונה טבלה: קורסים (מס’ קורס, שם קורס, קוד מחלקה, שם מחלקה( • טבלה זו מכילה "אנומליות" (Anomalies) - תופעות לא רצויות הנובעות משילוב נתונים משתי ישויות שונות: “קורסים” “מחלקות”
אנומליות (Anomalies)אנומליות ההוספה (Insertion Anomaly) • אין אפשרות להוסיף מחלקה שעדיין אינה מציעה אף קורס • מכיוון שמפתח הטבלה הוא: מס’ קורס, לא ניתן להוסיף שורה חדשה לטבלה עד שלא יוגדר הקורס הראשון שהמחלקה מציעה
אנומליות הביטול (Delition Anomaly) • במקרה ורוצים לבטל קורס שהינו הקורס היחידשמחלקה מסוימת מציעה כי אז ביטול הקורס (ביטול שורה) יוצר איבוד נתונים נוספים: “קוד מחלקה” ו- “שם מחלקה”
אנומליות העדכון (Update Anomaly) • במקרה ומחלקה מסוימת מציעה מספר קורסים - שינוי שם מחלקה (מ- “הנדסת נתונים” ל- “הנדסת מידע”) מצריך עדכון בכל השורות הרלוונטיות • דבר זה מביא לאי דיוק בנתונים
נירמולנתונים • תהליך שיטתי ופורמלי למניעת אנומליות
מבנה ברמתנירמולראשונה (1(NF • בטבלה לאמנורמלתברמתנירמולראשונה יש יותר מערך אחד התלוי בתלות פונקציונלית בעמודה מסוימת (עמודות מסוימות) בטבלה • בטבלה לאמנורמלתיש חזרות • לדוגמא: מס’ פריט, שם פריט, מס’ מחסן, כמות, מס’ מחסן, כמות, מס’ מחסן, כמות, …...
מבנה ברמתנירמולראשונה (1(NF - חסרונות • אחזור כל הפריטים במחסן מס’ 3הינהפעולה מורכבת כי צריך לסרוק מס’ לא ידוע של עמודות בתוך כל שורה • ביטול כמות במחסן מסויםהינו בעיתיכי צריך לצמצם עמודות ריקות
מעבר למבנהמנורמלמדרגה ראשונה • המעבר למבנה מנורמל ברמה ראשונה יבוצע ע”י סילוק עמודות מרובות ערכים • נקבל 2 טבלאות: טבלת פריטים: מס’ פריט, שם פריט • טבלת מחסנים: מס’ פריט, מס’ מחסן, כמות
מבנה ברמת נירמול שניה (2(NF • בטבלה לאמנורמלתברמתנירמולשנייה ישנה עמודה אחת או יותר התלויה/ותבתלות פונקציונלית רק בחלק של המפתח הראשי של הטבלה • לדוגמא: טבלת פריט-ספק (מס’ פריט, מס’ ספק, שם ספק, מחיר( • מבנה לאמנורמלזה סובל מכל האנומליות שהוזכרו מעלה
מבנה ברמת נירמול שניה (2(NF • המעבר למבנהמנורמלברמה שניה יבוצע ע”י פרוק הטבלה ל- 2 טבלאות: • טבלת ספקים (מס’ ספק, שם ספק( • טבלת פריט-ספק (מס’ פריט, מס’ ספק, מחיר(
מבנה ברמת נירמול שלישית (3(NF • בטבלה לאמנורמלתברמתנירמולשלישית ישנה עמודה אחת או יותר התלויה/ותבתלות פונקציונלית בעמודה/ותאחרת/ותשאינה/ן משתתפות במפתח הראשי • לדוגמא: טבלת קורסים (מס’ קורס, שם, קוד מחלקה,שם מחלקה (
מבנה ברמת נירמול שלישית (3(NF • המעבר למבנהמנורמלברמה שלישית יבוצע ע”י פירוק הטבלה ל- 2 טבלאות:טבלת קורסים - (מס’ קורס, שם קורס, קוד מחלקה) טבלת מחלקות ( קוד מחלקה, שם מחלקה(
מבנה ברמת נירמול רביעית (4(NF • טבלה ברמתנירמולראשונה, שנייה ושלישית עלולה להכיל כפילויות • לדוגמא: ספרים-מרצים (מס’ מרצה, מס’ קורס, קוד ספר לימוד( • בקורס אחד יכולים ללמד מספר מרצים • באותו קורס יכולים להשתמש במספר ספרי לימוד
תלות פונקציונלית רב-ערכית • טבלה עם עמודות A, B, C המשתתפות במפתח וכל ערך של A קשור לאוסף כל שהוא של ערכים של B באופן בלתי תלוי בעמודה C
מבנה ברמת נירמול רביעית (4(NF • בטבלה לאמנורמלתברמתנירמולרביעית קימת תלות פונקציונלית רב ערכית • המעבר למבנהמנורמלמרמה רביעית יבוצע ע”י פרוק הטבלה ל-2 טבלאות:קורסים-מרצים (מס’ קורס, מס’ מרצה) קורסים-ספרים (מס’ קורס, קוד ספר לימוד(
תרגיל • נתונה הטבלה: ציונים (מספר קורס, מספר סטודנט, סמסטר, שם קורס, שם סטודנט, קוד מחלקה מציעה, שם מחלקה, מספר נקודות זכות, ציון סופי, מועד בחינה) • פרק הטבלה למספר טבלאות מנורמלות • נתונה הטבלה: הזמנות (מספר הזמנה, מספר פריט, תאריך הזמנה, מספר ספק, שם ספק, כתובת ספק, קוד מחלקה מזמינה, שם מחלקה מזמינה, תיאור פריט, כמות מוזמנת, מחיר לפריט) • פרק הטבלה למספר טבלאות מנורמלות