אלגברת היחסים
DESCRIPTION
אלגברת היחסים. R elational Algebra. אלגברת היחסים. אלגברת היחסים הנה אוסף של פעולות על יחסים התוצאה של כל פעולה הנה יחס לפיכך אפשר להפעיל פעולות של אלגברת היחסים על תוצאות של פעולות קודמות, כלומר ניתן ליצור ביטויים מורכבים - PowerPoint PPT PresentationTRANSCRIPT
1
אלגברת היחסים
Relational Algebra
2
אלגברת היחסים
אלגברת היחסים הנה אוסף של פעולות על יחסים
התוצאה של כל פעולה הנה יחסלפיכך אפשר להפעיל פעולות של אלגברת
היחסים על תוצאות של פעולות קודמות, כלומר ניתן ליצור ביטויים מורכבים
ההגדרה של אלגברת היחסים משמשת בסיס פורמלי להגדרתן של שפות שאילתה אחרות
3
הפעולות של אלגברת היחסים
לאלגברת היחסים הפעולות הבאותהטלה
בחירה
מכפלה קרטזית
איחוד
הפרש
בפעולה של "שינוי שם" ניתן גם להשתמש
פעולות נוספות ניתנות להגדרה בעזרת הפעולות הבסיסיות
4
יחסים לדוגמה
S R
T
tidsidcourse
20202os
10450calculus
20202db
20240dbtidtnamedept
10cohenmath
20levycs
sidsnameyear
240white 3
202jones 3
450adams1
S – Students T – Teachers R – Students, their courses,
and their teachers
5
Projection הטלה
פעולת ההטלה הנה אונרית )פועלת על יחס אחד(פעולת ההטלה מוחקת חלק מהעמודות
רשומות שונות יכולות להיעשות שוות כתוצאה ממחיקת העמודות
מכיוון שיחס הוא קבוצה של רשומות, בתוצאה נשאר רק עותק אחד מכל רשומה, ולפיכך מספר הרשומות
יכול לקטון
ומוסיפים לו אופרטור ההטלה מסומן ע"י כאינדקס את רשימת העמודות בתוצאה
6
הטלה )המשך(
tid על העמודות Rכדי לבצע הטלה של יחס רושמים את הביטוי: courseו-
התוצאה:
)(, Rcoursetidtidcourse
20os
10calculus
20db
tidsidcourse
20202os
10450calculus
20202db
20240db
7
Selection בחירה
פעולת הבחירה הנה אונרית )פועלת על יחס אחד(
פעולת הבחירה בוחרת חלק מן הרשומות
בתוצאה יש בדרך כלל )אבל לא תמיד( פחות רשומות מאשר ביחס המקורי
כל רשומה בתוצאה זהה לאחת הרשומות מהיחס המקורי
ומוסיפים לו אופרטור הבחירה מסומן ע"י כאינדקס את התנאי לפיו מתבצעת הבחירה
8
בחירה )המשך(
את הרשומות של Rכדי לבחור מהיחס , רושמים את 20 שלו הוא idהמורה שה-
הביטוי:
התוצאה:
)(20 Rtid tidsidcourse
20202os
20202db
20240db
tidsidcourse
20202os
10450calculus
20202db
20240db
9
שילוב פעולות
הביטוי הבא מחשב את רשימת הקורסים 20 שלו הוא idשמלמד המורה שה-
התוצאה:
))(( 20 Rtidcourse course
os
db
tidsidcourse
20202os
10450calculus
20202db
20240db
10
התנאי של פעולת הבחירה
הצורה הכללית של פעולת הבחירה הנה הנו התנאיC, כאשר
התנאי מורכב מהשוואות שמקושרות ע"י פעולות לוגיות של ו- )אין צורך
בשלילה(
השוואה היא מהצורהattribute1 op attribute2 או
attribute1 op constant
C
11
פעולות ההשוואה
( הןopפעולות ההשוואה )
שלילה אפשר לבטא ע"י היפוך ההשוואה
(, אזי char stringאם הקבוע מורכב מאותיות )רושמים אותו בין צמד גרשיים, לדוגמה
,,,,,
)('' Tcohentname
12
הערה
באלגברה הטהורה אין פעולות אריתמטיות , אבל substringאו פעולות אחרות, כגון
בשפות שאילתה מעשיות יש פעולות כאלה ולכן אפשר לכתוב תנאים מהצורה
CBA
13
Cross Productמכפלה קרטזית
מכפלה קרטזית היא פעולה בינארית, שמסומנת ע"י , והיא מחברת כל רשומה
של יחס אחד עם כל רשומה של היחס השני
מספר העמודות בתוצאה שווה לסכום מספרי העמודות ביחסים המקוריים
מספר הרשומות בתוצאה שווה למכפלת מספרי הרשומות ביחסים המקוריים
14
יחסים לדוגמה )שנית(
S R
T
tidsidcourse
20202os
10450calculus
20202db cross
20240dbtidtnamedept
10cohenmath
20levycs
sidsnameyear
240white 3
202jones 3
450adams1
S – Students T – Teachers R – Students, their courses,
and their teachers
15
(tid)sidcourse(tid)tnamedept
20202os10cohenmath
10450calculus10cohenmath
20202db 10cohenmath
20240db10cohen math
20202os20levycs
10450calculus20levycs
20202db20levycs
20240db20levycs
TR
16
(tid)sidcourse(tid)tnamedept
20202os10cohenmath
10450calculus10cohenmath
20202db 10cohenmath
20240db10cohen math
20202os20levycs
10450calculus20levycs
20202db20levycs
20240db20levycs
TR
סכמת התוצאה היא איחוד הסכמות של היחסים המקוריים.
מכיוון שלשתי הסכמות המקוריות יכולים להיות אטריביוטים משותפים, חייבים לשנות את שמות
האטריביוטים האלה.
בדוגמה, המופעים של האטריביוט המשותף מוקפים סוגריים, כדי לציין שלמעשה אין לעמודות אלה שם.
לחלופין, אפשר להתייחס למיקום העמודות, ואם עושים כך, חשוב לשמור על הסדר המקורי של העמודות ולזכור
.Tוהימניות של Rשבתוצאה העמודות השמאליות הן של
17
Renamingשינוי שם
הפעולה מסומנת ע"י לדוגמה, נרשום את הביטוי
ביטוי זה יוצר את המכפלה הקרטזית : ונותן לתוצאה את הסכמה
P)tid1,sid,course,tid2,tname,dept( ובסוגריים Pשם הסכמה של התוצאה הוא
מצוינים שמות האטריביוטים
)),24,11(( TRtidtidP TR
18
לחלופין
אפשר למחוק את אחת משתי העמודות בעלות אותו השם ע"י הפעולה הבאה
בפעולת ההטלה )הרשומה לעיל( מתייחסים למיקום העמודות ולא לשמותיהן
התוצאה של ההטלה היא יחס עם סכמה מוגדרת היטב )קרי, אין שתי עמודות עם אותו שם(
)(6,5,3,2,1 TR
19
tidsidcoursetnamedept
20202oscohenmath
10450calculuscohenmath
20202db cohenmath
20240dbcohen math
20202oslevycs
10450calculuslevycs
20202dblevycs
20240dblevycs
)(6,5,3,2,1 TR
20
דוגמה נוספת
למעשה, סביר שהשאילתה שבה באמת מעוניינים היא
גם התוצאה במקרה הזה הנה סכמה מוגדרת היטב
))(( 416,5,3,2,1 TR
21
tidsidcoursetnamedept
10450calculuscohenmath
20202oslevycs
20202dblevycs
20240dblevycs
))(( 416,5,3,2,1 TR
22
אם בפעולת הבחירה משתמשים במספרי עמודות, אז צריך לסמן קבועים ע"י גרשיים
:4 ו- 1השוואת עמודות
לקבוע:1השוואת עמודה
לחלופין, לפעמים נהוג לסמן עמודות ע"י וכד', לדוגמה:4$, 1$
)(41 TR)('4'1 TR
)(4$1$ TR
)(41$ TR
הערה
23
Unionאיחוד
יחסים הנם קבוצות וניתן לאחד אותם, בתנאי שהם תואמים, כלומר
לשני היחסים אותו מספר עמודות ואותם שמות לעמודות, ובנוסף
)תנאי typeעמודות בעלות אותו שם הנן בעלות אותו לכל עמודה(typeזה משמעותי אם הוגדר
אם לא מתייחסים לשמות של העמודות )או שאין שמות(, אז התנאים הנם:
לשני היחסים אותו מספר עמודות, ובנוסףtypeעמודות בעלות אותו מיקום הנן בעלות אותו
24
דוגמה
sidsnameyear
240white 3
202jones 3
450adams1
sidsnameyear
240white 3
202jones 3
701katz 1
820sapir2
450adams1
sidsnameyear
701katz 1
202jones 3
820sapir2
GS
G
S
25
Differenceהפרש
יחסים הנם קבוצות ולכן ניתן לבצע פעולת הפרש בין יחסים, בתנאי שהם תואמים, כפי
שהוגדר במקרה של פעולת האיחוד
26
דוגמה
sidsnameyear
240white 3
202jones 3
450adams1
sidsnameyear
240white 3
450adams1
sidsnameyear
701katz 1
202jones 3
820sapir2
GS
G
S
27
Intersection חיתוך
באופן דומה ניתן להגדיר חיתוך של יחסים
אבל למעשה פעולת החיתוך ניתנת לביטוי בעזרת פעולות אחרות
)( SRRSR
28
דוגמה
sidsnameyear
240white 3
202jones 3
450adams1
sidsnameyear
202jones 3
sidsnameyear
701katz 1
202jones 3
820sapir2
GS
G
S
29
Joinצירוף
פעולת הצירוף היא למעשה שילוב של מכפלה קרטזית ובחירה )ובמקרים מסוימים
גם הטלה(
שלושה סוגיםcondition join או theta join)הכללי ביותר(
equi-join)שתי גרסאות(
natural join
30
Condition Join
צירוף מותנה הנו פעולה מהצורה הבאה
C ) , ( הנו ביטוי המורכב מפעולות לוגיותומהשוואות מהצורה:
Aכלומר כל השוואה היא בין אטריביוט כלשהו S של B לבין אטריביוט כלשהו Rשל
מסמן את אחד מששת האופרטורים של ההשוואה, קרי
ההגדרה:
ScR
)('
SRc
ScR
BSAR ..
,,,,,
31
הסבר להגדרה
ההגדרה: בעוד ,Cמדוע התנאי המקורי )בצירוף( הוא
שבהגדרת הצירוף )באגף ימין של השיוויון(?’Cהתנאי הוא
מופיעה ההשוואה Cאם ב- צריכה להופיע ההשוואה ’Cאז ב-
i הוא המיקום של העמודהA -ב Rk=j+n , כאשרj הוא המיקום של העמודהB -ב S
Rהוא מספר העמודות ב- nו-
)('
SRc
ScR
BSAR .. ki
32
Equi-Join
צירוף שיוויון הנו פעולה מהצורה הבאה
הנו גימום )קוניונקציה( של השוואות Cכאשר מהצורה:
כלומר, כל השוואה היא שוויון בין אטריביוט S של B לבין אטריביוט כלשהו Rשל Aכלשהו
ההגדרה:
ScR
)('
SRc
ScR
BSAR ..
33
Equi-Join ההגדרה בספר של
צירוף שוויון הנו פעולה מהצורה הבאה
הוא גימום )קוניונקציה( של השוואות Cכאשר מהצורה:
R.A מציין אטריביוט A של R -ו ,S.A מציין )לשני האטריביוטים אותו S של Aאטריביוט
השם(
ההגדרה:
ScR
))('
( SRcL
ScR
ASAR ..
34
הסבר להגדרה
ההגדרה:הוא כמו בהסבר ’Cלבין Cהקשר בין
הקודםL כוללת רק עותק אחד )קרי, עמודה
אחת( מכל זוג אטריביוטים שמושווים כוללת את כל Lבנוסף, ; Cב-
האטריביוטים האחרים )קרי, אלה שלא של הצירוף( Cמופיעים בתנאי
))('
( SRcL
ScR
35
דרך נוספת לסימון )לפי הספר(
צירוף שוויון אפשר גם לרשום בצורה הבאה:
L הוא רשימת האטריביוטים שמופיעים מופיע Aכלומר, אם אטריביוט ; Cבתנאי
של הצירוף כולל C אז התנאי ,Lברשימה את ההשוואה
SL
R
ASAR ..
36
Natural Join צירוף טבעי
מופיעים כל האטריביוטים Lאם ברשימה , אז הפעולה נקראת S ול- Rהמשותפים ל-
natural join ורושמים אותה ללא שום ,אינדקס:
כלומר, בצירוף טבעי משווים את כל זוגות Sול- Rהאטריביוטים המשותפים ל-
ומשאירים רק עותק אחד מכל זוג עמודות שהושוו
SR