480 likes | 699 Views
מערכות בסיסי נתונים. 2006-2007. מידע כללי. מתרגל: גדעון רוטשילד שעת קבלה: יום ד ' 12:00-13:00 דף הבית: http://www.cs.huji.ac.il/~db דוא"ל: db@cs.huji.ac.il קבוצות דיון: local.course.db.ta local.course.db.stud מועדי תרגולים: יום ד ' 14:00-16:00, פאפיק תחתון
E N D
מערכות בסיסי נתונים 2006-2007
מידע כללי • מתרגל: גדעון רוטשילד • שעת קבלה: יום ד' 12:00-13:00 • דף הבית: http://www.cs.huji.ac.il/~db • דוא"ל: db@cs.huji.ac.il • קבוצות דיון: • local.course.db.ta • local.course.db.stud • מועדי תרגולים: • יום ד' 14:00-16:00, פאפיק תחתון • יום ד' 18:00-20:00, שפרינצק 115
מידע כללי • חומר הקורס: הרצאות, תרגולים ותרגילים • תרגולים כוללים בעיקר חומר שאינו מועבר בהרצאה • ציון קורס: 25% תרגילים + 75% מבחן
תרגילים • יהיו כ- 8-10 תרגילים במהלך הסמסטר • תרגילים תיאורטיים יש להגיש בתיבת הקורס (Ross -2) • תרגילי תכנות יש להגיש דרך אתר הקורס • חובה להגיש את כל התרגילים • בקשות לפטור/דחייה יש לשלוח עד יום לפני המועד המקורי • אם לא צוין אחרת, התרגילים הם להכנה והגשה אישית • יש להקפיד על כתיבת שם, מס' זהות, ושם משתמש • ערעורים יש להגיש בטופס המתאים, לתיבה האישית שלי (Ross 0), לא יאוחר משבוע ממועד החזרת התרגיל
דגשים ולקחים • שקפים: חלקיים, מומלץ להדפיס מראש • להקפיד על הגשת תרגילים בפורמט נכון • שפה • העתקות
ספרי הקורס • Database Management Systems, by Raghu Ramakrishnan • Principles of Database and Knowledge-Base Systems, Volumes I and II, by Jeffery Ullman (essentially chapter 7 concerning Design Theory) • Oracle 8i: The Complete Reference, by Kevin Loney and George Koch
מערכות מסדי נתונים • ראשית התחום בסוף שנות ה-60 • הגידול האדיר בכמות המידע הנשמר במחשב יצר צורך חזק בשמירה יעילה ונוחה של המידע • הדבר גרם להתפתחות מואצת של תחום מערכות מסדי נתונים • ב-2006 חברת הסופרמרקטים הענקית Walmart מכרה מוצרים בכמעט מיליארד דולר ביום! • ברור כי גופים עם צורך כה גדול בשמירה ושימוש במידע זקוקים למערכת יעילה ונוחה ככל האפשר
מערכות מסדי נתונים • בסיס נתונים (Database): מערכת מידע ממוחשבת • מערכת ניהול בסיסי נתונים (DBMS): כוללת בסיסי נתונים וסדרת תוכניות מחשב לשליפת הנתונים • מטרה: לאפשר גישה נוחהויעילה למידע
דוגמא: בסיס נתונים של בנק • בנק הינו דוגמא קלאסית לגוף העושה שימוש רב בבסיסי נתונים • בסיס הנתונים של בנק מסוים יכיל מידע על: • לקוחות הבנק (שם, מס' ת.ז., כתובת, מס' חשבון, וכו') • חשבונות (מס' חשבון, סוג חשבון, יתרה וכו') • עובדי הבנק (שם, דרגה, לקוחות, וכו') • ועוד... • ניתן להבחין במספר מאפיינים של בסיס נתונים: • מחזיק מידע רב בנושאים שונים • יש קשר בין סוגי המידע השונים • ניתן לשמור את המידע באופנים שונים • במקרים שונים נהיה מעוניינים בחלקים שונים של המידע • ניתן לתארו ברמות הפשטה שונות- ER, טבלאות, ...
ייצוג בסיס נתונים בדיאגרמת ישויות-קשרים (מצומצם) ותק שם סוג כתובת יתרה בעל לקוח חשבון מס' חשבון מס' זהות מטפל פקיד שם מס' זהות
ייצוג בסיס נתונים בטבלאות (מצומצם) Bank Clients Bank Accounts
בסיס נתונים לעומת מערכת קבצים רגילה • מידע רב נשמר בקבצים רגילים של מערכת ההפעלה • מדוע לא ניתן לשמור בהם את כל המידע במקום בבסיס נתונים? • נניח כי בנק מחזיק קובץ (נניח word) לכל לקוח ובו: שם, מס' זהות, גיל, בנקאי אישי, מס' חשבון. • אילו בעיות עלולות להתעורר?
בסיס נתונים לעומת מערכת קבצים רגילה • יתרונות בסיס נתונים לשמירת מידע: • גישה מהירה לנתונים • קונסיסטנטיות • מסגרת אחידה • שמירה על מהימנות המידע באמצעות אילוצים • התמודדות עם נפילות מערכת כך שהמידע יישמר נכון
מודל ישויות קשרים ציון מקום שם קורס שם שם כתובת לומד מלמד מתרגל תלמיד קורס מס' קורס מס' זהות מס' זהות
תכונה מודל ישויות וקשרים: ישויות • ישות • טיפוס ישויות • הקשר בין ישות לטיפוס ישויות אנלוגי לקשר בין אוביקט ל-class בתכנות מונחה עצמים • תכונות של טיפוס ישויות • ערך של התכונה • תחום התכונה טיפוס ישויות
שם קורס שם שם כתובת שם קורס שם שם מנחה תלמיד קורס כתובת מנחה תלמיד קורס מס' קורס מס' זהות מס' זהות מס' קורס מס' זהות מס' זהות מפתח של טיפוס ישויות • מפתח: אוסף מינימלי של תכונות אשר צירופן ייחודי לכל ישות (אין שתי ישויות עם אותם ערכים של תכונות המפתח)
ציון שם קורס שם לומד תלמיד קורס מס' קורס מס' זהות מודל ישויות וקשרים: קשרים • קשר בין ישויות • טיפוס קשרים • תכונות טיפוסי קשרים
קשר חייב להיות ניתן לזיהוי ייחודי על פי הישויות המשתתפות בו! • (אין 2 קשרים זהים ואין 2 קשרים המובדלים ע"י תכונות הקשר בלבד)
דוגמא • שרטט דיאגרמה עבור המערכת הבאה: • בסיס נתונים מחזיק מידע לגבי סרטים, שחקנים, ובמאים • עבור שחקנים ובמאים נשמור שם, מס' זהות • עבור שחקנים, נשמור גם תמונה • עבור סרט, נשמור את שמו, שנת הפקה וסוג הסרט • רוצים לשמור מידע אודות השחקנים והבמאים בכל סרט
title picture id Movie Actor year Acted In name type Directed id Director name היכן נמקם משכורות של שחקנים? מה החיסרון של דיאגרמה זו?
אילוצים • מהות אילוצים • סוגי אילוצים: • אילוץ מפתח (מידת ריבוי של טיפוס קשרים) • אילוץ השתתפות
אילוץ מפתח • מידת הריבוי של טיפוס קשרים בינרי בין טיפוס ישויות A ל-B יכול להיות: • רבים לרבים • רבים מ A לאחד מ B • אחד מ A לרבים מ B • אחד לאחד • סימון: חץ מכיוון טיפוס ישויות A לכיוון טיפוס קשרים עם טיפוס ישויות B אומר שכל יישות ב A משתתפת בקשר עם לכל היותר יישות אחת מ B (כמובן, רק פעם אחת) R B A b a
מידות ריבוי של טיפוסי קשרים מקום שם קורס שם מה המשמעות של הדיאגרמות הבאות? מלמד מרצה קורס מקום שם קורס שם מס' קורס מס' זהות מלמד מרצה קורס מקום מס' קורס מס' זהות שם קורס שם מלמד מרצה קורס מס' קורס מס' זהות
אילוצי השתתפות • אילוץ השתתפות על טיפוס ישויות A המשתתף בטיפוס קשרים R, משמעו שכל ישות ב-A חייבת להשתתף לפחות במופע אחד של R מקום שם קורס שם מלמד מתרגל קורס מס' קורס מס' זהות
יתרה סוג שם בעל חשבון בנק לקוח מס' זהות מס' חשבון
יתרה סוג שם בעל חשבון בנק לקוח מס' זהות מס' חשבון
יתרה סוג שם בעל חשבון בנק לקוח מס' זהות מס' חשבון
יתרה סוג שם בעל חשבון בנק לקוח מס' זהות מס' חשבון
טיפוס קשרים טרינרי שם קורס שם מס' זהות נבחן קורס סטודנט מס' קורס בחינה מס' בחינה מה משמעות אילוץ מפתח כאן?
חזרה לבסיס הנתונים של הקולנוע Director id name year id Actor Movie Produced title name picture type כיצד נשמור מידע על סרט שיש לו במאי אבל אין לו שחקנים?
טיפוס קשרים רקורסיבי שם מנהל מס' זהות ניהול עובד עובד
טיפוס ישויות חלש • אינו מוגדר באופן ייחודי ע"י תכונותיו • נניח שילדים מיוצגים ע"י שם ומס' זהות ונעלים מיוצגות ע"י סוג וצבע • מהציור ניתן לראות כי אי אפשר לייצג זוג נעליים מסוים באמצעות תכונותיו בלבד, אלא רק ע"י שיוכו לבעליו • לכן נעלים יהיו טיפוס ישויות חלש בדוגמה זו
טיפוס ישויות חלש (יותר פורמלי) • טיפוס ישויות שאוסף כל תכונותיו אינו מהווה מפתח עבורו • יזוהה ע"י קשר לטיפוס ישויות חזק • מפתח של טיפוס ישויות חלש: צירוף תכונותיו עם המפתח של טיפוס הישויות החזק אליו הוא קשור
טיפוס ישויות חלש צבע שם ---- ילד שייכות נעל מס' זהות סוג ---- מהו המפתח של נעל?
דוגמא author id title Book isbn Person Copy Of Borrowed Copy copy number condition -------------
Owned By name Library author Book title id isbn ----- Person Copy Of Borrowed Copy copy number condition ------------- ואם אנו שומרים מידע לגבי ספרים מספריות רבות...
שם מה הבעיה בדיאגרמה זו? (בהנחה שהרישום הוא ברבנות...) אדם נישואין ת.ז. שם פיתרון: ת.ז. אדם ISA • -אילוץ שלמות מלא • -קבוצות זרות אישה גבר נישואין ירושה- קשר ISA • מאפשר לבטא ירושה, הכללה והפרדה
דוגמא id Movie Person name ISA picture Director Actor
קיבוץ (אגרגציה) • מאפשר לבטא השתתפות של קבוצת קשרים בקבוצת קשרים
id picture Actor name year salary Acted In Award name year Movie title type מעוניינים לשמור מידע אודות שחקנים שקיבלו פרסים על משחקם בסרט מסוים • מה הבעיה עם דיאגרמה זו? • כל שחקן קיבל לפחות פרס אחד • כל סרט קיבל לפחות פרס אחד
ניסיון שני... id name picture Actor year salary Acted In Won Award name year Movie title type מה הבעיה עם דיאגרמה זו? פרס יכול להינתן לצמד שחקן A וסרט F מבלי שהשחקן A שיחק בסרט F
פיתרון: קיבוץ id name picture Actor Won year salary Acted In Award name year Movie title type
address id birthday Movie Person name phone number name ISA Organization Gives picture Director Actor Won salary Acted In Directed Award year name Movie year title type
תרגול 1 שם מנהל מס' זהות ניהול עובד עובד • יתכן/לא יתכן: • שמעון מנהל של יוסי ואלי • לדוד המנהל אין עובדים • לברוך העובד אין מנהל • המנהלים של יאיר הם דני ויוסי • חיים מנהל את עצמו
אם אב נישואין נישואין בן של תרגול 2 אדם אב אם ISA בן אדם אישה גבר אישה בעל דיאגרמה א' דיאגרמה ב' • נכון/לא נכון עבור א' ו-ב': • לזוג מסוים יכולים להיות כמה ילדים משותפים. • יש אפשרות לרשום ילדים שנולדו מחוץ לנישואין. • לגבר יכולות להיות כמה נשים במשך חייו. • לגבר יכולות להיות כמה נשים בעת ובעונה אחת. • לאדם יכולים להיות רשומים שני הורים מאותו מין (אחד בתפקיד האב ואחד בתפקיד האם). • יש אנשים שלא ידוע מי הוריהם.
תרגול 3 שם קורס שם מס' זהות נבחן קורס סטודנט מס' קורס בחינה מס' סידורי • נכון/לא נכון: • בחינה 366 קיימת בקורס 23 וגם בקורס 34 • סטודנט 112 אינו נבחן באף קורס • סטודנט 155 ביצע את בחינה 332 בקורס 221 פעמיים • סטודנט 155 ביצע בקורס 221 את בחינה 122 וגם 123 • אף סטודנט לא נבחן בבחינה 889
תרגול 4 צייר דיאגרמה המתארת את המערכת הבאה: • ספורטאי (שם ספורטאי, מס' זהות) • מדינה (שם מדינה) • כל ספורטאי מייצגמדינה אחת ויחידה. • כל ספורטאי משחק ב -0 או יותר מדינות. • ספורטאי מקבל משכורת על ייצוג מדינה • כל מדינה מיוצגת ע"י לפחות שחקן אחד משכורת שם ספורטאי שם מדינה מייצג ספורטאי מדינה מס' זהות משחק