53
1 ייייי יייייי יייייי ייייייייי

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

  • Upload
    nessa

  • View
    78

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

1

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

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

2

חסרונות המודל הטבלאי

ייצוג קשר ע"י מפתח זר בלבד• * פירוק למספר רב של טבלאות

Join פעולות * שחזור הישות מחייב יעילות ולא יקרות שהינן

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

3

חסרונות המודל הטבלאי

מגוון מצומצם של טיפוסי נתונים • נתמכים

SQLאי יכולת לשלב פונקציה בפקודת •

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

4

התפתחות שני מגמות עיקריות

ODBMSהחלפת המודל הטבלאי ל- - •

פועלות בהרמוניה עם סביבות התכנות מוכוונות •Small Talkו- , C, JAVAהאובייקטים כגון ++

- ORDBMSהרחבה ושיפור המודל הטבלאי • Object Relational Database Managementב

Systems

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

5

מושגי יסוד במודל האובייקטים

- ישות הניתנת לזיהוי באופן חד ערכי אובייקט•( Attributes )תכונותומורכבת משני מרכיבים:

( Object Stateהמתארות את מצב האובייקט ) המתארים את הפעולות שהאובייקט ושירותים

מבצע

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

6

(Object Identificationזיהוי אובייקט )

•OID

ואינו תלוי ע”י המערכתמזהה זה נוצר •בתכונות האובייקט

הטבלה סיביות שחלקן מזהה את 64• בטבלההשורהוחלקן מזהה את

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

7

Objectזיהוי אובייקט )Identification)

כשנוצר אובייקטניתן ע”י המערכתמזהה המערכת •

גם לאחר בטול לאובייקט אחר לא ניתןהמזהה •האובייקט

כולהחד ערכי ברמת המערכתמזהה האובייקט הינו •

)ובעל מבנה סטנדרטי( יותר יעיל וקומפקטיהמזהה •ממפתח של טבלה

ומשמש רק את שקוף למשתמשהמזהה יכול להיות •המערכת

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

8

תכונות של אובייקט (Object Attributes)

תכונה יכולה להיות תכונה פשוטה שמקבלת • Complex )תכונה מורכבתערך בודד וכן

Attribute ) שלא כבמודל אוסף ערכיםולקבל( הטבלאי(

של תכונה מרחב הערכיםניתן להגדיר את •כאובייקט אחר

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

9

תכונות של אובייקט (Object Attributes)

לדוגמא: תכונות האובייקט “סטודנט” הן: • רשימת החוגיםמספר סטודנט, שם סטודנט, כתובת,

אותו סייםורשימת הקורסיםבהם הוא רשום Reference Attribute התכונות האחרונות הן מסוג2•

לאובייקטים OID) המכילות הצבעה )רשימה שלאחרים )חוגים, קורסים(

בין אובייקטים ייצוג ישיר של קשריםהדבר מהווה •ללא צורך בשימוש בטבלאות קשר מיוחדות

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

10

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

סטודנט קורס א

קורס ב

’קורס ג

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

11

(Methodsשירותים )פעולה שהאובייקט מסוגל לבצע •

של הממשק שני מרכיבים: לכל שירות•)הלוגיקה(השירותים והיישום של השירות

שם מגדיר את ( Method Interfaceהממשק )• לקלט ופרמטרים לפלטפרמטריםהשירות,

שהאובייקט מספק מגדיר אוסף כל השירותים•(Object Behaviorהאובייקט ) התנהגותאת

שירותים אחרים הן של להפעילשירות יכול •אחרים אובייקט והן של אובייקטים אותו

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

12

(Methodsדוגמא לשירותים )

נניח שמחלקת “סטודנט” תומכת בשירותים •הבאים:יצירת סטודנט חדש, שינוי נתוני סטודנט,

רישום סטודנט לקורס, רישום סטודנט לחוג, הצגת ציוני סטודנט

ממשק השירות “רשום סטודנט לקורס” יהיה: •(S_C.Add_New_course)Course_#,Student_#, Date, Status(

הדרך לבקש מאובייקט לבצע שירות היא רק ע”י •( Messageשיגור הודעה )

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

13

שיחה בין אובייקטים

סטודנטסטודנט_קור

ס

מחלקה

רישום קורס

בדיקת תקציב

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

14

שיחה בין אובייקטים

אובייקט “סטודנט” שולח הודעה “רשום סטודנט לקורס” •”לאובייקט “סטודנט_קורס

השירות האובייקט תוך כדי ביצוע•“סטודנט_קורס” שולח הודעה לאובייקט

”“בדיקת תקציב“מחלקה” -

לצורה בה אינו מודעהאובייקט “סטודנט” •מתבצע השירות “רישום סטודנט לקורס”

שתהליך הרישום מבצע בדיקה תקציביתולעובדה

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

15

אריזה - כימוס – הסתרת מידע Encapsulation

ההתייחסות לישות היא כאל אובייקט בו • ארוזים יחדהשירותים והנתונים

את אינה מכירה כל תוכנית הפונה לאובייקט • הנתונים/לוגיקהמבנה

)השירותים( בלבדהממשקהכרת •

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

16

כימוס - אריזת המצב וההתנהגות Encapsulation

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

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

17

מחלקת אובייקטים

מאותו סוג שהם בעלי אוסף של כל האובייקטים•התנהגות ואותה תכונותאותן

אובייקטל- מחלקה יש להבחין בין •( Object Instance)

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

18

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

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

19

(Inheritanceהורשה )

לתתי מחלקותניתן לפצל מחלקת אובייקטים • את כל התכונות והשירותים יורשתכל תת-מחלקה •

של כל המחלקות הנמצאות מעליה בהיררכיהתכונות ושירותים בנוסף יש לכל תת מחלקה מספר •

ייחודיים של המערכת הן התפתחות הדרגתיתמאפשר •

מבחינת בסיס הנתונים והן מבחינת הלוגיקה )אלגוריתם(

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

20

(Overridingדריסה )

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

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

21

ORDBMS מערכות

• Stonebraker מברקלי ומבעלי חברת Informix פיתח מערכת לניהול בסיסי נתונים ששילבה

רעיונות של מודל האובייקטים עם המודל SQL3 הטבלאי המלווה בתקן

יצרנים שונים החלו לשלב בתוך המערכות • יבמ עם - SQL3 - שלהם כמה רעיונות מתקן

DB2 י Informix עםUniversal Server ו אורקל Oracleעם

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

22

עקרונות - SQL3 תקןBinary Large Object( -BLOBטיפוס הנתונים )

רצף גדול של סיביות •

העמודה אינה מכילה את האובייקט עצמו אלא •לקובץ חיצוני המכיל אותו( Pointer )הצבעהרק

למשל: תמונה, טקסט, ווידאו, ו- הקלטת קול•

לבצע עליהם פעולותלא ניתן •

שבנתה דרושה התוכנהכדי להציג את האובייקט •אותו או תוכנת תצוגה מתאימה

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

23

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

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

24

טיפוס נתונים מופשטAbstract Data Type - דוגמא:

למבנה פנימי ASCII שם הפרוצדורה הממירה את הנתונים ממבנה3 .•

ASCII . שם הפרוצדורה הממירה את צורת הייצוג הפנימי למבנה4•

לצורך הצגת הערכים על המסך/מדפסת

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

25

טיפוס נתונים מופשט

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

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

26

פונקציות המטפלות בטיפוס הנתונים החדשCהפונקציה יכולה להיכתב בשפת תכנות כל שהיא כגון ++•

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

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

27

שימוש בפונקציה המטפלת בטיפוס נתונים חדש - דוגמא לשאילתת

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

ק”מ מהמכללה:

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

28

טיפוס נתונים חדש - סיכום

חדש והיכולת טיפוס נתוניםהיכולת להוסיף • ולשלב אותם בתוך פונקציות חדשותלהגדיר

מאפשרת פיתוח יישומים - SQL שאילתתמתוחכמים בצורה נוחה יחסית

ללא זאת היה צורך לכתוב תוכנית יישום •השולפת שורה של סטודנט, בודקת אם הוא גר

במרחק מתאים מהמכללה

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

29

טיפוס נתונים מורכב

וטיפוסי נתונים מטיפוסי נתונים בסיסייםבנוי • גם יחד מופשטים

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

גם יחד פונקציות ונתוניםהגדרה של •

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

30

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

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

31

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

הסטודנט

INTEGER

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

32

יצירת טבלת "סטודנטים"

•CREATE TABLE STUDENTS OF TYPE STUDENT

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

33

טיפוס נתונים מורכבנניח שבנינו פונקציה המחשבת את סכום •

הספרות של משתנה נומרי וקראנו לוSum_digits

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

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

34

טיפוס נתונים מורכבשהינה ACTOR ישנה פונקציה מסוג22בשורה •

חלק מהגדרת טיפוס הנתונים המורכב

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

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

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

35

קשרים בין טבלאות ע”י טיפוס (Referenceנתונים מצביע )

של השורה המתאימה : OIDהתוכן של המצביע •בטבלה האחרת או באותה טבלה

”דוגמא: נגדיר טיפוס נתונים חדש “מפה•

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

36

קשרים בין טבלאות ע”י טיפוס ( Referenceנתונים מצביע )

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

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

37

קשרים בין טבלאות ע”י טיפוס נתונים מצביע (Reference)

-MAPנגדיר משתנה חדש בטבלת סטודנטים: •ID המצביע אל מפת העיר שבו מתגורר

הסטודנט

INTEGER

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

38

קשרים בין טבלאות ע”י טיפוס ( Referenceנתונים מצביע )

כדי לפנות למשתנה בטבלת מפות יש לבצע - פענוח • Deref ע”י הפונקציה( Dereferencing)המצביע

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

ויעילה Join מחליפה את השימוש בפעולת Deref הפונקציה•ממנה

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

39

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

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

40

N:M יצירת קשר מסוג נגדיר שאילתא המציגה לגבי סטודנטים שקבלו •

את מספרי 2008 בסמסטר קיץ 90הסטודנטים ואת מספרי הקורסים הרלוונטים:

SUM2007

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

41

N:M יצירת קשר מסוג דוגמא נוספת: רוצים לעדכן בטבלת ציונים את •

115הציון והסמסטר של סטודנט שמספרו: M-110 ומס’ הקורס:

FALL2007

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

42

SQL פונקציותעד כה ראינו פונקציות הכתובות בשפת תכנות כל •

שהיא

תומך גם בפונקציות פנימיות SQL3 תקן•

הפונקציות משתמשות בהרחבות מסוימות של שפת•SQL

תחביר הפקודה: •

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

43

SQL פונקציות

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

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

44

SQL פונקציות

נוכל לכתוב שאילתא המציגה את רשימת • בסמסטר: חורף 90הסטודנטים שקבלו ציון

2007:

• SELECT STUDENT_DATA )90, ‘WIN2007’(

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

45

” טיפוס נתונים מסוג “ אוסף מצביעים(SETOF )

מכיל מצביע אחד Reference טיפוס הנתונים•בלבד

מכיל מספר בלתי מוגבל של Setof לעומתו•מצביעים

OID כל אחד מהמצביעים הוא במבנה של•

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

46

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

רשימת כל הקורסים אליהם הסטודנט נרשם:

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

47

” טיפוס נתונים מסוג “ אוסף מצביעים(SETOF )

שאילתא המציגה את שמות הקורסים אליהם •” A “רשומים סטודנטים ששמם מתחיל באות

Name,

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

48

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

תקציבים רבעוניים למחלקה 4דוגמא: יש לנהל •בתוך שורת מחלקה

עמודות נפרדות או לפרק את 4במקום להגדיר •התקציב לטבלה נפרדת - נגדיר עמודה בעל

4טיפוס נתונים של מערך בגודל

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

49

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

Department(

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

50

טיפוס נתונים מסוג “ מערך ”(Array)

נרצה להציג את התקציב של הרבעון השני עבור •כל המחלקות בהן התקציב של הרבעון השני גדול מהתקציב של הרבעון

הראשון:

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

51

(Inheritanceהורשה )

מאפשר גם לטיפוס נתונים מופשט SQL3 תקן•ADT להשתתף בהיררכיה של מחלקת-על

ותתי-מחלקות תוך קיום עקרון ההורשה הן של עמודות והן של פונקציות

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

52

(Inheritanceהורשה )דוגמא: יש להגדיר מחלקת-על "עובדים" •

באוניברסיטה ושתי תת-מחלקות: "סגל אקדמאי", ,)Employee ו- "סגל מנהלי"

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

53

( Inheritanceהורשה )

נבנה שאילתא המציגה את שמות העובדים •השייכים לסגל האקדמאי והם בעלי תואר “

” פרופסור