אלגברה טבלאית
Download
Report
Transcript אלגברה טבלאית
אלגברה טבלאית:6 פרק
Relational Algebra
1
אלגברה טבלאית
• שפה תיאורטית לשליפת מידע מתוך המודל הטבלאי,
תוך שימוש באוסף של אופרטורים
• מהווה תשתית תיאורטית עליה מתבססות שפות
טבלאיות רבות עוצמה כגון שפתSQL
• שפה טבלאית הינה שפה לא פרוצדורלית שאינה
מנווטת בבסיס הנתונים מרשומה לרשומה לצורך
שליפת נתונים
2
אלגברה טבלאית
• להדגמה -נשתמש בבסיס נתונים טבלאי המורכב מ 3 -טבלאות
3
ציונים
Grades
GRADE
TERM
SEMESTER
COURSE_ID
STUDENT_ID
ציון
מועד
סמסטר
קורס.מס
סטודנט.מס
78
A
SUM2006
M-100
105
85
B
AUT2008
C-55
105
95
A
AUT2008
C-100
105
75
A
AUT2008
C-100
210
82
B
SUM2007
C-300
210
70
A
SUM2007
C-200
210
90
A
SUM2006
M-100
245
80
B
AUT2008
C-55
245
58
A
SUM2007
C-300
245
75
A
SUM2006
M-100
310
4
בחירת שורות Select -
• אופרטור “בחירה” מאפשר שליפת שורות מסוימות
מתוך טבלה ובניית טבלה חדשה המכילה רק את
השורות העונות על תנאי השליפה
5
בחירת שורותSelect -
6
הצג את כל הסטודנטים אשר קבלו:דוגמא
M-100 בקורס70 -גבוה מ
ציון
SELECT GRADES WHERE GRADE >70 •
AND COURSE_ID=‘M-100’
GRADE
TERM
SEMESTER
COURSE_ID
STUDENT_ID
ציון
מועד
סמסטר
קורס.מס
סטודנט.מס
78
A
SUM2006
M-100
105
90
A
SUM2006
M-100
245
75
A
SUM2006
M-100
310
7
בחירת עמודות – היטל )(Project
• אופרטור ההיטל מאפשר שליפת עמודות מסוימות
מטבלה ובניית טבלה חדשה המכילה רק את העמודות
המבוקשות
• אינו מאפשר קיום שורות כפולות בטבלת התוצאה
• סדר העמודות בטבלת התוצאה נקבע ע”פ סדר הופעת
שמות העמודות באופרטור
8
בחירת עמודות – היטל )(Project
9
הצג את הסמסטרים בהם נבחנו סטודנטים:דוגמא
60 -במועד א' וקבלו ציון גבוה מ
SELECT GRADES WHERE TERM=‘A’ AND GRADE •
>60 GIVING TEMP
PROJECT TEMP OVER (SEMESTER)
GIVING RESULT
SEMESTER
סמסטר
SUM2006
AUT2008
10
צירוף טבלאות )(Join
• אופרטור הצירוף בונה טבלה חדשה מתוך 2טבלאות
ע”פ עמודה אחת או יותר המשותפות לשתי טבלאות
• האופרטור מנצל את הקשרים בין הטבלאות
11
צירוף טבלאות )(Join
12
צירוף טבלאות )(Join
• דוגמא :הצג את שמות הסטודנטים שלמדו בקורסM-100
13
איחוד טבלאות )(Union
•
•
•
•
14
אופרטור האיחוד מחבר 2טבלאות ובונה מהן טבלת
תוצאה אחת ע”פ כללי האיחוד מתורת הקבוצות
שורות זהות תופענה פעם אחת בלבד
פועל על 2טבלאות “תואמות איחוד”
(זהות מבחינת המבנה שלהן -אותם עמודות עם אותם
מרחבי ערכים(
אין חשיבות לסדר הופעת הטבלאות באופרטור
האיחוד
איחוד טבלאות )(Union
15
איחוד טבלאות )(Union
16
חיסור טבלאות )(Minus
•
•
•
•
17
אופרטור החיסור מאפשר להחסיר מטבלה אחת את
כל השורות הזהות המופיעות בטבלה השנייה
רק השורות הנותרות מועברות לטבלת התוצאה
הטבלאות חייבות להיות תואמות איחוד
סדר הופעת הטבלאות באופרטור -חשוב
חיסור טבלאות )(Minus
18
חיסור טבלאות )(Minus
19
חיתוך טבלאות )(Intersection
• אופרטור החיתוך מאפשר חיתוך בין שתי טבלאות
לפי כללי תורת הקבוצות
• רק שורות המופיעות בשתי הטבלאות גם יחד יועברו
לטבלת התוצאה
• אין חשיבות לסדר הופעת הטבלאות באופרטור
20
(Intersection) חיתוך טבלאות
21
(Intersection) חיתוך טבלאות
22
מכפלה קרטזית )(Product
• אופרטור זה מאפשר לצרף לכל אחת מהשורות של
טבלה R1את כל השורות של טבלה R2
• אם לטבלה R1יש nשורות ולטבלה R2יש m
שורות כי אז לטבלת התוצאה תהיינה m x nשורות
• הטבלאות לא חייבות להיות תואמות איחוד
23
מכפלה קרטזית )(Product
24
חילוק טבלאות )(Division
• אופרטור החילוק מוצא בטבלה מסוימת
(טבלת המונה) את כל השורות המופיעות
גם בטבלת השנייה (טבלת המכנה)
לפי ערך השוואה המופיע בעמודה מסוימת/עמודות
מסוימות
• שתי הטבלאות לא חיבות להיות תואמות איחוד
• יש חשיבות לסדר
25
חילוק טבלאות )(Division
26
סיכום
•
•
•
•
•
•
27
כל פעולה בבסיס הנתונים ניתנת לביצוע בעזרת 5
אופרטורים בסיסיים בלבד:
Select
Project
Union
Minus
Product
סיכום
• לדוגמא :פעולת האופרטור Joinדומה
לשילוב בין האופרטורים
productוSelect -
28