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

Post on 10-Jan-2016

63 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

Transcript

1

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

2

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

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

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

3

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

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

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

4

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

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

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

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

Systems

5

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

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

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

מבצע

6

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

•OID

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

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

7

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

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

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

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

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

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

8

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

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

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

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

9

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

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

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

לאובייקטים 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 תקןBinary Large Object( -BLOBטיפוס הנתונים )

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

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

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

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

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

23

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

24

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

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

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

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

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

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

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

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

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

35

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

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

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

36

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

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

37

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

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

הסטודנט

INTEGER

38

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

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

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

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

39

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

40

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

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

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)

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

הראשון:

51

(Inheritanceהורשה )

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

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

52

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

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

53

( Inheritanceהורשה )

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

” פרופסור

top related