لماذا قواعد البيانات والنموذج العلائقي
| English | العربية |
|---|---|
| table/ˈteɪbl/ | جدول |
| relational database/rɪˈleɪʃənl ˈdeɪtəbeɪs/ | قاعدة بيانات علائقية |
| flat files/flæt faɪlz/ | ملفات مسطحة |
| data redundancy/ˈdeɪtə rɪˈdʌndənsi/ | تكرار البيانات |
| data inconsistency/ˈdeɪtə ˌɪnkənˈsɪstənsi/ | عدم اتساق البيانات |
| integrity/ɪnˈteɡrɪti/ | الموثوقية |
| field/fiːld/ | حقل |
| entity/ˈentɪti/ | كائن |
| record/ˈrekɔːd/ | سجل |
| tuple/ˈtuːpl/ | زوجة |
| attribute/ˈætrɪbjuːt/ | سمة |
| primary key/ˈpraɪməri kiː/ | المفتاح الأساسي |
| composite key/ˈkɒmpəzɪt kiː/ | المفتاح المركب |
| candidate key/ˈkændɪdeɪt kiː/ | المفتاح المرشح |
| secondary key/ˈsekəndəri kiː/ | المفتاح الثانوي |
| indexing/ˈɪndeksɪŋ/ | الفهرسة |
| foreign key/ˈfɒrən kiː/ | المفتاح الأجنبي |
| referential integrity/ˌrefəˈrenʃl ɪnˈteɡrɪti/ | سلامة المرجعية |
| one-to-many/wʌn tə ˈmeni/ | واحد إلى متعدد |
| many-to-many/ˈmeni tə ˈmeni/ | متعدد إلى متعدد |
الورقة البحثية التي لم تكن تريد شركة IBM نشرها
- في عام 1970، نشر باحث في شركة IBM يُدعى إيدغار كود بحثاً مكوناً من اثنتي عشرة صفحة يقترح تخزين البيانات في جداول بسيطة مرتبطة بقيم مشتركة، والطلب عليها بلغة تقول ماذا تريد بدلاً من أين هي على القرص الصلب.
- كانت IBM تبيع بالفعل قاعدة بيانات تخزن البيانات كأشجار مرتبطة بترتيب الملفات، لذا تجاهلته لسنوات. كان يجب إعادة كتابة كل برنامج تم إنشاؤه ضد تلك الملفات كلما تغير الترتيب.
- بحلول 1980s كانت كل بنك وطائرة وجهاز حكومي ينتقل إلى جداول كود. بعد نصف قرن لا يزال يعملون عليها.
- هذه الدرس هو مشاكل النهج القائم على الملفات، كيف تحل قاعدة البيانات العلائقية مشكلاتها، والكلمات التي يجب عليك استخدامها بدقة.
النهج القائم على الملفات
- قبل قواعد البيانات، كان كل برنامج يحتفظ بـ ملفات مسطحة خاصة به: كان لبرنامج المبيعات ملف للعملاء، ولبرنامج الحسابات ملف آخر، ولبرنامج التوصيل ملف ثالث.
- كان لكل ملف ترتيب ثابت يعتمد عليه كود البرنامج، ولم يكن أي شيء خارج البرنامج يعرف ما بداخله.
- يعمل لبرنامج صغير واحد. تبدأ المشكلة عندما يحتاج البرنامج الثاني إلى نفس البيانات.

ثلاثة برامج، ثلاث نسخ من العميل
القيود
- تكافؤ البيانات: نفس البيانات، مثل عنوان العميل، محفوظة في عدة ملفات، مما يهدر مساحة التخزين والجهد.
- عدم اتساق البيانات: يتم تحديث النسخ بشكل منفصل، لذا تتباعد ولا أحد يعرف أيها صحيح.
- اعتماد البيانات: البرامج مرتبطة بتنسيق الملف، لذا فإن التغيير في الترتيب يعني إعادة كتابة كل برنامج يستخدم الملف.
- سلامة البيانات يصعب فرضها، وصعبة مشاركة البيانات بأمان، والبحث عبر الملفات بطيء، ولا يمكن ضبط الأمن لكل حقل على حدة.
تخزين عنوان عميل في عدة ملفات منفصلة يؤدي إلى:
يمكن تحديث نفس البيانات المحفوظة في أماكن متعددة (التكرار) بشكل منفصل تصبح غير متسقة.
في نظام الملفات المسطحة غالبًا ما يتم تكرار نفس البيانات عبر الملفات، والتي يمكن أن تصبح غير متسقة عند تحديث نسخة واحدة فقط.
هذا التكرار وعدم الاتساق الناتج هو المشكلة الأساسية التي يحلها النموذج العلائقي.
أي مما يلي محدودات النهج القائم على الملفات؟ حدد كل ما ينطبق.
التكرار، والتعارض، واعتماد البيانات هي القيود الثلاثة المصنفة. الجداول والدمج ينتميان إلى النهج العلائقي الذي يحل محلها.
كيف تجيب قاعدة البيانات العلائقية عليها
- قاعدة البيانات العلائقية تخزن البيانات في جداول يديرها برنامج واحد، وهو DBMS، تستخدمه كل البرامج.
- تُخزن كل حقيقة مرة واحدة، لذا يختفي التكافؤ وعدم الاتساق: يتم تغيير العنوان في مكان واحد وترى كل البرامج التغيير.
- تطلب البرامج من DBMS البيانات باسمها، لذا يمكن أن يتغير التخزين دون تغيير البرامج: استقلال البيانات.
- يتم فرض قواعد النزاهة وحقوق الوصول والنسخ الاحتياطي بشكل مركزي، ويمكن البحث عن أي جدول أو دمجه مع أي جدول آخر.

نسخة واحدة من البيانات، وحارس بوابة واحد
كيف يزيل قاعدة بيانات علائقية عدم اتساق البيانات؟
نسخة واحدة، تحديث واحد، لا انحراف. يوفر نظام إدارة قواعد البيانات لكل برنامج نفس القيمة الحالية.
المفردات: الجداول والصفوف والأعمدة
- الجدول (العلاقة) هو شبكة من الصفوف والأعمدة، جدول واحد لكل نوع من الكيانات، وهو شيء ما يتم تخزين بيانات حوله:
CUSTOMER،ORDER،PRODUCT. - السجل هو صف واحد، أو حالة واحدة للكيان؛ والمصطلح الرسمي هو الزمرة.
- الحقل هو عمود واحد، أو عنصر معلومات واحد حول كل سجل؛ والمصطلح الرسمي هو الخاصية.

الصفوف هي السجلات، والأعمدة هي الحقول، وعمود واحد يمتد إلى الجدول الآخر
اقرأ جدول علائقي باستخدام SELECT
الجدول العلائقي هو مجرد صفوف (سجلات) وأعمدة (حقول). يحفظ WHERE الصفوف التي تطابق شرطًا؛ ثم يحفظ SELECT فقط الأعمدة التي طلبتها.
المفردات: المفاتيح
- المفتاح الأساسي هو حقل، أو مجموعة حقول، تحدد كل سجل فريدًا؛ ولا يكون فارغًا أبدًا ولا مكررًا. المفتاح المركب هو مفتاح أساسي يتكون من حقلين أو أكثر.
- المفتاح المرشح هو أي حقل أو مجموعة يمكن أن تعمل كمفتاح أساسي. المفتاح الثانوي هو حقل غير أساسي تم فهرسته للبحث السريع؛ الفهرسة تبني فهرسًا على حقل بحيث تكون عمليات الاستعلام والدمج أسرع.
- المفتاح الأجنبي هو حقل تطابق قيمته المفتاح الأساسي لجدول آخر، مما يربط بين الجدولين. باختصار، يُوضع خط تحت المفتاح الأساسي ويتم تمييز المفتاح الأجنبي:
CUSTOMER(CustomerID, Name, Phone)
ORDER(OrderID, CustomerID, OrderDate) -- CustomerID is a foreign key → CUSTOMER
المفتاح الأساسي:
المفتاح الأساسي يحدد صفًا بشكل فريد. المفتاح الأجنبي هو الذي يرتبط بجدول آخر.
طابق كل نوع من المفاتيح بما هو عليه.
المفتاح الأساسي يحدد صفًا؛ المفتاح الأجنبي يربط بجدول آخر؛ المركب = عدة حقول معًا؛ المرشح = مفتاح أساسي محتمل.
الحقل الذي تطابق قيمته المفتاح الأساسي لجدول آخر هو مفتاح ______.
المفتاح الأجنبي هو ما يخلق العلاقة بين جدولين.
مثال محلول: تسمية أجزاء قاعدة بيانات مكتبة
- تسجل المكتبة كتبهها وأعضاؤها وكل عملية استعارة. حدد الكيانات، ومفتاحًا أساسيًا لكل منها، والمفاتيح الأجنبية.
- الكيانات:
BOOK،MEMBER،LOAN. المفاتيح الأساسية:BookID،MemberID،LoanID، تم اختيار كل منها لأنه فريد لكل سجل ولا يكون فارغًا أبدًا؛ حيث لا يمكن استخدام العنوان أو الاسم، لأن كتابين قد يشاركان في نفس العنوان. LOAN(LoanID, BookID, MemberID, DateOut, DateDue):BookIDوMemberIDمفاتيح أجنبية، كل منهما يطابق المفتاح الأساسي لجدوله الخاص. رقم هاتف العضو يجب أن يكون فيMEMBER، وليس في كل عملية استعارة.
في جدول القرض (LoanID, BookID, MemberID, DateOut)، BookID وMemberID هما مفاتيح ____.
كل منها يطابق المفتاح الأساسي لجدول آخر، BOOK وMEMBER، ويربط القرض بهما.
العلاقات والنزاهة المرجعية
- العلاقة تربط بين كيانين. واحد لواحد: كل عضو له بطاقة مكتبة واحدة. واحد للعديد: عضو واحد لديه العديد من العمليات; كل عملية استعارة تنتمي لعضو واحد. العديد للعديد: الكتاب الواحد له مؤلفون كثيرون والمؤلف يكتب كتبًا كثيرة.
- النزاهة المرجعية تعني أن كل قيمة لمفتاح أجنبي يجب أن تطابق مفتاحًا أساسيًا موجودًا في الجدول الذي تشير إليه: لا توجد عمليات استعارة لعضو غير موجود، ولا سجلات معلقة.
- يفرض نظام إدارة قواعد البيانات ذلك: يرفض الإدراج الذي يحتوي على مفتاح أجنبي غير معروف، ويرفض حذف سجل تشير إليه سجلات أخرى.
تكامل المرجع يضمن أن:
يمنع السجلات اليتيمة — لا يمكنك الإشارة إلى مفتاح أساسي غير موجود.
طابق كل علاقة بنوعها.
عد عدد كائنات كل نوع يمكن ربطها بكائن واحد من النوع الآخر. يتطلب متعدد-إلى-متعدد جدول رابط للتخزين.
مثال محلول: ما تمنعه النزاهة المرجعية
- تم حذف عميل لديه ثلاث طلبات مستحقة من جدول
CUSTOMER. اشرح كيف تنطبق النزاهة المرجعية. CustomerIDفي كل طلب هو مفتاح أجنبي يجب أن يطابق عميلًا موجودًا. حذف العميل سيترك ثلاث طلبات تشير إلى سجل لم يعد موجودًا: سجلات معلقة.- يرفض نظام إدارة قواعد البيانات الحذف لذلك حتى يتم حذف الطلبات أو إعادة تعيينها، أو إذا تم إعداد النظام للتسلسل، يحذف الطلبات أيضًا. في كلتا الحالتين، لا تشير أي طلب إلى عميل غير موجود.
- صيغ القاعدة، وما الذي يكسرها، وما الذي يقوم به نظام إدارة قواعد البيانات.
تكامل المرجع يسمح بحذف عميل بينما لا تزال الطلبات في جدول آخر تشير إلى ذلك العميل.
سيؤدي ذلك إلى إنشاء سجلات يتيمة. يرفض نظام إدارة قواعد البيانات الحذف، أو يطبقه على الطلبات (Cascading)، بحيث يشير كل مفتاح أجنبي دائمًا إلى سجل موجود.
التعريفات المقبولة من الممتحن
| مصطلح | تعريف |
|---|---|
| كيان | شيء ما يتم تخزين بيانات حوله، ممثلاً بجدول واحد |
| خاصية | عنصر واحد من البيانات حول كيان، عمود |
| زمرة | صف واحد من جدول، سجل واحد |
| مفتاح أساسي | خاصية أو مجموعة خصائص تحدد كل زمرة بشكل فريد |
| مفتاح مرشح | خاصية أو مجموعة يمكن اختيارها كمفتاح أساسي |
| مفتاح ثانوي | خاصية مدرجة تُستخدم للبحث في الجدول بسرعة |
| مفتاح أجنبي | خاصية في جدول واحد هي المفتاح الأساسي لجدول آخر، وتشكل الرابط |
| النزاهة المرجعية | كل قيمة لمفتاح أجنبي تشير إلى مفتاح أساسي موجود |
علامات ضائعة
- الزمرة هي صف، والخاصية هي عمود. تبديلهما يؤدي لفقدان الدرجتين.
- كلمة "فريد" وحده لا تُعرّف المفتاح الأساسي؛ فهو يحدد كل سجل ولا يكون فارغًا أبدًا.
- المفتاح الأجنبي قد يتكرر: عميل واحد، طلبات متعددة. المفتاح الأساسي هو الذي لا يمكنه التكرار.
- المفتاح الثانوي للبحث السريع، وليس للتعرف. لا تسمّه "مفتاحًا أساسيًا ثانيًا".
لقد فهمت الأمر
- نهج الملفات يعاني من الازدواجية والتعارض واعتماد البيانات، مع نزاهة وضعيفة، ومشاركة ضعيفة، والبحث، والأمان
- قاعدة البيانات العلائقية تخزن كل حقيقة مرة واحدة في جداول يديرها نظام إدارة واحد، لذا تكون البرامج مستقلة عن التخزين وتُفرض القواعد بشكل مركزي
- كيان ← جدول · زمرة ← سجل، صف · خاصية ← حقل، عمود · المفتاح الأساسي يُعرّف، المفتاح الأجنبي يربط، المرشح يمكنه التعرف، الثانوي مدرج للبحث
- النزاهة المرجعية: كل مفتاح أجنبي يطابق مفتاحًا أساسيًا موجودًا، لذا لا توجد سجلات معلقة