الجبر العلائقي هو لغة استعلام إجرائية. فهو يوفر عملية خطوة بخطوة للحصول على نتيجة الاستعلام. ويستخدم عوامل التشغيل لتنفيذ الاستعلامات.
أنواع العمليات العلائقية
1. حدد العملية:
- تحدد عملية التحديد الصفوف التي تلبي المسند المحدد.
- ويشار إليه بـ سيجما (σ).
Notation: σ p(r)
أين:
ص يستخدم للتنبؤ بالاختيار
ص يستخدم للعلاقة
ص تُستخدم كصيغة منطقية افتراضية قد تستخدم موصلات مثل: AND OR وNOT. يمكن استخدام هذه العلاقات كعوامل علائقية مثل =، ≠، ≧، ، ≦.
على سبيل المثال: علاقة القرض
| اسم الفرع | قرض_لا | كمية |
|---|---|---|
| وسط البلد | إل-17 | 1000 |
| الخشب الأحمر | إل-23 | 2000 |
| بيريريد | إل-15 | 1500 |
| وسط البلد | إل-14 | 1500 |
| ميانوس | إل-13 | 500 |
| راوندهيل | إل-11 | 900 |
| بيريريد | إل-16 | 1300 |
مدخل:
σ BRANCH_NAME='perryride' (LOAN)
انتاج:
فرز الفقاعة في جافا
| اسم الفرع | قرض_لا | كمية |
|---|---|---|
| بيريريد | إل-15 | 1500 |
| بيريريد | إل-16 | 1300 |
2. تشغيل المشروع:
- تعرض هذه العملية قائمة تلك السمات التي نرغب في ظهورها في النتيجة. يتم حذف بقية السمات من الجدول.
- ويشار إليه بـ ∏.
Notation: ∏ A1, A2, An (r)
أين
أ1 , A2 , A3 يستخدم كاسم سمة العلاقة ص .
مثال: علاقات العملاء
| اسم | شارع | مدينة |
|---|---|---|
| جونز | رئيسي | هاريسون |
| حداد | شمال | الذرة |
| هايز | رئيسي | هاريسون |
| كاري | شمال | الذرة |
| جونسون | روح | بروكلين |
| بروكس | عضو مجلس الشيوخ | بروكلين |
مدخل:
مامتا كولكارني الممثل
∏ NAME, CITY (CUSTOMER)
انتاج:
| اسم | مدينة |
|---|---|
| جونز | هاريسون |
| حداد | الذرة |
| هايز | هاريسون |
| كاري | الذرة |
| جونسون | بروكلين |
| بروكس | بروكلين |
3. عملية الاتحاد:
- لنفترض أن هناك صفين R وS. تحتوي عملية الاتحاد على جميع المجموعات الموجودة إما في R أو S أو كليهما في R & S.
- فهو يزيل الصفوف المكررة. ويشار إليه بـ ∪.
Notation: R ∪ S
يجب أن تتوفر في العملية النقابية الشرط التالي:
- يجب أن يكون لـ R وS السمة لنفس الرقم.
- يتم التخلص من الصفوف المكررة تلقائيًا.
مثال:
علاقة المودع
| اسم الزبون | الحساب_رقم |
|---|---|
| جونسون | أ-101 |
| حداد | أ-121 |
| مايز | أ-321 |
| تيرنر | أ-176 |
| جونسون | أ-273 |
| جونز | أ-472 |
| ليندسي | أ-284 |
علاقة الاقتراض
| اسم الزبون | قرض_لا |
|---|---|
| جونز | إل-17 |
| حداد | إل-23 |
| هايز | إل-15 |
| جاكسون | إل-14 |
| كاري | إل-93 |
| حداد | إل-11 |
| ويليامز | إل-17 |
مدخل:
∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR)
انتاج:
| اسم الزبون |
|---|
| جونسون |
| حداد |
| هايز |
| تيرنر |
| جونز |
| ليندسي |
| جاكسون |
| كاري |
| ويليامز |
| مايز |
4. تحديد التقاطع:
- لنفترض أن هناك مجموعتين R وS. تحتوي عملية التقاطع المحددة على جميع المجموعات الموجودة في كل من R وS.
- ويشار إليه بالتقاطع ∩.
Notation: R ∩ S
مثال: باستخدام جدول المودع أعلاه وجدول الاقتراض
مدخل:
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR)
انتاج:
| اسم الزبون |
|---|
| حداد |
| جونز |
5. تحديد الفرق:
- لنفترض أن هناك صفين 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)