الجبر العلائقي

في نظرية قواعد البيانات ، يُعدّ الجبر العلائقي نظرية تستخدم البنى الجبرية لنمذجة البيانات وتحديد الاستعلامات عليها بدلالات راسخة . وقد قدّم هذه النظرية إدغار ف. كود . [ 1 ]

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

يتمثل الهدف الرئيسي للجبر العلائقي في تعريف عوامل تحوّل علاقة إدخال واحدة أو أكثر إلى علاقة إخراج. وبما أن هذه العوامل تقبل العلاقات كمدخلات وتنتج علاقات كمخرجات، فإنه يمكن دمجها واستخدامها للتعبير عن استعلامات معقدة تحوّل علاقات إدخال متعددة (بياناتها مخزنة في قاعدة البيانات) إلى علاقة إخراج واحدة (نتائج الاستعلام).

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

مقدمة

لم يحظ الجبر العلائقي باهتمام كبير خارج نطاق الرياضيات البحتة حتى نشر نموذج البيانات العلائقي لـ EF Codd في عام 1970. [ 2 ] اقترح كود مثل هذا الجبر كأساس للغات استعلام قواعد البيانات.

العلاقة ذات الرتبة n هي مجموعة من n من الصفوف. يعمل الجبر العلائقي على مجموعات متجانسة من الصفوف.S={(sج1،sج2،...sجن)|ج1...م}،{\displaystyle S=\{(s_{j1},s_{j2},...s_{jn})\mid j\in 1...m\},}حيث أن n tuple هو tuple (row; index j ) [ a ] ​​مع n ' أنواع من السمات ' (أو مجالات البيانات )، وبالتالي فإن m هو عدد صفوف tuples في الجدول و n هو عدد الأعمدة (وجميع الإدخالات في كل عمود لها نفس ' النوع ' ).

تحتوي العلاقة أيضًا على صف فريد يُسمى رأس الجدول، والذي يُعطي كل عمود اسمًا أو سمة فريدة داخل العلاقة. تُستخدم السمات في عمليات الإسقاط والاختيار.

عوامل المجموعة

تستخدم الجبر العلائقي اتحاد المجموعات ، وفرق المجموعات ، والضرب الديكارتي من نظرية المجموعات، وتضيف قيودًا إضافية إلى هذه العمليات لإنشاء عمليات جديدة. [ 3 ]

في عملية اتحاد المجموعات وفرق المجموعات، يجب أن تكون العلاقتان المعنيتان متوافقتين في الاتحاد ، أي أن يكون لهما نفس مجموعة السمات. ولأن تقاطع المجموعات يُعرَّف بدلالة اتحاد المجموعات وفرق المجموعات، يجب أن تكون العلاقتان المعنيتان في تقاطع المجموعات متوافقتين في الاتحاد أيضًا.

لكي يتم تعريف الضرب الديكارتي، يجب أن يكون للعلاقتين المعنيتين رؤوس منفصلة (أي يجب ألا يكون لهما اسم سمة مشترك).

بالإضافة إلى ذلك، يُعرَّف الضرب الديكارتي بشكل مختلف عن تعريفه في نظرية المجموعات ، حيث تُعتبر المجموعات المرتبة "سطحية" لأغراض هذه العملية. وهذا يعني أن الضرب الديكارتي لمجموعة من n مجموعة مرتبة مع مجموعة من m مجموعة مرتبة ينتج عنه مجموعة "مسطحة".(ن+م){\displaystyle (n+m)}المجموعات الثنائية (بينما كانت نظرية المجموعات الأساسية ستحدد مجموعة من المجموعات الثنائية، تحتوي كل منها على مجموعة ثنائية من الرتبة n ومجموعة ثنائية من الرتبة m ). في الجبر العلائقي، الضرب الديكارتيR×S{\displaystyle R\times S}يُعرَّف رسميًا على النحو التالي:

R×S:={(ر1،ر2،...،رن،s1،s2،...،sم)|(ر1،ر2،...،رن)R،(s1،s2،...،sم)S}{\displaystyle R\times S:=\{(r_{1},r_{2},\dots ,r_{n},s_{1},s_{2},\dots ,s_{m})\mid (r_{1},r_{2},\dots ,r_{n})\in R,(s_{1},s_{2},\dots ,s_{m})\in S\}}

عدد عناصر الضرب الديكارتي هو حاصل ضرب عدد عناصر عوامله، أي | R × S | = | R | × | S | .

عرض

الإسقاط ( Π ) هو عملية أحادية تُكتب على النحو التالي :Πأ1،...،أن(R){\displaystyle \Pi _{a_{1},\ldots ,a_{n}}(R)}أينأ1،...،أن{\displaystyle a_{1},\ldots ,a_{n}}هي مجموعة من أسماء السمات. تُعرَّف نتيجة هذا الإسقاط بأنها المجموعة التي يتم الحصول عليها عندما يتم تقييد جميع الصفوف في R إلى المجموعة.{أ1،...،أن}{\displaystyle \{a_{1},\ldots ,a_{n}\}}.

ملاحظة: عند تطبيقها في معيار SQL، فإن "الإسقاط الافتراضي" يُرجع مجموعة متعددة بدلاً من مجموعة واحدة، ويتم الحصول على إسقاط Π لإزالة البيانات المكررة عن طريق إضافة الكلمة DISTINCTالمفتاحية .

اختيار

الاختيار المعمم ( σ ) هو عملية أحادية تُكتب على النحو التالي:σφ(R){\displaystyle \sigma _{\varphi }(R)}حيث φ هي صيغة اقتراحية تتكون من الذرات كما هو مسموح به في الاختيار العادي والمعاملات المنطقية.{\displaystyle \wedge }( و{\displaystyle \lor }( أو ) و¬{\displaystyle \neg }( النفي ). يحدد هذا الاختيار جميع الصفوف في R التي تحقق الشرط φ .

للحصول على قائمة بجميع الأصدقاء أو شركاء العمل في دفتر العناوين، يمكن كتابة الاختيار على النحو التالي: σisFriend = trueisBusinessContact = true(دفتر العناوين).{\displaystyle \sigma _{{\text{isFriend = true}}\,\lor \,{\text{isBusinessContact = true}}}({\text{addressBook}}).} ستكون النتيجة علاقة تحتوي على كل سمة من سمات كل سجل فريد حيث تكون قيمة isFriend صحيحة أو حيث تكون قيمة isBusinessContact صحيحة.

إعادة تسمية

إعادة التسمية ( ρ ) هي عملية أحادية تُكتب على النحو التالي:ρأ/ب(R){\displaystyle \rho _{a/b}(R)}حيث تكون النتيجة مطابقة للنتيجة في R باستثناء أن السمة b في جميع الصفوف تُعاد تسميتها إلى السمة a . ويُستخدم هذا عادةً لإعادة تسمية سمة في علاقة ما لغرض الربط.

لإعادة تسمية السمة "isFriend" إلى "isBusinessContact" في علاقة ما،ρجهة اتصال عمل / صديق(دفتر العناوين){\displaystyle \rho _{\text{isBusinessContact / isFriend}}({\text{addressBook}})}قد يتم استخدامها.

وهناك أيضًاρx(أ1،...،أن)(R){\displaystyle \rho _{x(A_{1},\ldots ,A_{n})}(R)}الترميز، حيث يتم إعادة تسمية R إلى x والخصائص{أ1،...،أن}{\displaystyle \{a_{1},\ldots ,a_{n}\}}تمت إعادة تسميتها إلى{أ1،...،أن}{\displaystyle \{A_{1},\ldots ,A_{n}\}}[ 4 ]

عمليات الربط وعوامل الربط المشابهة

الامتدادات الشائعة

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

ينضم الخارجي

بينما تتكون نتيجة عملية الربط (أو الربط الداخلي) من صفوف مُشكّلة من خلال دمج الصفوف المتطابقة في المعاملين، فإن الربط الخارجي يحتوي على تلك الصفوف بالإضافة إلى صفوف مُشكّلة من خلال توسيع صف غير متطابق في أحد المعاملين بقيم "ملء" لكل سمة من سمات المعامل الآخر. لا تُعتبر عمليات الربط الخارجي جزءًا من الجبر العلائقي الكلاسيكي الذي نوقش حتى الآن. [ 6 ]

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

تم تعريف ثلاثة عوامل ربط خارجية: الربط الخارجي الأيسر، والربط الخارجي الأيمن، والربط الخارجي الكامل. (يتم حذف كلمة "خارجي" أحيانًا).

الوصلة الخارجية اليسرى

يُكتب الربط الخارجي الأيسر (⟕) على النحو التالي: Rحيث R و S علاقتان . [ ب ] نتيجة الربط الخارجي الأيسر هي مجموعة جميع تركيبات الصفوف في R و S المتساوية في أسماء سماتها المشتركة، بالإضافة (بشكل عام) إلى الصفوف في R التي ليس لها صفوف مطابقة في S.

على سبيل المثال ، انظر إلى جدولي الموظف والقسم وعملية الربط الخارجي الأيسر بينهما:

في العلاقة الناتجة، تأخذ الصفوف في S التي ليس لها قيم مشتركة في أسماء السمات المشتركة مع الصفوف في R قيمة فارغة ، ω .

بما أنه لا توجد صفوف في Dept تحتوي على DeptName من نوع Finance أو Executive ، فإن ω s تظهر في العلاقة الناتجة حيث تحتوي الصفوف في Employee على DeptName من نوع Finance أو Executive .

لنفترض أن r1 ، r2 ، ... ، rn هي سمات العلاقة ولنفترض أن {( ω1 ، ...، ωn )} هي علاقة أحادية على السمات الفريدة للعلاقة S ( أي تلك التي ليست سمات R ). عندئذٍ، يمكن وصف الربط الخارجي الأيسر بدلالة الربط الطبيعي (وبالتالي باستخدام المعاملات الأساسية) كما يلي:

(RS)((R-πر1،ر2،...،رن(RS))×{(ω،...،ω)}){\displaystyle (R\bowtie S)\cup ((R-\pi _{r_{1},r_{2},\dots ,r_{n}}(R\bowtie S))\times \{(\omega ,\dots ,\omega )\})}

المفصل الخارجي الأيمن

يتصرف الربط الخارجي الأيمن (⟖) بشكل مطابق تقريبًا للربط الخارجي الأيسر، ولكن يتم تبديل أدوار الجداول.

يُكتب الربط الخارجي الأيمن للعلاقتين R و S على النحو التالي : RS. [ c ] نتيجة الربط الخارجي الأيمن هي مجموعة جميع تركيبات الصفوف في R و S المتساوية في أسماء سماتها المشتركة، بالإضافة إلى الصفوف في S التي ليس لها صفوف مطابقة في R.

على سبيل المثال، انظر إلى جدولي الموظف والقسم وعملية الربط الخارجي الأيمن بينهما:

في العلاقة الناتجة، تأخذ الصفوف في R التي ليس لها قيم مشتركة في أسماء السمات المشتركة مع الصفوف في S قيمة فارغة ، ω .

بما أنه لا توجد صفوف في جدول الموظفين تحتوي على اسم قسم الإنتاج ، فإن ω تظهر في سمات الاسم ومعرف الموظف في العلاقة الناتجة حيث كانت الصفوف في جدول الأقسام تحتوي على اسم قسم الإنتاج .

لنفترض أن s1 ، s2 ، ...، sn هي سمات العلاقة ولنفترض أن {( ω1 ، ...، ωn )} هي العلاقة الأحادية على السمات الفريدة للعلاقة R ( أي تلك التي ليست سمات S ). عندئذٍ، كما هو الحال مع الربط الخارجي الأيسر، يمكن محاكاة الربط الخارجي الأيمن باستخدام الربط الطبيعي كما يلي:

(RS)({(ω،...،ω)}×(S-πs1،s2،...،sن(RS))){\displaystyle (R\bowtie S)\cup (\{(\omega ,\dots ,\omega )\}\times (S-\pi _{s_{1},s_{2},\dots ,s_{n}}(R\bowtie S)))}

وصلة خارجية كاملة

يجمع الربط الخارجي (⟗) أو الربط الخارجي الكامل في الواقع نتائج الربط الخارجي الأيسر والأيمن.

تُكتب عملية الربط الخارجي الكامل على النحو التالي: RS حيث R و S هما علاقتان . [ د ] نتيجة الربط الخارجي الكامل هي مجموعة جميع تركيبات الصفوف في R و S المتساوية في أسماء سماتها المشتركة، بالإضافة إلى الصفوف في S التي ليس لها صفوف مطابقة في R والصفوف في R التي ليس لها صفوف مطابقة في S في أسماء سماتها المشتركة.

على سبيل المثال ، انظر إلى جدولي الموظف والقسم وعملية الربط الخارجي الكاملة بينهما:

في العلاقة الناتجة، تأخذ الصفوف في R التي لا تشترك في قيم سمات مشتركة مع الصفوف في S قيمة فارغة ، ω . كما تأخذ الصفوف في S التي لا تشترك في قيم سمات مشتركة مع الصفوف في R قيمة فارغة ، ω .

يمكن محاكاة عملية الربط الخارجي الكاملة باستخدام عمليات الربط الخارجي اليسرى واليمنى (وبالتالي الربط الطبيعي واتحاد المجموعات) على النحو التالي:

RS = ( RS ) ( RS )

عمليات حسابية للمجال

لا يوجد في الجبر العلائقي المُقدَّم حتى الآن ما يسمح بإجراء عمليات حسابية على نطاقات البيانات (باستثناء تقييم التعبيرات المنطقية التي تتضمن المساواة). على سبيل المثال، لا يمكن باستخدام الجبر المُقدَّم حتى الآن فقط كتابة تعبير يضرب الأرقام من عمودين، مثل سعر الوحدة بكمية معينة للحصول على السعر الإجمالي. توفر لغات الاستعلام العملية مثل هذه الإمكانيات، فمثلاً، يسمح استعلام SQL SELECT بإجراء عمليات حسابية لتعريف أعمدة جديدة في النتيجة ، كما توفر الكلمة المفتاحية في البرنامج التعليمي D إمكانية مماثلة بشكل أكثر وضوحًا. [ 7 ] في نظرية قواعد البيانات، يُطلق على هذا اسم الإسقاط الموسع . [ 8 ] : 213SELECTunit_price*quantityAStotal_priceFROMtEXTEND

تجميع

علاوة على ذلك، لا يمكن حساب وظائف مختلفة على عمود، مثل جمع عناصره، باستخدام الجبر العلائقي الذي تم تقديمه حتى الآن. تتضمن معظم أنظمة قواعد البيانات العلائقية خمس وظائف تجميعية ، وهي: الجمع، والعد، والمتوسط، والحد الأقصى، والحد الأدنى. في الجبر العلائقي ، تُكتب عملية التجميع على مخطط ( A1 ، A2 ، ... ، An ) كما يلي:

جي1،جي2،...،جيم زو1(أ1)،و2(أ2)،...،وك(أك) (ر){\displaystyle G_{1},G_{2},\ldots ,G_{m}\ g_{f_{1}({A_{1}}'),f_{2}({A_{2}}'),\ldots ,f_{k}({A_{k}}')}\ (r)}

حيث أن كل A j ، 1 ≤ jk ، هو أحد السمات الأصلية A i ، 1 ≤ in .

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

لنفترض أن لدينا جدولًا باسم "الحساب" يحتوي على ثلاثة أعمدة: رقم الحساب، واسم الفرع ، والرصيد . نريد إيجاد أعلى رصيد لكل فرع. يتم ذلك باستخدام الدالة G Max( Balance ) ( Account ) لحساب رقم الفرع. لإيجاد أعلى رصيد لجميع الحسابات بغض النظر عن الفرع، يمكننا ببساطة كتابة الدالة G Max( Balance ) ( Account ).

غالباً ما تُكتب عملية التجميع على النحو التالي: Branch_Name ɣ Max( Balance ) ( Account ) بدلاً من ذلك. [ 8 ]

إغلاق متعدٍ

على الرغم من أن الجبر العلائقي يبدو كافيًا لمعظم الأغراض العملية، إلا أن هناك بعض العمليات البسيطة والطبيعية على العلاقات التي لا يمكن التعبير عنها باستخدام الجبر العلائقي. أحدها هو الإغلاق المتعدي لعلاقة ثنائية. لنفترض أن لدينا مجالًا D ، ولتكن العلاقة الثنائية R مجموعة جزئية من D × D. الإغلاق المتعدي R⁺ لـ R هو أصغر مجموعة جزئية من D × D تحتوي على R وتحقق الشرط التالي:

xyz((x،y)R+(y،z)R+(x،z)R+){\displaystyle \forall x\forall y\forall z\left((x,y)\in R^{+}\wedge (y,z)\in R^{+}\Rightarrow (x,z)\in R^{+}\right)}

يمكن إثبات ذلك باستخدام حقيقة أنه لا يوجد تعبير جبري علائقي E ( R ) يأخذ R كمتغير وسيط ينتج R + . [ 9 ]

ومع ذلك، يدعم SQL رسميًا استعلامات النقطة الثابتة هذه منذ عام 1999، وكان لديه امتدادات خاصة بالبائعين في هذا الاتجاه قبل ذلك بكثير.

استخدام الخصائص الجبرية لتحسين الاستعلام

خطة استعلام للاستعلام المثلثي R(A, B) ⋈ S(B, C) ⋈ T(A, C) باستخدام الربط الثنائي. تربط هذه الخطة S و T أولاً، ثم تربط النتيجة مع R.
خطة استعلام للاستعلام المثلثي R(A, B) ⋈ S(B, C) ⋈ T(A, C) باستخدام الربط الثنائي. تربط هذه الخطة R و S أولاً، ثم تربط النتيجة مع T.
خطتان محتملتان للاستعلام عن المثلثR(أ،ب)S(ب،ج)تي(أ،ج){\displaystyle R(A,B)\bowtie S(B,C)\bowtie T(A,C)}; الأولى تربط S و T أولاً ثم تربط النتيجة بـ R ، والثانية تربط R و S أولاً ثم تربط النتيجة بـ T

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

يمكن تمثيل الاستعلامات على شكل شجرة ، حيث

  • العقد الداخلية هي عوامل تشغيل،
  • الأوراق هي علاقات ،
  • الأشجار الفرعية هي تعبيرات فرعية.

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

فيما يلي مجموعة من القواعد التي يمكن استخدامها في مثل هذه التحويلات.

اختيار

تلعب قواعد عوامل الاختيار الدور الأهم في تحسين الاستعلام. فالاختيار عاملٌ يُقلل عدد الصفوف في مُعامله بشكلٍ فعّال، لذا إذا نُقلت الاختيارات في شجرة التعبير نحو الأوراق، فمن المرجح أن تتقلص العلاقات الداخلية (الناتجة عن التعبيرات الفرعية).

خصائص الاختيار الأساسية

الاختيار هو اختيار متماثل (التطبيقات المتعددة لنفس الاختيار ليس لها تأثير إضافي يتجاوز الأول)، وتبديلي (ترتيب تطبيق الاختيارات ليس له تأثير على النتيجة النهائية).

  1. σأ(R)=σأσأ(R){\displaystyle \sigma _{A}(R)=\sigma _{A}\sigma _{A}(R)\,\!}
  2. σأσب(R)=σبσأ(R){\displaystyle \sigma _{A}\sigma _{B}(R)=\sigma _{B}\sigma _{A}(R)\,\!}

تقسيم الاختيارات ذات الشروط المعقدة

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

  1. σأب(R)=σأ(σب(R))=σب(σأ(R)){\displaystyle \sigma _{A\land B}(R)=\sigma _{A}(\sigma _{B}(R))=\sigma _{B}(\sigma _{A}(R))}
  2. σأب(R)=σأ(R)σب(R){\displaystyle \sigma _{A\lor B}(R)=\sigma _{A}(R)\cup \sigma _{B}(R)}

الاختيار والضرب التقاطعي

يُعدّ الضرب الاتجاهي العملية الأكثر تكلفةً من حيث التقييم. إذا كانت العلاقات المدخلة تحتوي على N و M صفًا، فستحتوي النتيجة علىشمالم{\displaystyle NM}لذلك، من المهم تقليل حجم كلا المعاملين قبل تطبيق عامل الضرب الاتجاهي.

يمكن القيام بذلك بفعالية إذا تبع الضرب الاتجاهي عامل اختيار، على سبيل المثالσأ(R×P){\displaystyle \sigma _{A}(R\times P)}بالنظر إلى تعريف عملية الربط، فهذا هو الاحتمال الأرجح. إذا لم يتبع الضرب الاتجاهي عامل اختيار، فيمكننا محاولة دفع اختيار من مستويات أعلى في شجرة التعبير باستخدام قواعد الاختيار الأخرى.

في الحالة المذكورة أعلاه، يتم تقسيم الشرط أ إلى الشروط ب ، ج ، د باستخدام قواعد التقسيم المتعلقة بشروط الاختيار المعقدة، بحيثأ=بجد{\displaystyle A=B\wedge C\wedge D}تحتوي المجموعة B على سمات من المجموعة R فقط ، وتحتوي المجموعة C على سمات من المجموعة P فقط ، وتحتوي المجموعة D على جزء من المجموعة A يحتوي على سمات من كلٍّ من المجموعتين R و P. لاحظ أن المجموعات B أو C أو D قد تكون فارغة. عندئذٍ، يتحقق ما يلي:

σأ(R×P)=σبجد(R×P)=σد(σب(R)×σج(P)){\displaystyle \sigma _{A}(R\times P)=\sigma _{B\wedge C\wedge D}(R\times P)=\sigma _{D}(\sigma _{B}(R)\times \sigma _{C}(P))}

عوامل الاختيار والتعيين

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

  1. σأ(RP)=σأ(R)σأ(P)=σأ(R)P{\displaystyle \sigma _{A}(R\setminus P)=\sigma _{A}(R)\setminus \sigma _{A}(P)=\sigma _{A}(R)\setminus P}
  2. σأ(RP)=σأ(R)σأ(P){\displaystyle \sigma _{A}(R\cup P)=\sigma _{A}(R)\cup \sigma _{A}(P)}
  3. σأ(RP)=σأ(R)σأ(P)=σأ(R)P=Rσأ(P){\displaystyle \sigma _{A}(R\cap P)=\sigma _{A}(R)\cap \sigma _{A}(P)=\sigma _{A}(R)\cap P=R\cap \sigma _{A}(P)}

الاختيار والإسقاط

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

πأ1،...،أن(σأ(R))=σأ(πأ1،...،أن(R))لوأ{أ1،...،أن}{\displaystyle \pi _{a_{1},\ldots ,a_{n}}(\sigma _{A}(R))=\sigma _{A}(\pi _{a_{1},\ldots ,a_{n}}(R))\,\,{\text{if}}\,A\subseteq \{a_{1},\ldots ,a_{n}\}}

عرض

خصائص الإسقاط الأساسية

الإسقاط هو عملية متماثلة، بحيث تكون سلسلة من الإسقاطات (الصحيحة) مكافئة للإسقاط الخارجي.

πأ1،...،أن(πب1،...،بم(R))=πأ1،...،أن(R)أين{أ1،...،أن}{ب1،...،بم}{\displaystyle {\begin{aligned}&\pi _{a_{1},\ldots ,a_{n}}(\pi _{b_{1},\ldots ,b_{m}}(R))=\pi _{a_{1},\ldots ,a_{n}}(R)\\[4pt]&\,\,\,{\text{where}}\,\,\{a_{1},\ldots ,a_{n}\}\subseteq \{b_{1},\ldots ,b_{m}\}\end{aligned}}}

عوامل الإسقاط والمجموعات

الإسقاط توزيعي على اتحاد المجموعات.

πأ1،...،أن(RP)=πأ1،...،أن(R)πأ1،...،أن(P).{\displaystyle \pi _{a_{1},\ldots ,a_{n}}(R\cup P)=\pi _{a_{1},\ldots ,a_{n}}(R)\cup \pi _{a_{1},\ldots ,a_{n}}(P).\,}

لا يتوزع الإسقاط على التقاطع والفرق بين المجموعات. وتُعطى الأمثلة المضادة كما يلي:

πأ({أ=أ،ب=ب}{أ=أ،ب=ب})=πأ({أ=أ،ب=ب})πأ({أ=أ،ب=ب})={أ=أ}{\displaystyle {\begin{aligned}\pi _{A}(\{\langle A=a,B=b\rangle \}\cap \{\langle A=a,B=b'\rangle \})&=\emptyset \\\pi _{A}(\{\langle A=a,B=b\rangle \})\cap \pi _{A}(\{\langle A=a,B=b'\rangle \})&=\{\langle A=a\rangle \}\end{aligned}}}

و

πأ({أ=أ،ب=ب}{أ=أ،ب=ب})={أ=أ}πأ({أ=أ،ب=ب})πأ({أ=أ،ب=ب})={\displaystyle {\begin{aligned}\pi _{A}(\{\langle A=a,B=b\rangle \}\setminus \{\langle A=a,B=b'\rangle \})&=\{\langle A=a\rangle \}\\\pi _{A}(\{\langle A=a,B=b\rangle \})\setminus \pi _{A}(\{\langle A=a,B=b'\rangle \})&=\emptyset \end{aligned}}}

حيث يُفترض أن b يختلف عن b' .

إعادة تسمية

خصائص إعادة التسمية الأساسية

يمكن دمج عمليات إعادة تسمية متغير واحد في عملية إعادة تسمية واحدة. كما يمكن إعادة ترتيب عمليات إعادة التسمية التي لا تشترك في أي متغيرات بشكل عشوائي، مما يسمح بجعل عمليات إعادة التسمية المتتالية متجاورة بحيث يمكن دمجها.

  1. ρأ/ب(ρب/ج(R))=ρأ/ج(R){\displaystyle \rho _{a/b}(\rho _{b/c}(R))=\rho _{a/c}(R)\,\!}
  2. ρأ/ب(ρج/د(R))=ρج/د(ρأ/ب(R)){\displaystyle \rho _{a/b}(\rho _{c/d}(R))=\rho _{c/d}(\rho _{a/b}(R))\,\!}

إعادة تسمية وتعيين عوامل التشغيل

إعادة التسمية هي عملية توزيعية على فرق المجموعات والاتحاد والتقاطع.

  1. ρأ/ب(RP)=ρأ/ب(R)ρأ/ب(P){\displaystyle \rho _{a/b}(R\setminus P)=\rho _{a/b}(R)\setminus \rho _{a/b}(P)}
  2. ρأ/ب(RP)=ρأ/ب(R)ρأ/ب(P){\displaystyle \rho _{a/b}(R\cup P)=\rho _{a/b}(R)\cup \rho _{a/b}(P)}
  3. ρأ/ب(RP)=ρأ/ب(R)ρأ/ب(P){\displaystyle \rho _{a/b}(R\cap P)=\rho _{a/b}(R)\cap \rho _{a/b}(P)}

المنتج والاتحاد

الضرب الديكارتي هو توزيعي على الاتحاد.

  1. (أ×ب)(أ×ج)=أ×(بج){\displaystyle (A\times B)\cup (A\times C)=A\times (B\cup C)}

التطبيقات

كانت لغة الاستعلام ألفا، التي طورها الدكتور كود بنفسه، أول لغة تعتمد على جبر كود. لاحقًا، تم ابتكار لغة ISBL ، وقد أشاد العديد من الخبراء بهذا العمل الرائد [ 10 ] باعتباره قد أرسى الأساس لتحويل فكرة كود إلى لغة عملية. أما نظام إدارة قواعد البيانات العلائقية 12 (Business System 12) فكان نظامًا قصير الأجل ولكنه قوي في مجال الصناعة، وقد اتبع نهج ISBL.

في عام ١٩٩٨، اقترح كريس ديت وهيو داروين لغةً تُسمى Tutorial D، مُخصصةً لتدريس نظرية قواعد البيانات العلائقية، وتستند لغة الاستعلام الخاصة بها أيضًا إلى أفكار ISBL. [ ١١ ] Rel هي تطبيقٌ للغة Tutorial D. أما Bmg فهي تطبيقٌ للجبر العلائقي في لغة Ruby، يتبع مبادئ Tutorial D والبيان الثالث بشكلٍ وثيق . [ ١٢ ]

حتى لغة الاستعلام SQL مبنية بشكل فضفاض على الجبر العلائقي، مع أن المعاملات في SQL ( الجداول ) ليست علاقات بالمعنى الدقيق ، والعديد من النظريات المفيدة حول الجبر العلائقي لا تنطبق على نظيرها في SQL (ربما على حساب مُحسِّني الأداء و/أو المستخدمين). نموذج جدول SQL هو عبارة عن مجموعة متعددة (حقيبة )، وليس مجموعة. على سبيل المثال، التعبير(RS)تي=(Rتي)(Sتي){\displaystyle (R\cup S)\setminus T=(R\setminus T)\cup (S\setminus T)}[ 8 ] هي نظرية خاصة بالجبر العلائقي على المجموعات، ولكنها ليست كذلك بالنسبة للجبر العلائقي على الحقائب.

انظر أيضاً

ملحوظات

  1. يستخدم مؤلفو الجبر العلائقي منذ كود (بما في ذلك [ 1 ] ) باستمرار الرمز ' j ' للفهرس الأول (رقم الصف؛ الصف) والرمز ' i ' للفهرس الثاني (موضع السمة؛ العمود)، وعلى هذا النحو، لا ينبغي الخلط بينهما وبين مؤشرات الشبكة الموضعية المستخدمة عادةً في تدوين المصفوفات والموترات.
  2. في نظام يونيكود ، رمز الربط الخارجي الأيسر هو ⟕ (U+27D5).
  3. في نظام يونيكود ، رمز الربط الخارجي الأيمن هو ⟖ (U+27D6).
  4. في نظام يونيكود ، رمز الربط الخارجي الكامل هو ⟗ (U+27D7).

مراجع

  1. 1 2 كود، إي إف (1970). "نموذج علائقي للبيانات لبنوك البيانات المشتركة الكبيرة" . اتصالات رابطة مكائن ​​الحوسبة . 13 (6): 377-387 . doi : 10.1145/362384.362685 . S2CID 207549016 . 
  2. مادكس، روجر د. (1991-09-01). "أصل جبر العلاقات في تطوير وتأصيل حساب العلاقات" . ستوديا لوجيكا . 50 (3): 421-455 . doi : 10.1007/BF00370681 . ISSN 1572-8730 . 
  3. إندرتون، هربرت ب. (2009). عناصر نظرية المجموعات (نُقلت إلى الطباعة الرقمية؛ [إعادة طبع الطبعة الصادرة في نيويورك، 1977] ). سان دييغو: أكاديميك برس. ISBN  978-0-12-238440-0.
  4. سيلبرشاتز، أبراهام؛ هنري ف. كورث؛ س. سودارشان (2020). مفاهيم أنظمة قواعد البيانات (الطبعة السابعة ). نيويورك. ص 56. ISBN   978-0-07-802215-9. OCLC 1080554130 . {{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط )
  5. م. تامر أوزسو؛ باتريك فالدوريز (2011). مبادئ أنظمة قواعد البيانات الموزعة ( الطبعة الثالثة). سبرينغر. ص 46. ISBN   978-1-4419-8833-1.
  6. باتريك أونيل؛ إليزابيث أونيل (2001). قواعد البيانات: المبادئ والبرمجة والأداء، الطبعة الثانية . مورغان كوفمان. ص 120. ISBN  978-1-55860-438-4.
  7. سي جيه ديت (2011). لغة SQL ونظرية العلاقات: كيفية كتابة كود SQL دقيق . دار نشر أورايلي ميديا، الصفحات 133-135 . رقم ISBN  978-1-4493-1974-8.
  8. 1 2 3 هيكتور غارسيا مولينا ؛ جيفري د. أولمان ؛ جينيفر ويدوم (2009). أنظمة قواعد البيانات: الكتاب الكامل ( الطبعة الثانية). بيرسون برنتيس هول. ISBN  978-0-13-187325-4.
  9. أهو، ألفريد ف.؛ جيفري د. أولمان (1979). "عالمية لغات استرجاع البيانات". وقائع الندوة السادسة لجمعية ACM SIGACT-SIGPLAN حول مبادئ لغات البرمجة - POPL '79 . الصفحات 110-119 . doi : 10.1145/567752.567763 . S2CID 3242505 .  
  10. سي جيه ديت. "إدغار إف. كود - الحائز على جائزة تورينج" . amturing.acm.org . تم الاطلاع عليه بتاريخ 27-12-2020 .
  11. سي جيه ديت وهيو داروين. "قواعد البيانات، والأنواع، والنموذج العلائقي: البيان الثالث" (ملف PDF) . تم الاطلاع عليه بتاريخ 4 يوليو 2024 .
  12. "وثائق بي إم جي" . تم الاطلاع عليها بتاريخ 2024-07-04 .

للمزيد من القراءة