arrow

פרק 5 - נרמול מסדי נתונים

נרמול מסדי נתונים- חלק 1

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

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

Project number Project name Employee number Employee name Rate category Hourly rate
1023 Madagascar travel site 11 Vincent Radebe A $60
    12 Pauline James B $50
    16 Charles Ramoraz C $40
1056 Online estate agency 11 Vincent Radebe A $60
    17 Monique Williams B $50

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

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

Project number Project name Employee number Employee name Rate category Hourly rate
1023 Madagascar travel site 11 Vincent Radebe A $60
1023 Madagascar travel site 12 Pauline James B $50
1023 Madagascar travel site 16 Charles Ramoraz C $40
1056 Online estate agency 11 Vincent Radebe A $60
1056 Online estate agency 17 Monique Williams B $50

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

תוכן עניינים
נרמול מסדי נתונים - חלק 2


פרק 1 -> פרק 2 -> פרק 3 -> פרק 4 -> פרק 5 ->