אלגברה יחסי היא שפת שאילתה פרוצדורלית. זה נותן תהליך שלב אחר שלב להשגת התוצאה של השאילתה. הוא משתמש באופרטורים כדי לבצע שאילתות.
סוגי פעולה יחסיים
1. בחר פעולה:
- פעולת הבחירה בוחרת tuples העונים על פרדיקט נתון.
- זה מסומן על ידי סיגמה (σ).
Notation: σ p(r)
איפה:
ע משמש לחיזוי בחירה
ר משמש ליחס
ע משמש כנוסחת לוגיקה פרופוזיציונית אשר עשויה להשתמש במחברים כמו: AND OR ו- NOT. יחסים אלה יכולים להשתמש בתור אופרטורים יחסיים כמו =, ≠, ≧, , ≦.
לדוגמא: יחס הלוואה
| שם הסניף | LOAN_NO | כמות |
|---|---|---|
| מרכז העיר | L-17 | 1000 |
| סקויה | L-23 | 2000 |
| פרירייד | L-15 | 1500 |
| מרכז העיר | L-14 | 1500 |
| מיאנוס | L-13 | 500 |
| ראונדהיל | L-11 | 900 |
| פרירייד | L-16 | 1300 |
קֶלֶט:
σ BRANCH_NAME='perryride' (LOAN)
תְפוּקָה:
fmoviez
| שם הסניף | LOAN_NO | כמות |
|---|---|---|
| פרירייד | L-15 | 1500 |
| פרירייד | L-16 | 1300 |
2. תפעול הפרויקט:
- פעולה זו מציגה את רשימת התכונות שאנו רוצים שיופיעו בתוצאה. שאר התכונות נמחקות מהטבלה.
- זה מסומן על ידי ∏.
Notation: ∏ A1, A2, An (r)
איפה
A1 , A2 , A3 משמש כשם תכונה של יחס ר .
מיון מהיר
דוגמה: קשר לקוחות
| שֵׁם | רְחוֹב | עִיר |
|---|---|---|
| ג'ונס | רָאשִׁי | הריסון |
| נַפָּח | צָפוֹן | שיפון |
| הייס | רָאשִׁי | הריסון |
| קָארִי | צָפוֹן | שיפון |
| ג'ונסון | נֶפֶשׁ | ברוקלין |
| ברוקס | סֵנָטוֹר | ברוקלין |
קֶלֶט:
∏ NAME, CITY (CUSTOMER)
תְפוּקָה:
| שֵׁם | עִיר |
|---|---|
| ג'ונס | הריסון |
| נַפָּח | שיפון |
| הייס | הריסון |
| קָארִי | שיפון |
| ג'ונסון | ברוקלין |
| ברוקס | ברוקלין |
3. תפעול האיגוד:
- נניח שיש שני tuples R ו-S. פעולת האיחוד מכילה את כל tuples שנמצאים או ב-R או S או שניהם ב-R & S.
- זה מבטל את הכפילים הכפולים. זה מסומן על ידי ∪.
Notation: R ∪ S
פעולת איגוד חייבת לקיים את התנאי הבא:
- R ו-S חייבות להיות עם התכונה של אותו מספר.
- כפולות כפולות נמחקות אוטומטית.
דוגמא:
יחסי מפקידים
| שם לקוח | מספר חשבון |
|---|---|
| ג'ונסון | A-101 |
| נַפָּח | A-121 |
| מייס | A-321 |
| חָרָט | A-176 |
| ג'ונסון | A-273 |
| ג'ונס | A-472 |
| לינדזי | A-284 |
יחס הלוואה
| שם לקוח | LOAN_NO |
|---|---|
| ג'ונס | L-17 |
| נַפָּח | L-23 |
| הייז | L-15 |
| ג'קסון | L-14 |
| קָארִי | L-93 |
| נַפָּח | L-11 |
| וויליאמס | L-17 |
קֶלֶט:
∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR)
תְפוּקָה:
| שם לקוח |
|---|
| ג'ונסון |
| נַפָּח |
| הייז |
| חָרָט |
| ג'ונס |
| לינדזי |
| ג'קסון |
| קָארִי |
| וויליאמס |
| מייס |
4. הגדר צומת:
- נניח שיש שני tuples R ו-S. פעולת ה-set intersection מכילה את כל tuples שנמצאים ב-R & S.
- הוא מסומן בצומת ∩.
Notation: R ∩ S
דוגמא: שימוש בטבלת המפקידים לעיל ובטבלת ההשאלה
arraylist Java sort
קֶלֶט:
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)
תְפוּקָה:
| שם לקוח |
|---|
| נַפָּח |
| ג'ונס |
5. הגדר הבדל:
- נניח שיש שני tuples R ו-S. פעולת הצומת הקבוצתית מכילה את כל הטפולים שנמצאים ב-R אך לא ב-S.
- זה מסומן בצומת מינוס (-).
Notation: R - S
דוגמא: שימוש בטבלת המפקידים לעיל ובטבלת ההשאלה
קֶלֶט:
∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSITOR)
תְפוּקָה:
| שם לקוח |
|---|
| ג'קסון |
| הייז |
| וויליאמס |
| קָארִי |
6. מוצר קרטזיאני
- המוצר הקרטזיאני משמש לשילוב כל שורה בטבלה אחת עם כל שורה בטבלה השנייה. זה ידוע גם בתור מוצר צולב.
- זה מסומן על ידי X.
Notation: E X D
דוגמא:
עוֹבֵד
| EMP_ID | EMP_NAME | EMP_DEPT |
|---|---|---|
| 1 | נַפָּח | א |
| 2 | לְהָצִיק | ג |
| 3 | ג'ון | ב |
מַחלָקָה
| DEPT_NO | DEPT_NAME |
|---|---|
| א | שיווק |
| ב | מכירות |
| ג | משפטי |
קֶלֶט:
EMPLOYEE X DEPARTMENT
תְפוּקָה:
| EMP_ID | EMP_NAME | EMP_DEPT | DEPT_NO | DEPT_NAME |
|---|---|---|---|---|
| 1 | נַפָּח | א | א | שיווק |
| 1 | נַפָּח | א | ב | מכירות |
| 1 | נַפָּח | א | ג | משפטי |
| 2 | לְהָצִיק | ג | א | שיווק |
| 2 | לְהָצִיק | ג | ב | מכירות |
| 2 | לְהָצִיק | ג | ג | משפטי |
| 3 | ג'ון | ב | א | שיווק |
| 3 | ג'ון | ב | ב | מכירות |
| 3 | ג'ון | ב | ג | משפטי |
7. שינוי שם הפעולה:
פעולת שינוי השם משמשת לשינוי שם יחס הפלט. זה מסומן על ידי rho (פ).
דוגמא: אנו יכולים להשתמש באופרטור שינוי שם כדי לשנות את שם הקשר STUDENT ל-STUDENT1.
אחרת אם ג'אווה
ρ(STUDENT1, STUDENT)