الجبر العلائقي في أنظمة إدارة قواعد البيانات مع أمثلة

⚡ ملخص ذكي

الجبر العلائقي في أنظمة إدارة قواعد البيانات هو لغة استعلام إجرائية تأخذ العلاقات كمدخلات وتنتج علاقات جديدة كمخرجات. وهو يصنف المعاملات إلى فئات أحادية، ومجموعات، وثنائية، مما يوفر الأساس النظري الذي تترجمه محركات SQL إلى خطط استعلام قابلة للتنفيذ.

  • 🔍 ابدأ بالمعاملات الأحادية: تتيح لك أوامر SELECT و PROJECT و RENAME تصفية الصفوف واختيار الأعمدة وإعادة تسمية السمات في علاقة واحدة.
  • 📚 تطبيق نظرية المجموعات: الاتحاد، والتقاطع، والاختلاف، والناتج الديكارتي تجمع العلاقات المتوافقة مع الاتحاد في نتائج جديدة.
  • 🔗 انضم عن قصد: تتعامل عمليات الربط Theta و Equi و Natural مع المطابقات الداخلية، بينما تحتفظ عمليات الربط Left و Right و Full Outer بالصفوف غير المتطابقة مع القيم الفارغة.
  • 📐 توافق الساعة: تأكد دائمًا من توافق عدد المعاملات وأسماء السمات والمجالات قبل أي عملية مجموعة أو اتحاد.
  • 🤖 استخدم الذكاء الاصطناعي للترجمة: تقوم المساعدات المدعومة بالذكاء الاصطناعي بتحويل التعبيرات الجبرية إلى لغة SQL، وشرح أسبقية المعاملات، وتحديد شروط الربط المفقودة بلغة إنجليزية بسيطة.

الجبر العلائقي في نظم إدارة قواعد البيانات (DBMS).

ما هو الجبر العلائقي؟

الجبر العلائقي لغة SQL هي لغة استعلام إجرائية تقبل نماذج من العلاقات كمدخلات، وتُعيد نماذج جديدة من العلاقات كمخرجات. تُطبّق هذه اللغة مجموعة ثابتة من المعاملات بشكل متكرر على علاقة واحدة أو أكثر، وتكون نتيجة كل معامل علاقةً بحد ذاتها يمكن استخدامها في العملية التالية. تعتمد محركات SQL على هذه الجبر لتخطيط وتنفيذ الاستعلامات.

الجبر العلائقي الأساسي Operaستعقد

تنقسم عوامل الجبر العلائقي إلى ثلاث مجموعات.

العلائقية الأحادية Operaستعقد

  • حدد (σ)
  • مشروع (π)
  • إعادة تسمية (ρ)

Operations من نظرية المجموعات

  • الاتحاد (∪)
  • التقاطع (∩)
  • الفرق (-)
  • حاصل الضرب الديكارتي (×)

العلائقية الثنائية Operaستعقد

  • الانضمام
  • قطاع

تشرح الأقسام التالية كل عامل من عوامل التشغيل مع أمثلة عملية.

حدد (σ)

استخدم اختر تختار العملية مجموعة فرعية من الصفوف التي تحقق شرطًا معينًا. رمز سيجما σ يدل على ذلك:

σp(r)

أين σ هو المشغل، p هو الشرط الافتراضي، و r العلاقة (الجدول). يحافظ أمر SELECT على المخطط ويتجاهل الصفوف التي لا تستوفي الشرط.

مثال 1

σ topic = "Database" (Tutorials)

يختار الصفوف من الدروس حيث يكون الموضوع يساوي "قاعدة البيانات".

مثال 2

σ topic = "Database" AND author = "guru99" (Tutorials)

يختار الصفوف من الدروس حيث يكون الموضوع "قاعدة البيانات" والمؤلف هو guru99.

مثال 3

σ sales > 50000 (Customers)

يختار الصفوف من عملاء التي تزيد قيمة مبيعاتها عن 50,000.

الإسقاط (π)

استخدم إسقاط يقوم عامل الإسقاط بإزالة جميع السمات من جدول الإدخال باستثناء تلك المدرجة، مما ينتج عنه مجموعة فرعية عمودية. كما يقوم الإسقاط أيضًا بإزالة الصفوف المكررة الناتجة عن عملية الحذف.ping السمات. رمز باي π يدل على ذلك.

على سبيل المثال: انظر إلى الجدول التالي.

هوية الزبون اسم الزبون الحالة
1 Google النشطه
2 Amazon النشطه
3 ابل غير نشط
4 علي بابا النشطه

إسقاط البيانات بناءً على اسم العميل وحالته:

π CustomerName, Status (Customers)
اسم الزبون الحالة
Google النشطه
Amazon النشطه
ابل غير نشط
علي بابا النشطه

إعادة تسمية (ρ)

استخدم إعادة تسمية المعامل هو عملية أحادية تُعطي اسمًا جديدًا لخاصية (أو لعلاقة كاملة). على سبيل المثال، ρ(a/b) R إعادة تسمية السمة b علاقة R إلى aتُعد إعادة التسمية مفيدة بشكل خاص عندما تحتاج إلى إجراء ربط ذاتي أو ربط علاقتين تشتركان في أسماء السمات.

الاتحاد Operation (∪)

استخدم UNION المعامل، المشار إليه بـ ، يقوم بإرجاع كل صف يظهر إما في العلاقة A أو العلاقة B، مع إزالة التكرارات تلقائيًا.

Result ← A ∪ B

لكي يكون الاتحاد صحيحاً:

  • يجب أن يكون لـ A و B نفس عدد السمات (نفس عدد العناصر).
  • يجب أن تكون نطاقات السمات المقابلة متوافقة.
  • تتم إزالة الصفوف المكررة تلقائيًا.

مثال. انظر إلى هذين الجدولين:

الجدول أ الجدول ب
العمود 1 العمود 2 العمود 1 العمود 2
1 1 1 1
1 2 1 3

A ∪ B يعطي:

العمود 1 العمود 2
1 1
1 2
1 3

الفرق بين المجموعات (-)

يشير رمز الطرح إلى فرق المجموعة. نتائج A − B هي علاقة تحتوي على جميع الصفوف الموجودة في A ولكنها غير موجودة في B.

  • يجب أن يكون كل من A و B متوافقين مع النقابة.
  • يجب أن تتطابق أسماء السمات والمجالات.

مثال: أ - ب

العمود 1 العمود 2
1 2

التقاطع (∩)

استخدم تقاطع طرق المعامل، المشار إليه بـ ، يحدد علاقة تحتوي على كل صف يظهر في كل من A و B. يجب أن يكون A و B متوافقين مع الاتحاد.

تعريف مرئي للتقاطع

تعريف مرئي للتقاطع.

مثال: أ ∩ ب

العمود 1 العمود 2
1 1

الضرب الديكارتي (×) في نظام إدارة قواعد البيانات

استخدم المنتج الديكارتي يجمع هذا الأمر كل صف من جدول مع كل صف من جدول آخر، ويدمج أعمدتهما. نادراً ما تكون النتيجة مفيدة بمفردها، ولكن عند دمجها مع شرط SELECT، تصبح أساساً لعملية JOIN. ويُطلق عليها أيضاً اسم الضرب التقاطعي أو الربط التقاطعي.

مثال: σ العمود 2 = '1' (A × B)

يُعيد التعبير كل صف من A × B لمن column 2 القيمة 1.

العمود 1 العمود 2
1 1
1 1

انضم إلى أكثر من Operaستعقد

A الانضمام هو ضرب ديكارتي متبوعًا بمسند اختيار. يُشار إلى عمليات الربط بـ يتيح لك الرمز دمج الصفوف ذات الصلة من علاقات مختلفة بطريقة ذات معنى.

أنواع الربط:

  • الوصلات الداخلية: انضمام ثيتا، انضمام إيكوي، انضمام ناتشورال.
  • الوصلات الخارجية: الوصلات الخارجية اليسرى واليمنى والكاملة.

صلة داخلية

في الانضمام الداخلييتم تضمين الصفوف التي تستوفي معايير المطابقة فقط؛ أما الباقي فيتم تجاهله.

ثيتا انضم

الصيغة العامة لكلمة JOIN هي ثيتا ينضم، ويرمز لها بـ θ. يمكن لعملية الربط ثيتا استخدام أي شرط مقارنة في معايير الاختيار الخاصة بها.

A ⋈θ B

فمثلا:

A ⋈ A.column 2 > B.column 2 (B)
العمود 1 العمود 2
1 2

إيكوي جوين

عندما تستخدم عملية الربط ثيتا شروط المساواة فقط، فإنها تصبح انضمام إيكوي.

A ⋈ A.column 2 = B.column 2 (B)
العمود 1 العمود 2
1 1

يُعدّ وصل Equi أحد أكثر أنماط الوصل استخدامًا، و RDBMS عادةً ما يبذل مُحسِّن الاستعلامات جهداً كبيراً لجعله فعالاً.

الانضمام الطبيعي (⋈)

A صلة طبيعية يتطلب ذلك وجود سمة (عمود) مشتركة بين العلاقات. يجب أن تحمل السمة المشتركة نفس الاسم والنطاق. تحتوي النتيجة على نسخة واحدة من العمود المطابق.

انظر إلى هذين الجدولين.

الجدول ج
في مربع
2 4
3 9
الجدول د
في مكعب
2 8
3 27

C ⋈ D ينتج عنه:

في مربع مكعب
2 4 8
3 9 27

الانضمام الخارجي

An صلة الخارجي يحتفظ بالصفوف التي تستوفي معايير المطابقة و الصفوف التي لا تحتوي على ذلك، وملء الأعمدة المفقودة بـ NULL.

الانضمام الخارجي الأيسر (أ ⟕ ب)

يُبقي الربط الخارجي الأيسر كل صف في العلاقة اليسرى. إذا لم يكن هناك صف مطابق في الجدول A في الجدول B، فسيتم ملء السمات التي ساهم بها الجدول B بقيمة NULL.

ترك صلة خارجية

انظر إلى الجداول التالية:

الجدول أ
في مربع
2 4
3 9
4 16
الجدول ب
في مكعب
2 8
3 18
5 75

A ⟕ B يعطي:

في مربع مكعب
2 4 8
3 9 18
4 16 اغية

وصلة خارجية يمنى (أ ⟖ ب)

يُبقي الربط الخارجي الأيمن كل صف في العلاقة الصحيحة. إذا لم يكن هناك صف مطابق في الجدول B في الجدول A، فسيتم ملء الأعمدة التي ساهم بها الجدول A بقيم NULL.

حق الانضمام الخارجي

A ⟖ B يعطي:

في مكعب مربع
2 8 4
3 18 9
5 75 اغية

وصلة خارجية كاملة (أ ⟗ ب)

يُبقي الربط الخارجي الكامل على كل صف من كلا الجدولين، بغض النظر عما إذا كان شرط الربط متطابقًا أم لا. وتُصبح القيم المفقودة في أي من الجانبين فارغة (NULL).

A ⟗ B يعطي:

في مربع مكعب
2 4 8
3 9 18
4 16 اغية
5 اغية 75

Operaملخص مرجعي

استخدم جدول المراجع هذا لتذكر ما يفعله كل عامل بنظرة سريعة.

Operation (رمز) الهدف
حدد (σ) يختار مجموعة فرعية من الصفوف التي تحقق شرطًا معينًا.
مشروع (π) يحتفظ فقط بالسمات المدرجة ويزيل الصفوف المكررة.
الاتحاد (∪) يُعيد كل صف يظهر في A أو B بدون تكرارات.
الفرق بين المجموعتين (-) تُرجع هذه الدالة الصفوف الموجودة في المجموعة A والتي لا توجد في المجموعة B.
التقاطع (∩) يُعيد هذا الأمر الصفوف التي تظهر في كل من A و B.
حاصل الضرب الديكارتي (×) يجمع كل صف من A مع كل صف من B.
INNER JOIN يحتفظ فقط بالصفوف التي تتطابق مع شرط الربط.
THETA JOIN (θ) الربط العام باستخدام أي دالة مقارنة.
انضمام متساوٍ عملية الربط ثيتا التي تستخدم مقارنات المساواة فقط.
الانضمام الطبيعي (⋈) يربط العلاقات بناءً على السمات التي تشترك في نفس الاسم والنطاق.
وصلة خارجية يسارية (⟕) يحتفظ بكل صف من العلاقة اليسرى، ويملأ الجانب الأيمن بـ NULL.
وصلة خارجية يمنى (⟖) يحتفظ بكل صف من العلاقة اليمنى، ويملأ اليسار بـ NULL.
وصلة خارجية كاملة (⟗) يحتفظ بكل صف من كلا العلاقتين، ويملأ القيم المفقودة بـ NULL.

الأسئلة الشائعة

الجبر العلائقي هو لغة رياضية إجرائية تُستخدم لتعريف العمليات على العلاقات. أما لغة SQL فهي لغة استعلام تصريحية تُترجمها محركات قواعد البيانات داخليًا إلى خطط تنفيذ جبرية.

تكون علاقتان متوافقتين في الاتحاد عندما يكون لهما نفس عدد السمات، وتشترك كل سمة متناظرة في نفس المجال. يتطلب كل من الاتحاد والتقاطع والفرق التوافق في الاتحاد.

يُنتج الضرب الديكارتي علاقات وسيطة ضخمة ذات معنى ضئيل، حيث يتم ضرب كل صف من المصفوفة A بكل صف من المصفوفة B. وعادةً ما يتبعه شرط SELECT ليصبح ربطًا مفيدًا.

لا. تتعامل الجبر العلائقي البحت مع العلاقات كمجموعات، لذا تُحذف العناصر المكررة تلقائيًا بعد كل عملية. أما لغة SQL فتتصرف بشكل مختلف، إذ تعمل على مجموعات متعددة ولا تزيل العناصر المكررة إلا عند استخدام DISTINCT.

يُستخدم عامل القسمة للإجابة على استعلامات "للكل" - على سبيل المثال، البحث عن العملاء الذين طلبوا جميع المنتجات في كتالوج. ويعيد هذا العامل صفوف علاقة واحدة تتطابق مع كل صف في علاقة أخرى.

استخدم الربط الخارجي عندما تحمل الصفوف غير المتطابقة معنىً، على سبيل المثال، عند سرد جميع العملاء مع بيانات الطلبات الاختيارية. يحذف الربط الداخلي هذه الصفوف غير المتطابقة، بينما يحتفظ بها الربط الخارجي مع قيم فارغة (NULL).

تقوم المساعدات المدعومة بالذكاء الاصطناعي بترجمة التعبيرات الجبرية إلى لغة SQL والعكس، وشرح أسبقية العمليات خطوة بخطوة، وتحديد عبارات الربط المفقودة التي من شأنها أن تحول الاستعلام إلى منتج ديكارتي بطيء.

نعم. تقوم أدوات الذكاء الاصطناعي بتحويل الأسئلة البسيطة باللغة الإنجليزية مثل "العملاء من الهند الذين اشتروا كل منتج" إلى أشجار جبرية مع عوامل التشغيل SELECT و PROJECT و DIVISION، ثم تحويلها إلى SQL قابل للتنفيذ.

تلخيص هذه التدوينة بـ: