מערכות בסיסי נתונים - אלגברה של יחסים

yael800

New member
מערכות בסיסי נתונים - אלגברה של יחסים

יש לי שאלה, מה ההבדל בין צרוף טבעי לבין מכפלה קרטזית? נני שיש לי 2 טבלאות ואני צריכה לעשות בינייהן את הפעולות הנ"ל, איך התוצאה תיראה בכל אחד מהמקרים?
--- r ---- A B C ======= 1 1 4 2 2 6 4 3 2 4 1 4 6 4 1 5 5 1 4 4 2 4 2 6 --- s ---- A B C ======= 1 1 3 3 2 6 4 3 2 5 4 1 3 3 3 4 1 4​
בפועל אני מבינה שצרוף טבעי זה כמו JOIN ב SQL ןמכפלה קרטזית זה כשה WHERE משווה בין העמודות המשותפות של הטבלאות? אני לא מבינה כיצד זה בא לידיי ביטוי במקרה הנ"ל, המון המון תודה מראש והמשך סופ"ש מקסים, יעל.
 

yael800

New member
כלומר

אשמח אם תוכלו לתת לי בכל אחת מהפעולות (מכפלה + צירוף) את הרשומה הראשונה כדי שתהיה לי דוגמה להפיק ממנה:
R*S: A B C מכפלה קרטזית ======= R<>S: A B C צרוף טבעי =======​
 

just me222

New member
מכפלה קרטזית

--- r ---- A B C ======= 1 1 4 2 2 6 4 3 2 4 1 4 6 4 1 5 5 1 4 4 2 4 2 6 --- s ---- A B C ======= 1 1 3 3 2 6 4 3 2 5 4 1 3 3 3 4 1 4 RXS A B C A B C 1 1 4 1 1 3 1 1 4 3 2 6 1 1 4 4 3 2 1 1 4 5 4 1 1 1 4 3 3 3 1 1 4 4 1 4 2 2 6 1 1 3 2 2 6 3 2 6 2 2 6 4 3 2 2 2 6 5 4 1 2 2 6 3 3 3 2 2 6 4 1 4 זאת לא כל המכפלה קרטזית, רק חלק, עבור שתי השורות הראשונות של היחס הראשון. תמשיכי ככה לצרף כל שורה לכל השורות האחרות ביחס השני... זה מכפלה קרטזית
 

HaifaMan

New member
אין שום תנאי או מגבלה במכפלה קרטזית

פשוט לוקחים כל רשומה מהיחס הראשון ומשרשרים אליה את כל הרשומות מהיחס השני. בJOIN או צירוף טבעי עושים מה שכתבת - משאירים רק את הרשומות שמסכימות על העמודות המשותפות.
 

yael800

New member
מממ

תודה, שאלה נוספת: מבחינת סדר פעולות, אם יש לי:
Hb,c (r) <> Hb,c (s)​
H = הטלה <> = צירוף טבעי אני קודם כל מבצעת את ההטלה ואז עלייה את הצירוף? או קודם את הצירוף ואז את ההטלה? זה חשוב כי אם קודם את ההטלה אז יש לי רשומה עם איברים זהים נוספת כי הורדתי את עמודת A.. ועוד משהו אחרון: אני צריכה למצוא ביטויים שקולים, איך אני משקילה צירוף טבעי בלי להשתמש בחיתוך ובצירוף טבעי?
 

yael800

New member
לגביי עוד משהו קטן

אני צריכה למצוא ביטויים שקולים, איך אני משקילה צירוף טבעי בלי להשתמש בחיתוך ובצירוף טבעי? זה הביטוי:
Hb,c(r) <>Hb,c(s)​
והאם זה מקביל? (ביקשו עם חיתוך במקום ה"וגם":
Hb(cigma a=3 and cigma a=6 (s)) -----> Hb((cigma a=3 (s)) חיתוך Hb(cigma a=6 (s)) )​
 
למעלה