שם הכותב: תאריך: 27 אוקטובר 2013

שיעור 1 – 13/10/13

אקסס – ACCESS – חזרה

שדות מחושבים לא כלולים במסד נתונים כיוון שהוא יכול להיות מחושב בכל זמן נתון.

ישנם 3 חוקי נרמול בעזרתם ניתן לבנות מסד נתונים תקין:

חוק נרמול מספר 1

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

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

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

קשרי גומלין

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

קורסים

ציונים

סטודנט

קוד קורס

1

קוד קורס

1

תעודת זהות

שם קורס

קוד סטודנט


שם פרטי

מס נקודות

שם פרטי

שם משפחה

ציון

ציון

תאריך לידה

עיר

רחוב

מספר בית

ציון

חוק נרמול מספר 2

כל שדה שאינו שדה המפתח חייב להיות קשור אך ורק למפתח הראשי.

חוק נרמול מספר 3

כל שדה שאינו שדה המפתח חייב להיות קשור לכל המפתח.

פתרון לתרגיל שחולק בכיתה –

טיולים

טיולים בפועל

מטייל

מדריך

מ"ר

קוד טיול

1

מ"ר

קוד הזמנה

1

מ"ר

קוד מטייל

1

מ"ר

קוד מדריך

1

ת. התחלת טיול

קוד מטייל

שם משפחה מטייל

שם מדריך

ת. סיום טיול

קוד טיול

שם פרטי מטייל

ת. התחלת עבודה

כמות משתתפים

ת. התחלת טיול

תאריך לידה

תאריך לידה

מחירון טיול

ת. סיום טיול

עיר

תעודת מדריך

קוד מדריך

עלות טיול בפועל

רחוק

מספר בית

מיקוד

אם יש מטייל וטיול שחוזרים על עצמם – זה לא יוכל להיות מפתח ראשי.

לשם כך יש 2 פתרונות : (בטבלת טיולים בפועל)

  1. לצרף שדה נוסף כמו תאריך התחלה כמפתח ואז זה לא יחזור על עצמו.
  1. נוסיף שדה קוד הזמנה שיזוז קדימה כל טיול ואז למעשה הזמנה אחת לא חוזרת על עצמה. <= פתרון עדיף

פתרון תרגיל כיתה:

שייך לנושאים: אריק אדלמן, מסדי נתונים


חמש − = 0

תואר ראשון
תואר שני
מרצים