אלגברה טבלאית

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‬‬