1 / 53

בסיסי נתונים מכווני אובייקטים

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

nessa
Download Presentation

בסיסי נתונים מכווני אובייקטים

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. בסיסי נתונים מכווני אובייקטים

  2. חסרונות המודל הטבלאי • ייצוג קשר ע"י מפתח זר בלבד * פירוק למספר רב של טבלאות * שחזור הישות מחייב פעולות Joinשהינן יקרות ולא יעילות

  3. חסרונות המודל הטבלאי • מגוון מצומצם של טיפוסי נתונים נתמכים • אי יכולת לשלב פונקציה בפקודת SQL

  4. התפתחות שני מגמות עיקריות • החלפת המודל הטבלאי ל- - ODBMS • פועלות בהרמוניה עם סביבות התכנות מוכוונות האובייקטים כגון ++C, JAVA, ו- Small Talk • הרחבה ושיפור המודל הטבלאי ORDBMS - בObject Relational DatabaseManagement Systems

  5. מושגי יסוד במודל האובייקטים • אובייקט - ישות הניתנת לזיהוי באופן חד ערכי ומורכבת משני מרכיבים: תכונות (Attributes) המתארות את מצב האובייקט (Object State) ושירותים המתארים את הפעולות שהאובייקט מבצע

  6. זיהוי אובייקט (Object Identification) • OID • מזהה זה נוצר ע”י המערכת ואינו תלוי בתכונות האובייקט • 64 סיביות שחלקן מזהה את הטבלה וחלקן מזהה את השורה בטבלה

  7. זיהוי אובייקט (Object Identification) • מזהה המערכת ניתן ע”י המערכת כשנוצר אובייקט • המזהה לא ניתן לאובייקט אחר גם לאחר בטול האובייקט • מזהה האובייקט הינו חד ערכי ברמת המערכת כולה • המזהה יעיל וקומפקטי (ובעל מבנה סטנדרטי) יותר ממפתח של טבלה • המזהה יכול להיות שקוף למשתמש ומשמש רק את המערכת

  8. תכונות של אובייקט(Object Attributes) • תכונה יכולה להיות תכונה פשוטה שמקבלת ערך בודד וכן תכונה מורכבת (Complex Attribute) ולקבל אוסף ערכים (שלא כבמודל הטבלאי) • ניתן להגדיר את מרחב הערכים של תכונה כאובייקט אחר

  9. תכונות של אובייקט(Object Attributes) • לדוגמא: תכונות האובייקט “סטודנט” הן: מספר סטודנט, שם סטודנט, כתובת, רשימת החוגים בהם הוא רשום ורשימת הקורסים אותו סיים • 2 התכונות האחרונות הן מסוג Reference Attributeהמכילות הצבעה (רשימה של( OID לאובייקטים אחרים (חוגים, קורסים) • הדבר מהווה ייצוג ישיר של קשרים בין אובייקטים ללא צורך בשימוש בטבלאות קשר מיוחדות

  10. דוגמא לאובייקט עם תכונה שמרחב הערכים שלה הוא אובייקט אחר קורס א סטודנט קורס ב קורס ג’

  11. שירותים (Methods) • פעולה שהאובייקט מסוגל לבצע • לכל שירות שני מרכיבים: הממשק של השירותים והיישום של השירות (הלוגיקה) • הממשק (Method Interface) מגדיר את שם השירות, פרמטרים לקלט ופרמטרים לפלט • אוסף כל השירותים שהאובייקט מספק מגדיר את התנהגותהאובייקט (Object Behavior) • שירות יכול להפעיל שירותים אחרים הן של אותו אובייקט והן של אובייקטים אחרים

  12. דוגמא לשירותים (Methods) • נניח שמחלקת “סטודנט” תומכת בשירותים הבאים:יצירת סטודנט חדש, שינוי נתוני סטודנט, רישום סטודנט לקורס, רישום סטודנט לחוג, הצגת ציוני סטודנט • ממשק השירות “רשום סטודנט לקורס” יהיה: (S_C.Add_New_course(Course_#,Student_#, Date, Status) • הדרך לבקש מאובייקט לבצע שירות היא רק ע”י שיגור הודעה (Message)

  13. שיחה בין אובייקטים רישום קורס סטודנט סטודנט_קורס בדיקת תקציב מחלקה

  14. שיחה בין אובייקטים • אובייקט “סטודנט” שולח הודעה “רשום סטודנט לקורס” לאובייקט “סטודנט_קורס” • תוך כדי ביצוע השירות האובייקט “סטודנט_קורס” שולח הודעה לאובייקט “מחלקה” - “בדיקת תקציב” • האובייקט “סטודנט” אינו מודע לצורה בה מתבצע השירות “רישום סטודנט לקורס” ולעובדה שתהליך הרישום מבצע בדיקה תקציבית

  15. אריזה - כימוס – הסתרת מידע Encapsulation • ההתייחסות לישות היא כאל אובייקט בו השירותים והנתונים ארוזים יחד • כל תוכנית הפונה לאובייקט אינה מכירה את מבנה הנתונים/לוגיקה • הכרת הממשק (השירותים) בלבד

  16. כימוס - אריזת המצב וההתנהגות Encapsulation • לדוגמא - ניתן לשנות את הליך הרישום של סטודנט לקורס מבלי שאף אובייקט אחר יהיה מודע לשינוי זה

  17. מחלקת אובייקטים • אוסף של כל האובייקטים מאותו סוג שהם בעלי אותן תכונות ואותה התנהגות • יש להבחין בין מחלקה ל- אובייקט(Object Instance)

  18. קשריםבין אובייקטים המבוטאים ע”י תכונת ייחוס (Reference Attribute)

  19. הורשה ( Inheritance) • ניתן לפצל מחלקת אובייקטים לתתי מחלקות • כל תת-מחלקה יורשת את כל התכונות והשירותים של כל המחלקות הנמצאות מעליה בהיררכיה • בנוסף יש לכל תת מחלקה מספר תכונות ושירותים ייחודיים • מאפשר התפתחות הדרגתית של המערכת הן מבחינת בסיס הנתונים והן מבחינת הלוגיקה (אלגוריתם)

  20. דריסה (Overriding) • אם תכונה או שירות קיימים בתת-מחלקה הם דורסים את ההגדרה שעוברת בירושה

  21. מערכותORDBMS • Stonebraker מברקלי ומבעלי חברת Informixפיתח מערכת לניהול בסיסי נתונים ששילבה רעיונות של מודל האובייקטים עם המודל הטבלאי המלווה בתקן SQL3 • יצרנים שונים החלו לשלב בתוך המערכות שלהם כמה רעיונות מתקן - SQL3 - יבמ עםDB2 יInformix עם Universal Server ו אורקל עם Oracle

  22. תקן SQL3 - עקרונותטיפוס הנתונים (BLOB- (Binary Large Object • רצף גדול של סיביות • העמודה אינה מכילה את האובייקט עצמו אלא רק הצבעה (Pointer) לקובץ חיצוני המכיל אותו • למשל: תמונה, טקסט, ווידאו, ו- הקלטת קול • לא ניתן לבצע עליהם פעולות • כדי להציג את האובייקט דרושה התוכנה שבנתה אותו או תוכנת תצוגה מתאימה

  23. טיפוס הנתונים BLOB- Binary Large Object

  24. טיפוס נתונים מופשטAbstract Data Type - דוגמא: • .3 שם הפרוצדורה הממירה את הנתונים ממבנה ASCIIלמבנה פנימי • 4 .שם הפרוצדורה הממירה את צורת הייצוג הפנימי למבנה ASCII לצורך הצגת הערכים על המסך/מדפסת

  25. טיפוס נתונים מופשט • בשורה 5 מופיעה העמודה מיקום העיר המכילה את הקואורדינטות של עיר המגורים הסטודנט

  26. פונקציות המטפלות בטיפוס הנתונים החדש • הפונקציה יכולה להיכתב בשפת תכנות כל שהיא כגון ++C • שורה 3 מגדירה את שם הקובץ המכיל את הפונקציה • הפונקציה מחזירה מספר עשרוני המייצג את המרחק בק”מ מהמכללה • הפרוצדורה מכילה במשתנה פנימי את נקודות הציון של מיקום המכללה

  27. שימוש בפונקציה המטפלת בטיפוס נתונים חדש - דוגמא לשאילתת SQL • שליפת כל הסטודנטים הגרים במרחק שמעל 25 ק”מ מהמכללה:

  28. טיפוס נתונים חדש - סיכום • היכולת להוסיף טיפוס נתונים חדש והיכולת להגדיר פונקציות חדשות ולשלב אותם בתוך שאילתת SQL - מאפשרת פיתוח יישומים מתוחכמים בצורה נוחה יחסית • ללא זאת היה צורך לכתוב תוכנית יישום השולפת שורה של סטודנט, בודקת אם הוא גר במרחק מתאים מהמכללה

  29. טיפוס נתונים מורכב • בנוי מטיפוסי נתונים בסיסיים וטיפוסי נתונים מופשטים גם יחד • זוהי צורה בה תקן SQL3 מאפשר להגדיר מחלקת אובייקטים (Object Class) • הגדרה של נתונים ופונקציות גם יחד

  30. טיפוס נתונים חדש – כתובת “סטודנט”

  31. דוגמא א’ - טיפוס נתונים חדש - “סטודנט” המכיל את כל נתוני הסטודנט INTEGER

  32. יצירת טבלת "סטודנטים" • CREATE TABLE STUDENTS OF TYPE STUDENT

  33. טיפוס נתונים מורכב • נניח שבנינו פונקציה המחשבת את סכום הספרות של משתנה נומרי וקראנו לו Sum_digits • נשלוף את כל הסטודנטים הגרים בחיפה ושסכום הספרות של המיקוד שלהם הוא 50

  34. טיפוס נתונים מורכב • בשורה 22 ישנה פונקציה מסוג ACTORשהינה חלק מהגדרת טיפוס הנתונים המורכב • הפונקציה מקבלת כפרמטר את כתובת הסטודנט ומחזירה את עיר המגורים (רעיון ההכמסה) • נוכל לבקש את עיר המגורים של כל הסטודנטים ששמם מתחיל באות A

  35. קשרים בין טבלאות ע”י טיפוס נתונים מצביע (Reference) • התוכן של המצביע OID : של השורה המתאימה בטבלה האחרת או באותה טבלה • דוגמא: נגדיר טיפוס נתונים חדש “מפה”

  36. קשרים בין טבלאות ע”י טיפוס נתונים מצביע (Reference) • נגדיר טבלה המכילה אוסף של מפות הערים

  37. קשרים בין טבלאות ע”י טיפוס נתונים מצביע (Reference) • נגדיר משתנה חדש בטבלת סטודנטים: MAP-ID המצביע אל מפת העיר שבו מתגורר הסטודנט INTEGER

  38. קשרים בין טבלאות ע”י טיפוס נתונים מצביע (Reference) • כדי לפנות למשתנה בטבלת מפות יש לבצע - פענוח המצביע (Dereferencing)ע”י הפונקציה Deref • לדוגמא: הצג את מספר התושבים בעיר המגורים של כל הסטודנטים המתגוררים במרחק גדול מ- 25 ק”מ מהמכללה: • הפונקציהDerefמחליפה את השימוש בפעולתJoinויעילה ממנה

  39. יצירת קשר מסוגN:M

  40. יצירת קשר מסוג N:M • נגדיר שאילתא המציגה לגבי סטודנטים שקבלו 90 בסמסטר קיץ 2008 את מספרי הסטודנטים ואת מספרי הקורסים הרלוונטים: SUM2007

  41. יצירת קשר מסוג N:M • דוגמא נוספת: רוצים לעדכן בטבלת ציונים את הציון והסמסטר של סטודנט שמספרו: 115 ומס’ הקורס: M-110 FALL2007

  42. פונקציותSQL • עד כה ראינו פונקציות הכתובות בשפת תכנות כל שהיא • תקן SQL3תומך גם בפונקציות פנימיות • הפונקציות משתמשות בהרחבות מסוימות של שפת SQL • תחביר הפקודה:

  43. פונקציותSQL • דוגמא: פונקציה המחזירה רשימת הסטודנטים המקיימים תנאי שוויון לגבי ציון סופי וסמסטר:

  44. פונקציותSQL • נוכל לכתוב שאילתא המציגה את רשימת הסטודנטים שקבלו ציון 90 בסמסטר: חורף 2007: • SELECT STUDENT_DATA (90, ‘WIN2007’)

  45. טיפוס נתונים מסוג “ אוסף מצביעים” (SETOF) • טיפוס הנתונים Reference מכיל מצביע אחד בלבד • לעומתוSetof מכיל מספר בלתי מוגבל של מצביעים • כל אחד מהמצביעים הוא במבנה של OID

  46. דוגמא • נגדיר עמודה בטבלת “ סטודנטים ” המכילה את רשימת כל הקורסים אליהם הסטודנט נרשם:

  47. טיפוס נתונים מסוג “ אוסף מצביעים” (SETOF) • שאילתא המציגה את שמות הקורסים אליהם רשומים סטודנטים ששמם מתחיל באות “A” Name,

  48. טיפוס נתונים מסוג "מערך" (Array) • דוגמא: יש לנהל 4 תקציבים רבעוניים למחלקה בתוך שורת מחלקה • במקום להגדיר 4 עמודות נפרדות או לפרק את התקציב לטבלה נפרדת - נגדיר עמודה בעל טיפוס נתונים של מערך בגודל 4

  49. טיפוס נתונים מסוג "מערך" (Array) Department)

  50. טיפוס נתונים מסוג “ מערך ”(Array) • נרצה להציג את התקציב של הרבעון השני עבור כל המחלקות בהן התקציב של הרבעון השני גדול מהתקציב של הרבעון הראשון:

More Related