Скачать презентацию אלגברה של יחסים קורס מסדי נתונים 1 Скачать презентацию אלגברה של יחסים קורס מסדי נתונים 1

a7cb3bae335fc90ca17f83557153e54d.ppt

  • Количество слайдов: 16

 אלגברה של יחסים קורס מסדי נתונים 1 מסדי נתונים תשס אלגברה של יחסים קורס מסדי נתונים 1 מסדי נתונים תשס"ג

 הקדמה • מה מטרת השימוש באלגברה של יחסים? • בהמשך: – תזכורת מהירה הקדמה • מה מטרת השימוש באלגברה של יחסים? • בהמשך: – תזכורת מהירה של פעולות האלגברה – דוגמאות לכתיבת שאילתות באלגברה של יחסים 2 מסדי נתונים תשס"ג

 פעולות האלגברה • הטלה ) (projection – סימון: ) A, B(r – מחזירה פעולות האלגברה • הטלה ) (projection – סימון: ) A, B(r – מחזירה יחס המכיל את עמודות A, B של r • בחירה ) (selection – סימון: ) A<2(r – מחזירה יחס המכיל את שורות r המקיימות את התנאי הנתון • איחוד ) (union – סימון: s r – מחזירה יחס שהוא איחוד היחסים r ו- s 3 מתי ניתן להפעיל איחוד על זוג יחסים? מסדי נתונים תשס"ג

 פעולות האלגברה • הפרש ) (set difference – סימון: r s – מחזירה פעולות האלגברה • הפרש ) (set difference – סימון: r s – מחזירה יחס שהוא הפרש היחסים r ו- s • מכפלה קרטזית ) (cross-product מה תיתן מכפלה קרטזית של יחס ביחס ריק? האם אפשרי שבמכפלה של היחס r ביחס s התוצאה תהיה היחס r עצמו? – סימון: r s – מחזירה יחס שהוא המכפלה של היחסים r ו- s • שינוי שם ) (renaming – סימון: ) (t(1 A, 4 B), r s – משנה את שם היחס ואת שמות העמודות ביחס לשמות חדשים 4 מסדי נתונים תשס"ג

 פעולות האלגברה • חיתוך ) (intersection – סימון: r s – מחזיר יחס פעולות האלגברה • חיתוך ) (intersection – סימון: r s – מחזיר יחס שהוא חיתוך היחסים r ו- s מה יתן צירוף טבעי של שני יחסים שחיתוך התבניות שלהם הוא ריק? • צירוף טבעי ) (natural join – סימון: ) r s הסימון האמיתי קצת שונה( – מחזיר יחס שהוא הצירוף של כל שורות r ושורות s שיש להן ערכים שווים בכל זוג עמודות בעלות שם זהה ב- r וב- s • חילוק ) (division – סימון: r s – מחזיר יחס המכיל את הרשומות שחיבורן לכל שורה מ- s ייתן שורה ב- ) r יוסבר ביתר פירוט עוד מעט( 5 מסדי נתונים תשס"ג

 דוגמה • נתונה מערכת לשמירת מידע על סרטים ועל : השחקנים ששיחקו בסרטים דוגמה • נתונה מערכת לשמירת מידע על סרטים ועל : השחקנים ששיחקו בסרטים fno Films title year Act salary Actors id nationality name Films (fno, title, year) Actors (id, name, nationality) Acts (id, fno, salary) מסדי נתונים תשס"ג 6

 שמות השחקנים שהלאום שלהם הוא ישראלי name( nationality=‘Israel’(Actors)) nationality=‘Israel’ ( name(Actors)) מסדי נתונים שמות השחקנים שהלאום שלהם הוא ישראלי name( nationality=‘Israel’(Actors)) nationality=‘Israel’ ( name(Actors)) מסדי נתונים תשס"ג ? אפשר גם כך 7

 שמות השחקנים הישראלים ששיחקו 2000 בסרט שהופק בשנת name( nationality=‘Israel’ year=2000(Actors Act Films)) שמות השחקנים הישראלים ששיחקו 2000 בסרט שהופק בשנת name( nationality=‘Israel’ year=2000(Actors Act Films)) ואפשר גם name ( nationality=‘Israel’ (Actors) Act year=2000(Films)) מסדי נתונים תשס"ג ? מה עדיף 8

 מספרי זהות של שחקנים ששיחקו בסרט שהופק בשנת 0791 וגם 2000 שחקו בסרט מספרי זהות של שחקנים ששיחקו בסרט שהופק בשנת 0791 וגם 2000 שחקו בסרט שהופק בשנת ? מה נכון id( year=1970 year=2000(Act Films)) ? ? id( year=1970 year=2000(Act Films)) id( year=1970(Act Films)) id( year=2000(Act Films)) מסדי נתונים תשס"ג 9

 מספרי זהות של שחקנים שלא שיחקו בסרט שהופק בשנת 0002 מה נכון? ? מספרי זהות של שחקנים שלא שיחקו בסרט שהופק בשנת 0002 מה נכון? ? )) id( year 2000(Act Films )) id(Actors) id( year=2000(Act Films 01 מסדי נתונים תשס"ג

 מספרי הזהות של שחקנים ששיחקו בשני סרטים לפחות (Act. Pairs(1 id 1, 2 מספרי הזהות של שחקנים ששיחקו בשני סרטים לפחות (Act. Pairs(1 id 1, 2 fno 1, 3 salary 1, 4 id 2, 5 fno 2, 6 salary 2), Act) Act. Pairs (id 1, fno 1, salary 1, id 2, fno 2, salary 2) כעת יש בידנו יחס חדש id 1( id 1= id 2 fno 1 fno 2(Act. Pairs)) מסדי נתונים תשס"ג 11

 התשלום המכסימלי שניתן עבור משחק בסרט ולמי הוא ניתן (Act. Pairs(1 id 1, התשלום המכסימלי שניתן עבור משחק בסרט ולמי הוא ניתן (Act. Pairs(1 id 1, 2 fno 1, 3 salary 1, 4 id 2, 5 fno 2, 6 salary 2), Act) Act. Pairs (id 1, fno 1, salary 1, id 2, fno 2, salary 2) כעת יש בידנו יחס חדש id, salary(Act id 1, fno 1, salary 1( salary 1< salary 2 (Act. Pairs))) מסדי נתונים תשס"ג 12

 פעולת החילוק • ניתן לחשוב על פעולת החילוק כמעין פעולה הופכית למכפלה הקרטזית פעולת החילוק • ניתן לחשוב על פעולת החילוק כמעין פעולה הופכית למכפלה הקרטזית • נניח שמתקיים r s = q אז נצפה שיתקיים q/r s • מכאן שאם ליחס q תבנית Q וליחס r תבנית R אזי q/r יהיה יחס בעל תבנית Q R A|B C|D 31 / A|B|C|D מסדי נתונים תשס"ג

 פעולת החילוק r(A, B)- ו q(A, B, C, D) - • נניח ש פעולת החילוק r(A, B)- ו q(A, B, C, D) - • נניח ש q/r = { c, d | a, b r ( a, b, c, d q)} s=q/r מסדי נתונים תשס"ג r s q 14

A B a 1 b 1 a 1 b 2 a 1 b 3 A B a 1 b 1 a 1 b 2 a 1 b 3 a 1 b 4 a 1 b 5 a 1 b 6 a 2 b 1 a 2 b 2 a 3 b 2 a 4 b 4 a 4 b 5 מסדי נתונים תשס"ג / B b 1 = B / b 2 b 4 = B / b 1 b 2 b 3 b 4 b 5 b 6 = 15

 מספרי זהות של שחקנים שהשתתפו בכל הסרטים ששחקן 001 השתתף בהם )) (Films מספרי זהות של שחקנים שהשתתפו בכל הסרטים ששחקן 001 השתתף בהם )) (Films 100, fno( id=100(Act 001 id, fno(Act) / Films ניתן לנסח את השאילתה גם כך? 61 ? )001 id(Act / Films מסדי נתונים תשס"ג