גירסה.0 0.3.00 אלגברה רלציונית מסמך זה הורד מהאתר. אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש במידע המופיע במסמך, וכן לנכונות התוכן של הנושאים המופיעים במסמך. עם זאת, המחבר עשה את מירב המאמצים כדי לספק את המידע המדויק והמלא ביותר. Nir Adar Eail: nir@underwar.co.il Hoe Page: כל הזכויות שמורות ל אנא שלחו תיקונים והערות אל המחבר. --
אלגברה רלציונית אלגברה רלציונית algebra) (Relational היא שפה המאפשרת לכתוב שאילתות עבור נתונים המאורגנים בטבלאות (רלציות). התוצאה של הביטוי הרלציוני (השאילתה) היא טבלה (רלציה) בעצמה. רלציה בודדת היא קבוצה של אובייקטים מטיפוס משותף. בדרך כלל נתייחס לרלציה כאל טבלה. שורות הטבלה מתאימות לאובייקטים ברלציה, ועמודות הטבלה מתאימות לתכונות האובייקטים. סדר השורות והעמודות אינו משנה, ואנו לא מרשים כפילויות בשורות. ל- RA שתי גרסאות: Set-of-apping בו שמות לעמודות. Set-of-list בלי שמות לעמודות. דוגמא: לפי set-of-apping שתי הרלציות הבאות שוות: r(a, b) = {(, ), (3, 4)} s(b,a) = {(, ), (4, 3)} לעומת זאת, לפי set-of-list הרלציות הבאות שונות: t = {(, ), (3, 4)} u = {(, ), (4, 3)}. פעולות בסיסיות -π Projection (בחירת חלק מהעמודות) π account-nuber,balance ( account) בחירת העמודות account-nuber, balance בלבד מתוך הטבלה :account π (credit-info) custoer-nae, liit-credit-balance ניתן גם לבחור שדות מחושבים כמו בדוגמא הבאה: התוצאה במקרים אלו היא טבלה הכוללת את השדות המבוקשים. --
σ - Selection (בחירת חלק מהשורות) ליד האופרטור ניתן לרשום תנאים לגבי אילו שורות יבחרו מתוך הטבלה. ניתן גם לתת מספר תנאים על ידי האופרטורים הלוגיים σ branch-nae = "Perryridge", ו-. דוגמא: ( account), (מכפלה קרטזית) - Cartesian Product הגדרה: המכפלה הקרטיזית תוגדר כך: { and } r s= tq t r q s עבור שתי קבוצות של אובייקטים ניקח את קבוצת כל הקומבינציות האפשריות של אובייקט מהקבוצה הראשונה ואוביקט מהקבוצה השניה. במושגים של טבלאות: לוקחים את כל ה"שרשורים" האפשריים של שורה מ- S ושורה מ- T. אם יש תכונות בעלות שם זהה ל- S ו- T נבדיל ביניהן באמצעות סימון שם הרלציה המקורית (למשל "S.Nu".("T.Nu", דוגמא: נביט ברלציות הבאות: טבלה B גובה.70.8 טבלה A שם דני ניר גיל 7 3 A הינה הטבלה הבאה: אזי הטבלה B שם דני ניר דני נ רי גובה גיל.70 7.8 3.8 7.70 3-3-
איחוד טבלאות, חיתוך טבלאות, הפרש טבלאות. פעולות אלו מתבצעות רק בין זוג רלציות בעל אותה סכמה, והן זהות לפעולות המקבילות מתורת הקבוצות. π custoer-nae ( depositor) π ( borrower) custoer-nae { or }. r s= t t r t הגדרה (איחוד): s דוגמא: π custoer-nae ( depositor) π ( borrower) custoer-nae { and } r s= t t r t הגדרה (הפרש): s דוגמא דומה: { and }. r s= t t r t הגדרה (חיתוך): s הערה: נשים לב כי האופרטור "משלים" מתורת הקבוצות אינו מוגדר פה. הסיבה לכך היא שאיננו רוצים לכלול בעולם שלנו רלציות אינסופיות. -4-
. פעולות נוספות שינוי שם תכונות - ρ T=T[A,...,A אם ], A אז,...,A היא טבלה של אובייקטים עם התכונות ) ( יחזיר את אותה טבלה בדיוק, אך שמות התכונות בטבלה החדשה יהיו ρ A B,..., A B T,..., B בהתאמה. B מיזוג (Join) וביטוי θ θ ( S T).σ S=S[A,...,A n צירוף לפי ביטוי ) Join θ): בהינתן רלציות ] ו-[ T=T[B,...,B S T θ A,...,A,B,..., B n במונחים של נסמן ב- את תוצאת הביטוי האלגברי דוגמא: טבלה T טבלה S D C B 4 A 3 σ הינה הטבלה הבאה: B > C( S תוצאת הביטוי (T D C B 4 4 A 3 3-5-
מיזוג טבעי Join) (Natural S T נסמן ב-,T[ B,..., B, C,..., C ו-[ S A A B B k [,...,,,..., ] n עבור הרלציות את כל הצירופים של אובייקט מ- S ואובייקט מ- T המסכימים ביניהם על התכונות המשותפות, לאחר הסרת הכפילויות בתכונות. חצי צירוף (Sei-join),T[ B,..., B, C,..., C ו-[ S A A B B k [,...,,,..., ] n הרלציות עבור נסמן ב- S T את כל האובייקטים ב- S שעבורם קיימים אובייקטים ב- T המסכימים איתם על התכונות המשותפות. חלוקת טבלאות: S ],..., [ ],,...,,,..., [ נסמן ב- T S A A B B T B B n בהינתן שתי רלציות את הרלציה [ A ] מ- T. R,...,A n המכילה כל אובייקט עבורו יש מופעים ב- S לכל הקומבינציות האפשריות עם שורות. T R S במילים אחרות: התוצאה R היא הקבוצה המקסימלית עבורה האופרטורים הבסיסיים חמשת האופרטורים,,, π σהם,,ρ האופרטורים הבסיסיים ב- RA. אפשר להגדיר באמצעותם \( \ ) r s= r r s את כל שאר האופרטורים. לדוגמא: חיתוך ימומש כך: -6-
3. רלציות חסרות תכונות רלציה חסרת תכונות היא רלציה ריקה או רלציה המכילה שורה אחת בדיוק השורה הריקה. הכללת הפעולות שהוצגו: הטלות: עבור רלציה R, גם הקבוצה הריקה תחשב כתת-קבוצה של התכונות שלה, וההטלה π λ ת. וצאת הביטוי תהיה רלציה ריקה אם R היתה ריקה, ותכיל את השורה המתאימה תסומן ב- R הריקה (כשורה יחידה) אם R לא היתה ריקה. מכפלה קרטזית: R S הינה ריקה אם S ריקה, וזהה ל- R אם S מכילה את השורה הריקה. חלוקה: אם ל- R ול- S אותן תכונות, אז R S תכיל את השורה הריקה אם,S R ותהיה ריקה אחרת. -7-
4. מקורות עיקריים. http://en.wikipedia.org/wiki/relational_algebra. www.doc.u.ac.uk/staff/p.quick/relatnot.doc 3. http://www.databasteknik.se/webbkursen/relalg-lecture/index.htl -8-