צריך עזרה ב RELATIONAL CALCULUS

מתכNET

New member
צריך עזרה ב RELATIONAL CALCULUS

נתון לי מסד עם שתי טבלאות אחת של ספקים(מספר ספק,שם ספק) ושניה של ספקים-פריטים(מספר ספק,מספר פריט) ואני צריך לכתוב שאילתא ב RALTIONAL CALCULUS שתציג את מספרי הספקים שמספקים 3 פריטים לפחות כל הידוע לי RC לא תומך ב AGGREGATION FUNCTIONS כלומר אני לא יכול להשתמש ב COUNT למשל, האם יש דרך אחרת לעשות את זה? האם השאלה הייתה 3 פריטים בדיוק האם זה היה אפשרי? תודה
 

GuestOfHonor

New member
אין בעיה

התשובה שאני מכיר היא די מגעילה אבל עובדת. מה שאתה יכול לעשות זה צירוף טבעי של שלוש פעמים טבלת הפריטים כך שהטבלאות זהות על מספר הספק אבל מספר הפריט בכל טבלה שונה מזה שבשתי הטבלאות האחרות. כיוון שאין כפילויות באלגרה רלציונית, זה יעבוד לך יופי. כמובן שהשאלה "ומה אם אני רוצה לפחות 300 פריטים" מובילה לתוצאות קצת פחות נעימות באסטרטגיה הזאת, אבל בקטנה...
 

מתכNET

New member
אני לא מבין את נושא המשתנים החופשיים?!:

האם בשאילתה יכולים להיות משתנים שמייצגים tuple מבלי שהם יהיו ב משתני המטרה? למשל נתונים היחסים הבאים: Suppliers ------------ Id Name Invoice ---------- SupplierId ProductId כאשר מוגדרים שני משתנים SupX על Suppliers ו ProductX על Invoice שמייצגים Tuple. האם מותר לי לכתוב משהו כזה? {SupX where ProductX.SupplierId=SupX.iD} כלומר ה ProductX אינו נמצא במשתני המטרה,האם זה חוקי? כל הדוגמאות שמצאתי משתמשים במשתנים שנמצאים במשתני המטרה וזה ממש קשה לפתור בעיות ככה! תודה.
 

GuestOfHonor

New member
אני מפנה אותך למצגת רלוונטית בקורס של העברית

בתקווה זה יענה לך על השאלה (שאני לא בטוח שהבנתי, אנחנו משתמשים בטרמינולוגיה קצת אחרת). בקישור שנתתי כנס להרצאה 2. סביר שיש גם משהו רלוונטי בתרגולים (שהם בד"ך יותר ממצים).
 
למעלה