You are on page 1of 315

‫مترجم من اإلنجليزية إلى العربية ‪www.onlinedoctranslator.

com -‬‬

‫نظام إدارة قواعد البيانات‬

‫رمز الدورة‪IS 323 :‬‬

‫‪1‬‬
2
‫الفصل ‪21‬‬
‫مقدمة لمفاهيم ونظرية معالجة‬
‫المعامالت‬

‫‪3‬‬
‫الفصل ‪ 21‬الخطوط العريضة‬
‫‪ 1‬مقدمة لمعالجة المعامالت‬
‫‪ 2‬مفاهيم المعامالت والنظام‬
‫‪ 3‬الخصائص المرغوبة للمعامالت‬
‫‪ 4‬توصيف الجداول على أساس إمكانية االسترداد‬
‫‪ 5‬توصيف الجداول على أساس إمكانية التسلسل‬

‫‪4‬‬
‫مقدمة لمعالجة المعامالت‬
‫• عملية‪:‬برنامج (عملية) تنفيذية تتضمن واحدة أو أكثر من عمليات الوصول‬
‫إلى قاعدة البيانات‬
‫– عمليات القراءة (استرجاع قاعدة البيانات‪ ،‬مثل ‪)SQL SELECT‬‬
‫– عمليات الكتابة (تعديل قاعدة البيانات‪ ،‬مثل ‪SQL INSERT، UPDATE،‬‬
‫‪)DELETE‬‬
‫– المعاملة‪ :‬وحدة منطقية لمعالجة قاعدة البيانات‬
‫– مثال‪ :‬تحويل رصيد بنكي بقيمة ‪ 100‬دوالر من حساب جاري إلى حساب توفير في‬
‫قاعدة بيانات البنك‬
‫ملحوظة‪:‬كل تنفيذ لبرنامج هومعاملة متميزةمع معلمات مختلفة‬ ‫•‬
‫– معلمات برنامج التحويل البنكي‪ :‬رقم حساب التوفير‪ ،‬رقم الحساب الجاري‪،‬‬
‫مبلغ التحويل‬

‫‪5‬‬
‫مقدمة لمعالجة المعامالت (تابع)‬
‫• المعاملة (مجموعة العمليات)ربما‪:‬‬
‫– قائمة بذاتها‪ ،‬محددة بلغة عالية المستوى مثل ‪ SQL‬المقدمة بشكل‬
‫تفاعلي‪ ،‬أو‬
‫– تتكون من عمليات قاعدة البيانات المضمنة داخل البرنامج (معظم‬
‫المعامالت)‬
‫• حدود المعامالت‪:‬بدء وإنهاء المعاملة‪.‬‬
‫– ملحوظة‪ :‬انتطبيق برنامجقد تحتوي على عدة معامالت مفصولة بحدود بدء‬
‫المعاملة وإنهائها‬

‫‪6‬‬
‫أنظمة المستخدم الواحد مقابل األنظمة متعددة المستخدمين‬
‫أحد معايير تصنيف نظام قاعدة البيانات هو وفًقا لعدد المستخدمين الذين يمكنهم استخدام‬
‫النظام بشكل متزامن‪.‬‬
‫نظام إدارة قواعد البيانات هومستخدم واحدإذا كان بإمكان مستخدم واحد على األكثر في‬
‫كل مرة استخدام النظام‪ ،‬وهو كذلكمتعدد المستخدمينإذا كان بإمكان العديد من‬
‫المستخدمين استخدام النظام‪ ،‬وبالتالي الوصول إلى قاعدة البيانات‪ ،‬بشكل متزامن‪.‬‬
‫سمستخدم واحدتقتصر أنظمة إدارة قواعد البيانات في الغالب على أنظمة الكمبيوتر‬
‫الشخصية؛‬
‫معظم أنظمة إدارة قواعد البيانات األخرى هيمتعدد المستخدمين‪ .‬على سبيل المثال‪ ،‬يتم‬
‫استخدام نظام حجوزات الطيران من قبل مئات المستخدمين ووكالء السفر في وقت‬
‫واحد‪ .‬أنظمة قواعد البيانات المستخدمة في البنوك ووكاالت التأمين وأسواق‬
‫األوراق المالية ومحالت السوبر ماركت والعديد من التطبيقات األخرى هي أنظمة‬
‫متعددة المستخدمين‬

‫‪7‬‬
‫أنظمة متعددة المستخدمين‬
‫في هذه األنظمة‪ ،‬عادًة ما يعمل مئات أو آالف المستخدمين على قاعدة البيانات عن طريق‬
‫إرسال المعامالت بشكل متزامن إلى النظام‪.‬‬
‫في هذه األنظمة‪ ،‬عادًة ما يعمل مئات أو آالف المستخدمين على قاعدة البيانات عن‬
‫طريق إرسال المعامالت بشكل متزامن إلى النظام‪.‬‬
‫يمكن لعدة مستخدمين الوصول إلى قواعد البيانات ‪ -‬واستخدام أنظمة الكمبيوتر ‪ -‬في‬
‫وقت واحد بسبب مفهومبرمجة متعددة‪ ،‬والذي يسمح لنظام التشغيل‬
‫الكمبيوتر لتنفيذ برامج متعددة — أوالعملياتفي نفس الوقت‬

‫‪8‬‬
‫مقدمة لمعالجة المعامالت (تابع)‬
‫• أنظمة تسيير التحويالت‪:‬أنظمة قواعد بيانات كبيرة متعددة‬
‫المستخدمين تدعم اآلالف منالمعامالت المتزامنة(عمليات‬
‫المستخدم) في الدقيقة‬
‫• وضعين للتزامن‬
‫– مدخليعالج‪ :‬يتم تشذير التنفيذ المتزامن للعمليات في وحدة المعالجة‬
‫المركزية (‪ )CPU‬واحدة‬
‫– المعالجة المتوازية‪ :‬يتم تنفيذ العمليات بشكل متزامن في وحدات‬
‫المعالجة المركزية المتعددة (الشكل ‪)21.1‬‬
‫– تفترض نظرية معالجة المعامالت األساسية التزامن المشذر‬

‫‪9‬‬
10
‫مقدمة لمعالجة المعامالت (تابع)‬
‫ألغراض معالجة المعامالت‪ ،‬يتم استخدام نموذج قاعدة بيانات بسيط‪:‬‬
‫• قاعدة البيانات ‪-‬جمع عناصر البيانات المسماة‬
‫• دقة (حجم) عنصر البيانات‪ -‬حقل (قيمة عنصر البيانات)‪ ،‬سجل‪ ،‬أو كتلة‬
‫قرص كاملة‬
‫– ‪ TP‬المفاهيم مستقلة عن التفاصيل‬
‫• العمليات األساسية على العنصر ‪:X‬‬
‫قراءة_العنصر(‪ :)X‬يقرأ عنصر قاعدة البيانات المسمى ‪ X‬في‬ ‫–‬
‫متغير البرنامج‪ .‬لتبسيط تدويننا‪ ،‬نفترض ذلكُيسمى متغير البرنامج‬
‫أيًض ا ‪.X‬‬
‫)‪ :write_item(X‬يكتب قيمة متغير البرنامج ‪ X‬في عنصر‬ ‫–‬
‫قاعدة البيانات المسمى ‪.X‬‬

‫‪11‬‬
‫مقدمة لمعالجة المعامالت (تابع)‬

‫عمليات القراءة والكتابة‪:‬‬


‫‪ ‬الوحدة األساسية لنقل البيانات من القرص إلى الذاكرة الرئيسية للكمبيوتر‬
‫هيكتلة قرص واحدة (أو صفحة)‪ .‬عادًة ما يكون عنصر البيانات ‪( X‬ما تتم‬
‫قراءته أو كتابته) بمثابة حقل لبعض السجالت في قاعدة البيانات‪ ،‬على‬
‫الرغم من أنه قد يكون وحدة أكبر مثل سجل كامل أو حتى كتلة كاملة‪.‬‬
‫‪ ‬يتضمن أمر )‪ read_item(X‬الخطوات التالية‪:‬‬
‫ابحث عن عنوان كتلة القرص التي تحتوي على العنصر ‪.X‬‬ ‫•‬
‫انسخ كتلة القرص هذه إلى مخزن مؤقت في الذاكرة الرئيسية (إذا لم تكن كتلة القرص هذه‬ ‫•‬
‫موجودة بالفعل في بعض المخزن المؤقت للذاكرة الرئيسية)‪.‬‬
‫انسخ العنصر ‪ X‬من المخزن المؤقت إلى متغير البرنامج المسمى ‪.X‬‬ ‫•‬

‫‪12‬‬
‫مقدمة لمعالجة المعامالت (تابع)‬

‫عمليات القراءة والكتابة (تابع)‪:‬‬


‫‪write_item‬يتضمن األمر (‪ )X‬الخطوات التالية‪:‬‬ ‫‪‬‬
‫ابحث عن عنوان كتلة القرص التي تحتوي على العنصر ‪.X‬‬ ‫•‬
‫انسخ كتلة القرص هذه إلى مخزن مؤقت في الذاكرة الرئيسية (إذا لم تكن‬ ‫•‬
‫موجودة بالفعل في بعض المخزن المؤقت للذاكرة الرئيسية)‪.‬‬
‫انسخ العنصر ‪ X‬من متغير البرنامج المسمى ‪ X‬إلى موقعه الصحيح في‬ ‫•‬
‫المخزن المؤقت‪.‬‬
‫قم بتخزين الكتلة المحدثة من المخزن المؤقت مرة أخرى إلى القرص (إما‬ ‫•‬
‫على الفور أو في وقت الحق)‪.‬‬

‫‪13‬‬
‫خالصة‬
‫عملية‪.‬‬ ‫•‬
‫حدود المعامالت‬ ‫•‬
‫وضعان للتزامن‪:‬‬ ‫•‬
‫المعالجة المتداخلة‬ ‫•‬
‫المعالجة المتوازية‬ ‫•‬
‫عمليات‪:‬‬ ‫•‬
‫)‪read_item(X‬‬ ‫•‬
‫)‪write_item(X‬‬ ‫•‬

‫‪14‬‬
‫لماذا نحتاج إلى التحكم في التزامن‬

‫بدون التحكم في التزامن‪ ،‬قد تحدث مشكالت في المعامالت‬


‫المتزامنة‪:‬يمكن أن تحدث العديد من المشكالت عند تنفيذ المعامالت‬
‫المتزامنة بطريقة غير خاضعة للرقابة طريقة‬
‫مشكلة فقدان التحديث‪.‬‬
‫يحدث عندما تقوم معاملتان بتحديث نفس عنصر البيانات‪ ،‬لكن كالهما يقرأان‬
‫نفس القيمة األصلية قبل التحديث (انظر الشكل‪ ،‬الشريحة التالية)‬
‫• مشكلة التحديث المؤقت (أو القراءة القذرة)‪.‬‬
‫يحدث هذا عندما تقوم إحدى المعامالت ‪ T1‬بتحديث عنصر قاعدة البيانات ‪،X‬‬
‫والذي يتم الوصول إليه (قراءته) بواسطة معاملة أخرى ‪T2‬؛ ثم يفشل ‪T1‬‬
‫لسبب ما (الشكل ‪( ٢١.٣‬ب))؛ تم (قراءة) ‪ X‬بواسطة ‪ T2‬قبل تغيير قيمتها‬
‫مرة أخرى (التراجع أو التراجع) بعد فشل ‪T1‬‬

‫‪15‬‬
16
‫لماذا نحتاج إلى التحكم في التزامن (تابع)‬

‫• مشكلة الملخص غير الصحيح‪.‬‬


‫تقوم إحدى المعامالت بحساب دالة ملخص مجمعة على عدد من السجالت (على‬
‫سبيل المثال‪ ،‬مجموع (إجمالي) كافة أرصدة الحسابات المصرفية) بينما تقوم‬
‫المعامالت األخرى بتحديث بعض هذه السجالت (على سبيل المثال‪ ،‬تحويل‬
‫مبلغ كبير بين حسابين‪ ،‬انظر الشكل ‪(21.3‬ج))؛ قد تقرأ الدالة المجمعةبعض‬
‫القيم قبل تحديثها والبعض اآلخر بعد تحديثها‪.‬‬

‫‪17‬‬
18
‫لماذا نحتاج إلى التحكم في التزامن (تابع)‬

‫• مشكلة القراءة غير المتكررة‪.‬‬


‫قد تقرأ المعاملة ‪ T1‬عنصًر ا (على سبيل المثال‪ ،‬المقاعد المتوفرة على متن رحلة‬
‫جوية)؛ الحًقا‪ ،‬قد يقرأ ‪ T1‬نفس العنصر مرة أخرى ويحصل على قيمة‬
‫مختلفة ألن معاملة أخرى ‪ T2‬قامت بتحديث العنصر (المقاعد المحجوزة على‬
‫الرحلة) بين القراءتين بواسطة ‪T1‬‬

‫‪19‬‬
‫لماذا هناك حاجة إلى االنتعاش‬

‫أسباب فشل الصفقة‪:‬‬


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

‫‪20‬‬
‫لماذا هناك حاجة إلى االنتعاش (تابع)‬

‫‪.3‬األخطاء المحلية أو شروط االستثناءتم اكتشافه بواسطة المعاملة‪:‬‬


‫‪ -‬شروط معينة تتطلب إلغاء الصفقة‪ .‬على سبيل المثال‪ ،‬قد ال يتم العثور على بيانات‬
‫المعاملة‪ .‬قد تؤدي حالة ما‪ ،‬مثل عدم كفاية رصيد الحساب في قاعدة بيانات‬
‫مصرفية‪ ،‬إلى إلغاء معاملة‪ ،‬مثل سحب األموال ‪ -‬ويؤدي اإلجهاض المبرمج‬
‫إلى فشل المعاملة‪.‬‬
‫‪.4‬فرض مراقبة التزامن‪:‬قد تقرر طريقة التحكم في التزامن إلغاء المعاملة‪ ،‬أو إعادة‬
‫تشغيلها الحًقا‪ ،‬ألنها تنتهك قابلية التسلسل أو ألن العديد من المعامالت في حالة‬
‫توقف تام (انظر الفصل ‪.)22‬‬

‫‪21‬‬
‫لماذا هناك حاجة إلى االنتعاش (تابع)‬

‫‪.5‬فشل القرص‪:‬قد تفقد بعض كتل األقراص بياناتها بسبب خلل في القراءة أو الكتابة‬
‫أو بسبب تعطل رأس القراءة‪/‬الكتابة على القرص‪ .‬هذا النوع من الفشل والبند‬
‫‪ 6‬أكثر خطورة من البنود من ‪ 1‬إلى ‪.4‬‬
‫‪.6‬المشاكل والكوارث المادية(كارثة )‪:‬ويشير هذا إلى قائمة ال حصر لها من‬
‫المشاكل التي تشمل فشل الطاقة أو تكييف الهواء‪ ،‬والحرائق‪ ،‬والسرقة‪،‬‬
‫والتخريب‪ ،‬والكتابة فوق األقراص أو األشرطة عن طريق الخطأ‪ ،‬وتركيب‬
‫شريط خاطئ من قبل المشغل‪.‬‬

‫‪22‬‬
‫مفاهيم المعامالت والنظام‬

‫أعمليةهي وحدة عمل ذرية إما أن تكون مكتملة بالكامل أو ال يتم إنجازها على‬
‫اإلطالق‪ .‬تمر المعاملة عبر عدة حاالت (الشكل ‪ ،21.4‬مشابه لحاالت العملية‬
‫في أنظمة التشغيل)‪.‬‬
‫حاالت المعامالت‪:‬‬
‫• الحالة النشطة (تنفيذ عمليات القراءة والكتابة)‬
‫• حالة االلتزام جزئًيا (منتهية ولكن في انتظار فحوصات النظام لتحديد النجاح‬
‫أو الفشل)‬
‫• حالة االلتزام (نجحت المعاملة)‬
‫• الحالة الفاشلة (فشلت المعاملة‪ ،‬يجب التراجع عنها)‬
‫• حالة اإلنهاء (نظام إجازات المعاملة)‬

‫‪23‬‬
24
‫مفاهيم المعامالت والنظام (تابع)‬
‫يحتاج ‪ DBMS Recovery Manager‬إلى النظام لتتبع العمليات التالية (في‬
‫النظامملف تسجيل)‪:‬‬
‫• بداية_المعاملة‪:‬بداية تنفيذ الصفقة‪.‬‬
‫• القراءة أو الكتابة‪:‬قراءة أو كتابة العمليات على عناصر قاعدة البيانات التي يتم‬
‫تنفيذها كجزء من المعاملة‪.‬‬
‫• نهاية_المعاملة‪:‬يحدد انتهاء عمليات معاملة القراءة والكتابة‪ .‬قد ال يزال يتعين على‬
‫النظام التحقق مما إذا كان من الممكن إجراء التغييرات (الكتابات) التي أدخلتها‬
‫المعاملةيتم تطبيقها بشكل دائم على قاعدة البيانات(يقترفعملية)؛ أو ما إذا كانت‬
‫الصفقة يجب أن تكونتراجع(إحباطالمعاملة) ألنها تنتهك التحكم في التزامن أو‬
‫لسبب آخر‪.‬‬

‫‪25‬‬
‫مفاهيم المعامالت والنظام (تابع)‬

‫يقوم مدير االسترداد بتتبع العمليات التالية (تابع)‪:‬‬


‫• التزام_المعاملة‪:‬إشاراتنهاية ناجحةمن الصفقة؛ أي تغييرات (عمليات كتابية) يتم‬
‫تنفيذها بواسطة المعاملة يمكن أن تكون بأمانملتزمإلى قاعدة البيانات ولن يتم‬
‫التراجع عنها‪.‬‬
‫• ‪( abort_transaction‬أو التراجع)‪:‬المعامالت اإلشارات لديهاانتهت دون‬
‫جدوى; يجب أن تكون أي تغييرات أو تأثيرات قد تكون المعاملة قد طبقتها على‬
‫قاعدة البياناتتم التراجع عنه‪.‬‬

‫‪26‬‬
‫مفاهيم المعامالت والنظام (تابع)‬

‫عمليات النظام المستخدمة أثناء االسترداد (انظر الفصل ‪:)23‬‬


‫• التراجع (‪:)X‬يشبه التراجع إال أنه ينطبق على عملية كتابة واحدة بدًال‬
‫من المعاملة بأكملها‪.‬‬
‫• إعادة (‪:)X‬وهذا يحدد أن أعملية الكتابةمن معاملة ملتزمة يجب أن‬
‫يكونإعادة بنائهللتأكد من أنه تم تطبيقه بشكل دائم على قاعدة البيانات‬
‫الموجودة على القرص‪.‬‬

‫‪27‬‬
‫مفاهيم المعامالت والنظام (تابع)‬

‫ملف سجل النظام‬


‫هوملف اإللحاق فقطلتتبع جميع العمليات لجميع المعامالتبالترتيب الذي حدثت به‪.‬‬ ‫•‬
‫هذه المعلومات مطلوبة أثناء التعافي من حاالت الفشل‬
‫يتم االحتفاظ بالسجل على القرص ‪ -‬وال يتأثر باستثناء القرص أو الفشل الذريع‬ ‫•‬
‫كما هو الحال مع ملفات القرص األخرى‪ ،‬أسجل المخزن المؤقت للذاكرة‬ ‫•‬
‫الرئيسية يتم االحتفاظ به لالحتفاظ بالسجالت التي يتم إلحاقها حتى يتم إلحاق‬
‫المخزن المؤقت بالكامل بنهاية ملف السجل على القرص‬
‫يتم نسخ السجل احتياطًيا بشكل دوري إلى مخزن األرشيف (الشريط) للحماية من‬ ‫•‬
‫حاالت الفشل الكارثية‬

‫‪28‬‬
‫مفاهيم المعامالت والنظام (تابع)‬
‫أنواع السجالت (اإلدخاالت) في ملف السجل‪:‬‬
‫• [‪ :]start_transaction,T‬يسجل أن المعاملة ‪ T‬قد بدأت في التنفيذ‪.‬‬
‫• [‪ :]write_item,T,X,old_value,new_value‬قام ‪ T‬بتغيير قيمة‬
‫العنصر ‪ X‬من القيمة القديمة إلى القيمة الجديدة‪.‬‬
‫• [‪ :]read_item,T,X‬لقد قرأ ‪ T‬قيمة العنصر ‪( X‬غير مطلوب في كثير من‬
‫الحاالت)‪.‬‬
‫• [‪ :]end_transaction,T‬انتهى ‪ T‬من التنفيذ‬
‫• [التزم‪ ،‬ت]‪ :‬تاء أكملت بنجاح‪ ،‬والتزمت‪.‬‬
‫• [إحباط‪ :]T ،‬تم إحباط ‪.T‬‬

‫‪29‬‬
‫مفاهيم المعامالت والنظام (تابع)‬
‫نقطة االلتزام في المعاملة‪:‬‬
‫‪ ‬تعريف‪:‬تصل المعاملة ‪ T‬إلىنقطة االلتزامعندما يتم تنفيذ جميع عملياته التي تصل‬
‫إلى قاعدة البيانات بنجاحوتم تسجيل تأثير جميع عمليات المعامالت على قاعدة‬
‫البيانات في ملف السجل (على القرص)‪ .‬ويقال بعد ذلك أن الصفقةملتزم‪.‬‬

‫‪30‬‬
‫الخصائص المرغوبة للمعامالت‬
‫تسمى خصائص ‪ - ACID‬الذرية واالتساق والعزل والمتانة‪:‬‬
‫• الذرية‪ :‬المعاملة هي وحدة ذرية للمعالجة؛ إما أن يتم تنفيذها بالكامل أو‬
‫ال يتم تنفيذها على اإلطالق‪.‬‬

‫• الحفاظ على االتساق‪ :‬التنفيذ الصحيح للمعاملة يجب أن يأخذ قاعدة‬


‫البيانات من حالة متسقة إلى أخرى‪.‬‬

‫‪31‬‬
‫الخصائص المرغوبة للمعامالت (تابع)‬

‫خصائص الحمض (تابع)‪:‬‬


‫• عزل‪ :‬على الرغم من أن المعامالت يتم تنفيذها بشكل متزامن‪ ،‬إال أنها يجب أن‬
‫تظهر وكأنها يتم تنفيذها بشكل منفصل ‪ -‬أي أن تأثيرها النهائي يجب أن يكون كما‬
‫لو تم تنفيذ كل معاملة بشكل منفصل من البداية إلى النهاية‪.‬‬

‫• المتانة أو الدوام‪ :‬بمجرد تنفيذ المعاملة‪ ،‬يجب أال يتم فقدان التغييرات (الكتابة)‬
‫المطبقة على قاعدة البيانات أبًد ا بسبب الفشل الالحق‪.‬‬

‫‪32‬‬
‫‪ 4‬توصيف الجداول على أساس إمكانية االسترداد‬
‫• جدول المعامالت أو التاريخ‪:‬عندما يتم تنفيذ المعامالتبشكل‬
‫متزامنفيمدخلموضة‪،‬يشكل ترتيب تنفيذ العمليات من المعامالت المختلفة ما‬
‫يعرف بجدول المعامالت (أو التاريخ)‪.‬‬
‫• عمليتان في الجدول الزمنيصراعإذا استوفوا الشروط الثالثة التالية‪:‬‬
‫‪ -1‬أنها تنتمي إلى معامالت مختلفة؛‬
‫‪ -2‬يصلون إلى نفس العنصر (‪)X‬؛‬
‫‪ -3‬واحدة على األقل من العمليات هي عملية كتابة‪.‬‬

‫‪33‬‬
‫على سبيل المثال‪ ،‬جدول الشكل ‪(17.3‬أ) و(ب)‪:‬‬
‫ص‪ :‬قراءة‪ ،‬ث‪ :‬كتابة‪ ،‬أ‪ :‬أجهض‪ ،‬ج‪ :‬ملتزم‬

‫سب‪ :‬ص‪ ;w1(X) ;)X(1‬ص‪ ;w2(X) ;)X(2‬ص‪(1‬ص); أ‪1‬؛‬

‫‪34‬‬
‫‪ 5‬توصيف الجداول على أساس إمكانية التسلسل‬

‫• الجدول الزمني التسلسلي‪ :‬جدول ‪ S‬هومسلسلإذا‪ ،‬بالنسبة لكل معاملة ‪T‬‬


‫مشاركة في الجدول‪ ،‬يتم تنفيذ جميع عمليات ‪ T‬على التوالي في الجدول‪.‬‬
‫خالف ذلك‪ ،‬يتم استدعاء الجدول الزمنيجدول غير تسلسلي‪.‬‬
‫• جدول زمني قابل للتسلسل‪ :‬جدول ‪ S‬هوقابل للتسلسلإذا كان يعادل بعض‬
‫الجدول التسلسلي لنفس المعامالت ‪.n‬‬
‫• مفهومإمكانية تسلسل الجدول الزمنييتم استخدامه لتحديد الجداول الصحيحة‬
‫عندما تكون المعامالت مشذرة لعملياتها في الجدول‪.‬‬

‫‪35‬‬
‫توصيف الجداول على أساس إمكانية‬
‫التسلسل (‪)2‬‬

‫جداول المسلسل‬
‫‪36‬‬
‫توصيف الجداول على أساس إمكانية‬
‫التسلسل (‪)3‬‬

‫جداول غير مسلسلة‬


‫‪37‬‬
38
‫توصيف الجداول على أساس إمكانية‬
‫التسلسل (‪)3‬‬
‫• عيوب الجدول التسلسلي‪:‬‬
‫• انخفاض استخدام وحدة المعالجة المركزية‪.‬‬
‫• الوقت الضائع‬

‫• فوائد قابلة للتسلسل‪:‬‬


‫• وسوف يترك قاعدة البيانات في حالة متسقة‪.‬‬
‫• التنفيذ المتزامن‪.‬‬
‫• استخدام وحدة المعالجة المركزية‪.‬‬
‫• كونك قابًال للتسلسل يعني أن الجدول الزمني هوصحيحجدول‪.‬‬
‫– وسوف يترك قاعدة البيانات في حالة متسقة‪.‬‬
‫– يعتبر التشذير مناسًبا وسيؤدي إلى حالة كما لو تم تنفيذ المعامالت بشكل تسلسلي‪ ،‬ومع ذلك سيحقق‬
‫الكفاءة بسبب التنفيذ المتزامن‪.‬‬

‫‪39‬‬
‫اختبار خوارزمية تسلسل الصراع‬
‫إنشاء رسم بياني لألسبقية (رسم بياني تسلسلي) ‪ -‬رسم بياني ذو حواف‬
‫موجهة‪.‬‬

‫لكل معاملة ‪ Ti‬تشارك في الجدول ‪ ،S‬قم بإنشاء عقدة تحمل اسم ‪ Ti‬في الرسم‬ ‫‪.1‬‬
‫البياني لألسبقية‪.‬‬
‫لكل حالة في ‪ S‬حيثتي جيينفذ عنصر القراءة (‪ )X‬بعد أن ينفذ ‪ Ti‬عنصر الكتابة‬ ‫‪.2‬‬
‫(‪ ،)X‬وينشئ حافةتي‪‬تي جي‬
‫لكل حالة في ‪ S‬حيثتي جيينفذ أ)‪ write_item(X‬بعد أن ينفذ ‪Ti‬‬ ‫‪.3‬‬
‫أ)‪ ،read_item(X‬قم بإنشاء حافة (‪→ Ti‬تي جي) في الرسم البياني لألسبقية‪.‬‬
‫لكل حالة في ‪ S‬حيثتي جيينفذ عنصر كتابة (‪ )X‬بعد أن ينفذ ‪ Ti‬عنصر كتابة أو‬ ‫‪.4‬‬
‫ي‬
‫قراءة (‪ ،)X‬وينشئ حافةتي‪‬تي جي‬

‫الجدول يكون قابًال للتسلسل إذا وفقط إذا كان الرسم البياني لألسبقية ال يحتوي على‬ ‫‪.5‬‬
‫دورات‪.‬‬
‫‪40‬‬
‫مثال آخر على اختبار التسلسل‪( .‬ب) الجدول الزمنيه‪.‬‬

‫‪41‬‬
‫مثال آخر على اختبار التسلسل‪( .‬ج) الجدول الزمني‪.F‬‬

‫‪42‬‬
‫(د) الرسم البياني لألسبقية للجدول ‪( .E‬هـ) الرسم البياني لألسبقية لـ‬

‫الجدول ‪( .F‬و) الرسم البياني لألسبقية مع جدولين تسلسليين مكافئين‬

‫‪43‬‬
‫مثال‪:‬‬

‫)‪ ;S1:r1(X‬ص‪(2‬ض); ص‪(1‬ض); ص‪(1‬ض); ص‪ ;)X(3‬ص‪(3‬ص); ‪(w1(X); w3‬ص); ص‪(2‬ص);‬


‫‪(w2‬ض)؛ ‪(w2‬ص);‬

‫)‪ ;S2:r1(X‬ص‪(2‬ض); )‪ ;w3(X‬ص‪(1‬ض); ص‪(2‬ص); ص‪(3‬ص); )‪ ;w1(X‬ج‪1‬؛ ‪(w2‬ض)؛ ‪(w3‬ص);‬


‫‪(w2‬ص); ج‪3‬؛ ج‪2‬‬

‫ارسم الرسوم البيانية لقابلية التسلسل لـ ‪ S1‬و‪ ،S2‬وحدد ما إذا كان كل جدول قابل للتسلسل أم ال‪ .‬إذا كان‬
‫الجدول قابًال للتسلسل‪ ،‬فاكتب الجدول التسلسلي المكافئ‪.‬‬

‫‪44‬‬
‫)‪ ;S1:r1(X‬ص‪(2‬ض); ص‪(1‬ض); ص‪(1‬ض); ص‪ ;)X(3‬ص‪(3‬ص); ‪(w1(X); w3‬ص); ص‪(2‬ص);‬
‫‪(w2‬ض)؛ ‪(w2‬ص);‬

‫‪45‬‬
‫‪:S1‬‬ ‫ض‬

‫‪T1‬‬ ‫‪T2‬‬

‫س‬ ‫ذ‬

‫‪T3‬‬

‫إنهاقابل للتسلسل‬

‫الجدول التسلسلي المكافئ هو‪T3T1T2 :‬‬

‫‪46‬‬
‫)‪ ;S2:r1(X‬ص‪(2‬ض); )‪ ;w3(X‬ص‪(1‬ض); ص‪(2‬ص); ص‪(3‬ص); )‪ ;w1(X‬ج‪1‬؛ ‪(w2‬ض)؛ ‪(w3‬ص);‬
‫‪(w2‬ص); ج‪3‬؛ ج‪2‬‬

‫‪47‬‬
‫‪:S2‬‬
‫ض‬

‫‪T1‬‬ ‫‪T2‬‬

‫س‬ ‫ذ‬

‫س‬ ‫ذ‬

‫‪T3‬‬

‫إنه غير قابل للتسلسل‬

‫دورة السحب‪;y(T2T3) :‬ص(‪)T3T2‬‬


‫اكس(‪z(T1T2);y(T2T3);)T3T1‬‬

‫‪48‬‬
Chapter 22
Concurrency Control
Techniques

49
‫التحكم في تزامن قاعدة البيانات‬
‫‪ 1‬الغرض من التحكم في التزامن‬ ‫‪‬‬

‫فرض العزل (من خالل االستبعاد المتبادل) بين المعامالت المتضاربة‪.‬‬ ‫‪‬‬

‫للحفاظ على اتساق قاعدة البيانات من خالل االتساق مع الحفاظ على تنفيذ المعامالت‪.‬‬ ‫‪‬‬

‫لحل تعارضات القراءة والكتابة والكتابة والكتابة‪.‬‬ ‫‪‬‬

‫مثال‪:‬‬ ‫‪‬‬

‫في بيئة التنفيذ المتزامن‪ ،‬إذا تعارض ‪ T1‬مع ‪ T2‬بشأن عنصر البيانات ‪ ،A‬فإن‬ ‫‪‬‬

‫التحكم في التزامن الحالي يقرر ما إذا كان يجب أن يحصل ‪ T1‬أو ‪ T2‬على ‪ A‬وما‬
‫إذا تم التراجع عن المعاملة األخرى أو االنتظار‪.‬‬

‫‪50‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‬
‫القفل هو عملية تؤمن‬ ‫‪‬‬

‫(أ) إذن القراءة‬ ‫‪‬‬

‫(ب) إذن لكتابة عنصر بيانات للمعاملة‪.‬‬ ‫‪‬‬

‫مثال‪:‬‬ ‫‪‬‬

‫قفل (‪ .)X‬يتم تأمين عنصر البيانات ‪ X‬نيابة عن المعاملة المطلوبة‪.‬‬ ‫‪‬‬

‫إلغاء القفل هو عملية تؤدي إلى إزالة هذه األذونات من عنصر البيانات‪.‬‬ ‫‪‬‬

‫مثال‪:‬‬ ‫‪‬‬

‫فتح (‪ :)X‬أصبح عنصر البيانات ‪ X‬متاًح ا لجميع المعامالت األخرى‪.‬‬ ‫‪‬‬

‫القفل والفتح هما عمليتان ذريتان‪.‬‬ ‫‪‬‬

‫‪51‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪ :‬المكونات األساسية‬
‫وضعان للقفل‪:‬‬ ‫‪‬‬

‫(أ) مشترك (قراءة) (ب) حصري (كتابة)‪.‬‬ ‫‪‬‬

‫الوضع المشترك‪ :‬قفل مشترك (‪)X‬‬ ‫‪‬‬

‫يمكن ألكثر من معاملة تطبيق قفل المشاركة على ‪ X‬لقراءة قيمته ولكن ال يمكن تطبيق‬ ‫‪‬‬

‫قفل الكتابة على ‪ X‬بواسطة أي معاملة أخرى‪.‬‬


‫الوضع الحصري‪ :‬قفل الكتابة (‪)X‬‬ ‫‪‬‬

‫يمكن أن يوجد قفل كتابة واحد فقط على ‪ X‬في أي وقت وال يمكن تطبيق أي قفل مشترك‬ ‫‪‬‬

‫بواسطة أي معاملة أخرى على ‪.X‬‬


‫مصفوفة الصراع‬ ‫‪‬‬

‫‪Read‬‬ ‫‪Write‬‬
‫‪Read‬‬

‫‪Y‬‬ ‫‪N‬‬
‫‪Write‬‬

‫‪N‬‬ ‫‪N‬‬

‫‪52‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪ :‬المكونات األساسية‬
‫مدير القفل‪:‬‬ ‫‪‬‬

‫إدارة األقفال على عناصر البيانات‪.‬‬ ‫‪‬‬

‫قفل الجدول‪:‬‬ ‫‪‬‬

‫يستخدمه مدير القفل لتخزين تعريف المعاملة التي تقفل عنصر البيانات‬ ‫‪‬‬

‫وعنصر البيانات ووضع القفل والمؤشر إلى عنصر البيانات التالي المقفل‪.‬‬
‫إحدى الطرق البسيطة لتنفيذ جدول القفل هي من خالل القائمة المرتبطة‪.‬‬

‫‪Transaction ID Data item id lock mode Ptr to next data item‬‬


‫‪T1‬‬ ‫‪X1‬‬ ‫‪Read‬‬ ‫‪Next‬‬
‫‪53‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪ :‬المكونات األساسية‬
‫تتطلب قاعدة البيانات أن تكون جميع المعامالت جيدة الصياغة‪ .‬تعتبر‬ ‫‪‬‬

‫المعاملة جيدة إذا‪:‬‬


‫يجب عليه قفل عنصر البيانات قبل قراءته أو الكتابة إليه‪.‬‬ ‫‪‬‬

‫يجب أال يقوم بقفل عناصر بيانات مقفلة بالفعل ويجب أال يحاول إلغاء قفل‬ ‫‪‬‬

‫عنصر بيانات مجاني‪.‬‬

‫‪54‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪E :‬مكونات أساسية‬
‫قفل تحويل‬ ‫‪‬‬

‫‪ ‬ترقية القفل‪ :‬قفل القراءة الموجود لكتابة القفل‬


‫إذا كان لدى ‪ Ti‬قفل قراءة (‪)X‬و‪ Tj‬ليس لديه قفل القراءة (‪ )i  j( )X‬إذن‬
‫تحويل قفل القراءة (‪ )X‬إلى قفل الكتابة (‪)X‬‬
‫آخر‬
‫إجبار ‪ Ti‬على االنتظار حتى يفتح ‪Tj X‬‬

‫تقليل مستوى القفل‪ :‬قفل الكتابة الموجود لقراءة القفل‬ ‫‪‬‬

‫لدى ‪ Ti‬قفل كتابة (‪*( )X‬ال يمكن أن تحتوي أي معاملة على أي قفل على ‪)*X‬‬
‫تحويل قفل الكتابة (‪ )X‬إلى قفل القراءة (‪)X‬‬

‫‪55‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪ :‬الخوارزمية‬
‫‪ ‬مرحلتين‪:‬‬
‫‪( ‬أ) القفل (النمو)‬
‫‪( ‬ب) فتح (تقلص)‪.‬‬
‫‪ ‬مرحلة القفل (النمو)‪:‬‬
‫‪ ‬تطبق المعاملة التأمين (القراءة أو الكتابة) على عناصر البيانات المطلوبة واحًد ا تلو اآلخر‪.‬‬
‫‪ ‬مرحلة االنفتاح (التقليص)‪:‬‬
‫‪ ‬تقوم المعاملة بفتح عناصر البيانات المقفلة الخاصة بها واحًد ا تلو اآلخر‪.‬‬
‫‪ ‬متطلبات‪:‬‬
‫‪ ‬بالنسبة للمعاملة‪ ،‬يجب أن تكون هاتان المرحلتان حصريتين‪ ،‬أي أنه أثناء مرحلة القفل‪ ،‬يجب‬
‫أال تبدأ مرحلة إلغاء القفل‪ ،‬ويجب أال تبدأ مرحلة القفل أثناء مرحلة إلغاء القفل‪.‬‬

‫‪56‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪ :‬الخوارزمية‬

‫‪ T1 T2‬نتيجة‬
‫)‪read_lock (Y‬؛ )‪read_lock (X‬؛ القيم األولية‪X=20 :‬؛ ص = ‪30‬‬
‫)‪read_item (Y‬؛ )‪read_item (X‬؛ نتيجة التنفيذ التسلسلي‬
‫فتح (ص) ؛ فتح (‪)X‬؛ ‪ T1‬تليها ‪T2‬‬
‫)‪write_lock (X); Write_lock (Y‬؛ س = ‪ ،50‬ص = ‪.80‬‬
‫)‪read_item (X‬؛ )‪read_item (Y‬؛ نتيجة التنفيذ التسلسلي‬
‫س‪=:‬س‪+‬ص؛ ص‪=:‬س‪+‬ص؛ ‪ T2‬تليها ‪T1‬‬
‫)‪ ;write_item (X); write_item (Y‬س = ‪ ،70‬ص = ‪50‬‬
‫فتح (‪)X‬؛ فتح (ص) ؛‬

‫‪57‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪ :‬الخوارزمية‬

‫‪T1 T2‬نتيجة‬
‫)‪read_lock (Y‬؛ س = ‪50‬؛ ص = ‪50‬‬
‫)‪read_item (Y‬؛ غير قابل للتسلسل ألنه‪.‬‬
‫فتح (ص) ؛انتهكت سياسة المرحلتين‪.‬‬
‫)‪read_lock (X‬؛‬
‫)‪read_item (X‬؛‬
‫فتح (‪)X‬؛‬
‫وقت‬ ‫)‪;write_lock (Y‬‬
‫)‪read_item (Y‬؛‬
‫ص‪=:‬س‪+‬ص؛‬
‫)‪;write_item (Y‬‬
‫فتح (ص) ؛‬
‫)‪;write_lock (X‬‬
‫)‪read_item (X‬؛‬
‫س‪=:‬س‪+‬ص؛‬
‫)‪;write_item (X‬‬
‫فتح (‪)X‬؛‬

‫‪58‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪ :‬الخوارزمية‬

‫‪T'1 T'2‬‬
‫)‪read_lock (Y‬؛ )‪read_lock (X‬؛ يتبع ‪ T1‬و ‪ T2‬مرحلتين‬
‫)‪read_item (Y‬؛ )‪read_item (X‬؛ السياسة ولكنهم يخضعون لها‬
‫)‪write_lock (X); Write_lock (Y‬؛ الجمود‪ ،‬الذي يجب أن يكون‬
‫فتح (ص) ؛ فتح (‪)X‬؛ تعاملت معة‪.‬‬
‫)‪read_item (X‬؛ )‪read_item (Y‬؛‬
‫س‪=:‬س‪+‬ص؛ ص‪=:‬س‪+‬ص؛‬
‫)‪;write_item (X); write_item (Y‬‬
‫فتح (‪)X‬؛ فتح (ص) ؛‬

‫‪59‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫تقنيات القفل على مرحلتين‪ :‬الخوارزمية‬
‫‪ ‬تولد سياسة المرحلتين خوارزميتين للقفل‬
‫‪( ‬أ)أساسي‬
‫‪( ‬ب)محافظ‬
‫‪ ‬محافظ‪:‬‬
‫‪ ‬يمنع حالة الجمود عن طريق قفل كافة عناصر البيانات المطلوبة قبل بدء تنفيذ المعاملة‪.‬‬
‫‪ ‬أساسي‪:‬‬
‫‪ ‬تقوم المعاملة بتأمين عناصر البيانات بشكل متزايد‪ .‬قد يتسبب هذا في حالة من الجمود الذي يتم‬
‫التعامل معه‪.‬‬
‫‪ ‬حازم‪:‬‬
‫‪ ‬إصدار أكثر صرامة من الخوارزمية األساسية حيث يتم إجراء إلغاء القفل بعد إنهاء المعاملة‬
‫(االلتزامات أو اإلجهاض والتراجع)‪ .‬هذه هي خوارزمية القفل ثنائية الطور األكثر استخداًما‪.‬‬

‫‪60‬‬
‫طريق مسدود‬
‫طريق مسدوديحدث عندما تنتظر كل معاملة ‪ T‬في مجموعة من معاملتين أو‬ ‫‪‬‬

‫أكثر بعض العناصر المقفلة بواسطة معاملة أخرى ‪ ′ T‬في المجموعة‪ .‬ومن‬
‫ثم‪ ،‬فإن كل معاملة في المجموعة تكون في قائمة انتظار‪ ،‬في انتظار إحدى‬
‫المعامالت األخرى في المجموعة لتحرير القفل على عنصر ما‪,‬على سبيل‬
‫المثال‬

‫‪61‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫التعامل مع الجمود والجوع‬
‫‪ ‬الوقاية من الطريق المسدود‬
‫تقوم المعاملة بتأمين كافة عناصر البيانات التي تشير إليها قبل أن تبدأ في‬ ‫‪‬‬

‫التنفيذ‪.‬‬
‫تمنع طريقة القفل هذه حالة توقف تام نظًر ا ألن المعاملة ال تنتظر أبًد ا‬ ‫‪‬‬

‫عنصر بيانات‪.‬‬
‫يستخدم القفل المحافظ على مرحلتين هذا األسلوب‪.‬‬ ‫‪‬‬

‫‪62‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫التعامل مع الجمود والجوع‬
‫‪ ‬كشف حالة الجمود وحلها‬
‫في هذا النهج‪ُ ،‬يسمح بحدوث حاالت توقف تام‪.‬يحتفظ المجدول بانتظار الرسم البياني‬ ‫‪‬‬

‫الكتشاف الدورة ‪ .‬في حالة وجود دورة‪ ،‬يتم تحديد معاملة واحدة متضمنة في الدورة‬
‫(الضحية) ويتم التراجع عنها‪.‬‬
‫يتم إنشاء رسم بياني لالنتظار باستخدام جدول القفل‪ .‬بمجرد حظر المعاملة‪ ،‬تتم‬ ‫‪‬‬

‫إضافتها إلى الرسم البياني‪ .‬عندما تحدث سلسلة مثل‪ Ti :‬ينتظر ‪ Tj‬ينتظر ‪ Tk‬ينتظر‬
‫‪ Ti‬أو ‪ ،Tj‬فإن هذا يخلق دورة‪.‬‬

‫‪63‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫التعامل مع الجمود والجوع‬
‫‪ ‬تجنب الجمود‬
‫هناك العديد من االختالفات في خوارزمية القفل على مرحلتين‪.‬‬ ‫‪‬‬

‫يتجنب البعض حالة الجمود من خالل عدم السماح للدورة باالكتمال‪.‬‬ ‫‪‬‬

‫وذلك بمجرد أن تكتشف الخوارزمية أن حظر المعاملة من المحتمل أن يؤدي إلى‬ ‫‪‬‬

‫إنشاء دورة‪ ،‬فإنها تتراجع عن المعاملة‪.‬‬


‫تستخدم خوارزميات ‪ Wound-Wait‬و‪ Wait-Die‬الطوابع الزمنيةتجنب الجمود‬ ‫‪‬‬

‫من خالل التراجع عن الضحية‪.‬‬

‫‪64‬‬
‫التحكم في تزامن قاعدة البيانات‬
‫التعامل مع الجمود والجوع‬
‫‪ ‬مجاعة‬
‫تحدث المجاعة عندما تنتظر معاملة معينة أو يتم إعادة تشغيلها باستمرار وال تتاح لها‬ ‫‪‬‬

‫فرصة للمضي قدًما‪.‬‬


‫في حل حالة توقف تام‪ ،‬من الممكن أن يتم باستمرار تحديد نفس المعاملة كضحية‬ ‫‪‬‬

‫وإرجاعها‪.‬‬
‫هذا القيد متأصل في جميع آليات الجدولة القائمة على األولوية‪.‬‬ ‫‪‬‬

‫في مخطط ‪ ،Wound-Wait‬قد تتعرض المعاملة األصغر سًن ا دائًما للجرح‬ ‫‪‬‬

‫(اإلجهاض) من خالل معاملة قديمة طويلة األمد مما قد يؤدي إلى المجاعة‪.‬‬

‫‪65‬‬
Chapter 23
Database Recovery
Techniques

66
‫الفصل ‪23‬‬
‫تقنيات استعادة قاعدة البيانات‬

‫‪67‬‬
‫الفصل ‪ 23‬الخطوط العريضة‬

‫‪ 1‬الغرض من استعادة قاعدة البيانات‬


‫‪ 2‬أنواع الفشل‬
‫‪ 3‬ملف السجل‬
‫‪ 4‬ذاكرة التخزين المؤقت للبيانات والمخازن المؤقتة‬
‫‪ 5‬تحديث البيانات‬
‫‪ 6‬التراجع (تراجع) والتدحرج لألمام (إعادة)‬
‫‪ 7‬نقاط التفتيش‬
‫‪ 8‬تقنيات االسترداد‬
‫‪ 9‬مثال‪ :‬مخطط استرداد ‪ARIES‬‬
‫‪ 10‬االسترداد في معامالت قواعد البيانات المتعددة‬

‫‪68‬‬
‫الغرض من استعادة قاعدة البيانات‬

‫• إلحضار قاعدة البيانات إلى حالة متسقة بعد حدوث الفشل‪.‬‬


‫• للتأكد من خصائص الصفقةالذرية(يجب أن تتم المعاملة بالكامل‪ ،‬وإال‬
‫فيجب التراجع عنها) ومتانة(ال يمكن إلغاء المعاملة الملتزم بها ويجب‬
‫تطبيق كافة تحديثاتها بشكل دائم على قاعدة البيانات)‪.‬‬
‫• بعد الفشل‪،‬مدير استرداد نظم إدارة قواعد البيانات (‪.)DBMS‬هو‬
‫المسؤول عن جلب النظام إلى حالة متسقة قبل استئناف المعامالت‪.‬‬

‫‪69‬‬
‫أنواع الفشل‬

‫• فشل المعاملة‪ :‬قد تفشل المعامالت بسبب وجود أخطاء‪ ،‬أو إدخال غير‬
‫صحيح‪ ،‬أو حالة توقف تام‪ ،‬أو مزامنة غير صحيحة‪ ،‬وما إلى ذلك‪.‬‬
‫• فشل النظام‪ :‬قد يفشل النظام بسبب خطأ في التطبيق‪ ،‬أو خطأ في نظام‬
‫التشغيل‪ ،‬أو فشل ذاكرة الوصول العشوائي (‪ ،)RAM‬وما إلى ذلك‪.‬‬
‫• فشل الوسائط‪ :‬تعطل رأس القرص‪ ،‬انقطاع الطاقة‪ ،‬وما إلى ذلك‪.‬‬

‫‪70‬‬
‫ملف السجل‬

‫يحمل المعلومات الضرورية لعملية االسترداد‬ ‫•‬


‫يسجل جميع العمليات ذات الصلة بالترتيب الذي تحدث به (يبدو وكأنه‬ ‫•‬
‫ملفالجدول الزمني للمعامالت‪ ،‬انظر الفصل ‪)21‬‬
‫هو ملف إلحاق فقط‪.‬‬ ‫•‬
‫يحمل أنواًع ا مختلفة من سجالت السجل (أو إدخاالت السجل)‪.‬‬ ‫•‬

‫‪71‬‬
‫إدخاالت ملف السجل (من الفصل ‪)21‬‬
‫أنواع السجالت (اإلدخاالت) في ملف السجل‪:‬‬
‫• [‪ :]start_transaction,T‬يسجل أن المعاملة ‪ T‬قد بدأت في التنفيذ‪.‬‬
‫• [‪ :]write_item,T,X,old_value,new_value‬قام ‪ T‬بتغيير قيمة‬
‫العنصر ‪ X‬من القيمة القديمة إلى القيمة الجديدة‪.‬‬
‫• [‪ :]read_item,T,X‬لقد قرأ ‪ T‬قيمة العنصر ‪( X‬غير مطلوب في كثير من‬
‫الحاالت)‪.‬‬
‫• [‪ :]end_transaction,T‬انتهى ‪ T‬من التنفيذ‬
‫• [التزم‪ ،‬ت]‪ :‬تاء أكملت بنجاح‪ ،‬والتزمت‪.‬‬
‫• [إحباط‪ :]T ،‬تم إحباط ‪.T‬‬

‫‪72‬‬
‫ملف السجل (تابع)‬

‫ل‪write_item‬تسجيل دخول‪،‬القيمة القديمةالبند قبل التعديل (بفيم ‪ -‬قبل الصورة)‬


‫وقيمة جديدةبعد التعديل (أفيم – بعد الصورة) يتم تخزينها‪ BFIM .‬مطلوب للتراجع‪،‬‬
‫‪ AFIM‬مطلوب إلعادة التنفيذ‪ .‬ويرد أدناه سجل عينة‪.‬العودة صوالتالي صأشر إلى‬
‫سجالت السجل السابقة والتالية لنفس المعاملة‪.‬‬

‫‪T ID‬‬ ‫‪Back P Next P Operation Data item‬‬ ‫‪BFIM‬‬ ‫‪AFIM‬‬


‫‪T1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪Begin‬‬
‫‪T1‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪Write‬‬ ‫‪X‬‬ ‫‪X = 100‬‬ ‫‪X = 200‬‬
‫‪T2‬‬ ‫‪0‬‬ ‫‪8‬‬ ‫‪Begin‬‬
‫‪T1‬‬ ‫‪2‬‬ ‫‪5‬‬ ‫‪W‬‬ ‫‪Y‬‬ ‫‪Y = 50 Y = 100‬‬
‫‪T1‬‬ ‫‪4‬‬ ‫‪7‬‬ ‫‪R‬‬ ‫‪M‬‬ ‫‪M = 200 M = 200‬‬
‫‪T3‬‬ ‫‪0‬‬ ‫‪9‬‬ ‫‪R‬‬ ‫‪N‬‬ ‫‪N = 400 N = 400‬‬
‫‪T1‬‬ ‫‪5‬‬ ‫‪nil‬‬ ‫‪End‬‬

‫‪73‬‬
‫مثال آخر على اختبار التسلسل‪( .‬ب) الجدول الزمنيه‪.‬‬

‫‪74‬‬
‫ذاكرة التخزين المؤقت لقاعدة البيانات‬

‫ذاكرة التخزين المؤقت لقاعدة البيانات‪:‬مجموعه منالذاكرة‬


‫الرئيسيةمخازن؛ يحتوي كل مخزن مؤقت عادًة على محتويات كتلة قرص‬
‫واحدة‪ .‬يخزن كتل القرص التي تحتوي على عناصر البيانات التي تتم‬
‫قراءتها وكتابتها بواسطة معامالت قاعدة البيانات‪.‬‬
‫عنوان عنصر البيانات‪(:‬عنوان كتلة القرص‪ ،‬اإلزاحة‪ ،‬الحجم بالبايت)‪.‬‬
‫جدول ذاكرة التخزين المؤقت‪:‬جدول إدخاالت النموذج (عنوان المخزن‬
‫المؤقت‪ ،‬عنوان كتلة القرص‪ ،‬البت المعدل‪ ،‬بت الدبوس‪/‬إلغاء‬
‫التثبيت‪ )... ،‬لإلشارة إلى كتل القرص الموجودة حالًيا في المخازن المؤقتة‬
‫لذاكرة التخزين المؤقت‪.‬‬

‫‪75‬‬
‫ذاكرة التخزين المؤقت لقاعدة البيانات (تابع)‬

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

‫‪76‬‬
‫تحديث البيانات‬

‫• تحديث فوري‪ :‬يمكن إعادة كتابة عنصر البيانات الذي تم تعديله في‬
‫ذاكرة التخزين المؤقت إلى القرصقبل تنفيذ الصفقة‪.‬‬
‫• التحديث المؤجل‪ :‬ال يمكن إعادة كتابة عنصر البيانات المعدل في‬
‫ذاكرة التخزين المؤقت إلى القرص حتىبعد تنفيذ الصفقة(المخزن‬
‫المؤقت هومثبت)‪.‬‬

‫• تحديث الظل‪ :‬ال تقوم النسخة المعدلة من عنصر البيانات بالكتابة فوق‬
‫نسخة القرص الخاصة بها ولكن تتم كتابتها في موقع قرص منفصل‬
‫(اإلصدار الجديد)‪.‬‬
‫• التحديث في المكان‪ :‬تتم الكتابة فوق إصدار القرص الخاص بعنصر‬
‫البيانات بواسطة إصدار ذاكرة التخزين المؤقت‪.‬‬

‫‪77‬‬
‫إجراءات االسترداد ‪ UNDO‬و‪REDO‬‬
‫للحفاظ على الذرية والمتانة‪ ،‬قد يكون لبعض المعامالت عملياتهاإعادة بنائهأوتم التراجع‬
‫عنهأثناء التعافي‪ .‬يعد التراجع (التراجع) ضرورًيا للمعامالت التي لم يتم االلتزام بها بعد‪.‬‬
‫هناك حاجة إلى ‪( REDO‬الترحيل لألمام) للمعامالت الملتزم بها والتي ربما لم يتم مسح‬
‫كتاباتها من ذاكرة التخزين المؤقت إلى القرص بعد‪.‬‬
‫الغاء التحميل‪ :‬استعادة جميع ‪ BFIMs‬من السجل إلى قاعدة البيانات الموجودة‬
‫على القرص‪ .‬يستمر التراجع عن التراجع في السجل (من األحدث إلى األقدم في‬
‫التراجع)‪.‬‬
‫إعادة‪ :‬استعادة جميع ‪ AFIMs‬من السجل إلى قاعدة البيانات الموجودة على‬
‫القرص‪ .‬تستمر عملية ‪ REDO‬لألمام في السجل (من اإلعادة األقدم إلى‬
‫األحدث)‪.‬‬

‫‪78‬‬
‫بروتوكول تسجيل الكتابة المسبقة‬
‫يجب كتابة المعلومات المطلوبة لالسترداد في ملف السجل الموجود على القرص‬
‫قبل إجراء التغييرات على قاعدة البيانات الموجودة على القرص‪.‬تسجيل الكتابة‬
‫المسبقة(وول) يتكون البروتوكول من قاعدتين‪:‬‬
‫للتراجع‪ :‬قبل أن يتم مسح ‪ AFIM‬الخاص بعنصر البيانات إلى قاعدة البيانات‬
‫الموجودة على القرص (الكتابة فوق ‪.)BFIM‬بفيميجب كتابته في السجل ويجب‬
‫حفظ السجل على القرص‪.‬‬
‫لإلعادة‪ :‬قبل أن تنفذ المعاملة عملية االلتزام الخاصة بها‪ ،‬فإن كل ما يتعلق‬
‫بها‪AFIMs‬يجب كتابته في السجل ويجب حفظ السجل في متجر ثابت‪.‬‬

‫‪79‬‬
‫نقاط التفتيش‬
‫للتقليل منإعادةالعمليات أثناء التعافي‪ .‬تحدد الخطوات التالية عملية نقطة التفتيش‪:‬‬
‫–تعليق تنفيذ المعامالت مؤقتا‪.‬‬
‫– فرض كتابة المخازن المؤقتة المعدلة من ذاكرة التخزين المؤقت إلى القرص‪.‬‬
‫–اكتب سجل [نقطة تفتيش] في السجل‪ ،‬واحفظ السجل على القرص‪ .‬يتضمن هذا السجل أيًضا‬
‫معلومات أخرى‪ ،‬مثلقائمة المعامالت النشطةفي وقت نقطة التفتيش‪.‬‬
‫–استئناف تنفيذ المعاملة العادية‪.‬‬
‫أثناء التعافيإعادةمطلوب فقط للمعامالت التي ارتكبتبعد آخر سجل [نقطة تفتيش]‪.‬في السجل‪.‬‬

‫‪80‬‬
‫تأثير نقاط التفتيش‬
‫‪ ‬عندما تم أخذ نقطة التفتيش في الوقت ‪ ،t1‬تم االلتزام بالمعاملة ‪ ،T1‬في حين لم يتم االلتزام‬
‫بالمعاملتين ‪ T3‬و‪ .T4‬قبل تعطل النظام في الوقت ‪ ،t2‬كان ‪ T3‬و‪T2‬‬
‫ملتزم ولكن ليس ‪ T4‬و ‪.T5‬‬
‫‪ ‬ليست هناك حاجة إلعادة‪write_item‬عمليات المعاملة ‪ — T1‬أو أي معامالت تم تنفيذها قبل‬
‫وقت نقطة التفتيش األخيرة ‪.t1‬‬
‫‪ ‬ال‪write_item‬ومع ذلك‪ ،‬يجب إعادة تنفيذ عمليات ‪ T2‬و‪ ،T3‬ألن كلتا المعاملتين وصلتا إلى نقاط‬
‫االلتزام الخاصة بهما بعد نقطة التحقق األخيرة‪.‬‬
‫‪ ‬تذكر أن السجل يتم كتابته بالقوة قبل تنفيذ المعاملة‪.‬‬
‫يتم تجاهل المعامالت ‪ T4‬و‪ :T5‬يتم إلغاؤها أو إعادتها فعلًيا نظًر ا لعدم وجود أي‬
‫منها‪ write_item‬تم تسجيل العمليات في قاعدة البيانات على القرص بموجب بروتوكول التحديث‬
‫المؤجل (‪no-steal‬سياسة)‪.‬‬

‫‪81‬‬
‫مفاهيم أخرى الستعادة قاعدة البيانات‬
‫سرقة ‪ /‬عدم سرقة والقوة ‪ /‬عدم القوة‬
‫حدد كيفية مسح المخازن المؤقتة لذاكرة التخزين المؤقت لقاعدة البيانات إلى قاعدة البيانات‬
‫الموجودة على القرص‪:‬‬
‫يسرق ‪ :‬قد يتم مسح مخازن ذاكرة التخزين المؤقت التي تم تحديثها بواسطة معاملة ما إلى القرص‬
‫قبل تنفيذ المعاملة (قد يتطلب االسترداد التراجع)‪.‬‬
‫ممنوع السرقة ‪ :‬ال يمكن مسح مخازن ذاكرة التخزين المؤقت إال بعد تنفيذ المعاملة (‪NO-‬‬
‫‪( .)UNDO‬المخازن المؤقتة هيمثبتحتى تتم المعامالت)‪.‬‬
‫قوة‪ :‬يتم مسح ذاكرة التخزين المؤقت (إجبارًيا) على القرص قبل تنفيذ المعاملة (‪.)NO-REDO‬‬
‫ال قوه ‪ :‬قد يتم تأجيل بعض عمليات مسح ذاكرة التخزين المؤقت إلى ما بعد تنفيذ المعاملة (قد يتطلب‬
‫االسترداد إعادة اإلجراء)‪.‬‬
‫تؤدي هذه إلى أربع طرق مختلفة للتعامل مع عملية االسترداد‪:‬‬
‫السرقة‪/‬عدم القوة (تراجع‪/‬إعادة)‪ ،‬السرقة‪/‬القوة (تراجع‪/‬عدم اإلعادة)‪ ،‬عدم السرقة‪/‬عدم القوة‬
‫(إعادة‪/‬عدم التراجع)‪ ،‬عدم السرقة‪/‬القوة (عدم التراجع‪/‬عدم اإلعادة) )‪.‬‬

‫‪82‬‬
‫التحديث المؤجل (‪ )NO-UNDO/REDO‬بروتوكول االسترداد‬

‫يجب أن يفرض النظامممنوع السرقةقاعدة‪ .‬يقوم نظام االسترداد الفرعي بتحليل السجل وإنشاء‬
‫قائمتين‪:‬‬

‫قائمة المعامالت النشطة‪ :‬يتم إدخال جميع معرفات المعامالت النشطة (غير الملتزم بها) في هذه‬
‫القائمة‪.‬‬
‫قائمة المعامالت الملتزم بها‪ :‬المعامالت التي تمت بعد إدخال نقطة التفتيش األخيرة في هذا‬
‫الجدول‪.‬‬

‫أثناء عملية االسترداد‪ ،‬تتم المعامالت فييقترفالقائمة هيإعادة بنائه; المعامالت فينشيطالقائمة‬
‫هيتم تجاهله(بسبب قاعدة عدم السرقة‪ ،‬لم يتم تطبيق أي من كتاباتهم على قاعدة البيانات‬
‫الموجودة على القرص)‪ .‬قد تكون بعض المعامالتإعادة بنائهمرتين؛ هذا ال يخلق عدم االتساق‬
‫لإعادةيكون "عاجز"‪ ،‬أي أن عملية إعادة واحدة لـ ‪ AFIM‬تعادل عدة عمليات إعادة لـ ‪AFIM‬‬
‫نفسها‪.‬‬

‫‪83‬‬
‫التحديث المؤجل (‪ )NO-UNDO/REDO‬بروتوكول االسترداد‬
‫(تابع)‬
‫ميزة‪:‬فقطإعادةهناك حاجة أثناء االنتعاش‪.‬‬

‫العيب‪ :‬قد يتم تثبيت العديد من المخازن المؤقتة أثناء انتظار المعامالت التي قامت بتحديثها‬
‫لاللتزام‪ ،‬لذلك قد ينفد النظام من مخازن التخزين المؤقت عند تقديم الطلبات من خالل معامالت‬
‫جديدة‪.‬‬

‫‪84‬‬
‫‪ UNDO/NO-REDO‬بروتوكول االسترداد‬

‫في هذه الطريقة‪،‬قوةيتم فرض القاعدة بواسطة النظام (يتم مسح ‪ AFIMs‬الخاصة بالمعاملة إلى‬
‫قاعدة البيانات الموجودة على القرص ضمن "تسجيل الدخول المسبق"‪.‬قبل تنفيذ الصفقة)‪.‬‬

‫المعامالت في القائمة النشطة هيتم التراجع عنه; يتم تجاهل المعامالت في القائمة الملتزم بها‬
‫(ألنه بناًء على قاعدة ‪ ،FORCE‬تتم كتابة جميع تغييراتها بالفعل إلى قاعدة البيانات الموجودة‬
‫على القرص)‪.‬‬

‫ميزة‪:‬أثناء فترة التعافي فقطالغاء التحميلوهناك حاجة‪.‬‬

‫سلبيات‪ .1:‬يتم تأجيل تنفيذ المعاملة حتى يتم فرض جميع تغييراتها على القرص‪ .2 .‬قد تتم‬
‫كتابة بعض المخازن المؤقتة على القرص عدة مرات إذا تم تحديثها من خالل عدة معامالت‪.‬‬

‫‪85‬‬
‫‪ UNDO/REDO‬بروتوكول االسترداد‬

‫يمكن أن يتطلب االسترداد التراجع عن بعض المعامالت وإعادة المعامالت األخرى (يتوافق‬
‫مع ‪ .)STEAL/NO-FORCE‬يتم استخدامه في أغلب األحيان في الممارسة العملية بسبب‬
‫عيوب الطريقتين األخريين‪ .‬لتقليل ‪ ،REDO‬يتم استخدام نقاط التفتيش‪ .‬يتم تنفيذ عملية‬
‫االسترداد‪:‬‬

‫‪ .1‬الغاء التحميلللمعاملة إذا كانت موجودة في قائمة المعامالت النشطة‪.‬‬


‫‪ .2‬إعادةللمعاملة إذا كانت مدرجة في قائمة المعامالت التي تم تنفيذها منذ آخر نقطة تفتيش‪.‬‬

‫‪86‬‬
‫ترحيل الظل (‪)NO-UNDO/NO-REDO‬‬
‫ال يقوم ‪ AFIM‬بالكتابة فوق ‪ BFIM‬الخاص به ولكن يتم تسجيله في مكان آخر (اإلصدار‬
‫الجديد) على القرص‪ .‬وبالتالي‪ ،‬يمكن أن يحتوي عنصر البيانات على ‪ AFIM‬و‪BFIM‬‬
‫(نسخة الظل من عنصر البيانات) في مكانين مختلفين على القرص‪.‬‬

‫‪X‬‬ ‫‪Y‬‬
‫'‪X‬‬ ‫'‪Y‬‬

‫‪Database‬‬

‫‪ X‬و‪ :Y‬نسخ الظل (القديمة) من عناصر البيانات‬


‫‪ `X‬و‪ :`Y‬النسخ الحالية (الجديدة) من عناصر البيانات‬

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

‫‪88‬‬
‫التراجع عن المعامالت والتراجع المتتالي‬
‫إذا فشلت المعاملة ألي سبب من األسباب بعد تحديث قاعدة البيانات‪ ،‬ولكن قبل تنفيذ‬
‫المعاملة‪ ،‬فقد يكون من الضروري التراجع عن المعاملة‪ .‬إذا تم تغيير أي قيم لعناصر‬
‫البيانات بواسطة المعاملة وكتابتها إلى قاعدة البيانات الموجودة على القرص‪ ،‬فيجب‬
‫استعادتها إلى قيمها السابقة (‪.)BFIMs‬‬
‫يتم استخدام إدخاالت سجل التراجع الستعادة القيم القديمة لعناصر البيانات التي يجب‬
‫استرجاعها‪.‬‬
‫إذا كانت الصفقةتيتم التراجع‪ ،‬أي معاملةسالذي قام‪ ،‬في هذه األثناء‪ ،‬بقراءة قيمة بعض‬
‫عناصر البيانات‪X‬كتب بواسطةتيجب أيًض ا التراجع‪ .‬وبالمثل‪ ،‬مرة واحدةسيتم‬
‫التراجع‪ ،‬أي معاملةرالذي قرأ قيمة بعض عناصر البياناتيكتب بواسطةسويجب‬
‫أيًض ا التراجع؛ وما إلى ذلك وهلم جرا‪ .‬وتسمى هذه الظاهرةالتراجع المتتالي‬

‫‪89‬‬
90
‫سؤال‬
‫االلشكل التالييعرض السجل المطابق لجدول معين عند هذه النقطة‬
‫من تعطل النظام ألربع معامالتت‪,1‬ت‪,2‬ت‪ ،3‬وت‪ .4‬لنفترض أننا‬
‫استخدم البروتوكول التحديث الفوري مع نقاط التفتيش‪ .‬وصف عملية االسترداد من تعطل النظام‪.‬‬
‫‪ .1‬تحديد المعامالت التي سيتم إرجاعها‬
‫مرة أخرى‪ ،‬ما هي العمليات التي تم إجراؤها في السجل والتي تم التراجع عنها (إن وجدت)‪،‬‬
‫وما إذا كان سيتم إجراء أي تراجع متتالي‪.‬‬
‫‪ .2‬ما هي القيم األولية للعناصر ‪A، B، D‬‬
‫‪ .3‬ما هي قيم العناصر بعد عملية االسترداد‪.‬‬

‫‪91‬‬
‫النسخ االحتياطي لقاعدة البيانات واالسترداد‬
‫من الفشل الذريع‬
‫• يجب أيًض ا أن يكون مدير االسترداد لنظام إدارة قواعد البيانات (‪)DBMS‬‬
‫مجهًز ا للتعامل مع المزيد من حاالت الفشل الكارثية مثل تعطل القرص‪.‬‬
‫• التقنية الرئيسية المستخدمة للتعامل مع مثل هذه الحوادث هينسخه االحتياطيه‬
‫لقاعدة البيانات‪ ،‬حيث يتم نسخ قاعدة البيانات بأكملها والسجل بشكل دوري‬
‫على وسيط تخزين رخيص مثل األشرطة المغناطيسية أو غيرها من أجهزة‬
‫التخزين ذات السعة الكبيرة غير المتصلة باإلنترنت‪.‬‬
‫• في حالة حدوث فشل فادح في النظام‪ ،‬يمكن إعادة تحميل أحدث نسخة احتياطية‬
‫من الشريط إلى القرص‪ ،‬ويمكن إعادة تشغيل النظام‪.‬‬

‫‪92‬‬
‫ملخص الفصل ‪23‬‬

‫‪ 1‬الغرض من استعادة قاعدة البيانات‬


‫‪ 2‬أنواع الفشل‬
‫‪ 3‬ملف السجل‬
‫‪ 4‬ذاكرة التخزين المؤقت للبيانات والمخازن المؤقتة‬
‫‪ 5‬تحديث البيانات‬
‫‪ 6‬التراجع (تراجع) والتدحرج لألمام (إعادة)‬
‫‪ 7‬نقاط التفتيش‬
‫‪ 8‬تقنيات االسترداد‬
‫‪ 9‬مثال‪ :‬مخطط استرداد ‪ARIES‬‬
‫‪ 10‬االسترداد في معامالت قواعد البيانات المتعددة‬

‫‪93‬‬
Chapter 24
Database Security

94
‫‪ 1‬مقدمة لقضايا أمن قاعدة البيانات‬

‫أنواع األمن‬ ‫‪‬‬

‫القضايا القانونية واألخالقية‬ ‫‪‬‬

‫مشكلة سياسية‬ ‫‪‬‬

‫القضايا المتعلقة بالنظام‬ ‫‪‬‬

‫الحاجة إلى تحديد مستويات أمنية متعددة‬ ‫‪‬‬

‫‪95‬‬
‫مقدمة إلى مشكالت أمان قاعدة البيانات (‪)2‬‬
‫التهديدات لقواعد البيانات‬ ‫‪‬‬

‫فقداننزاهة‬ ‫‪‬‬

‫فقدانالتوفر‬ ‫‪‬‬

‫فقدانسرية‬ ‫‪‬‬

‫ولحماية قواعد البيانات من هذه األنواع من التهديدات‪ ،‬يمكن تنفيذ أربعة أنواع من‬ ‫‪‬‬

‫اإلجراءات المضادة‪:‬‬
‫صالحية التحكم صالحية الدخول‬ ‫‪‬‬

‫التحكم في االستدالل‬ ‫‪‬‬

‫التحكم في التدفق‬ ‫‪‬‬

‫التشفير‬ ‫‪‬‬

‫‪96‬‬
‫مقدمة إلى قاعدة البيانات‬
‫قضايا أمنية (‪)3‬‬

‫يتضمن نظام إدارة قواعد البيانات (‪ )DBMS‬عادًة نظاًم ا فرعًي ا ألمان‬ ‫‪‬‬

‫قاعدة البيانات والترخيص يكون مسؤوًال عن ضمان أجزاء األمان‬


‫لقاعدة البيانات ضد الوصول غير المصرح به‪.‬‬

‫نوعان من آليات أمان قاعدة البيانات‪:‬‬ ‫‪‬‬

‫متوفرآليات األمن‬ ‫‪‬‬

‫إلزاميآليات األمن‬ ‫‪‬‬

‫‪97‬‬
‫مقدمة إلى قاعدة البيانات‬
‫قضايا أمنية (‪)4‬‬

‫يجب أن تتضمن آلية األمان لنظام إدارة قواعد البيانات أحكاًم ا لتقييد‬ ‫‪‬‬

‫الوصول إلى قاعدة البيانات ككل‬


‫تسمى هذه الوظيفةصالحية التحكم صالحية الدخول ويتم التعامل معها‬ ‫‪‬‬

‫عن طريق إنشاء حسابات مستخدمين وكلمات مرور للتحكم في عملية‬


‫تسجيل الدخول بواسطة نظام إدارة قواعد البيانات (‪.)DBMS‬‬

‫‪98‬‬
‫مقدمة إلى قاعدة البيانات‬
‫قضايا أمنية (‪)5‬‬

‫المشكلة األمنية المرتبطة بقواعد البيانات هي مشكلة التحكم في‬ ‫‪‬‬

‫الوصول إلى ملفقاعدة بيانات إحصائية‪ ،‬والذي ُيستخدم لتوفير‬


‫معلومات إحصائية أو ملخصات للقيم بناًء على معايير مختلفة‪.‬‬

‫التدابير المضادة لأمن قاعدة البيانات اإلحصائيةتسمى المشكلةتدابير‬ ‫‪‬‬

‫التحكم في االستدالل‪.‬‬

‫‪99‬‬
‫مقدمة إلى قاعدة البيانات‬
‫قضايا أمنية (‪)6‬‬

‫أمان آخر هو أنالتحكم في التدفق‪ ،‬مما يمنع تدفق المعلومات بطريقة‬ ‫‪‬‬

‫تصل إلى مستخدمين غير مصرح لهم‪.‬‬

‫يتم استدعاء القنوات التي تمثل مسارات لتدفق المعلومات ضمنًي ا بطرق‬ ‫‪‬‬

‫تنتهك سياسة األمان الخاصة بالمؤسسةالقنوات السرية‪.‬‬

‫‪100‬‬
‫مقدمة إلى قاعدة البيانات‬
‫القضايا األمنية (‪)7‬‬

‫قضية أمنية نهائيةتشفير البيانات‪ ،‬والذي ُيستخدم لحماية البيانات‬ ‫‪‬‬

‫الحساسة (مثل أرقام بطاقات االئتمان) التي يتم إرسالها عبر نوع ما من‬
‫شبكات االتصاالت‪.‬‬
‫البيانات هيمشفرةباستخدام بعضخوارزمية الترميز‪.‬‬ ‫‪‬‬

‫سيواجه المستخدم غير المصرح له الذي يصل إلى البيانات المشفرة‬ ‫‪‬‬

‫صعوبة في فك تشفيرها‪ ،‬ولكن يتم منح المستخدمين المصرح لهم‬


‫خوارزميات فك التشفير (أو المفاتيح) لفك تشفير البيانات‪.‬‬

‫‪101‬‬
‫‪ 1.2‬أمن قاعدة البيانات و‪DBA‬‬
‫مدير قاعدة البيانات (ديسيبل) هي السلطة المركزية إلدارة نظام قاعدة‬ ‫‪‬‬

‫البيانات‪.‬‬
‫تشمل مسؤوليات ‪DBA‬‬ ‫‪‬‬

‫منح االمتيازات للمستخدمين الذين يحتاجون إلى استخدام النظام‬ ‫‪‬‬

‫تصنيف المستخدمين والبيانات وفقا لسياسة المنظمة‬ ‫‪‬‬

‫‪ DBA‬مسؤول عن األمان العام لنظام قاعدة البيانات‪.‬‬ ‫‪‬‬

‫‪102‬‬
‫‪ 1.2‬أمن قاعدة البيانات و)‪DBA (2‬‬
‫لدى ‪ DBA‬حساب ‪ DBA‬في نظام إدارة قواعد البيانات (‪.)DBMS‬‬ ‫‪‬‬

‫في بعض األحيان تسمى هذه النظام أوالخارقحساب‬ ‫‪‬‬

‫توفر هذه الحسابات إمكانات قوية مثل‪:‬‬ ‫‪‬‬

‫‪ .1‬إنشاء الحساب‬ ‫‪‬‬

‫‪ .2‬منح االمتيازات‬ ‫‪‬‬

‫‪ .3‬إلغاء االمتياز‬ ‫‪‬‬

‫‪ .4‬تعيين مستوى األمان‬ ‫‪‬‬

‫اإلجراء ‪ 1‬هو التحكم في الوصول‪ ،‬في حين أن اإلجراء ‪ 2‬و‪ 3‬اختياري و‪ 4‬يستخدم‬ ‫‪‬‬

‫للتحكم في الترخيص اإللزامي‬

‫‪103‬‬
‫‪ 1.3‬حماية الوصول وحسابات المستخدمين وعمليات تدقيق‬
‫قاعدة البيانات‬

‫عندما يحتاج شخص أو مجموعة من األشخاص إلى الوصول إلى نظام‬ ‫‪‬‬

‫قاعدة بيانات‪ ،‬يجب على الفرد أو المجموعة أوًال التقدم بطلب للحصول‬
‫على حساب مستخدم‪.‬‬
‫سيقوم ‪ DBA‬بعد ذلك بإنشاء ملف جديدمعرف الحسابوكلمة‬ ‫‪‬‬

‫المرور للمستخدم إذا رأى أن هناك حاجة مشروعة للوصول إلى قاعدة‬
‫البيانات‬
‫يجب على المستخدم تسجيل الدخول إلى نظام إدارة قواعد البيانات‬ ‫‪‬‬

‫(‪ )DBMS‬عن طريق إدخال معرف الحساب وكلمة المرور عند‬


‫الحاجة إلى الوصول إلى قاعدة البيانات‪.‬‬

‫‪104‬‬
‫‪ 1.3‬حماية الوصول وحسابات المستخدمين وعمليات تدقيق‬
‫قاعدة البيانات(‪)2‬‬

‫يجب أن يحتفظ نظام قاعدة البيانات أيًض اتتبع جميع العملياتفي قاعدة‬ ‫‪‬‬

‫البيانات التي يتم تطبيقها من قبل مستخدم معين طوال الوقتكل جلسة‬
‫تسجيل الدخول‪.‬‬
‫لالحتفاظ بسجل لجميع التحديثات المطبقة على قاعدة البيانات والمستخدم‬ ‫‪‬‬

‫المعين الذي قام بتطبيق كل تحديث‪ ،‬يمكننا تعديلهسجل النظام‪ ،‬والذي‬


‫يتضمن إدخاًال لكل عملية يتم تطبيقها على قاعدة البيانات والتي قد تكون‬
‫مطلوبة للتعافي من فشل المعاملة أو تعطل النظام‪.‬‬

‫‪105‬‬
‫‪ 1.3‬حماية الوصول وحسابات المستخدمين وعمليات تدقيق‬
‫قاعدة البيانات(‪)3‬‬

‫في حالة االشتباه في أي تالعب بقاعدة البيانات‪ ،‬أتدقيق قاعدة البياناتتم‬ ‫‪‬‬

‫إنجازه‬
‫يتكون تدقيق قاعدة البيانات من مراجعة السجل لفحص جميع عمليات‬ ‫‪‬‬

‫الوصول والعمليات المطبقة على قاعدة البيانات خالل فترة زمنية معينة‪.‬‬
‫ُيطلق أحياًن ا على سجل قاعدة البيانات الُمستخدم بشكل أساسي ألغراض‬ ‫‪‬‬

‫أمنية اسمسجل تدقيق‪.‬‬

‫‪106‬‬
‫‪ .2‬التحكم في الوصول التقديري بناًء على منح‬
‫االمتيازات وإلغاءها‬

‫الطريقة النموذجية للتنفيذالتحكم في الوصول التقديريةفي نظام قاعدة‬ ‫‪‬‬

‫بيانات يعتمد علىمنحوإلغاء االمتيازات‪.‬‬

‫‪107‬‬
‫‪ 2.1‬أنواع االمتيازات التقديرية‬
‫المستوى الحساب‪:‬‬ ‫‪‬‬

‫في هذا المستوى‪ ،‬يحدد ‪ DBA‬االمتيازات الخاصة التي يحتفظ بها كل‬ ‫‪‬‬

‫حساب بشكل مستقل عن العالقات الموجودة في قاعدة البيانات‪.‬‬


‫المستوى العالقة(أومستوى الجدول)‪:‬‬ ‫‪‬‬

‫في هذا المستوى‪ ،‬يمكن لمسؤول قواعد البيانات التحكم في امتياز‬ ‫‪‬‬

‫الوصول إلى كل عالقة أو عرض فردي في قاعدة البيانات‪.‬‬

‫‪108‬‬
‫‪ 2.1‬أنواع االمتيازات التقديرية(‪)2‬‬
‫االمتيازات فيمستوى الحسابتنطبق على اإلمكانيات المتوفرة للحساب نفسه ويمكن‬ ‫‪‬‬

‫أن تشمل‬
‫الإنشاء مخططأواصنع جدولاالمتياز‪ ،‬إلنشاء مخطط أو عالقة أساسية؛‬ ‫‪‬‬

‫الإنشاء عرضامتياز؛‬ ‫‪‬‬

‫التغيير االمتياز‪ ،‬لتطبيق تغييرات المخطط مثل إضافة أو إزالة السمات من العالقات؛‬ ‫‪‬‬

‫اليسقطاالمتياز‪ ،‬لحذف العالقات أو وجهات النظر؛‬ ‫‪‬‬

‫الُيعِّد لامتياز إلدراج الصفوف أو حذفها أو تحديثها؛‬ ‫‪‬‬

‫و اليختارامتياز‪ ،‬السترداد المعلومات من قاعدة البيانات باستخداميختاراستفسار‪.‬‬ ‫‪‬‬

‫‪109‬‬
‫‪ 2.1‬أنواع االمتيازات التقديرية(‪)3‬‬
‫ينطبق المستوى الثاني من االمتيازات علىمستوى العالقة‬ ‫‪‬‬

‫هذا يتضمنالعالقات األساسيةوالظاهرية (منظر) عالقات‪.‬‬ ‫‪‬‬

‫يتبع منح االمتيازات وإلغائها بشكل عام نموذج ترخيص لالمتيازات التقديرية‬ ‫‪‬‬

‫المعروفة باسم نموذج مصفوفة الوصول حيث‬


‫الصفوفمن مصفوفة ‪ M‬يمثلالمواضيع(المستخدمون‪ ،‬الحسابات‪ ،‬البرامج)‬ ‫‪‬‬

‫الأعمدةيمثلأشياء(العالقات‪ ،‬السجالت‪ ،‬األعمدة‪ ،‬طرق العرض‪ ،‬العمليات)‪.‬‬ ‫‪‬‬

‫كل موقفم(اي جاي) في المصفوفة يمثل أنواع االمتيازات (القراءة والكتابة والتحديث)‬ ‫‪‬‬

‫التيموضوعأنايحمل علىكائن ي‪.‬‬

‫‪110‬‬
‫‪ 2.1‬أنواع االمتيازات التقديرية(‪)3‬‬
‫ينطبق المستوى الثاني من االمتيازات علىمستوى العالقة‬ ‫‪‬‬

‫الدورات‬ ‫تاريخ‬ ‫غرفة‬

‫طالب‬ ‫يقرأ‬ ‫صالقراءة‪/‬الكتابة‬ ‫صالقراءة‪/‬الكتابة‬

‫مدرب‬ ‫يقرأ‬ ‫ص‪ead‬‬ ‫صالقراءة‪/‬الكتابة‬

‫منسق‬ ‫يقرأ‬ ‫صالقراءة‪/‬الكتابة‬ ‫صالقراءة‪/‬الكتابة‬

‫‪111‬‬
‫‪ 2.1‬أنواع االمتيازات التقديرية (‪)4‬‬
‫للتحكم في منح وإلغاء امتيازات العالقة‪ ،‬يتم تعيين كل عالقة ‪ R‬في قاعدة‬ ‫‪‬‬

‫البياناتحساب المالك‪ ،‬وهو عادًة الحساب الذي تم استخدامه عند إنشاء العالقة في‬
‫المقام األول‪.‬‬
‫يتم إعطاء صاحب العالقةالجميعاالمتيازات المتعلقة بهذه العالقة‪.‬‬ ‫‪‬‬

‫في ‪ ،SQL2‬يمكن لـ ‪ DBA‬تعيين ومالك مخطط كامل عن طريق إنشاء المخطط‬ ‫‪‬‬

‫وربط معرف التفويض المناسب بهذا المخطط‪ ،‬باستخدامإنشاء مخططيأمر‪.‬‬


‫يمكن لصاحب حساب المالكتمرير االمتيازاتعلى أي من العالقة المملوكة للمستخدمين‬ ‫‪‬‬

‫اآلخرين من قبلمنحامتيازات لحساباتهم‪.‬‬

‫‪112‬‬
‫‪ 2.1‬أنواع االمتيازات التقديرية (‪)5‬‬
‫في ‪ SQL‬يمكن منح األنواع التالية من االمتيازات على كل عالقة فردية ‪:R‬‬ ‫‪‬‬

‫يختارامتياز (االسترجاع أو القراءة) على ‪:R‬‬ ‫‪‬‬

‫يمنح امتياز استرجاع الحساب‪.‬‬ ‫‪‬‬

‫في ‪ SQL‬يمنح هذا الحساب امتياز استخداميختاربيان السترداد الصفوف من ‪.R‬‬ ‫‪‬‬

‫ُيعِّد لاالمتيازات على ‪:R‬‬ ‫‪‬‬

‫وهذا يمنح الحساب القدرة على تعديل مجموعات ‪.R‬‬ ‫‪‬‬

‫في ‪ ،SQL‬يتم تقسيم هذا االمتياز أيًضا إلىتحديث‪,‬يمسح‪ ،‬وإدراجامتيازات لتطبيق أمر‬ ‫‪‬‬

‫‪ SQL‬المقابل على ‪.R‬‬


‫باإلضافة إلى ذلك‪ ،‬كال منإدراجوتحديثيمكن أن تحدد االمتيازات أنه يمكن تحديث سمات‬ ‫‪‬‬

‫معينة فقط بواسطة الحساب‪.‬‬

‫‪113‬‬
‫‪ 2.1‬أنواع االمتيازات التقديرية(‪)6‬‬
‫في ‪ ،SQL‬يمكن منح األنواع التالية من االمتيازات لكل عالقة فردية‬ ‫‪‬‬

‫‪( R‬تابع)‪:‬‬
‫‪ ‬مراجعامتيازعلى ر‪:‬‬
‫وهذا يعطي الحساب القدرة علىمرجعالعالقة ‪ R‬عند التحديدقيود التكامل‪.‬‬ ‫‪‬‬

‫يمكن أن يكون االمتياز أيًضامقيدإلى سمات محددة لـ ‪.R‬‬ ‫‪‬‬

‫الحظ أنه إلنشاء ملفمنظر‪ ،‬يجب أن يكون الحسابيختارامتياز على كافة‬ ‫‪‬‬

‫العالقات المشاركة في تعريف العرض‪.‬‬

‫‪114‬‬
‫‪ 2.2‬تحديد االمتيازات باستخدام طرق العرض‬
‫آليةاآلراءهو مهممتوفرآلية الترخيص في حد ذاتها‪ .‬على سبيل المثال‪،‬‬ ‫‪‬‬

‫إذا كان المالك ‪ A‬للعالقة ‪ R‬يريد أن يتمكن الحساب اآلخر ‪ B‬من القيام بذلكاسترداد‬ ‫‪‬‬

‫بعض الحقول فقطمن ‪ ،R‬فيمكن لـ ‪ A‬إنشاء عرض ‪ V‬لـ ‪ R‬يتضمنتلك الصفات فقطثم‬
‫قم بمنح ‪ SELECT‬على ‪ V‬إلى ‪.B‬‬
‫وينطبق الشيء نفسه على الحد من ‪ B‬لالسترجاعمجموعات معينة فقط منص ؛ يمكن‬ ‫‪‬‬

‫إنشاء عرض ‪ ' V‬عن طريق تحديد العرض عن طريق استعالم يحدد فقط تلك‬
‫المجموعات من ‪ R‬التي يريد ‪ A‬السماح لـ ‪ B‬بالوصول إليها‪.‬‬

‫‪115‬‬
‫عرض المثال‬

‫‪116‬‬
‫‪ 2.3‬إلغاء االمتيازات‬
‫في بعض الحاالت‪ ،‬يكون من المستحسن منح امتياز للمستخدم بشكل‬ ‫‪‬‬

‫مؤقت‪ .‬على سبيل المثال‪،‬‬


‫قد يرغب صاحب العالقة في منحيختارامتياز لمستخدم لمهمة محددة ثم‬ ‫‪‬‬

‫قم بإلغاء هذا االمتياز بمجرد اكتمال المهمة‪.‬‬


‫ومن ثم آليةإلغاءهناك حاجة إلى االمتيازات‪ .‬في ‪ ،SQL‬أسحب او‬ ‫‪‬‬

‫إبطاليتم تضمين األمر لغرضإلغاء االمتيازات‪.‬‬

‫‪117‬‬
‫‪ 2.4‬نشر االمتيازات باستخدام خيار المنحة‬
‫عندما يمنح المالك ‪ A‬لعالقة ‪ R‬امتياًز ا على ‪ R‬لحساب آخر ‪ ،B‬يمكن منح االمتياز‬ ‫‪‬‬

‫إلى ‪ B‬مع أو بدونخيار المنحة‪.‬‬


‫إذاخيار المنحةإذا تم منحه‪ ،‬فهذا يعني أن ‪ B‬يمكنه أيًض ا منح هذا االمتياز على ‪R‬‬ ‫‪‬‬

‫لحسابات أخرى‪.‬‬
‫لنفترض أنه تم إعطاء ‪B‬خيار المنحةبواسطة ‪ A‬وهذا ‪ B‬يمنح االمتياز على ‪R‬‬ ‫‪‬‬

‫لحساب ثالث ‪ ،C‬أيًضا معخيار المنحة‪ .‬بهذه الطريقة‪ ،‬يمكن االمتيازات الموجودة‬
‫على ‪R‬بثإلى حسابات أخرى دون علم صاحب ر‪.‬‬
‫إذا كان حساب المالكواآلن يلغياالمتياز الممنوح لـ ‪،B‬جميع االمتيازات التي نشرها‬ ‫‪‬‬

‫‪B‬على هذا االمتياز ينبغي تلقائيايتم إبطالهامن قبل النظام‪.‬‬

‫‪118‬‬
‫‪ 2.5‬مثال‬
‫لنفترض أن ‪ DBA‬قام بإنشاء أربعة حسابات‬ ‫‪‬‬

‫‪A1، A2، A3، A4‬‬ ‫‪‬‬

‫ويريد أن يتمكن ‪ A1‬فقط من إنشاء عالقات أساسية‪ .‬ثم يجب على ‪ DBA‬إصدار‬ ‫‪‬‬

‫أمر ‪ GRANT‬التالي في ‪SQL‬‬


‫منحةإنشاء عالمة تبويب إلى ‪A1‬؛‬
‫في ‪ SQL2‬يمكن تحقيق نفس التأثير من خالل وجود مشكلة ‪ DBA‬أإنشاء‬ ‫‪‬‬

‫مخططاألمر على النحو التالي‪:‬‬


‫يخلق شاما مثال تفويضأ‪1‬؛‬

‫‪119‬‬
‫‪ 2.5‬مثال (‪)2‬‬
‫حساب المستخدميمكن لـ ‪ A1‬إنشاء الجداولتحت المخطط المسمىمثال‪.‬‬ ‫‪‬‬

‫لنفترض أن ‪A1‬يخلقالعالقات األساسية اثنينموظفوقسم‬ ‫‪‬‬

‫‪ A1‬إذنمالكمن هاتين العالقتين وبالتاليجميع امتيازات العالقةعلى كل واحد منهم‪.‬‬ ‫‪‬‬

‫لنفترض أن ‪ A1‬يريد منح ‪ A2‬امتياز إدراج وحذف المجموعات في كل من هذه‬ ‫‪‬‬

‫العالقات‪ ،‬ولكن ‪ A1‬ال يريد أن يتمكن ‪ A2‬من نشر هذه االمتيازات إلى حسابات‬
‫إضافية‪:‬‬
‫منح اإلدراج‪ ،‬والحذف تشغيل‬
‫موظف‪ ،‬قسمإلى ‪A2‬؛‬

‫‪120‬‬
‫‪ 2.5‬مثال (‪)3‬‬

‫منح حسابات المستخدمين ‪A2‬امتياز إنشاء صفوف على الموظف و‪ A3‬امتياز تحديث‬
‫المجموعات على القسم‪.‬‬

‫‪121‬‬
‫‪ 2.5‬مثال (‪)3‬‬

‫منح حسابات المستخدمين ‪A2‬امتياز إنشاء صفوف على الموظف و‪ A3‬امتياز تحديث‬
‫المجموعات على القسم‪.‬‬
‫منح خاملموظفإلى ‪A2‬؛‬
‫تحديث المنحة قيد التشغيلقسمإلى ‪A3‬؛‬

‫‪122‬‬
‫‪ 2.5‬مثال (‪)4‬‬
‫لنفترض أن ‪ A1‬يريد السماح لـ ‪ A3‬باسترداد المعلومات من أي من الجدولين‬ ‫‪‬‬

‫وأيًض ا أن يتمكن من نشر امتياز ‪ SELECT‬إلى حسابات أخرى‪.‬‬


‫يمكن لـ ‪ A1‬إصدار األمر‪:‬‬ ‫‪‬‬

‫منح االختيار للتشغيلموظف‪ ،‬قسم‬


‫لأ‪3‬مع خيار المنحة؛‬
‫يمكن لـ ‪ A3‬منحيختارامتياز علىموظفالعالقة بـ ‪ A4‬عن طريق اإلصدار‪:‬‬ ‫‪‬‬

‫منح االختيار علىموظفل‪A4‬؛‬


‫الحظ أن ‪ A4‬ال يمكنه نشر امتياز ‪ SELECT‬ألنه لم يتم منح ‪GRANT‬‬ ‫‪‬‬

‫‪ OPTION‬إلى ‪A4‬‬

‫‪123‬‬
‫‪ 2.5‬مثال (‪)5‬‬
‫لنفترض أن ‪ A1‬قرر إلغاء امتياز ‪ SELECT‬في عالقة الموظف من‬ ‫‪‬‬

‫‪A3‬؛ يمكن لـ ‪ A1‬إصدار‪:‬‬


‫إلغاء التحديد قيد التشغيلموظفمنأ‪;3‬‬
‫‪ ‬يجب على نظام إدارة قواعد البيانات (‪ )DBMS‬اآلن إلغاء امتياز‬
‫‪ SELECT‬تلقائًي ا للموظف من ‪ A4‬أيًض ا‪ ،‬ألن ‪ A3‬منحت هذا‬
‫االمتياز لـ ‪ A4‬و‪ A3‬لم يعد يتمتع بهذا االمتياز بعد اآلن‪.‬‬
‫يمارس‪:‬‬
‫قم بإلغاء امتياز ‪ SELECT‬في عالقة الموظف من ‪.A2‬‬

‫‪124‬‬
‫‪ 2.5‬مثال (‪)5‬‬
‫إبطال امتياز ‪ SEELCT‬في عالقة الموظف من ‪:A2‬‬ ‫‪‬‬

‫إلغاء التحديد قيد التشغيلموظفمنأ‪;2‬‬ ‫‪‬‬

‫‪125‬‬
‫‪ 2.5‬مثال (‪)6‬‬
‫لنفترض أن ‪ A1‬يريد أن يمنح ‪ A3‬قدرة محدودة على االختيار من عالقة الموظف ويريد السماح لـ‬ ‫‪‬‬
‫‪ A3‬بأن يتمكن من نشر االمتياز‪.‬‬
‫‪ ‬يتمثل القيد في استرداد سمات ‪ NAME‬و‪ BDATE‬و‪ ADDRESS‬فقط وللصفوف التي‬
‫تحتوي على ‪ DNO=5‬فقط‪.‬‬
‫‪ A1‬ثم قم بإنشاء العرض‪:‬‬ ‫‪‬‬

‫إنشاء عرضالموظف ‪A3‬مثل‬


‫يختاراالسم والتاريخ والعنوان‬
‫منموظف‬
‫أيندنو = ‪;5‬‬
‫بعد إنشاء العرض‪ ،‬يمكن لـ ‪ A1‬منحهيختارفي العرض ‪ A3EMPLOYEE‬إلى ‪ A3‬كما يلي‪:‬‬ ‫‪‬‬

‫منح االختيار للتشغيلالموظف ‪A3‬لأ‪3‬‬


‫مع خيار المنحة؛‬

‫‪126‬‬
‫‪ 2.5‬مثال (‪)7‬‬
‫أخيًر ا‪ ،‬لنفترض أن ‪ A1‬يريد السماح لـ ‪ A4‬بتحديث سمة الراتب الخاصة‬ ‫‪‬‬

‫بالموظف فقط؛‬
‫يمكن لـ ‪ A1‬إصدار‪:‬‬ ‫‪‬‬

‫تحديث المنحة قيد التشغيلموظف(مرتب) ل‪;A4‬‬

‫التحديثأوإدراج يمكن أن يحدد االمتياز سمات معينة يمكن تحديثها أو إدراجها في‬ ‫‪‬‬

‫العالقة‪.‬‬
‫امتيازات أخرى (يختار‪,‬يمسح) ليست سمة محددة‪.‬‬ ‫‪‬‬

‫‪127‬‬
‫‪ 2.6‬تحديد حدود نشر االمتيازات‬

‫تم تطوير تقنيات للحد من نشر االمتيازات‪ ،‬على الرغم من أنها لم يتم‬ ‫‪‬‬

‫تنفيذها بعد في معظم أنظمة إدارة قواعد البيانات (‪ )DBMS‬وليست‬


‫جزًء ا من ‪.SQL‬‬
‫الحداالنتشار األفقيإلى رقم صحيح يعني أن الحساب ‪ B‬الذي يمنح خيار‬ ‫‪‬‬

‫المنح يمكنه منح االمتياز لحسابات أخرى على األكثر‪.‬‬


‫االنتشار العمودي أكثر تعقيدا؛ فهو يحد من عمق منح االمتيازات‪.‬‬ ‫‪‬‬

‫‪128‬‬
‫‪ 3‬التحكم اإللزامي في الوصول والتحكم في الوصول على أساس‬
‫الدور لألمان متعدد المستويات‬

‫لقد كانت تقنيات التحكم في الوصول التقديرية لمنح وإلغاء االمتيازات على‬ ‫‪‬‬

‫العالقات تقليدًيا هي آلية األمان الرئيسية ألنظمة قواعد البيانات العالئقية‪.‬‬


‫هذه طريقة الكل أو ال شيء‪:‬‬ ‫‪‬‬

‫إما أن المستخدم لديه أو ال يتمتع بامتياز معين‪.‬‬ ‫‪‬‬

‫في العديد من التطبيقات‪ ،‬وسياسة أمنية إضافيةهناك حاجة لتصنيف البيانات‬ ‫‪‬‬

‫والمستخدمين بناًء على فئات األمان‪.‬‬


‫هذا النهج كماالتحكم اإللزامي في الوصول‪ ،‬سيكون عادًةمجموعمع آليات التحكم في‬ ‫‪‬‬

‫الوصول التقديرية‪.‬‬

‫‪129‬‬
‫‪ 3‬التحكم اإللزامي في الوصول والتحكم في الوصول على أساس‬
‫الدور لألمان متعدد المستويات (‪)2‬‬

‫عاديفئات األمنهي سرية للغاية (‪ ،)TS‬سرية (‪ ،)S‬سرية (‪ ،)C‬وغير مصنفة‬ ‫‪‬‬

‫(‪ ،)U‬حيث ‪ TS‬هو أعلى مستوى و‪ U‬األدنى‪TS ≥ S ≥ C ≥ U :‬‬

‫النموذج الشائع االستخدام لألمان متعدد المستويات‪ ،‬والمعروف باسم ‪-Bell‬‬ ‫‪‬‬

‫البادوالنموذج‪ ،‬ويصنف كل منهماموضوع(المستخدم والحساب والبرنامج)‬


‫وهدف(عالقة‪ ،‬صف‪ ،‬عمود‪ ،‬عرض‪ ،‬عملية) في أحد تصنيفات األمان‪T، S، ،‬‬
‫‪ ،C‬أو ‪:U‬‬
‫تخليص(تصنيف) للموضوع ‪ S‬كمافئة (س) وإلىتصنيفلكائن ‪ O‬كمافئة (س)‪.‬‬ ‫‪‬‬

‫‪130‬‬
‫‪ 3‬التحكم اإللزامي في الوصول والتحكم في الوصول على أساس‬
‫الدور لألمان متعدد المستويات (‪)3‬‬

‫يتم فرض قيدين على الوصول إلى البيانات بناًء على تصنيفات‬ ‫‪‬‬

‫الموضوع‪/‬الكائن‪:‬‬
‫خاصية أمنية بسيطة‪:‬ال ُيسمح للموضوع ‪ S‬بالوصول للقراءة إلى كائن‬ ‫‪‬‬

‫‪ O‬ما لم تكن الفئة (‪ ≥ )S‬الفئة (‪.)O‬‬


‫ال ُيسمح للموضوع ‪ S‬بكتابة كائن ‪ O‬إال إذا كانت الفئة (‪ ≥ )S‬الفئة‬ ‫‪‬‬

‫(‪ .)O‬وهذا المعروف باسمخاصية النجمة(أو * الملكية)‪.‬‬

‫‪131‬‬
‫‪ 3‬التحكم اإللزامي في الوصول والتحكم في الوصول على أساس‬
‫الدور لألمان متعدد المستويات (‪)4‬‬
‫لدمج مفاهيم األمان متعددة المستويات في نموذج قاعدة البيانات العالئقية‪ ،‬من الشائع اعتبار قيم‬ ‫‪‬‬

‫السمات والصفوف ككائنات بيانات‪.‬‬


‫ومن ثم‪ ،‬ترتبط كل سمة ‪ A‬بـخاصية التصنيف جفي المخطط‪ ،‬وترتبط كل قيمة سمة في الصف‬ ‫‪‬‬

‫بتصنيف األمان المقابل‪.‬‬


‫وباإلضافة إلى ذلك‪ ،‬في بعض النماذج‪ ،‬أتصنيف الصفوفتتم إضافة السمة ‪ TC‬إلى سمات العالقة‬ ‫‪‬‬

‫لتوفير تصنيف لكل صف ككل‪.‬‬


‫وبالتالي‪ ،‬أعالقة متعددة المستوياتسيتم تمثيل مخطط ‪ R‬مع سمات ‪ n‬كـ‬ ‫‪‬‬

‫‪ ‬ر(أ‪ ،1‬ج‪،1‬أ‪ ،2‬ج‪ ،… ،2‬أن‪ ،‬جن‪،‬تك)‬


‫حيث يمثل كل ‪ Ci‬سمة التصنيف المرتبطة بالسمة ‪A‬أنا‪.‬‬ ‫‪‬‬

‫‪132‬‬
‫‪ 3‬التحكم اإللزامي في الوصول والتحكم في الوصول على أساس‬
‫الدور لألمان متعدد المستويات (‪)5‬‬
‫قيمة الحتوفر السمة في كل صف ‪ - t‬وهي أعلى قيم تصنيف السمات‬ ‫‪‬‬

‫داخل ‪ - t‬تصنيًفا عاًم ا للصف نفسه‪ ،‬في حين أن كل ‪C‬أنايوفر تصنيف‬


‫أمان أفضل لكل قيمة سمة داخل المجموعة‪.‬‬
‫المفتاح الظاهري لعالقة متعددة المستويات هو مجموعة السمات التي من‬ ‫‪‬‬

‫شأنها أن تشكل المفتاح األساسي في عالقة عادية (أحادية المستوى)‪.‬‬

‫‪133‬‬
‫‪ 3‬التحكم اإللزامي في الوصول والتحكم في الوصول على أساس‬
‫الدور لألمان متعدد المستويات (‪)6‬‬
‫ستظهر عالقة متعددة المستويات تحتوي على بيانات مختلفة للمواضيع‬ ‫‪‬‬

‫(المستخدمين) بمستويات إزالة مختلفة‪.‬‬


‫في بعض الحاالت‪ ،‬من الممكن تخزين صف واحد في العالقة عند مستوى تصنيف‬ ‫‪‬‬

‫أعلى وإنتاج الصفوف المقابلة عند مستوى تصنيف أقل من خالل عملية تعرف‬
‫باسمالفلتره‪.‬‬
‫وفي حاالت أخرى‪ ،‬من الضروري تخزين صفين أو أكثر في مستويات تصنيف‬ ‫‪‬‬

‫مختلفة بنفس القيمة للصفمفتاح ظاهر‪.‬‬


‫وهذا يؤدي إلى مفهومتعدد مثيالتحيث يمكن أن تحتوي عدة صفوف على نفس‬ ‫‪‬‬

‫القيمة الرئيسية الظاهرة ولكن لها قيم سمات مختلفة للمستخدمين على مستويات‬
‫تصنيف مختلفة‪.‬‬

‫‪134‬‬
‫‪ 3‬التحكم اإللزامي في الوصول والتحكم في الوصول على أساس‬
‫الدور لألمان متعدد المستويات (‪)7‬‬
‫بشكل عام‪،‬سالمة الكيانتنص قاعدة العالقات متعددة المستويات على أن‬ ‫‪‬‬

‫جميع السمات التي هي أعضاء في المفتاح الظاهري يجب أال تكون‬


‫فارغة ويجب أن يكون لها نفس تصنيف األمان داخل كل مجموعة‬
‫فردية‪.‬‬
‫باإلضافة إلى ذلك‪ ،‬يجب أن تحتوي جميع قيم السمات األخرى في‬ ‫‪‬‬

‫الصف على تصنيف أمان أكبر من أو يساوي تصنيف المفتاح‬


‫الظاهري‪.‬‬
‫هذاقيديضمن أن المستخدم يمكنه رؤية المفتاح إذا كان مسموًح ا للمستخدم‬ ‫‪‬‬

‫برؤية أي جزء من المجموعة على اإلطالق‪.‬‬

‫‪135‬‬
‫التحكم اإللزامي في الوصول والتحكم في الوصول على أساس الدور‬
‫لألمان متعدد المستويات (‪)8‬‬
‫قواعد النزاهة األخرى‪ ،‬تسمىسالمة فارغةوسالمة المثيالت‪ ،‬تأكد‬ ‫‪‬‬

‫بشكل غير رسمي من أنه إذا كان من الممكن تصفية (اشتقاق) قيمة‬
‫صف عند مستوى أمان معين من صف ذو تصنيف أعلى‪ ،‬فإنه يكفي‬
‫تخزين الصف ذو التصنيف األعلى في العالقة متعددة المستويات‪.‬‬

‫‪136‬‬
‫‪ 3.1‬مقارنة التحكم في الوصول التقديري والتحكم في‬
‫الوصول اإللزامي‬

‫التحكم في الوصول التقديري (‪)DAC‬وتتميز السياسات بدرجة عالية‬ ‫‪‬‬

‫من المرونة مما يجعلها مناسبة لمجموعة كبيرة ومتنوعة من مجاالت‬


‫التطبيق‪.‬‬
‫العيب الرئيسي للجنة المساعدة اإلنمائيةالنماذج هي ضعفها أمام‬ ‫‪‬‬

‫الهجمات الضارة‪ ،‬مثل أحصنة طروادة المضمنة في برامج التطبيقات‪.‬‬

‫‪137‬‬
‫‪ 3.1‬مقارنة التحكم في الوصول التقديري والتحكم في‬
‫الوصول اإللزامي (‪)2‬‬

‫وعلى النقيض من ذلك‪ ،‬تضمن السياسات اإللزامية درجة عالية من‬ ‫‪‬‬

‫الحماية بطريقة تمنع أي تدفق غير قانوني للمعلومات‪.‬‬


‫السياسات اإللزامية لها عيب كونها صارمة للغاية وال تنطبق إال في‬ ‫‪‬‬

‫بيئات محدودة‪.‬‬
‫في العديد من المواقف العملية‪ُ ،‬ت فضل السياسات التقديرية ألنها توفر‬ ‫‪‬‬

‫مفاضلة أفضل بين األمان وقابلية التطبيق‪.‬‬

‫‪138‬‬
‫‪ 3.2‬التحكم في الوصول على أساس الدور‬
‫التحكم في الوصول المستند إلى الدور (‪)RBAC‬ظهرت بسرعة في التسعينيات‬ ‫‪‬‬

‫كتقنية مجربة إلدارة وتطبيق األمن في األنظمة واسعة النطاق على مستوى‬
‫المؤسسة‪.‬‬
‫فكرتها األساسية هي أن األذونات مرتبطة باألدوار‪ ،‬ويتم تعيين المستخدمين‬ ‫‪‬‬

‫لألدوار المناسبة‪.‬‬
‫يمكن إنشاء األدوار باستخدامإنشاء دوروتدمير الدوراألوامر‪.‬‬ ‫‪‬‬

‫المنحةوسحب او إبطاليمكن بعد ذلك استخدام األوامر التي تمت مناقشتها ضمن‬ ‫‪‬‬

‫‪ DAC‬لتعيين االمتيازات وإبطالها من األدوار‪.‬‬

‫‪139‬‬
‫‪ 3.2‬التحكم في الوصول على أساس الدور (‪)2‬‬
‫‪RBAC‬يبدو أنه بديل قابل للتطبيق لضوابط الوصول التقديرية‬ ‫‪‬‬

‫واإللزامية التقليدية؛ فهو يضمن منح المستخدمين المصرح لهم فقط حق‬
‫الوصول إلى بيانات أو موارد معينة‪.‬‬
‫سمحت العديد من أنظمة إدارة قواعد البيانات (‪ )DBMS‬بمفهوم‬ ‫‪‬‬

‫األدوار‪ ،‬حيث يمكن تعيين االمتيازات لألدوار‪.‬‬


‫التسلسل الهرمي لألدوار في‪RBAC‬هي طريقة طبيعية لتنظيم األدوار‬ ‫‪‬‬

‫لتعكس خطوط السلطة والمسؤولية في المنظمة‪.‬‬

‫‪140‬‬
‫‪ 3.2‬التحكم في الوصول على أساس الدور (‪)3‬‬
‫اعتبار آخر مهم في‪RBAC‬األنظمة هي القيود الزمنية المحتملة التي قد توجد على‬ ‫‪‬‬

‫األدوار‪ ،‬مثل وقت ومدة تنشيط الدور‪ ،‬والتشغيل المحدد للدور من خالل تنشيط‬
‫دور آخر‪.‬‬
‫باستخدام‪RBAC‬يعد هذا النموذج هدًف ا مرغوًبا للغاية لمعالجة متطلبات األمان‬ ‫‪‬‬

‫األساسية للتطبيقات المستندة إلى الويب‪.‬‬


‫في المقابل‪ ،‬التحكم في الوصول التقديري (لجنة المساعدة اإلنمائية) والتحكم‬ ‫‪‬‬

‫اإللزامي في الوصول (ماك) عارضات ازياءنقص القدراتالالزمة لدعم المتطلبات‬


‫األمنية للمؤسسات الناشئة والتطبيقات المستندة إلى الويب‪.‬‬

‫‪141‬‬
‫‪ 3.3‬سياسات التحكم في الوصول لـ‬
‫التجارة اإللكترونية والويب‬

‫بيئات التجارة اإللكترونيةتتطلب سياسات مفصلة تتجاوز أنظمة إدارة‬ ‫‪‬‬

‫قواعد البيانات التقليدية‪.‬‬


‫في بيئة التجارة اإللكترونية‪ ،‬ال تقتصر الموارد التي يجب حمايتها على‬ ‫‪‬‬

‫البيانات التقليدية فحسب‪ ،‬بل تشمل أيًض ا المعرفة والخبرة‪.‬‬


‫يجب أن تكون آلية التحكم في الوصول مرنة بما يكفي لدعم مجموعة‬ ‫‪‬‬

‫واسعة من كائنات الحماية غير المتجانسة‪.‬‬


‫الشرط ذو الصلة هو الدعم لالتحكم في الوصول على أساس المحتوى‪.‬‬ ‫‪‬‬

‫‪142‬‬
‫‪ 3.3‬سياسات التحكم في الوصول لـ‬
‫التجارة اإللكترونية والويب (‪)2‬‬
‫وهناك شرط آخر يتعلق بعدم تجانس المواضيع‪ ،‬األمر الذي يتطلب سياسات التحكم‬ ‫‪‬‬

‫في الوصول على أساس خصائص المستخدم ومؤهالته‪.‬‬


‫أحد الحلول الممكنة‪ ،‬لمراعاة ملفات تعريف المستخدمين بشكل أفضل عند صياغة‬ ‫‪‬‬

‫سياسات التحكم في الوصول‪ ،‬هو دعم فكرة أوراق االعتماد‪.‬‬


‫أاالعتماد هي مجموعة من الخصائص المتعلقة بالمستخدم ذات الصلة ألغراض أمنية‬ ‫‪‬‬

‫على سبيل المثال‪ ،‬العمر‪ ،‬المنصب داخل المنظمة‬ ‫‪‬‬

‫من المعتقد أن لغة ‪ XML‬يمكن أن تلعب دوًر ا رئيسًيا في التحكم في الوصول‬ ‫‪‬‬

‫لتطبيقات التجارة اإللكترونية‪.‬‬

‫‪143‬‬
‫‪ 4‬مقدمة في اإلحصاء‬
‫أمن قاعدة البيانات‬

‫قواعد البيانات اإلحصائيةتستخدم بشكل أساسي إلنتاج إحصاءات عن‬ ‫‪‬‬

‫مجموعات سكانية مختلفة‪.‬‬


‫قد تحتوي قاعدة البياناتالبيانات السريةعلى األفراد‪ ،‬والتي ينبغي‬ ‫‪‬‬

‫حمايتها من وصول المستخدم‪.‬‬


‫ُيسمح للمستخدمين باسترجاعهاالمعلومات اإلحصائيةعلى السكان‬ ‫‪‬‬

‫مثلالمتوسطات‪ ،‬المبالغ‪ ،‬األعداد‪ ،‬الحد األقصى‪ ،‬الحد األدنى‪،‬وانحرافات‬


‫معيارية‪.‬‬

‫‪144‬‬
‫‪ 4‬مقدمة في اإلحصاء‬
‫أمن قواعد البيانات (‪)2‬‬

‫أسكانعبارة عن مجموعة من الصفوف من العالقة (الجدول) التي تلبي‬ ‫‪‬‬

‫بعض شروط االختيار‪.‬‬


‫االستعالمات اإلحصائية تنطوي على تطبيقالوظائف اإلحصائيةإلى‬ ‫‪‬‬

‫أسكانمن الصفوف‪.‬‬

‫‪145‬‬
‫‪ 4‬مقدمة في اإلحصاء‬
‫أمن قواعد البيانات (‪)3‬‬
‫على سبيل المثال‪ ،‬قد نرغب في استردادرقممن األفراد في أسكانأو المتوسط​‬ ‫‪‬‬

‫الدخلفي السكان‪.‬‬
‫ومع ذلك‪ ،‬ال ُيسمح لمستخدمي اإلحصائيات باسترجاع البيانات الفردية‪ ،‬مثل دخل‬ ‫‪‬‬

‫شخص معين‪.‬‬
‫يجب أن تحظر تقنيات أمان قاعدة البيانات اإلحصائية استرجاع البيانات الفردية‪.‬‬ ‫‪‬‬

‫يمكن تحقيق ذلك عن طريق حظر االستعالمات التي تسترد قيم السمات وبالسماح‬ ‫‪‬‬

‫فقط باالستعالمات التي تتضمن وظائف تجميعية إحصائية مثل ‪COUNT‬‬


‫و‪ SUM‬و‪ MIN‬و‪ MAX‬و‪ AVERAGE‬و‪.STANDARD DEVATION‬‬
‫يتم استدعاء مثل هذه االستعالمات أحياًن ااالستعالمات اإلحصائية‪.‬‬ ‫‪‬‬

‫‪146‬‬
‫‪ 4‬مقدمة في اإلحصاء‬
‫أمن قواعد البيانات (‪)4‬‬
‫وتقع على عاتق نظام إدارة قواعد البيانات مسؤولية ضمان سرية المعلومات‬ ‫‪‬‬

‫المتعلقة باألفراد‪ ،‬مع االستمرار في تقديم ملخصات إحصائية مفيدة للبيانات حول‬
‫هؤالء األفراد للمستخدمين‪ .‬توفيرحماية الخصوصيةمن المستخدمين في قاعدة‬
‫بيانات إحصائية أمر بالغ األهمية‪.‬‬
‫في بعض الحاالت من الممكن أناستداللقيم الصفوف الفردية من استعالمات‬ ‫‪‬‬

‫إحصائية متسلسلة‪.‬‬
‫وهذا صحيح بشكل خاص عندما تؤدي الظروف إلى مجتمع يتكون من عدد صغير من‬ ‫‪‬‬

‫الصفوف‪.‬‬

‫‪147‬‬
‫‪ 5‬مقدمة للتحكم في التدفق‬
‫التحكم في التدفقينظم توزيع أو تدفق المعلومات بين األشياء التي يمكن الوصول‬ ‫‪‬‬

‫إليها‪.‬‬
‫أتدفقبين الكائن ‪ X‬والكائن ‪ Y‬يحدث عندما يقرأ البرنامج القيم من ‪ X‬ويكتب القيم‬ ‫‪‬‬

‫في ‪.Y‬‬
‫تتحقق عناصر التحكم في التدفق من أن المعلومات الموجودة في بعض الكائنات ال‬ ‫‪‬‬

‫تتدفق بشكل صريح أو ضمني إلى الكائنات األقل حماية‪.‬‬


‫أسياسة التدفقيحدد القنوات التي ُيسمح للمعلومات بالتحرك من خاللها‪.‬‬ ‫‪‬‬

‫تحدد أبسط سياسة التدفق فئتين فقط من المعلومات‪:‬‬ ‫‪‬‬

‫سري (ج) وغير سري (ن)‬ ‫‪‬‬

‫ويسمح بجميع التدفقات باستثناء تلك من الفئة ‪ C‬إلى الفئة ‪.N‬‬ ‫‪‬‬

‫‪148‬‬
‫‪ 5.1‬القنوات السرية‬
‫أقناة سريةيسمح بنقل المعلومات التي تنتهك األمن أو السياسة‪.‬‬ ‫‪‬‬

‫أقناة سرية يسمحالمعلومات لالنتقال من مستوى تصنيف أعلى إلى‬ ‫‪‬‬

‫مستوى تصنيف أقل من خاللوسائل غير مناسبة‪.‬‬

‫‪149‬‬
‫‪ 5.1‬القنوات السرية (‪)2‬‬
‫القنوات السريةيمكن تصنيفها إلى فئتين عريضتين‪:‬‬ ‫‪‬‬

‫قنوات التخزينال تتطلب أي مزامنة زمنية‪ ،‬حيث يتم نقل المعلومات عن طريق‬ ‫‪‬‬

‫الوصول إلى معلومات النظام أو ما ال يمكن للمستخدم الوصول إليه‪.‬‬


‫قناة التوقيتالسماح بنقل المعلومات حسب توقيت األحداث أو العمليات‪.‬‬ ‫‪‬‬

‫يعتقد بعض خبراء األمن أن إحدى الطرق لتجنب القنوات السرية هي عدم تمكن‬ ‫‪‬‬

‫المبرمجين فعلًيا من الوصول إلى البيانات الحساسة التي من المفترض أن يقوم‬


‫البرنامج بمعالجتها بعد تشغيل البرنامج‪.‬‬

‫‪150‬‬
‫‪ 6‬التشفير والبنية التحتية للمفتاح العام‬

‫التشفيرهي وسيلة للحفاظ على البيانات اآلمنة في بيئة غير آمنة‪.‬‬ ‫‪‬‬

‫التشفيريتكون من تطبيقخوارزمية التشفيرللبيانات باستخدام بعض‬ ‫‪‬‬

‫المحددة مسبقامفتاح التشفير‪.‬‬


‫البيانات الناتجة يجب أن تكونفك تشفيرهاباستخدام أمفتاح فك‬ ‫‪‬‬

‫التشفيرالستعادة البيانات األصلية‪.‬‬

‫‪151‬‬
‫‪ 6.1‬البيانات ومعايير التشفير المتقدمة‬

‫المعيار تشفير البيانات (‪)DES‬هو نظام طورته حكومة الواليات‬ ‫‪‬‬

‫المتحدة ليستخدمه عامة الناس‪.‬‬


‫لقد تم قبوله على نطاق واسع كمعيار تشفير في كل من الواليات المتحدة‬ ‫‪‬‬

‫وخارجها‪.‬‬
‫ديسيمكن أن يوفر تشفيًر ا شامًال على القناة بين المرسل أ والمستقبل ب‪.‬‬ ‫‪‬‬

‫‪152‬‬
‫‪ 6.1‬البيانات ومعايير التشفير المتقدمة (‪)2‬‬

‫ديسالخوارزمية عبارة عن مزيج دقيق ومعقد من اثنين من العناصر‬ ‫‪‬‬

‫األساسية للتشفير‪:‬‬
‫االستبدالوالتقليب(التحويل)‪.‬‬ ‫‪‬‬

‫الديستستمد الخوارزمية قوتها من التطبيق المتكرر لهاتين التقنيتين لما‬ ‫‪‬‬

‫مجموعه ‪ 16‬دورة‪.‬‬
‫نص عادي(الصيغة األصلية للرسالة) هيمشفرةككتل من‪ 64‬بت‪.‬‬ ‫‪‬‬

‫‪153‬‬
‫‪ 6.1‬البيانات ومعايير التشفير المتقدمة(‪)3‬‬

‫وبعد التساؤل عن مدى كفايتهديسالمعهد الوطني للمعايير (نيست) قدم‬ ‫‪‬‬

‫معايير التشفير المتقدمة (الخدمات المعمارية والهندسية)‪.‬‬


‫تحتوي هذه الخوارزمية على حجم كتلة يبلغ‪ 128‬بتوبالتالي يستغرق‬ ‫‪‬‬

‫وقتا أطول للتصدع‪.‬‬

‫‪154‬‬
‫‪ 6.2‬تشفير المفتاح العام‬
‫في عام ‪ ،1976‬اقترح ديفي وهيلمان نوًعا جديًد ا من نظام التشفير‪ ،‬والذي أطلقوا‬ ‫‪‬‬

‫عليه اسمتشفير المفتاح العام‪.‬‬


‫خوارزميات المفتاح العامتستندوظائف رياضيةبدًال من العمليات على أنماط البت‪.‬‬ ‫‪‬‬

‫كما أنها تنطوي على استخداممفتاحين منفصلين‬ ‫‪‬‬

‫على عكس التشفير التقليدي الذي يستخدم مفتاًح ا واحًد ا فقط‪.‬‬ ‫‪‬‬

‫يمكن أن يكون الستخدام مفتاحين عواقب وخيمة في مجاالت السرية وتوزيع المفاتيح‬ ‫‪‬‬

‫والمصادقة‪.‬‬

‫‪155‬‬
‫‪ 6.2‬تشفير المفتاح العام (‪)2‬‬
‫ُيشار إلى المفتاحين الُمستخدمين لتشفير المفتاح العام باسمالمفتاح‬ ‫‪‬‬

‫العموميو المفتاح سري‪.‬‬


‫المفتاح سرييظل سرًي ا‪ ،‬ولكن يشار إليه بالمفتاح الخاص بدًال من المفتاح‬ ‫‪‬‬

‫السري (الكلمة المستخدمة في التشفير التقليدي لتجنب الخلط مع التشفير‬


‫التقليدي)‪.‬‬

‫‪156‬‬
‫‪ 6.2‬تشفير المفتاح العام (‪)3‬‬
‫يحتوي نظام تشفير المفتاح العام‪ ،‬أو البنية التحتية‪ ،‬على ستة مكونات‪:‬‬ ‫‪‬‬

‫نص عادي ‪ :‬هذه هي البيانات أو الرسالة القابلة للقراءة التي يتم إدخالها في‬ ‫‪‬‬

‫الخوارزمية كمدخل‪.‬‬
‫خوارزمية التشفير‪ :‬تقوم خوارزمية التشفير بإجراء تحويالت مختلفة علىنص عادي‪.‬‬ ‫‪‬‬

‫المفاتيح العامة والخاصة ‪ :‬هذان زوجان من المفاتيح تم اختيارهما بحيث إذا تم‬ ‫‪‬‬

‫استخدام أحدهما للتشفير‪ ،‬فسيتم استخدام اآلخر لفك التشفير‪.‬‬


‫تعتمد تحويالت التنفيذ التي تنفذها خوارزمية التشفير على المفتاح العام أو الخاص الذي‬ ‫‪‬‬

‫يتم توفيره كمدخل‪.‬‬

‫‪157‬‬
‫‪ 6.2‬تشفير المفتاح العام (‪)4‬‬
‫يحتوي نظام تشفير المفتاح العام‪ ،‬أو البنية التحتية‪ ،‬على ستة مكونات‬ ‫‪‬‬

‫(يتبع)‪:‬‬
‫النص المشفر‪:‬‬ ‫‪‬‬

‫هذه هي الرسالة المجمعة التي يتم إنتاجها كمخرجات‪ .‬ان ذلك يعتمد‬ ‫‪‬‬

‫علىنص عاديوالمفتاح‪.‬‬
‫بالنسبة لرسالة معينة‪ ،‬سيؤدي استخدام مفتاحين مختلفين إلى إنتاج مفتاحين‬ ‫‪‬‬

‫مختلفيننصوص مشفرة‪.‬‬
‫خوارزمية فك التشفير‪:‬‬ ‫‪‬‬

‫تقبل هذه الخوارزميةنص مشفروالمفتاح المطابق وينتج األصلنص عادي‪.‬‬ ‫‪‬‬

‫‪158‬‬
‫‪ 6.2‬تشفير المفتاح العام (‪)5‬‬
‫عامالمفتاح مصنوع للعامة وخاصالمفتاح ال يعرفه إال صاحبه‬ ‫‪‬‬

‫تعتمد خوارزمية تشفير المفتاح العام لألغراض العامة على‬ ‫‪‬‬

‫مفتاح واحد للتشفيرو‬ ‫‪‬‬

‫مختلفة ولكنها ذات صلةمفتاح لفك التشفير‪.‬‬ ‫‪‬‬

‫‪159‬‬
‫‪ 6.2‬تشفير المفتاح العام (‪)6‬‬
‫الخطوات األساسية هي كما يلي‪:‬‬ ‫‪‬‬

‫يقوم كل مستخدم بإنشاءزوج من المفاتيحالستخدامها في تشفير وفك تشفير الرسائل‪.‬‬ ‫‪‬‬

‫يضع كل مستخدم أحد المفتاحين في سجل عام أو ملف آخر يمكن الوصول إليه‪ .‬هذا‬ ‫‪‬‬

‫الالمفتاح العمومي‪ .‬يتم االحتفاظ بالمفتاح المرافق خاًصا (مفتاح سري)‪.‬‬


‫إذا أراد المرسل إرسال رسالة خاصة إلى المتلقي‪ ،‬فهو المرسليشفرالرسالة باستخدام‬ ‫‪‬‬

‫المفتاح العام للمستلم‪.‬‬


‫عندما يتلقى المتلقي الرسالة‪ ،‬هو أو هييفك التشفيروذلك باستخدام المفتاح الخاص‬ ‫‪‬‬

‫للمتلقي‪.‬‬
‫ال يمكن ألي مستلم آخر فك تشفير الرسالة ألن المتلقي وحده هو الذي يعرف مفتاحه‬ ‫‪‬‬

‫الخاص‪.‬‬

‫‪160‬‬
‫‪ 6.2‬تشفير المفتاح العام (‪)7‬‬
‫التشفير المفتاح العام ‪RSA‬الخوارزمية‪ ،‬واحدة من أولى أنظمة‬ ‫‪‬‬

‫المفاتيح العامة تم تقديمها في عام ‪ 1978‬من قبل رون ريفست (على‬


‫اليمين)‪ ،‬وآدي شامير (على اليسار)‪ ،‬ولين أدلمان (على اليمين) في‬
‫معهد ماساتشوستس للتكنولوجيا وتمت تسميتها على اسمهم‪.‬‬
‫تتضمن خوارزمية تشفير ‪ RSA‬نتائج مننظرية األعداد‪ ،‬مثل صعوبة‬ ‫‪‬‬

‫تحديد العوامل األولية الكبيرة لعدد كبير‪.‬‬


‫تعمل خوارزمية ‪ RSA‬أيًض ا معالحساب وحدات‪ ،mod n -‬حيث ‪n‬‬ ‫‪‬‬

‫هو نتاج عددين أوليين كبيرين‪.‬‬

‫‪161‬‬
‫‪ 6.2‬تشفير المفتاح العام (‪)8‬‬
‫مفتاحين‪،‬دوه‪ ،‬تستخدم لفك التشفير والتشفير‪.‬‬ ‫‪‬‬

‫‪ ‬خاصية هامة هي ذلكدوهيمكن تبادلها‪.‬‬


‫‪ ‬نيتم اختياره كعدد صحيح كبير هو منتجعددين أوليين كبيرين ومتميزين‪,‬أوب‪.‬‬
‫‪ ‬مفتاح التشفيرههو رقم تم اختياره عشوائًيا بين ‪ 1‬ونإنهرئيس نسبياإلى (أ‪( × )1-‬ب‪.)1-‬‬
‫‪ ‬النص عاديحاجزصمشفرة كمابي مود ن‪.‬‬
‫‪ ‬ألنه يتم تنفيذ األسوزارة الدفاع ن‪ ،‬التخصيمبيمن الصعب الكشف عن النص العادي المشفر‪.‬‬
‫‪ ‬ومع ذلك‪ ،‬مفتاح فك التشفيرديتم اختياره بعناية بحيث(‪.d mod n = P)Pe‬‬
‫‪ ‬مفتاح فك التشفيرديمكن حسابها من الشرط الذي))‪.dxe= 1 mod ((a-1)x(b-1‬‬
‫‪ ‬وبالتالي‪ ،‬فإن المتلقي الشرعي الذي يعرف ‪ d‬يقوم بالحساب ببساطة(‪d mod n =)Pe‬‬
‫‪P‬ويتعافىصدون الحاجة إلى العواملبي‪.‬‬

‫‪162‬‬
‫‪ 6.3‬التوقيعات الرقمية‬
‫أتوقيع إلكترونييعد مثاًال على استخدام تقنيات التشفير لتقديم خدمات المصادقة في تطبيقات التجارة‬ ‫‪‬‬

‫اإللكترونية‪.‬‬
‫التوقيع الرقمي هو وسيلة لربط عالمة فريدة للفرد بنص نصي‪.‬‬ ‫‪‬‬

‫‪ ‬يجب أن تكون العالمة ال ُت نسى‪ ،‬مما يعني أن اآلخرين يجب أن يكونوا قادرين على التحقق من‬
‫أن التوقيع يأتي من المنشئ‪.‬‬
‫يتكون التوقيع الرقمي من سلسلة من الرموز‪.‬‬ ‫‪‬‬

‫‪ ‬يجب أن يكون التوقيع مختلًف ا لكل استخدام‪.‬‬


‫ويمكن تحقيق ذلك من خالل جعل كل توقيع رقمي وظيفة للرسالة التي يوقعها‪ ،‬باإلضافة إلى طابع‬ ‫‪‬‬

‫زمني‪.‬‬
‫تقنيات المفتاح العام هي وسائل إنشاء التوقيعات الرقمية‪.‬‬ ‫‪‬‬

‫‪163‬‬
‫ملخص‬
‫‪ 1‬أمن قاعدة البيانات والترخيص‬ ‫‪‬‬

‫‪ 2‬التحكم في الوصول التقديري‬ ‫‪‬‬

‫‪ 3‬التحكم اإللزامي في الوصول والتحكم في الوصول على أساس الدور‬ ‫‪‬‬

‫لألمان متعدد المستويات‬


‫‪ 4‬أمن قواعد البيانات اإلحصائية‬ ‫‪‬‬

‫‪ 5‬التحكم في التدفق‬ ‫‪‬‬

‫‪ 6‬التشفير والبنية التحتية للمفتاح العام‬ ‫‪‬‬

‫‪164‬‬
165
‫الفصل ‪25‬‬

‫مفاهيم قاعدة البيانات الموزعة‬

‫‪166‬‬
‫الفصل ‪ 25‬الخطوط العريضة‬
‫مفاهيم قاعدة البيانات الموزعة‬ ‫‪.1‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬ ‫‪.2‬‬
‫أنواع أنظمة قواعد البيانات الموزعة‬ ‫‪.3‬‬
‫معالجة االستعالم‬ ‫‪.4‬‬
‫التحكم في التزامن واالسترداد‬ ‫‪.5‬‬
‫بنية خادم العميل من ‪ 3‬طبقات‬ ‫‪.6‬‬

‫‪167‬‬
‫مفاهيم قاعدة البيانات الموزعة‬
‫يمكن تنفيذ المعاملة بواسطة أجهزة كمبيوتر متعددة متصلة بالشبكة‬ ‫‪‬‬

‫بطريقة موحدة‪.‬‬
‫أقاعدة البيانات الموزعة (‪)DDB‬عمليات وحدة التنفيذ (المعاملة)‬ ‫‪‬‬

‫بطريقة موزعة‪ .‬يمكن تعريف قاعدة البيانات الموزعة (‪ )DDB‬بأنها‬


‫قاعدة البيانات الموزعة (‪ )DDB‬هي عبارة عن مجموعة من قواعد‬ ‫‪‬‬

‫البيانات المتعددة المرتبطة منطقًيا والموزعة عبر شبكة الكمبيوتر‪.‬‬


‫نظام إدارة قواعد البيانات الموزعة هو نظام برمجي يدير قاعدة بيانات‬ ‫‪‬‬

‫موزعة مع جعل التوزيع شفاًفا للمستخدم‪.‬‬

‫‪168‬‬
‫نظام قواعد البيانات الموزعة‬
‫مزايا‬ ‫‪‬‬

‫إدارة البيانات الموزعة مع مختلفمستويات الشفافية‪:‬‬ ‫‪‬‬

‫يشير هذا إلى الموضع الفعلي للبيانات (الملفات والعالقات وما إلى ذلك) التي‬ ‫‪‬‬

‫ال يعرفها المستخدم (شفافية التوزيع)‪.‬‬

‫‪169‬‬
‫نظام قواعد البيانات الموزعة‬
‫المزايا (الشفافية‪ ،‬تابع)‬ ‫‪‬‬

‫قد يتم تجزئة جداول ‪ EMPLOYEE‬و‪PROJECT‬‬ ‫‪‬‬

‫و‪ WORKS_ON‬أفقًيا وتخزينها مع إمكانية النسخ المتماثل كما هو‬


‫موضح أدناه‪.‬‬

‫‪170‬‬
‫نظام قواعد البيانات الموزعة‬
‫المزايا (الشفافية‪ ،‬تابع)‬ ‫‪‬‬

‫التوزيع وشفافية الشبكة‪:‬‬ ‫‪‬‬

‫ال يتعين على المستخدمين القلق بشأن التفاصيل التشغيلية للشبكة‪.‬‬ ‫‪‬‬

‫هناك شفافية الموقع والتي تشير إلى حرية إصدار األمر من أي مكان دون التأثير‬ ‫‪‬‬

‫على عمله‪.‬‬
‫ثم هناك شفافية التسمية‪ ،‬والتي تسمح بالوصول إلى أي كائن أسماء (ملفات‪ ،‬عالقات‪،‬‬ ‫‪‬‬

‫إلخ) من أي مكان‪.‬‬

‫‪171‬‬
‫نظام قواعد البيانات الموزعة‬
‫المزايا (الشفافية‪ ،‬تابع)‬ ‫‪‬‬

‫شفافية النسخ المتماثل‪:‬‬ ‫‪‬‬

‫يسمح بتخزين نسخ من البيانات في مواقع متعددة كما هو موضح في الرسم‬ ‫‪‬‬

‫البياني أعاله‪.‬‬
‫يتم ذلك لتقليل وقت الوصول إلى البيانات المطلوبة‪.‬‬ ‫‪‬‬

‫شفافية التجزئة‪:‬‬ ‫‪‬‬

‫يسمح بتجزئة العالقة أفقًيا (إنشاء مجموعة فرعية من مجموعات العالقة) أو‬ ‫‪‬‬

‫رأسًيا (إنشاء مجموعة فرعية من أعمدة العالقة)‪.‬‬

‫‪172‬‬
‫نظام قواعد البيانات الموزعة‬
‫مزايا أخرى‬ ‫‪‬‬

‫زيادة الموثوقية والتوافر‪:‬‬ ‫‪‬‬

‫تشير الموثوقية إلى الوقت المباشر للنظام‪ ،‬أي أن النظام يعمل بكفاءة في‬ ‫‪‬‬

‫معظم األوقات‪ .‬التوفر هو احتمال أن يكون النظام متاًح ا بشكل مستمر (قابل‬
‫لالستخدام أو الوصول إليه) خالل فترة زمنية‪.‬‬
‫يحتوي نظام قاعدة البيانات الموزعة على عقد متعددة (أجهزة كمبيوتر) وإذا‬ ‫‪‬‬

‫فشل أحدها‪ ،‬فسيكون اآلخرون متاحين للقيام بهذه المهمة‪.‬‬

‫‪173‬‬
‫نظام قواعد البيانات الموزعة‬
‫مزايا أخرى (تابع)‬ ‫‪‬‬

‫تحسين األداء‪:‬‬ ‫‪‬‬

‫يقوم نظام إدارة قواعد البيانات الموزع بتجزئة قاعدة البيانات إلبقاء البيانات‬ ‫‪‬‬

‫أقرب إلى المكان الذي تشتد الحاجة إليها‪.‬‬


‫وهذا يقلل من وقت إدارة البيانات (الوصول والتعديل) بشكل كبير‪.‬‬ ‫‪‬‬

‫توسع أسهل (قابلية التوسع)‪:‬‬ ‫‪‬‬

‫يسمح بإضافة العقد الجديدة (أجهزة الكمبيوتر) في أي وقت دون ربط‬ ‫‪‬‬

‫التكوين بأكمله‪.‬‬

‫‪174‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬

‫تجزئة البيانات‬ ‫‪‬‬

‫تقسيم العالقة إلى أجزاء صحيحة ومترابطة منطقًيا‪ .‬يمكن تجزئة العالقة‬ ‫‪‬‬

‫بطريقتين‪:‬‬
‫التجزئة األفقية‬ ‫‪‬‬

‫التجزئة العمودية‬ ‫‪‬‬

‫‪175‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التجزئة األفقية‬ ‫‪‬‬

‫إنهاأفقي مجموعة فرعية من العالقة التي تحتوي على تلكالصفوفالتي تستوفي شروط‬ ‫‪‬‬

‫االختيار‪.‬‬
‫ضع في اعتبارك عالقة الموظف بشرط االختيار (‪ .)DNO = 5‬جميع الصفوف تلبي‬ ‫‪‬‬

‫هذاحالة سيتم إنشاء مجموعة فرعية ستكون جزًء ا أفقًيا من عالقة الموظف‪.‬‬
‫قد يتكون شرط االختيار من عدة شروط متصلة بواسطة ‪ AND‬أوأو‪.‬‬ ‫‪‬‬

‫التجزئة األفقية المشتقة‪ :‬هي تجزئة عالقة أولية إلى عالقات ثانوية أخرى مرتبطة‬ ‫‪‬‬

‫بالمفاتيح الخارجية‪.‬‬

‫‪176‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التجزئة األفقية‬ ‫‪‬‬

‫بطاقة تعريف‬ ‫نآمي‬ ‫تاريخ‬ ‫عنوان‬ ‫المعدل‬ ‫كلية‬


‫الميالد‬ ‫التراكمي‬
‫‪001‬‬ ‫خالد‬ ‫‪1998‬‬ ‫سكاكا‬ ‫‪4.5‬‬ ‫‪CS‬‬

‫‪002‬‬ ‫محمد‬ ‫‪2001‬‬ ‫سكاكا‬ ‫‪4.0‬‬ ‫‪CS‬‬

‫‪003‬‬ ‫أمل‬ ‫‪2000‬‬ ‫قارة‬ ‫‪3.70‬‬ ‫م‬

‫‪004‬‬ ‫حسام‬ ‫‪2003‬‬ ‫القريات‬ ‫‪2.90‬‬ ‫‪CS‬‬

‫‪005‬‬ ‫نغم‬ ‫‪1997‬‬ ‫طبرجل‬ ‫‪4.10‬‬ ‫‪CS‬‬

‫‪006‬‬ ‫صالح‬ ‫‪2003‬‬ ‫أقسم‬ ‫‪3.5‬‬ ‫‪CS‬‬

‫‪177‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التجزئة األفقية‬ ‫‪‬‬

‫بطاقة تعريف‬ ‫نآمي‬ ‫تاريخ‬ ‫عنوان‬ ‫المعدل‬ ‫كلية‬


‫الميالد‬ ‫التراكمي‬
‫‪001‬‬ ‫خالد‬ ‫‪1998‬‬ ‫سكاكا‬ ‫‪4.5‬‬ ‫‪CS‬‬

‫‪002‬‬ ‫محمد‬ ‫‪2001‬‬ ‫سكاكا‬ ‫‪4.0‬‬ ‫‪CS‬‬

‫‪005‬‬ ‫نغم‬ ‫‪1997‬‬ ‫طبرجل‬ ‫‪4.10‬‬ ‫‪CS‬‬

‫بطاقة تعريف‬ ‫نآمي‬ ‫تاريخ‬ ‫عنوان‬ ‫المعدل‬ ‫كلية‬


‫الميالد‬ ‫التراكمي‬
‫‪003‬‬ ‫أمل‬ ‫‪2000‬‬ ‫قارة‬ ‫‪3.70‬‬ ‫م‬

‫‪004‬‬ ‫حسام‬ ‫‪2003‬‬ ‫القريات‬ ‫‪2.90‬‬ ‫‪CS‬‬

‫‪006‬‬ ‫صالح‬ ‫‪2003‬‬ ‫أقسم‬ ‫‪3.5‬‬ ‫‪CS‬‬


‫‪178‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التجزئة األفقية‬ ‫‪‬‬

‫إنها مجموعة فرعية أفقية من العالقة التي تحتوي على تلك الصفوف التي تلبي شروط‬ ‫‪‬‬

‫االختيار‪.‬‬
‫ضع في اعتبارك عالقة الموظف بشرط االختيار (‪ .)DNO = 5‬جميع الصفوف التي‬ ‫‪‬‬

‫تستوفي هذا الشرط ستنشئ مجموعة فرعية ستكون جزًء ا أفقًيا من عالقة الموظف‪.‬‬
‫قد يتكون شرط االختيار من عدة شروط متصلة بواسطة ‪ AND‬أو ‪.OR‬‬ ‫‪‬‬

‫التجزئة األفقية المشتقة‪ :‬هي تجزئة عالقة أولية إلى عالقات ثانوية أخرى مرتبطة‬ ‫‪‬‬

‫بالمفاتيح الخارجية‪.‬‬

‫‪179‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التجزئة األفقية‬ ‫‪‬‬
‫رقم قياسي‬ ‫نآمي‬ ‫تاريخ الميالد‬ ‫عنوان‬ ‫كلية‬
‫‪382358954‬‬ ‫خالد‬ ‫‪1998‬‬ ‫سكاكا‬ ‫‪CS‬‬
‫‪382485987‬‬ ‫محمد‬ ‫‪2001‬‬ ‫سكاكا‬ ‫‪CS‬‬
‫‪391958478‬‬ ‫أمل‬ ‫‪2000‬‬ ‫قارة‬ ‫م‬
‫‪391479457‬‬ ‫حسام‬ ‫‪2003‬‬ ‫القريات‬ ‫‪CS‬‬
‫‪401215487‬‬ ‫نغم‬ ‫‪1997‬‬ ‫طبرجل‬ ‫‪CS‬‬
‫‪401206489‬‬ ‫صالح‬ ‫‪2003‬‬ ‫أقسم‬ ‫‪CS‬‬

‫بطاقة تعريف‬ ‫المعدل التراكمي‬ ‫رقم قياسي‬


‫‪001‬‬ ‫‪4.5‬‬ ‫‪382358954‬‬
‫‪002‬‬ ‫‪4.0‬‬ ‫‪382485987‬‬
‫‪003‬‬ ‫‪3.70‬‬ ‫‪391958478‬‬
‫‪004‬‬ ‫‪2.90‬‬ ‫‪391479457‬‬
‫‪005‬‬ ‫‪4.10‬‬ ‫‪401215487‬‬
‫‪006‬‬ ‫‪3.5‬‬ ‫‪401206489‬‬
‫‪180‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التجزئة األفقية‬ ‫‪‬‬
‫رقم قياسي‬ ‫نآمي‬ ‫تاريخ الميالد‬ ‫عنوان‬ ‫كلية‬
‫‪391958478‬‬ ‫أمل‬ ‫‪2000‬‬ ‫قارة‬ ‫م‬
‫‪391479457‬‬ ‫حسام‬ ‫‪2003‬‬ ‫القريات‬ ‫‪CS‬‬
‫‪401206489‬‬ ‫صالح‬ ‫‪2003‬‬ ‫أقسم‬ ‫‪CS‬‬

‫‪181‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫َر أِس ّيالتجزئة‬ ‫‪‬‬

‫إنها مجموعة فرعية من العالقة التي تم إنشاؤها بواسطة مجموعة فرعية منأعمدة‪.‬‬ ‫‪‬‬

‫وبالتالي فإن الجزء الرأسي للعالقة سيحتوي على قيم األعمدة المحددة ‪.‬ال يوجد شرط‬
‫تحديد مستخدم في التجزئة العمودية‪.‬‬
‫النظر في عالقة الموظف‪ .‬يمكن إنشاء جزء رأسي من خالل الحفاظ على قيم‬ ‫‪‬‬

‫االسم‪،‬تاريخ الميالدوالجنس والعنوان‪.‬‬


‫نظًر ا لعدم وجود شرط إلنشاء جزء عمودي‪ ،‬يجب أن يتضمن كل جزء سمة المفتاح‬ ‫‪‬‬

‫األساسي للعالقة األصلية للموظف‪ .‬بهذه الطريقة يتم ربط جميع األجزاء الرأسية‬
‫للعالقة‪.‬‬

‫‪182‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التجزئة العمودية‬ ‫‪‬‬

‫بطاقة تعريف‬ ‫نآمي‬ ‫تاريخ‬ ‫عنوان‬ ‫المعدل‬ ‫كلية‬


‫الميالد‬ ‫التراكمي‬
‫‪001‬‬ ‫خالد‬ ‫‪1998‬‬ ‫سكاكا‬ ‫‪4.5‬‬ ‫‪CS‬‬

‫‪002‬‬ ‫محمد‬ ‫‪2001‬‬ ‫سكاكا‬ ‫‪4.0‬‬ ‫‪CS‬‬

‫‪003‬‬ ‫أمل‬ ‫‪2000‬‬ ‫قارة‬ ‫‪3.70‬‬ ‫م‬

‫‪004‬‬ ‫حسام‬ ‫‪2003‬‬ ‫القريات‬ ‫‪2.90‬‬ ‫‪CS‬‬

‫‪005‬‬ ‫نغم‬ ‫‪1997‬‬ ‫طبرجل‬ ‫‪4.10‬‬ ‫‪CS‬‬

‫‪006‬‬ ‫صالح‬ ‫‪2003‬‬ ‫أقسم‬ ‫‪3.5‬‬ ‫‪CS‬‬

‫‪183‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التجزئة العمودية‬ ‫‪‬‬

‫بطاقة تعريف‬ ‫نآمي‬ ‫تاريخ‬ ‫بطاقة تعريف‬ ‫عنوان‬ ‫المعدل‬ ‫كلية‬


‫الميالد‬ ‫التراكمي‬
‫‪001‬‬ ‫خالد‬ ‫‪1998‬‬ ‫‪001‬‬ ‫سكاكا‬ ‫‪4.5‬‬ ‫‪CS‬‬

‫‪002‬‬ ‫محمد‬ ‫‪2001‬‬ ‫‪002‬‬ ‫سكاكا‬ ‫‪4.0‬‬ ‫‪CS‬‬

‫‪003‬‬ ‫أمل‬ ‫‪2000‬‬ ‫‪003‬‬ ‫قارة‬ ‫‪3.70‬‬ ‫م‬

‫‪004‬‬ ‫حسام‬ ‫‪2003‬‬ ‫‪004‬‬ ‫القريات‬ ‫‪2.90‬‬ ‫‪CS‬‬

‫‪005‬‬ ‫نغم‬ ‫‪1997‬‬ ‫‪005‬‬ ‫طبرجل‬ ‫‪4.10‬‬ ‫‪CS‬‬

‫‪006‬‬ ‫صالح‬ ‫‪2003‬‬ ‫‪006‬‬ ‫أقسم‬ ‫‪3.5‬‬ ‫‪CS‬‬

‫‪184‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التمثيل‬ ‫‪‬‬

‫التجزئة األفقية‬ ‫‪‬‬

‫يمكن تحديد كل جزء أفقي على العالقة بواسطة أسسي(‪ )R‬العملية في الجبر العالئقي‪.‬‬ ‫‪‬‬

‫مكتمل التجزئة األفقية‬ ‫‪‬‬

‫مجموعة من القطع األفقية شروطها ‪C1، C2، …،CN‬قم بتضمين جميع الصفوف في‬ ‫‪‬‬

‫‪ -R‬أي كل صف في ‪R‬استوفي (‪ C1‬أو ‪ C2‬أو ‪ ...‬أو‪.)CN‬‬


‫منفصل التجزئة األفقية الكاملة ‪:‬ال يوجد صف في ‪R‬استوفي (سيوسي جيه) أينأنا≠ ي‪.‬‬ ‫‪‬‬

‫لإعادة بناء ‪ R‬من الشظايا األفقية أاتحاد يتم تطبيقه‪.‬‬ ‫‪‬‬

‫‪185‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التمثيل‬ ‫‪‬‬

‫التجزئة العمودية‬ ‫‪‬‬

‫يمكن تحديد جزء عمودي على العالقة بواسطة أ‪‬لي(‪ )R‬العملية في الجبر العالئقي‪.‬‬ ‫‪‬‬

‫مكتمل التجزئة العمودية‬ ‫‪‬‬

‫مجموعة من األجزاء الرأسية التي تتضمن قوائم إسقاطها ‪ L1، L2، ...، Ln‬جميعصفات‬ ‫‪‬‬

‫فير ولكن حصة فقطأساسي مفتاح من ‪ .R‬وفي هذه الحالة تستوفي قوائم اإلسقاط الشرطين‬
‫التاليين‪:‬‬
‫‪L1L2...‬لن =أترس(ص)‬ ‫‪‬‬

‫لي‪‬ل ي =بك (ص)أليأنا‪ ،j‬حيث )‪ ATTRS (R‬هي مجموعة سمات ‪ R‬و)‪ PK(R‬هو‬ ‫‪‬‬

‫المفتاح األساسي لـ ‪.R‬‬


‫إلعادة بناء ‪ R‬من األجزاء الرأسية الكاملة أيتم تطبيق االتحاد الخارجي‪.‬‬ ‫‪‬‬

‫‪186‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫التمثيل‬ ‫‪‬‬

‫التجزئة المختلطة (الهجينة)‪.‬‬ ‫‪‬‬

‫مزيج من التجزئة العمودية والتجزئة األفقية‪.‬‬ ‫‪‬‬

‫يتم تحقيق ذلك من خالل عمليات ‪SELECT-PROJECT‬الذي‬ ‫‪‬‬

‫يمثله‪‬لي(سسي(ص))‪.‬‬
‫إذا كان ‪( C = True‬حدد جميع المجموعات) و)‪،L ≠ ATTRS(R‬‬ ‫‪‬‬

‫فسنحصل على جزء رأسي‪ ،‬وإذا كان ‪ C ≠ True‬و)‪،L ≠ ATTRS(R‬‬


‫نحصل على جزء مختلط‪.‬‬
‫إذا كانت ‪ C = True‬و)‪ ،L = ATTRS(R‬فيمكن اعتبار ‪ R‬جزًء ا‪.‬‬ ‫‪‬‬

‫‪187‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫مخطط التجزئة‬ ‫‪‬‬

‫تعريف لمجموعة من األجزاء (أفقية أو رأسية أو أفقية ورأسية) تتضمن جميع السمات‬ ‫‪‬‬

‫والصفوف في قاعدة البيانات التي تفي بشرط إمكانية إعادة بناء قاعدة البيانات بأكملها‬
‫من األجزاء عن طريق تطبيق بعض تسلسالت ‪( UNION‬أو ‪)OUTER JOIN‬‬
‫وعمليات االتحاد‪.‬‬
‫مخطط التخصيص‬ ‫‪‬‬

‫فهو يصفتوزيع توزيعمن الشظايا إلىالمواقع ‪GPS‬من قواعد البيانات الموزعة‪ .‬يمكن‬ ‫‪‬‬

‫نسخها كلًيا أو جزئًيا أو يمكن تقسيمها‪.‬‬

‫‪188‬‬
‫تجزئة البيانات والنسخ المتماثل والتخصيص‬
‫النسخ المتماثل للبيانات‬ ‫‪‬‬

‫يتم نسخ قاعدة البيانات إلى كافة المواقع‪.‬‬ ‫‪‬‬

‫في النسخ المتماثل الكامل‪ ،‬يتم نسخ قاعدة البيانات بأكملها‪ ،‬وفي النسخ المتماثل الجزئي‬ ‫‪‬‬

‫يتم نسخ بعض األجزاء المحددة إلى بعض المواقع‪.‬‬


‫يتم تحقيق النسخ المتماثل للبيانات من خالل مخطط النسخ المتماثل‪.‬‬ ‫‪‬‬

‫توزيع البيانات (تخصيص البيانات)‬ ‫‪‬‬

‫هذا مناسب فقط في حالة النسخ الجزئي أو التقسيم‪.‬‬ ‫‪‬‬

‫يتم توزيع الجزء المحدد من قاعدة البيانات على مواقع قاعدة البيانات‪.‬‬ ‫‪‬‬

‫‪189‬‬
‫أنواع أنظمة قواعد البيانات الموزعة‬
‫متجانس‬ ‫‪‬‬

‫جميع مواقع نظام قاعدة البيانات لها‬ ‫‪‬‬

‫إعداد متطابق‪ ،‬أي نفس برنامج نظام‬ ‫‪Window‬‬


‫قاعدة البيانات‪.‬‬ ‫‪Site 5‬‬ ‫‪Unix‬‬
‫قد يكون نظام التشغيل األساسي مختلًفا‪.‬‬ ‫‪‬‬ ‫‪Oracle Site 1‬‬
‫‪Oracle‬‬
‫على سبيل المثال‪ ،‬تشغيل كافة‬ ‫‪‬‬
‫‪Window‬‬
‫المواقعوحي أو ‪ DB2‬أو ‪Sybase‬‬ ‫‪Site 4‬‬ ‫‪Communications‬‬
‫أو أي نظام قاعدة بيانات آخر‪.‬‬ ‫‪network‬‬
‫يمكن أن تكون أنظمة التشغيل األساسية‬ ‫‪‬‬

‫عبارة عن مزيج من ‪Linux‬‬ ‫‪Oracle‬‬


‫و‪ Window‬و‪ Unix‬وما إلى ذلك‪.‬‬
‫‪Site 3‬‬ ‫‪Site 2‬‬
‫‪Linux Oracle Linux Oracle‬‬

‫‪190‬‬
‫أنواع أنظمة قواعد البيانات الموزعة‬
‫غير متجانسة‬ ‫‪‬‬

‫‪ ‬متحد‪ :‬قد يقوم كل موقع بتشغيل نظام قاعدة بيانات مختلف ولكن تتم إدارة الوصول إلى البيانات‬
‫من خاللمخطط مفاهيمي واحد‪.‬‬
‫وهذا يعني أن درجة الحكم الذاتي المحلي هي الحد األدنى‪ .‬يجب أن يلتزم كل موقع بسياسة الوصول‬ ‫‪‬‬

‫المركزية‪ .‬قد يكون هناك مخطط عالمي‪.‬‬


‫قاعدة بيانات متعددة ‪:‬ال يوجد مخطط عالمي مفاهيمي واحد‪ .‬للوصول إلى البيانات‪ ،‬يتم إنشاء‬ ‫‪‬‬

‫مخططديناميكيامثلضروريبواسطة البرنامج التطبيقي‪.‬‬

‫‪Object Unix Relational‬‬


‫‪Oriented Site 5‬‬ ‫‪Unix‬‬
‫‪Site 1‬‬
‫‪Hierarchical‬‬
‫‪Window‬‬
‫‪Site 4‬‬ ‫‪Communications‬‬
‫‪network‬‬

‫‪Network‬‬
‫‪Object‬‬ ‫‪DBMS‬‬
‫‪Oriented‬‬ ‫‪Site 3‬‬ ‫‪Site 2‬‬ ‫‪Relational‬‬
‫‪Linux‬‬ ‫‪Linux‬‬ ‫‪191‬‬
‫أنواع أنظمة قواعد البيانات الموزعة‬
‫ميكرونيزيا قاعدة بيانات قضايا إدارة األنظمة‬ ‫‪‬‬

‫االختالفات في نماذج البيانات‪:‬‬ ‫‪‬‬

‫عالئقية‪ ،‬كائنية التوجه‪ ،‬هرمية‪ ،‬شبكة‪ ،‬إلخ‪.‬‬ ‫‪‬‬

‫االختالفات في القيود‪:‬‬ ‫‪‬‬

‫قد يكون لكل موقع قيود خاصة به على الوصول إلى البيانات ومعالجتها‪.‬‬ ‫‪‬‬

‫االختالفات في لغة االستعالم‪:‬‬ ‫‪‬‬

‫قد يستخدم بعض المواقع ‪ ،SQL‬وقد يستخدم البعض اآلخر ‪،SQL-89‬‬ ‫‪‬‬

‫وقد يستخدم البعض اآلخر ‪ ،SQL-92‬وهكذا‪.‬‬

‫‪192‬‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫مشاكل‬ ‫‪‬‬

‫تكلفة نقل البيانات (الملفات والنتائج) عبر الشبكة‪.‬‬ ‫‪‬‬

‫عادة ما تكون هذه التكلفة مرتفعة‪ ،‬لذا يلزم إجراء بعض التحسين‪.‬‬ ‫‪‬‬

‫أمثلة على العالقات‪ :‬الموظف في الموقع ‪ 1‬والقسم في الموقع ‪2‬‬ ‫‪‬‬

‫موظف في الموقع ‪ 110000‬صف‪ .‬حجم الصف = ‪ 100‬بايت‪ .‬حجم الجدول = ‪106‬البايت = ‪1‬‬ ‫‪‬‬

‫ميجابايت‪.‬‬
‫اسم ‪F‬‬ ‫مينيت‬ ‫االسم‬ ‫رقم‬ ‫تاريخ‬ ‫عنوان‬ ‫الجنس‬ ‫مرتب‬ ‫سوبرسن‬ ‫ال‬
‫ا‬ ‫الم‬
‫بايت‪ .‬حجم الجدول = ‪ 3500‬بايت = ‪1‬ميغا‬ ‫‪ 100‬صف‪ .‬حجميالالصف ل‬
‫= ‪35‬‬ ‫القسم في الموقع ‪.2‬‬ ‫‪‬‬

‫ض‬ ‫د‬ ‫بايت‪.‬‬


‫م‬
‫االسم‬ ‫رقم‬ ‫ا‬
‫مغرسسن‬ ‫تاريخ البدء‬
‫ن‬
‫س‪ :‬لكل موظف استرجاع اسم الموظف واسم القسم الذي يعمل فيه الموظف‪.‬‬ ‫‪‬‬
‫ا‬
‫ل‬ ‫س‪(Fname، Lname، Dname:‬موظفال=رقمقسم)‬ ‫‪‬‬

‫ا‬
‫ج‬
‫ت‬
‫م‬
‫‪193‬‬
‫ا‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫نتيجة‬ ‫‪‬‬

‫ستكون نتيجة هذا االستعالم ‪ 10000‬صف‪ ،‬على افتراض أن كل موظف‬ ‫‪‬‬

‫مرتبط بقسم ما‪.‬‬


‫لنفترض أن كل مجموعة نتائج يبلغ طولها ‪ 40‬بايت‪ .‬يتم تقديم االستعالم‬ ‫‪‬‬

‫في الموقع ‪ 3‬ويتم إرسال النتيجة إلى هذا الموقع‪.‬‬


‫المشكلة‪ :‬عالقات الموظفين واإلدارة غير موجودة في الموقع ‪.3‬‬ ‫‪‬‬

‫‪194‬‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫االستراتيجيات‪:‬‬ ‫‪‬‬

‫‪ .1‬نقل الموظف والقسم إلى الموقع ‪.3‬‬


‫إجمالي بايت النقل = ‪ 1,003,500 = 3500 + 1,000,000‬بايت‪.‬‬ ‫‪‬‬

‫‪ .2‬انقل الموظف إلى الموقع ‪ ،2‬وقم بتنفيذ االنضمام في الموقع ‪ 2‬وأرسل النتيجة إلى‬
‫الموقع ‪.3‬‬
‫حجم نتيجة االستعالم = ‪ 400,000 = 10,000 * 40‬بايت‪ .‬إجمالي حجم النقل =‬ ‫‪‬‬

‫‪ 1,400,000 = 1,000,000 + 400,000‬بايت‪.‬‬


‫‪ .3‬نقل عالقة القسم بالموقع ‪ ،1‬وتنفيذ االنضمام في الموقع ‪ ،1‬وإرسال النتيجة إلى الموقع‬
‫‪.3‬‬
‫إجمالي البايتات المنقولة = ‪ 403500 = 3500 + 400000‬بايت‪.‬‬ ‫‪‬‬

‫معايير التحسين‪ :‬تقليل نقل البيانات‪.‬‬ ‫‪‬‬

‫‪195‬‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫االستراتيجيات‪:‬‬ ‫‪‬‬

‫‪ .1‬نقل الموظف والقسم إلى الموقع ‪.3‬‬


‫إجمالي بايت النقل = ‪ 1,003,500 = 3500 + 1,000,000‬بايت‪.‬‬ ‫‪‬‬

‫‪ .2‬انقل الموظف إلى الموقع ‪ ،2‬وقم بتنفيذ االنضمام في الموقع ‪ 2‬وأرسل النتيجة إلى‬
‫الموقع ‪.3‬‬
‫حجم نتيجة االستعالم = ‪ 400,000 = 10,000 * 40‬بايت‪ .‬إجمالي حجم النقل =‬ ‫‪‬‬

‫‪ 1,400,000 = 1,000,000 + 400,000‬بايت‪.‬‬


‫‪ .3‬نقل عالقة القسم بالموقع ‪ ،1‬وتنفيذ االنضمام في الموقع ‪ ،1‬وإرسال النتيجة إلى الموقع‬
‫‪.3‬‬
‫إجمالي البايتات المنقولة = ‪ 403500 = 3500 + 400000‬بايت‪.‬‬ ‫‪‬‬

‫معايير التحسين‪ :‬تقليل نقل البيانات‪.‬‬ ‫‪‬‬

‫النهج المفضل‪ :‬االستراتيجية ‪.3‬‬ ‫‪‬‬

‫‪196‬‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫خذ بعين االعتبار االستعالم‬ ‫‪‬‬

‫س'‪ :‬لكل قسم استرجاع اسم القسم واسم مدير القسم‬ ‫‪‬‬

‫تعبير الجبر العالئقي‪:‬‬ ‫‪‬‬

‫‪(Fname، Lname، Dname‬موظف‪Mgrssn = SSN‬قسم)‬ ‫‪‬‬

‫اسم ‪F‬‬ ‫مينيت‬ ‫االسم‬ ‫رقم‬ ‫تاريخ‬ ‫عنوان‬ ‫الجنس‬ ‫مرتب‬ ‫سوبرسن‬ ‫ال‬
‫ا‬ ‫الم‬
‫ل‬ ‫يال‬
‫ض‬ ‫د‬
‫م‬
‫االسم‬ ‫رقم‬ ‫ا‬
‫مغرسسن‬ ‫تاريخ البدء‬
‫ن‬

‫ا‬
‫ل‬
‫‪197‬‬
‫ا‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫ستكون نتيجة هذا االستعالم ‪ 100‬صف‪ ،‬بافتراض أن كل قسم لديه مدير‪ ،‬فإن‬ ‫‪‬‬
‫استراتيجيات التنفيذ هي‪:‬‬
‫‪ .1‬نقل الموظف واإلدارة إلى موقع النتيجة وإجراء عملية االنضمام في الموقع ‪.3‬‬
‫إجمالي البايتات المنقولة = ‪ 1,003,500 = 3500 + 1,000,000‬بايت‪.‬‬ ‫‪‬‬

‫‪ .2‬نقل الموظف إلى الموقع ‪ ،2‬وتنفيذ االنضمام في الموقع ‪ 2‬وإرسال النتيجة إلى الموقع‬
‫‪ .3‬حجم نتيجة االستعالم = ‪ 4000 = 100 * 40‬بايت‪.‬‬
‫إجمالي حجم النقل = ‪ 1,004,000 = 1,000,000 + 4000‬بايت‪.‬‬ ‫‪‬‬

‫‪ .3‬نقل عالقة القسم بالموقع ‪ 1‬وتنفيذ االنضمام في الموقع ‪ 1‬وإرسال النتيجة إلى الموقع ‪.3‬‬
‫إجمالي حجم النقل = ‪ 7500 = 3500 + 4000‬بايت‪.‬‬ ‫‪‬‬

‫‪198‬‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫ستكون نتيجة هذا االستعالم ‪ 100‬صف‪ ،‬بافتراض أن كل قسم لديه مدير‪ ،‬فإن‬ ‫‪‬‬
‫استراتيجيات التنفيذ هي‪:‬‬
‫‪ .1‬نقل الموظف واإلدارة إلى موقع النتيجة وإجراء عملية االنضمام في الموقع ‪.3‬‬
‫إجمالي البايتات المنقولة = ‪ 1,003,500 = 3500 + 1,000,000‬بايت‪.‬‬ ‫‪‬‬

‫‪ .2‬نقل الموظف إلى الموقع ‪ ،2‬وتنفيذ االنضمام في الموقع ‪ 2‬وإرسال النتيجة إلى الموقع‬
‫‪ .3‬حجم نتيجة االستعالم = ‪ 4000 = 100 * 40‬بايت‪.‬‬
‫إجمالي حجم النقل = ‪ 1,004,000 = 1,000,000 + 4000‬بايت‪.‬‬ ‫‪‬‬

‫‪ .3‬نقل عالقة القسم بالموقع ‪ 1‬وتنفيذ االنضمام في الموقع ‪ 1‬وإرسال النتيجة إلى الموقع ‪.3‬‬
‫إجمالي حجم النقل = ‪ 7500 = 3500 + 4000‬بايت‪.‬‬ ‫‪‬‬

‫اإلستراتيجية المفضلة‪ :‬اختر اإلستراتيجية ‪.3‬‬ ‫‪‬‬

‫‪199‬‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫لنفترض اآلن أن موقع النتيجة هو ‪ .2‬االستراتيجيات الممكنة‪:‬‬ ‫‪‬‬

‫‪ .1‬نقل عالقة الموظف إلى الموقع ‪ ،2‬وتنفيذ االستعالم وتقديم النتيجة‬


‫للمستخدم في الموقع ‪.2‬‬
‫إجمالي حجم النقل = ‪ 1,000,000‬بايت لكال االستعالمين ‪ Q‬و‪.'Q‬‬ ‫‪‬‬

‫‪ .2‬نقل عالقة القسم إلى الموقع ‪ ،1‬وتنفيذ االنضمام في الموقع ‪ 1‬وإرسال‬


‫النتيجة مرة أخرى إلى الموقع ‪.2‬‬
‫إجمالي حجم النقل لـ ‪ Q = 400,000 + 3500 = 403,500‬بايت‬ ‫‪‬‬

‫ولـ ‪ Q' = 4000 + 3500 = 7500‬بايت‪.‬‬

‫‪200‬‬
‫معالجة االستعالم في قواعد البيانات الموزعة‬
‫شبه االنضمام‪:‬‬ ‫‪‬‬

‫الهدف هو تقليل عدد الصفوف في العالقة قبل نقلها إلى موقع آخر‪.‬‬ ‫‪‬‬

‫مثال على تنفيذ ‪ Q‬أو ‪:'Q‬‬ ‫‪‬‬

‫‪ .1‬قم بعرض سمات االنضمام للقسم في الموقع ‪ ،2‬ونقلها إلى الموقع ‪.1‬‬
‫‪ -‬بالنسبة لـ )‪ ،Q (DNUMBER‬يتم نقل ‪ 400 = 100 * 4‬بايت و‬
‫‪ ،Q' (MGRSSN) -‬يتم نقل ‪ 900 = 100 * 9‬بايت‪.‬‬
‫‪ .2‬انضم إلى الملف المنقول بعالقة الموظف في الموقع ‪ ،1‬وانقل السمات المطلوبة من الملف‬
‫الناتج إلى الموقع ‪ .2‬بالنسبة لـ ‪ ،Q‬يتم نقل ‪ 340,000 = 10,000 * 34‬بايت وبالنسبة لـ‬
‫‪ ،'Q‬يتم نقل ‪ 3900 = 100 * 39‬بايت‪.‬‬
‫‪ .3‬تنفيذ االستعالم من خالل ضم الملف المنقول إلى القسم وعرض النتيجة على المستخدم في‬
‫الموقع ‪.2‬‬

‫اسم ‪F‬‬ ‫مينيت‬ ‫االسم‬ ‫رقم‬ ‫تاريخ‬ ‫عنوان‬ ‫الجنس‬ ‫مرتب‬ ‫سوبرسن‬ ‫ال‬
‫ا‬ ‫الم‬
‫ل‬ ‫يال‬ ‫‪201‬‬
‫االسم‬ ‫رقم‬ ‫مغرسسن‬ ‫تاريخ البدء‬
‫ض‬ ‫د‬
‫التحكم في التزامن واالسترداد‬
‫تواجه قواعد البيانات الموزعة عدًد ا من مشكالت التحكم في التزامن‬ ‫‪‬‬

‫واالسترداد غير الموجودة في قواعد البيانات المركزية‪ .‬بعض منهم‬


‫مدرج أدناه‪.‬‬
‫التعامل مع نسخ متعددة من عناصر البيانات‬ ‫‪‬‬

‫فشل المواقع الفردية‬ ‫‪‬‬

‫فشل رابط االتصال‬ ‫‪‬‬

‫االلتزام الموزع‬ ‫‪‬‬

‫الجمود الموزعة‬ ‫‪‬‬

‫‪202‬‬
‫التحكم في التزامن واالسترداد‬
‫تفاصيل‬ ‫‪‬‬

‫التعامل مع نسخ متعددة من عناصر البيانات‪:‬‬ ‫‪‬‬

‫يجب أن يحافظ التحكم في التزامن على التناسق العالمي‪ .‬وبالمثل‪ ،‬يجب على‬ ‫‪‬‬

‫آلية االسترداد استرداد جميع النسخ والحفاظ على االتساق بعد االسترداد‪.‬‬
‫فشل المواقع الفردية‪:‬‬ ‫‪‬‬

‫يجب أال يتأثر توفر قاعدة البيانات بسبب فشل موقع أو موقعين ويجب على‬ ‫‪‬‬

‫نظام االسترداد استعادتهما قبل أن يصبحا متاحين لالستخدام‪.‬‬

‫‪203‬‬
‫التحكم في التزامن واالسترداد‬
‫التفاصيل (تابع)‬ ‫‪‬‬

‫فشل رابط االتصال‪:‬‬ ‫‪‬‬

‫قد يؤدي هذا الفشل إلى إنشاء قسم شبكة مما قد يؤثر على توفر قاعدة البيانات على الرغم‬ ‫‪‬‬

‫من أن كافة مواقع قواعد البيانات قد تكون قيد التشغيل‪.‬‬


‫االلتزام الموزع‪:‬‬ ‫‪‬‬

‫قد تكون المعاملة مجزأة‪ ،‬وقد يتم تنفيذها بواسطة عدد من المواقع‪ .‬يتطلب هذا اتباع نهج‬ ‫‪‬‬

‫التزام على مرحلتين أو ثالث مراحل اللتزام المعاملة‪.‬‬


‫الجمود الموزع‪:‬‬ ‫‪‬‬

‫نظًر ا ألنه تتم معالجة المعامالت في مواقع متعددة‪ ،‬فقد يتورط موقعان أو أكثر في حالة‬ ‫‪‬‬

‫توقف تام‪ .‬ويجب حل هذه المشكلة بطريقة موزعة‪.‬‬

‫‪204‬‬
‫التحكم في التزامن واالسترداد‬
‫التحكم في التزامن الموزع بناًء على نسخة موزعة من عنصر البيانات‬ ‫‪‬‬

‫تقنية الموقع األساسي‪ :‬يتم تعيين موقع واحد كموقع أساسي يعمل كمنسق‬ ‫‪‬‬

‫إلدارة المعامالت‪.‬‬

‫‪Primary site‬‬
‫‪Site 5‬‬
‫‪Site 1‬‬

‫‪Site 4‬‬ ‫‪Communications neteork‬‬

‫‪Site 3‬‬ ‫‪Site 2‬‬


‫‪205‬‬
‫التحكم في التزامن واالسترداد‬
‫ادارة العمليات التجارية‪:‬‬ ‫‪‬‬

‫تتم إدارة التحكم في التزامن وااللتزام بواسطة هذا الموقع‪.‬‬ ‫‪‬‬

‫في القفل على مرحلتين‪ ،‬يدير هذا الموقع قفل عناصر البيانات وتحريرها‪.‬‬ ‫‪‬‬

‫إذا كانت جميع المعامالت تتبع سياسة المرحلتين في جميع المواقع‪،‬‬


‫إذنتسلسلمكفول‪.‬‬

‫‪206‬‬
‫التحكم في التزامن واالسترداد‬
‫ادارة العمليات التجارية‬ ‫‪‬‬

‫مزايا‪:‬‬ ‫‪‬‬

‫امتداد للقفل المركزي على مرحلتين‪ ،‬لذا فإن التنفيذ واإلدارة بسيطان‪.‬‬ ‫‪‬‬

‫يتم تأمين عناصر البيانات في موقع واحد فقط ولكن يمكن الوصول إليها في أي موقع‪.‬‬ ‫‪‬‬

‫سلبيات‪:‬‬ ‫‪‬‬

‫تنتقل جميع أنشطة إدارة المعامالت إلى الموقع األساسي الذي من المحتمل أن يؤدي إلى‬ ‫‪‬‬

‫زيادة التحميل على الموقع‪.‬‬


‫إذا فشل الموقع األساسي‪ ،‬فلن يكون من الممكن الوصول إلى النظام بأكمله‪.‬‬ ‫‪‬‬

‫للمساعدة في عملية االسترداد‪ ،‬تم تعيين موقع نسخ احتياطي يعمل كظل للموقع‬ ‫‪‬‬

‫األساسي‪ .‬في حالة فشل الموقع األساسي‪ ،‬يمكن أن يعمل موقع النسخ االحتياطي كموقع‬
‫أساسي‪.‬‬

‫‪207‬‬
‫التحكم في التزامن واالسترداد‬
‫تقنية النسخ األساسية‪:‬‬ ‫‪‬‬

‫في هذا األسلوب‪ ،‬بدًال من الموقع‪ ،‬يتم تعيين قسم عنصر البيانات كنسخة أساسية‪ .‬لقفل‬ ‫‪‬‬

‫عنصر بيانات‪ ،‬يتم قفل النسخة األساسية من عنصر البيانات فقط‪.‬‬


‫مزايا‪:‬‬ ‫‪‬‬

‫وبما أن النسخ األساسية يتم توزيعها على مواقع مختلفة‪ ،‬فال يتم تحميل موقع واحد‬ ‫‪‬‬

‫بطلبات القفل وإلغاء القفل بشكل زائد‪.‬‬


‫سلبيات‪:‬‬ ‫‪‬‬

‫تحديد النسخة األولية أمر معقد‪ .‬يجب الحفاظ على الدليل الموزع‪ ،‬ربما في جميع‬ ‫‪‬‬

‫المواقع‪.‬‬

‫‪208‬‬
‫التحكم في التزامن واالسترداد‬
‫التعافي من فشل المنسق‬ ‫‪‬‬

‫في كال النهجين‪ ،‬قد يصبح موقع المنسق أو النسخة غير متوفرين‪ .‬وسيتطلب ذلك اختيار‬ ‫‪‬‬

‫منسق جديد‪.‬‬
‫نهج الموقع األساسي بدون موقع احتياطي‪:‬‬ ‫‪‬‬

‫إحباط وإعادة تشغيل كافة المعامالت النشطة في كافة المواقع‪ .‬ينتخب منسًقا جديًد ا ويبدأ‬ ‫‪‬‬

‫معالجة المعامالت‪.‬‬
‫نهج الموقع األساسي مع موقع النسخ االحتياطي‪:‬‬ ‫‪‬‬

‫يعلق جميع المعامالت النشطة‪ ،‬ويعين موقع النسخ االحتياطي باعتباره الموقع األساسي‬ ‫‪‬‬

‫ويحدد موقع النسخ االحتياطي الجديد‪ .‬يتلقى الموقع األساسي كافة معلومات إدارة‬
‫المعامالت الستئناف المعالجة‪.‬‬
‫فشل المواقع األساسية واالحتياطية أو عدم وجود موقع نسخ احتياطي‪:‬‬ ‫‪‬‬

‫استخدم عملية االنتخابات الختيار موقع منسق جديد‪.‬‬ ‫‪‬‬

‫‪209‬‬
‫التحكم في التزامن واالسترداد‬
‫التحكم في التزامن على أساس التصويت‪:‬‬ ‫‪‬‬

‫ال توجد نسخة أساسية من المنسق‪.‬‬ ‫‪‬‬

‫إرسال طلب القفل إلى المواقع التي تحتوي على عنصر بيانات‪.‬‬ ‫‪‬‬

‫إذا منحت غالبية المواقع القفل‪ ،‬فإن المعاملة الطالبة تحصل على عنصر‬ ‫‪‬‬

‫البيانات‪.‬‬
‫يتم إرسال معلومات القفل (المنح أو الرفض) إلى جميع هذه المواقع‪.‬‬ ‫‪‬‬

‫لتجنب االنتظار الطويل بشكل غير مقبول‪ ،‬تم تحديد فترة المهلة‪ .‬إذا لم‬ ‫‪‬‬

‫تحصل المعاملة الطالبة على أي معلومات تصويت‪ ،‬فسيتم إحباط المعاملة‪.‬‬

‫‪210‬‬
‫بنية قاعدة بيانات العميل والخادم‬
‫وهو يتألف من عمالء يقومون بتشغيل برنامج العميل‪ ،‬ومجموعة من‬ ‫‪‬‬

‫الخوادم التي توفر جميع وظائف قاعدة البيانات وبنية تحتية لالتصاالت‬
‫موثوقة‪.‬‬

‫‪Server 1‬‬ ‫‪Client 1‬‬

‫‪Client 2‬‬

‫‪Server 2‬‬ ‫‪Client 3‬‬

‫‪Server n‬‬ ‫‪Client n‬‬


‫‪211‬‬
‫بنية قاعدة بيانات العميل والخادم‬
‫يصل العمالء إلى الخادم للحصول على الخدمة المطلوبة‪ ،‬لكن الخادم‬ ‫‪‬‬

‫يصل إلى العمالء‪.‬‬


‫يكون برنامج الخادم مسؤوًال عن إدارة البيانات المحلية في الموقع‪ ،‬تماًم ا‬ ‫‪‬‬

‫مثل برنامج ‪ DBMS‬المركزي‪.‬‬


‫برنامج العميل مسؤول عن معظم وظائف التوزيع‪.‬‬ ‫‪‬‬

‫يقوم برنامج االتصال بإدارة االتصال بين العمالء والخوادم‪.‬‬ ‫‪‬‬

‫‪212‬‬
‫بنية قاعدة بيانات العميل والخادم‬
‫تتم معالجة استعالمات ‪ SQL‬كما يلي‪:‬‬ ‫‪‬‬

‫يقوم العميل بتوزيع استعالم المستخدم وتقسيمه إلى عدد من االستعالمات‬ ‫‪‬‬

‫الفرعية المستقلة‪ .‬كالستعالم فرعييتم إرساله إلى الموقع المناسب للتنفيذ‪.‬‬


‫يقوم كل خادم بمعالجة استعالمه ويرسل النتيجة إلى العميل‪.‬‬ ‫‪‬‬

‫يجمع العميل نتائجاالستعالمات الفرعيةوينتج النتيجة النهائية‪.‬‬ ‫‪‬‬

‫‪213‬‬
‫خالصة‬
‫مفاهيم قاعدة البيانات الموزعة‬ ‫‪‬‬

‫تجزئة البيانات والنسخ المتماثل والتخصيص‬ ‫‪‬‬

‫أنواع أنظمة قواعد البيانات الموزعة‬ ‫‪‬‬

‫معالجة االستعالم‬ ‫‪‬‬

‫التحكم في التزامن واالسترداد‬ ‫‪‬‬

‫بنية خادم العميل من ‪ 3‬طبقات‬ ‫‪‬‬

‫‪214‬‬
‫الفصل ‪17‬‬

‫‪215‬‬
‫الفصل ‪17‬‬

‫تخزين القرص‪ ،‬وهياكل الملفات األساسية‪ ،‬والتجزئة‪،‬‬


‫وبنيات التخزين الحديثة‬

‫‪216‬‬
‫‪ 16.1‬مقدمة‬
‫قواعد البيانات المخزنة عادة على األقراص المغناطيسية‬ ‫‪‬‬

‫يتم الوصول إليها باستخدام هياكل ملفات قاعدة البيانات الفعلية‬ ‫‪‬‬

‫التسلسل الهرمي للتخزين‬ ‫‪‬‬

‫التخزين األساسي‬ ‫‪‬‬

‫الذاكرة الرئيسية لوحدة المعالجة المركزية‪ ،‬ذاكرة التخزين المؤقت‬ ‫‪‬‬

‫التخزين الثانوي‬ ‫‪‬‬

‫األقراص المغناطيسية‪ ،‬وذاكرة الفالش‪ ،‬ومحركات األقراص ذات الحالة‬ ‫‪‬‬

‫الصلبة‬
‫التخزين الثالثي‬ ‫‪‬‬

‫الوسائط القابلة لإلزالة‬ ‫‪‬‬

‫‪217‬‬
‫التسلسل الهرمي للذاكرة وأجهزة التخزين‬
‫الذاكرة المؤقتة‬ ‫‪‬‬

‫ذاكرة الوصول العشوائي الثابتة‬ ‫‪‬‬

‫درهم‬ ‫‪‬‬

‫مخزن الذاكرة‬ ‫‪‬‬

‫األقراص المغناطيسية‬ ‫‪‬‬

‫األقراص المضغوطة وأقراص ‪ DVD‬ومحركات األشرطة‬ ‫‪‬‬

‫ذاكرة متنقله‬ ‫‪‬‬

‫غير متطاير‬ ‫‪‬‬

‫‪218‬‬
‫أنواع وخصائص التخزين‬

‫الجدول ‪ 17.1‬أنواع التخزين مع السعة ووقت الوصول والحد األقصى لعرض النطاق‬
‫الترددي (سرعة النقل) وتكلفة السلعة‬

‫‪219‬‬
‫تنظيم تخزين قواعد البيانات‬
‫البيانات المستمرة‬ ‫‪‬‬

‫معظم قواعد البيانات‬ ‫‪‬‬

‫بيانات عابرة‬ ‫‪‬‬

‫موجود فقط أثناء تنفيذ البرنامج‬ ‫‪‬‬

‫تنظيم الملف‬ ‫‪‬‬

‫يحدد كيفية وضع السجالت فعلًيا على القرص‬ ‫‪‬‬

‫تحديد كيفية الوصول إلى السجالت‬ ‫‪‬‬

‫‪220‬‬
‫‪ 16.2‬أجهزة التخزين الثانوية‬
‫محرك القرص الصلب‬ ‫‪‬‬

‫البتات (اآلحاد واألصفار)‬ ‫‪‬‬

‫مجمعة في بايت أو أحرف‬ ‫‪‬‬

‫سعة القرص تقيس حجم التخزين‬ ‫‪‬‬

‫يمكن أن تكون األقراص مفردة أو مزدوجة الجوانب‬ ‫‪‬‬

‫دوائر متحدة المركز تسمى المسارات‬ ‫‪‬‬

‫المسارات مقسمة إلى كتل أو قطاعات‬ ‫‪‬‬

‫حزم األقراص‬ ‫‪‬‬

‫اسطوانة‬ ‫‪‬‬

‫‪221‬‬
‫القرص أحادي الجانب وحزمة األقراص‬

‫الشكل ‪( 17.1‬أ) قرص أحادي الجانب مزود بجهاز للقراءة‪/‬الكتابة (ب) حزمة أقراص‬
‫مزودة بجهاز للقراءة‪/‬الكتابة‬ ‫‪222‬‬
‫القطاعات الموجودة على القرص‬

‫الشكل ‪ 16.2‬منظمات القطاعات المختلفة على القرص (أ) القطاعات التي تميل إلى زاوية ثابتة (ب)‬
‫القطاعات التي تحافظ على كثافة تسجيل موحدة‬
‫‪223-‬‬
‫أجهزة التخزين الثانوية (تابع)‬
‫التنسيق‬ ‫‪‬‬

‫يقسم المسارات إلى كتل قرص متساوية الحجم‬ ‫‪‬‬

‫كتل مفصولة بفجوات ‪interblock‬‬ ‫‪‬‬

‫نقل البيانات في وحدات كتل القرص‬ ‫‪‬‬

‫عنوان الجهاز الذي تم توفيره ألجهزة اإلدخال‪/‬اإلخراج للقرص‬ ‫‪‬‬

‫متعادل‬ ‫‪‬‬

‫تستخدم في عمليات القراءة والكتابة‬ ‫‪‬‬

‫قراءة‪/‬كتابة الرأس‬ ‫‪‬‬

‫آلية األجهزة لعمليات القراءة والكتابة‬ ‫‪‬‬

‫‪224‬‬
‫أجهزة التخزين الثانوية (تابع)‬
‫وحدة تحكم القرص‬ ‫‪‬‬

‫واجهات محرك األقراص لنظام الكمبيوتر‬ ‫‪‬‬

‫واجهات قياسية‬ ‫‪‬‬

‫‪SCSI‬‬ ‫‪‬‬

‫ساتا‬ ‫‪‬‬

‫ساس‬ ‫‪‬‬

‫‪225‬‬
‫أجهزة التخزين الثانوية (تابع)‬
‫تقنيات الوصول الفعال للبيانات‬ ‫‪‬‬

‫التخزين المؤقت للبيانات‬ ‫‪‬‬

‫التنظيم السليم للبيانات على القرص‬ ‫‪‬‬

‫قراءة البيانات قبل الطلب‬ ‫‪‬‬

‫الجدولة الصحيحة لطلبات اإلدخال‪/‬اإلخراج‬ ‫‪‬‬

‫استخدام أقراص السجل لالحتفاظ بالكتابة مؤقًتا‬ ‫‪‬‬

‫استخدام محركات أقراص ‪ SSD‬أو ذاكرة فالش ألغراض االسترداد‬ ‫‪‬‬

‫‪226‬‬
‫تخزين أجهزة الحالة الصلبة‬
‫ُيطلق عليه أحياًنا تخزين الفالش‬ ‫‪‬‬

‫المكون الرئيسي‪ :‬وحدة التحكم‬ ‫‪‬‬

‫مجموعة من بطاقات الذاكرة الفالشية المترابطة‬ ‫‪‬‬

‫ال توجد أجزاء متحركة‬ ‫‪‬‬

‫من غير المرجح أن تكون البيانات مجزأة‬ ‫‪‬‬

‫أكثر تكلفة من محركات األقراص الصلبة‬ ‫‪‬‬

‫تتوفر محركات أقراص ‪ SSD‬تعتمد على ‪DRAM‬‬ ‫‪‬‬

‫أوقات وصول أسرع مقارنة بالفالش‬ ‫‪‬‬

‫‪227‬‬
‫أجهزة تخزين الشريط المغناطيسي‬
‫وصول متسلسل‬ ‫‪‬‬

‫يجب مسح الكتل السابقة‬ ‫‪‬‬

‫يتم تثبيت الشريط ومسحه ضوئًيا حتى تصبح الكتلة المطلوبة تحت رأس‬ ‫‪‬‬

‫القراءة‪/‬الكتابة‬
‫وظائف مهمة‬ ‫‪‬‬

‫دعم‬ ‫‪‬‬

‫أرشيف‬ ‫‪‬‬

‫‪228‬‬
‫‪ 17.3‬التخزين المؤقت للكتل‬
‫يعد التخزين المؤقت مفيًد ا للغاية عندما يمكن تشغيل العمليات بشكل‬ ‫‪‬‬

‫متزامن بالتوازي‬

‫الشكل ‪ 16.3‬التزامن المتداخل مقابل التنفيذ المتوازي‬


‫‪229‬‬
‫التخزين المؤقت للكتل (تابع)‬
‫يمكن استخدام التخزين المؤقت المزدوج لقراءة التدفق المستمر للكتل‬ ‫‪‬‬

‫الشكل ‪ 16.4‬استخدام المخزنين المؤقتين ‪ A‬و‪ B‬للقراءة من القرص‬

‫‪230‬‬
‫إدارة المخزن المؤقت واستراتيجيات االستبدال‬
‫معلومات إدارة المخزن المؤقت‬ ‫‪‬‬

‫عدد الدبوس‬ ‫‪‬‬

‫قطعة قذرة‬ ‫‪‬‬

‫استراتيجيات استبدال المخزن المؤقت‬ ‫‪‬‬

‫األقل استخداًم ا مؤخًر ا (‪)LRU‬‬ ‫‪‬‬

‫سياسة الساعة‬ ‫‪‬‬

‫أول ما يدخل أوًال يخرج أوًال (‪)FIFO‬‬ ‫‪‬‬

‫‪231‬‬
‫‪ 17.4‬وضع سجالت الملفات على القرص‬
‫السجل‪ :‬جمع قيم أو عناصر البيانات ذات الصلة‬ ‫‪‬‬

‫تتوافق القيم مع حقل السجل‬ ‫‪‬‬

‫أنواع البيانات‬ ‫‪‬‬

‫رقمي‬ ‫‪‬‬

‫خيط‬ ‫‪‬‬

‫منطقية‬ ‫‪‬‬

‫التاريخ‪/‬الوقت‬ ‫‪‬‬

‫الكائنات الثنائية الكبيرة (‪)BLOBs‬‬ ‫‪‬‬

‫كائنات غير منظمة‬ ‫‪‬‬

‫‪232‬‬
‫وضع سجالت الملفات على القرص (تابع)‬
‫أسباب السجالت ذات الطول المتغير‬ ‫‪‬‬

‫حقل واحد أو أكثر له طول متغير‬ ‫‪‬‬

‫يتم تكرار حقل واحد أو أكثر‬ ‫‪‬‬

‫حقل واحد أو أكثر اختياري‬ ‫‪‬‬

‫يحتوي الملف على سجالت من أنواع مختلفة‬ ‫‪‬‬

‫‪233‬‬
‫حظر السجالت والسجالت الممتدة مقابل السجالت‬
‫غير الممتدة‬
‫سجالت الملفات المخصصة لكتل​القرص‬ ‫‪‬‬

‫السجالت الممتدة‬ ‫‪‬‬

‫أكبر من كتلة واحدة‬ ‫‪‬‬

‫يشير المؤشر الموجود في نهاية الكتلة األولى إلى الكتلة التي تحتوي على‬ ‫‪‬‬

‫بقية السجل‬
‫غير ممتد‬ ‫‪‬‬

‫ال يسمح للسجالت بعبور حدود الكتلة‬ ‫‪‬‬

‫‪234‬‬
‫حظر السجالت والسجالت الممتدة مقابل السجالت‬
‫غير الممتدة (تابع)‬
‫عامل المنع‬ ‫‪‬‬

‫متوسط​عدد السجالت لكل كتلة للملف‬ ‫‪‬‬

‫الشكل ‪ 16.6‬أنواع تنظيم السجالت (أ) غير ممتد (ب) ممتد‬

‫‪235‬‬
‫حظر السجالت والسجالت الممتدة مقابل السجالت‬
‫غير الممتدة (تابع)‬
‫تخصيص كتل الملفات على القرص‬ ‫‪‬‬

‫التخصيص المتجاور‬ ‫‪‬‬

‫التخصيص المرتبط‬ ‫‪‬‬

‫التخصيص المفهرس‬ ‫‪‬‬

‫رأس الملف (واصف الملف)‬ ‫‪‬‬

‫يحتوي على معلومات الملف التي تحتاجها برامج النظام‬ ‫‪‬‬

‫عناوين القرص‬ ‫‪‬‬

‫أوصاف التنسيق‬ ‫‪‬‬

‫‪236‬‬
‫‪ 17.5‬العمليات على الملفات‬
‫عمليات االسترجاع‬ ‫‪‬‬

‫ال يوجد تغيير في بيانات الملف‬ ‫‪‬‬

‫عمليات التحديث‬ ‫‪‬‬

‫تغيير الملف عن طريق اإلدراج أو الحذف أو التعديل‬ ‫‪‬‬

‫السجالت المحددة بناًء على حالة االختيار‬ ‫‪‬‬

‫‪237‬‬
‫العمليات على الملفات (تابع)‬
‫أمثلة على عمليات الوصول إلى سجالت الملفات‬ ‫‪‬‬

‫يفتح‬ ‫‪‬‬

‫يجد‬ ‫‪‬‬

‫يقرأ‬ ‫‪‬‬

‫بحث عن التالي‬ ‫‪‬‬

‫يمسح‬ ‫‪‬‬

‫إدراج‬ ‫‪‬‬

‫يغلق‬ ‫‪‬‬

‫مسح‬ ‫‪‬‬

‫‪238‬‬
‫‪ 17.6‬ملفات السجالت غير المرتبة (ملفات الكومة)‬
‫ملف كومة (أو كومة)‪.‬‬ ‫‪‬‬

‫السجالت الموضوعة في الملف حسب ترتيب اإلدراج‬ ‫‪‬‬

‫يعد إدراج سجل جديد فعاًال للغاية‬ ‫‪‬‬

‫البحث عن سجل يتطلب البحث الخطي‬ ‫‪‬‬

‫تقنيات الحذف‬ ‫‪‬‬

‫أعد كتابة الكتلة‬ ‫‪‬‬

‫استخدم عالمة الحذف‬ ‫‪‬‬

‫‪239‬‬
‫‪ 17.7‬ملفات السجالت المرتبة (الملفات المصنفة)‬
‫ملف مرتب (متسلسل)‪.‬‬ ‫‪‬‬

‫السجالت مرتبة حسب حقل الطلب‬ ‫‪‬‬

‫يتم استدعاؤه بمفتاح الطلب إذا كان حقل الطلب حقًال رئيسًيا‬ ‫‪‬‬

‫مزايا‬ ‫‪‬‬

‫تعتبر قراءة السجالت حسب ترتيب القيمة األساسية فعالة للغاية‬ ‫‪‬‬

‫العثور على السجل التالي‬ ‫‪‬‬

‫تقنية البحث الثنائي‬ ‫‪‬‬

‫‪240‬‬
‫أوقات الوصول لمختلف منظمات الملفات‬

‫الجدول ‪ 16.3‬متوسط​أوقات الوصول لملفبكتل ضمن منظمات‬


‫الملفات األساسية‬

‫‪241‬‬
‫‪ 17.8‬موازنة الوصول إلى القرص باستخدام تقنية‬
‫‪RAID‬‬
‫المصفوفات الزائدة من األقراص المستقلة (‪)RAID‬‬ ‫‪‬‬

‫الهدف‪ :‬تحسين سرعة القرص ووقت الوصول‬ ‫‪‬‬

‫مجموعة من بنيات ‪( RAID‬من ‪ 0‬إلى ‪)6‬‬ ‫‪‬‬

‫تشريط البيانات‬ ‫‪‬‬

‫شريطية على مستوى البت‬ ‫‪‬‬

‫شريط على مستوى الكتلة‬ ‫‪‬‬

‫تحسين األداء باستخدام ‪RAID‬‬ ‫‪‬‬

‫يحقق شريط البيانات معدالت نقل أعلى‬ ‫‪‬‬

‫‪242‬‬
‫موازنة الوصول إلى القرص باستخدام تقنية ‪RAID‬‬
‫(تابع)‬
‫تحسين الموثوقية باستخدام ‪RAID‬‬ ‫‪‬‬

‫تقنيات التكرار‪ :‬النسخ المتطابق والتظليل‬ ‫‪‬‬

‫منظمات ومستويات ‪RAID‬‬ ‫‪‬‬

‫المستوى ‪0‬‬ ‫‪‬‬

‫شريطية البيانات‪ ،‬ال توجد بيانات زائدة عن الحاجة‬ ‫‪‬‬

‫يبصق البيانات بالتساوي عبر قرصين أو أكثر‬ ‫‪‬‬

‫المستوى ‪1‬‬ ‫‪‬‬

‫يستخدم األقراص ذات النسخ المتطابقة‬ ‫‪‬‬

‫‪243‬‬
‫موازنة الوصول إلى القرص باستخدام تقنية ‪RAID‬‬
‫(تابع)‬
‫منظمات ومستويات ‪( RAID‬تابع)‬ ‫‪‬‬

‫المستوي ‪2‬‬ ‫‪‬‬

‫رموز هامينغ لتكرار نمط الذاكرة‬ ‫‪‬‬

‫اكتشاف األخطاء وتصحيحها‬ ‫‪‬‬

‫مستوى ‪3‬‬ ‫‪‬‬

‫قرص تكافؤ واحد يعتمد على وحدة تحكم القرص‬ ‫‪‬‬

‫المستويات ‪ 4‬و ‪5‬‬ ‫‪‬‬

‫تقسيم البيانات على مستوى الكتلة‬ ‫‪‬‬

‫توزيع البيانات عبر كافة األقراص (المستوى ‪)5‬‬ ‫‪‬‬

‫‪244‬‬
‫موازنة الوصول إلى القرص باستخدام تقنية ‪RAID‬‬
‫(تابع)‬
‫منظمات ومستويات ‪( RAID‬تابع)‬ ‫‪‬‬

‫المستوى ‪6‬‬ ‫‪‬‬

‫يطبق نظام التكرار ‪P+Q‬‬ ‫‪‬‬

‫يحمي من ما يصل إلى فشلين في القرص باستخدام قرصين زائدين فقط‬ ‫‪‬‬

‫إعادة البناء أسهل لمستوى ‪RAID 1‬‬ ‫‪‬‬

‫تتطلب المستويات األخرى إعادة البناء من خالل قراءة أقراص متعددة‬ ‫‪‬‬

‫ُيفضل مستويا ‪ RAID 3‬و‪ 5‬للتخزين بكميات كبيرة‬ ‫‪‬‬

‫‪245‬‬
‫مستويات ‪RAID‬‬

‫الشكل ‪ 17.14‬بعض المستويات الشائعة لـ ‪( RAID‬أ) مستوى ‪ :RAID 1‬انعكاس البيانات على قرصين (ب) مستوى‬
‫‪ :RAID 5‬تقسيم البيانات بتكافؤ موزع عبر أربعة أقراص‬

‫‪246‬‬
‫‪ 17.7‬بنيات التخزين الحديثة‬
‫شبكات منطقة التخزين (‪)SAN‬‬ ‫‪‬‬

‫أجهزة التخزين الطرفية عبر اإلنترنت التي تم تكوينها كعقد على شبكة‬ ‫‪‬‬

‫عالية السرعة‬
‫التخزين المتصل بالشبكة (‪)NAS‬‬ ‫‪‬‬

‫الخوادم المستخدمة لمشاركة الملفات‬ ‫‪‬‬

‫درجة عالية من قابلية التوسع والموثوقية والمرونة واألداء‬ ‫‪‬‬

‫بروتوكول ‪iSCSI‬‬ ‫‪‬‬

‫يرسل العمالء أوامر ‪ SCSI‬إلى أجهزة تخزين ‪ SCSI‬على القنوات‬ ‫‪‬‬

‫البعيدة‬

‫‪247‬‬
‫بنيات التخزين الحديثة (تابع)‬
‫القناة الليفية عبر )‪IP (FCIP‬‬ ‫‪‬‬

‫رموز التحكم في القنوات الليفية والبيانات المترجمة إلى حزم ‪IP‬‬ ‫‪‬‬

‫يتم نقلها بين شبكات ‪ SAN‬ذات القنوات الليفية البعيدة جغرافًيا‬ ‫‪‬‬

‫القناة الليفية عبر اإليثرنت (‪)FCoE‬‬ ‫‪‬‬

‫على غرار بروتوكول ‪ iSCSI‬بدون ‪IP‬‬ ‫‪‬‬

‫‪248‬‬
‫بنيات التخزين الحديثة (تابع)‬
‫ترتيب التخزين اآللي‬ ‫‪‬‬

‫ينقل البيانات تلقائًيا بين أنواع التخزين المختلفة حسب الحاجة‬ ‫‪‬‬

‫تم نقل البيانات المستخدمة بشكل متكرر إلى محركات األقراص ذات الحالة‬ ‫‪‬‬

‫الصلبة‬
‫التخزين القائم على الكائنات‬ ‫‪‬‬

‫تتم إدارة البيانات في شكل كائنات بدًال من ملفات مصنوعة من كتل‬ ‫‪‬‬

‫تحمل الكائنات بيانات التعريف والمعرف العالمي‬ ‫‪‬‬

‫مناسب بشكل مثالي للتخزين القابل للتطوير للبيانات غير المنظمة‬ ‫‪‬‬

‫‪249‬‬
‫‪ 17.12‬ملخص‬
‫األقراص المغناطيسية‬ ‫‪‬‬

‫يعد الوصول إلى كتلة القرص أمًر ا مكلًفا‬ ‫‪‬‬

‫أوامر للوصول إلى سجالت الملفات‬ ‫‪‬‬

‫تنظيمات الملفات‪ :‬غير مرتبة‪ ،‬مرتبة‬ ‫‪‬‬

‫غارة‬ ‫‪‬‬

‫اتجاهات التخزين الحديثة‬ ‫‪‬‬

‫‪250‬‬
251
‫الفصل ‪18‬‬

‫هياكل الفهرسة للملفات‬

‫‪252‬‬
‫مخطط الفصل‬
‫أنواع الفهارس المرتبة ذات المستوى الواحد‬ ‫‪‬‬

‫‪ ‬المؤشرات األولية‬
‫‪ ‬مؤشرات التجميع‬
‫‪ ‬المؤشرات الثانوية‬
‫مؤشرات متعددة المستويات‬ ‫‪‬‬

‫‪253‬‬
‫الفهارس كمسارات الوصول‬

‫الفهرس ذو المستوى الواحد هوملف مساعدمما يجعل البحث عن سجل في‬ ‫‪‬‬

‫ملف أكثر كفاءةملف البيانات‪.‬‬


‫يتم تحديد الفهرس عادًة في حقل واحد من الملف (على الرغم من إمكانية‬ ‫‪‬‬

‫تحديده في عدة حقول)‬


‫أحد أشكال الفهرس هو ملف اإلدخاالت<قيمة الحقل‪ ،‬مؤشر‬ ‫‪‬‬

‫للتسجيل>‪،‬والذي يتم ترتيبه حسب قيمة الحقل‬


‫الفهرس يسمىمسار الوصولفي الميدان‪.‬‬ ‫‪‬‬

‫‪254‬‬
‫الفهارس كمسارات الوصول (تابع)‬

‫عادة ما يشغل ملف الفهرس بشكل كبيرأقلكتل القرص من ملف البيانات‬ ‫‪‬‬

‫ألن إدخاالته أصغر بكثير‬


‫يؤدي البحث الثنائي في الفهرس إلى ظهور مؤشر لسجل الملف‬ ‫‪‬‬

‫يمكن أيًض ا وصف الفهارس بأنها كثيفة أو متفرقة‪.‬‬ ‫‪‬‬

‫أمؤشر كثيفلديه إدخال فهرس لكل قيمة مفتاح البحث(وبالتالي كل سجل) في‬ ‫‪‬‬

‫ملف البيانات‪.‬‬
‫أمتناثر(أوغير كثيف)ِفهِر سومن ناحية أخرى‪ ،‬يحتوي على إدخاالت فهرس‬ ‫‪‬‬

‫لبعض قيم البحث فقط‬

‫‪255‬‬
‫أنواع الفهارس أحادية المستوى‬
‫الفهرس األساسي‬ ‫‪‬‬

‫محددة في ملف بيانات مرتبة‬ ‫‪‬‬

‫يتم طلب ملف البيانات على ملفالحقل الرئيسي‬ ‫‪‬‬

‫يتضمن إدخال فهرس واحدلكل كتلةفي ملف البيانات؛ يحتوي إدخال الفهرس على‬ ‫‪‬‬

‫قيمة الحقل الرئيسي لـاول تسجيلفي الكتلة التي تسمىمرساة كتلة‬


‫الفهرس األساسي هو أغير كثيف(متناثر) مؤشر؟‪،‬ألنه يتضمن إدخاًال لكل كتلة قرص‬ ‫‪‬‬

‫من ملف البيانات ومفاتيح سجل الربط الخاص بها بدًال من كل قيمة بحث‪.‬‬
‫يتطلب البحث الثنائي في ملف الفهرس وصوًال أقل للكتلة مقارنة بالبحث الثنائي في‬ ‫‪‬‬

‫ملف البيانات‪.‬‬

‫‪256‬‬
‫الفهرس األساسي في حقل مفتاح الطلب للملف‬

‫‪257‬‬
‫مثال ‪:1‬‬
‫لنفترض أن لدينا ملًفا مرتًبا يحتوي على‪:‬‬
‫‪ r=30000‬سجل (عدد السجالت)‬
‫‪ B=1024‬بايت (حجم الكتلة)‬
‫‪ R=100‬بايت (طول السجل)‬
‫‪ V = 9‬بايت (طول حقل مفتاح الطلب لملف البيانات)‬
‫‪ P = 6‬بايت (طول حقل المؤشر لملف الفهرس)‬
‫قم بتوضيح الحفظ في الوصول إلى الكتلة عند استخدام الفهرس األساسي للبحث عن ملفأِس ِج ّل؟‬

‫حل‪:‬‬

‫‪258‬‬
solution :
 B  1024 
bfr        10.24  10 rec / block
 R   100 
 r   30000 
b     3000  3000 blocks
 bfr   10 
a binary search on the data file would need approximately :

log 2 (b)   log 2 (3000)   log 2 ( 2 )  12 block accesses


12

Ri  P  V  6  9  15 bytes
 B  1024 
bfri     68.26  68 rec / block
 R i   15 
 
 r   b   3000 
bi   i        45 blocks
 bfri   bfri   68i 

log 2 (bi )   log 2 ( 45)   log 2 ( 2 )  6 block accesses


6

To search for a record using the index, we need an additional


access to data file for total of 6  1  7 block accesses
259
‫أنواع الفهارس أحادية المستوى‬
‫مؤشر التجميع‬ ‫‪‬‬

‫محددة في ملف بيانات مرتبة‪.‬‬ ‫‪‬‬

‫يتم طلب ملف البيانات على ملفحقل غير رئيسي (ليس له قيمة مميزة لكل‬ ‫‪‬‬

‫سجل)على عكس الفهرس األساسي (الذي يتطلب أن يكون لحقل الطلب في ملف‬
‫البيانات قيمة مميزة لكل سجل)‪.‬‬
‫يتضمن إدخال فهرس واحدلكل قيمة مميزةمن الميدان؛ يشير إدخال الفهرس‬ ‫‪‬‬

‫إلىأوًال كتلة البيانات التي تحتوي على سجالت بقيمة الحقل تلك‪.‬‬
‫وهو مثال آخر علىغير كثيفالفهرس حيث يكون اإلدراج والحذف واضًح ا نسبًيا مع‬ ‫‪‬‬

‫فهرس التجميع‪.‬‬

‫‪260‬‬
‫الشكل ‪18.2‬‬
‫فهرس تجميع في حقل الطلب غير األساسي ‪ DEPTNUMBER‬لملف الموظف‪.‬‬

‫‪261‬‬
‫الشكل ‪18.3‬‬
‫فهرس التجميع مع مجموعة كتل‬
‫منفصلة لكل مجموعة من‬
‫السجالت التي تشترك في نفس‬
‫القيمة لحقل التجميع‬
‫(للتخفيف من مشكلة اإلدراج)‪.‬‬

‫‪262‬‬
‫أنواع الفهارس أحادية المستوى‬

‫الفهرس الثانوي‬ ‫‪‬‬

‫يوفر الفهرس الثانوي وسيلة ثانوية للوصول إلى ملف يوجد له بالفعل بعض الوصول األساسي‪.‬‬ ‫‪‬‬

‫قد يكون الفهرس الثانوي في حقل يمثل مفتاًحا مرشًح ا وله قيمة فريدة في كل سجل‪ ،‬أوغير مفتاحمع‬ ‫‪‬‬

‫القيم المكررة‪.‬‬
‫الفهرس عبارة عن ملف مرتب يحتوي على حقلين‪.‬‬ ‫‪‬‬

‫الحقل األول من نفس نوع البيانات مثل بعضغير الطلبمجالمن ملف البيانات الذي هومجال‬ ‫‪‬‬

‫الفهرسة‪.‬‬
‫الحقل الثاني إما أحاجزالمؤشر أو أِس ِج ّل المؤشر‪ .‬يمكن أن يكون هناككثيرالفهارس الثانوية‬ ‫‪‬‬

‫(وبالتالي حقول الفهرسة) لنفس الملف‪.‬‬


‫يتضمن إدخال واحدلكل سجلفي ملف البيانات؛ وبالتالي فهو أمؤشر كثيف‬ ‫‪‬‬

‫‪263‬‬
‫الشكل ‪18.4‬‬
‫فهرس ثانوي كثيف (مع‬
‫مؤشرات كتلة) في حقل‬
‫مفتاح غير مرتب للملف‪.‬‬

‫‪264‬‬
‫مثال‪:2‬‬
‫لنفترض أن لدينا ملًفا مرتًبا يحتوي على‪:‬‬
‫‪ r=30000‬سجل (عدد السجالت ذات الطول الثابت)‬
‫‪ B=1024‬بايت (حجم الكتلة)‬
‫‪ R = 100‬بايت (حجم السجل)‬
‫‪ V = 9‬بايت (طولحقل المفتاح غير الطلبمن ملف البيانات)‬
‫‪ P = 6‬بايت (طول حقل المؤشر لملف الفهرس)‬
‫لنفترض أننا قمنا بإنشاء فهرس ثانوي في حقل مفتاح غير مرتب لهذا الملف (‪ V = 9‬بايت)‪.‬‬
‫توضيح الحفظ في الوصول إلى الكتلة عندما أثانوييتم استخدام الفهرس للبحث عنأِس ِج ّل؟‬

‫حل‪:‬‬

‫‪265‬‬
solution :
 B  1024 
bfr        10.24  10 rec / block
 R   100 
 r   30000
b
bfr    10   3000  3000 blocks
   
To do a linear search on the data file, we would require b/2 block accesses
b/2  3000/2  1500 block accesses

Ri  P  V  6  9  15 bytes
 B  1024 
bfri     
R 15   68.26  68 rec / block
  
i 
 ri   30000
bi      441.17  442 blocks
bfr
 i  68i 

log2 (bi )  log2 (442)  log2 (2 )  9 block accesses


9

To search for a record using the index, we need an additional


access to data file for total of 9  1  10 block accesses 266
‫مؤشرات متعددة المستويات‬
‫نظًر ا ألن الفهرس أحادي المستوى هو ملف مرتب‪ ،‬فيمكننا إنشاء فهرس‬ ‫‪‬‬
‫أساسيإلى المؤشر نفسه; في هذه الحالة‪ ،‬يسمى ملف الفهرس األصليمؤشر‬
‫المستوى األولويسمى الفهرس إلى الفهرسمؤشر المستوى الثاني‪.‬‬
‫يمكننا تكرار العملية‪ ،‬وإنشاء المستوى الثالث والرابع‪ ،... ،‬المستوى األعلى‬ ‫‪‬‬
‫حتى جميع إدخاالتافضل مستوىتناسب في كتلة قرص واحد‬
‫يمكن إنشاء فهرس متعدد المستويات ألي نوع من فهرس المستوى األول‬ ‫‪‬‬
‫(االبتدائي‪ ،‬الثانوي‪ ،‬العنقودي) طالما أن فهرس المستوى األول يتكون‬
‫منأكثر من واحدكتلة القرص‬

‫‪267‬‬
‫فهرس أساسي ذو‬
‫مستويين يشبه منظمة‬
‫‪( ISAM‬طريقة‬
‫الوصول المتسلسل‬
‫المفهرسة)‪.‬‬

‫‪268‬‬
‫مؤشرات متعددة المستويات‬

‫مثل هذا المؤشر متعدد المستويات هو شكل من أشكالشجرة البحث; ومع‬ ‫‪‬‬

‫ذلك‪ ،‬يعد إدراج وحذف إدخاالت الفهرس الجديدة مشكلة خطيرة ألن كل‬
‫مستوى من مستويات الفهرس يمثل مشكلة خطيرةالملف المطلوب‪.‬‬

‫‪269‬‬
‫الفصل ‪26‬‬

‫نماذج البيانات المحسنة‪:‬‬


‫مقدمة إلى النشطة‪،‬‬
‫الزمانية‪ ،‬المكانية‪ ،‬الوسائط المتعددة‪،‬‬
‫وقواعد البيانات االستنتاجية‬
‫‪ 26.1‬مفاهيم ومشغالت قاعدة البيانات النشطة‬
‫تطبق أنظمة قواعد البيانات القواعد التي تحدد اإلجراءات التي يتم‬ ‫‪‬‬

‫تشغيلها تلقائًيا بواسطة أحداث معينة‬


‫محفزات‬ ‫‪‬‬

‫تقنية لتحديد أنواع معينة من القواعد النشطة‬ ‫‪‬‬

‫تحتوي أنظمة إدارة قواعد البيانات العالئقية التجارية على إصدارات‬ ‫‪‬‬

‫مختلفة من المشغالت المتاحة‬


‫يستخدم بناء جملة أوراكل لتوضيح المفاهيم‬ ‫‪‬‬

‫الشريحة ‪272-26‬‬
‫النموذج المعمم لقواعد البيانات النشطة ومشغالت‬
‫أوراكل‬
‫نموذج الحدث‪-‬الشرط‪-‬اإلجراء (‪.)ECA‬‬ ‫‪‬‬

‫يؤدي الحدث إلى تشغيل قاعدة‬ ‫‪‬‬

‫عادة عمليات تحديث قاعدة البيانات‬ ‫‪‬‬

‫تحدد الحالة ما إذا كان يجب إكمال إجراء القاعدة أم ال‬ ‫‪‬‬

‫خياري‬ ‫‪‬‬

‫لن يكتمل اإلجراء إال إذا تم تقييم الحالة على أنها صحيحة‬ ‫‪‬‬

‫اإلجراء الواجب اتخاذه‬ ‫‪‬‬

‫تسلسل عبارات ‪ SQL‬أو المعاملة أو البرنامج الخارجي‬ ‫‪‬‬

‫الشريحة ‪273-26‬‬
‫مثال‬
‫األحداث التي قد تتسبب في تغيير قيمة السمة ‪Total_sal‬‬ ‫‪‬‬

‫إدخال موظف جديد‬ ‫‪‬‬

‫تغيير الراتب‬ ‫‪‬‬

‫إعادة تعيين أو حذف الموظفين‬ ‫‪‬‬

‫الشكل ‪ 26.1‬قاعدة بيانات مبسطة للشركة تستخدم ألمثلة القواعد النشطة‬


‫الشريحة ‪274-26‬‬
‫مثال (تابع)‬
‫الحالة المراد تقييمها‬ ‫‪‬‬

‫تأكد من أن قيمة سمة ‪ Dno‬ليست فارغة‬ ‫‪‬‬

‫اإلجراء الواجب اتخاذه‬ ‫‪‬‬

‫قم بتحديث قيمة ‪ Total_sal‬تلقائًيا‬ ‫‪‬‬

‫الشريحة ‪275-26‬‬
‫الشكل ‪ 26.2‬تحديد القواعد النشطة كمشغالت في تدوين ‪( Oracle‬أ) مشغالت للحفاظ تلقائًيا على اتساق‬
‫‪ Total_sal‬الخاص بـ ‪DEPARTMENT‬‬
‫الشريحة ‪276-26‬‬
‫الشكل ‪( 26.2‬تابع) تحديد القواعد النشطة كمحفزات في تدوين ‪( Oracle‬ب) مشغل لمقارنة راتب الموظف‬
‫براتب المشرف عليه‬

‫الشريحة ‪277-26‬‬
‫مشكالت التصميم والتنفيذ لقواعد البيانات النشطة‬
‫قاعدة معطلة‬ ‫‪‬‬

‫لن يتم تشغيله بواسطة حدث التشغيل‬ ‫‪‬‬

‫تفعيل األمر‬ ‫‪‬‬

‫يجعل القاعدة نشطة مرة أخرى‬ ‫‪‬‬

‫أمر إسقاط‬ ‫‪‬‬

‫حذف القاعدة من النظام‬ ‫‪‬‬

‫النهج‪ :‬قواعد المجموعة في مجموعات القواعد‬ ‫‪‬‬

‫يمكن تفعيل مجموعة القواعد بأكملها أو إلغاء تنشيطها أو إسقاطها‬ ‫‪‬‬

‫الشريحة ‪278-26‬‬
‫مشكالت التصميم والتنفيذ لقواعد البيانات النشطة‬
‫(تابع)‬
‫توقيت العمل‬ ‫‪‬‬

‫قبل تنفيذ المشغل‪ ،‬قبل تنفيذ الحدث الذي تسبب في المشغل‬ ‫‪‬‬

‫بعد تنفيذ الزناد الزناد بعد تنفيذ الحدث‬ ‫‪‬‬

‫بدال من الزناد ينفذ الزناد بدال من تنفيذ الحدث‬ ‫‪‬‬

‫يمكن اعتبار اإلجراء معاملة منفصلة‬ ‫‪‬‬

‫أو جزء من نفس المعاملة التي أدت إلى تفعيل القاعدة‬ ‫‪‬‬

‫الشريحة ‪279-26‬‬
‫مشكالت التصميم والتنفيذ لقواعد البيانات النشطة‬
‫(تابع)‬
‫اعتبار القاعدة‬ ‫‪‬‬

‫النظر الفوري‬ ‫‪‬‬

‫يتم تقييم الحالة كجزء من نفس المعاملة‬ ‫‪‬‬

‫قم بتقييم الحالة إما قبل تنفيذ الحدث المحفز أو بعده أو بدًال من تنفيذه‬ ‫‪‬‬

‫النظر المؤجل‬ ‫‪‬‬

‫يتم تقييم الحالة في نهاية الصفقة‬ ‫‪‬‬

‫اعتبار منفصل‬ ‫‪‬‬

‫تم تقييم الحالة كمعاملة منفصلة‬ ‫‪‬‬

‫الشريحة ‪280-26‬‬
‫مشكالت التصميم والتنفيذ لقواعد البيانات النشطة‬
‫(تابع)‬
‫قاعدة على مستوى الصف‬ ‫‪‬‬

‫تعتبر القاعدة منفصلة لكل صف‬ ‫‪‬‬

‫قاعدة على مستوى البيان‬ ‫‪‬‬

‫تم النظر في القاعدة مرة واحدة للبيان بأكمله‬ ‫‪‬‬

‫من الصعب ضمان االتساق وإنهاء القواعد‬ ‫‪‬‬

‫الشريحة ‪281-26‬‬
‫أمثلة على القواعد النشطة على مستوى البيان في‬
‫‪STARBURST‬‬

‫الشكل ‪( 26.5‬تابع) القواعد النشطة التي تستخدم دالالت مستوى البيان في تدوين‬
‫‪STARBURST‬‬
‫الشريحة ‪282-26‬‬
‫أمثلة على القواعد النشطة على مستوى البيان في‬
‫‪( STARBURST‬تابع)‬

‫الشكل ‪( 26.5‬تابع) القواعد النشطة باستخدام دالالت مستوى البيان في تدوين‬


‫‪STARBURST‬‬

‫الشريحة ‪283-26‬‬
‫التطبيقات المحتملة لقواعد البيانات النشطة‬
‫السماح باإلخطار بحاالت معينة تحدث‬ ‫‪‬‬

‫فرض قيود السالمة‬ ‫‪‬‬

‫الحفاظ تلقائيا على البيانات المشتقة‬ ‫‪‬‬

‫الحفاظ على اتساق وجهات النظر المحققة‬ ‫‪‬‬

‫تمكين تناسق الجداول المنسوخة نسخًا متماثًال‬ ‫‪‬‬

‫الشريحة ‪284-26‬‬
‫المشغالت في ‪SQL-99‬‬

‫الشكل ‪ Trigger T1 26.6‬يوضح بناء الجملة لتعريف المشغالت في ‪SQL-99‬‬


‫الشريحة ‪285-26‬‬
‫‪ 26.2‬مفاهيم قاعدة البيانات المؤقتة‬
‫تتطلب قواعد البيانات المؤقتة بعض جوانب الوقت عند تنظيم المعلومات‬ ‫‪‬‬

‫الرعاىة الصحية‬ ‫‪‬‬

‫تأمين‬ ‫‪‬‬

‫أنظمة الحجز‬ ‫‪‬‬

‫قواعد البيانات العلمية‬ ‫‪‬‬

‫يعتبر الوقت بمثابة تسلسل مرتب للنقاط‬ ‫‪‬‬

‫التفاصيل التي يحددها التطبيق‬ ‫‪‬‬

‫الشريحة ‪286-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫كرونون‬ ‫‪‬‬

‫مصطلح يستخدم لوصف الحد األدنى من التفاصيل لتطبيق معين‬ ‫‪‬‬

‫نقطة مرجعية لقياس أحداث زمنية محددة‬ ‫‪‬‬

‫تقاويم مختلفة‬ ‫‪‬‬

‫أنواع البيانات المؤقتة ‪SQL2‬‬ ‫‪‬‬

‫التاريخ‪ ،‬الوقت‪ ،‬الطابع الزمني‪ ،‬الفاصل الزمني‪ ،‬الفترة‬ ‫‪‬‬

‫الشريحة ‪287-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫نقطة األحداث أو الحقائق‬ ‫‪‬‬

‫ترتبط عادًة بنقطة زمنية واحدة‬ ‫‪‬‬

‫بيانات السالسل الزمنية‬ ‫‪‬‬

‫مدة األحداث أو الحقائق‬ ‫‪‬‬

‫مرتبطة بفترة زمنية محددة‬ ‫‪‬‬

‫الفترة الزمنية ممثلة بنقطتي البداية والنهاية‬ ‫‪‬‬

‫وقت الصالحية‬ ‫‪‬‬

‫صحيح في العالم الحقيقي‬ ‫‪‬‬

‫الشريحة ‪288-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫وقت الصفقة‬ ‫‪‬‬

‫قيمة ساعة النظام عندما تكون المعلومات صالحة في النظام‬ ‫‪‬‬

‫الوقت المحدد من قبل المستخدم‬ ‫‪‬‬

‫قاعدة بيانات زمنية ثنائية‬ ‫‪‬‬

‫يستخدم الوقت الصالح ووقت المعاملة‬ ‫‪‬‬

‫عالقات زمنية صالحة‬ ‫‪‬‬

‫تستخدم لتمثيل تاريخ التغييرات‬ ‫‪‬‬

‫الشريحة ‪289-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬

‫الشكل ‪ 26.7‬أنواع مختلفة من قواعد البيانات العالئقية المؤقتة (أ) مخطط قاعدة بيانات الوقت الصالح (ب) مخطط قاعدة‬
‫بيانات وقت المعاملة (ج) مخطط قاعدة البيانات المؤقتة الثنائية‬

‫الشريحة ‪290-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬

‫الشكل ‪ 26.8‬بعض إصدارات الصف في عالقات الوقت الصالحة ‪ EMP_VT‬و‪DEPT_VT‬‬

‫الشريحة ‪291-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫أنواع التحديثات‬ ‫‪‬‬

‫استباقي‬ ‫‪‬‬

‫اثر رجعي‬ ‫‪‬‬

‫متزامنة‬ ‫‪‬‬

‫يتم تسجيل الطابع الزمني كلما تم تطبيق التغيير على قاعدة البيانات‬ ‫‪‬‬

‫العالقات الزمانية‬ ‫‪‬‬

‫يتطلب التطبيق وقًتا صالًح ا ووقًتا للمعاملة‬ ‫‪‬‬

‫الشريحة ‪292-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫اعتبارات التنفيذ‬ ‫‪‬‬

‫قم بتخزين كافة الصفوف في نفس الجدول‬ ‫‪‬‬

‫أنشئ جدولين‪ :‬أحدهما للمعلومات الصالحة حالًيا واآلخر لبقية المعلومات‬ ‫‪‬‬

‫تقسيم سمات العالقة الزمنية عمودًيا إلى عالقات منفصلة‬ ‫‪‬‬

‫يتم إنشاء صف جديد كلما تم تحديث أي سمة‬ ‫‪‬‬

‫قاعدة بيانات لإللحاق فقط‬ ‫‪‬‬

‫يحتفظ بسجل كامل للتغييرات والتصحيحات‬ ‫‪‬‬

‫الشريحة ‪293-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫إصدار السمة‬ ‫‪‬‬

‫كائن بسيط ومعقد يستخدم لتخزين كافة التغييرات الزمنية للكائن‬ ‫‪‬‬

‫سمة متغيرة بمرور الوقت‬ ‫‪‬‬

‫يتم إصدار القيم بمرور الوقت عن طريق إضافة فترات زمنية إلى السمة‬ ‫‪‬‬

‫سمة غير متغيرة بمرور الوقت‬ ‫‪‬‬

‫القيم ال تتغير مع مرور الوقت‬ ‫‪‬‬

‫الشريحة ‪294-26‬‬
‫الشكل ‪ 26.10‬مخطط ‪ ODL‬المحتمل لفئة كائن ‪ EMPLOYEE_VT‬للوقت الصالح باستخدام إصدار السمة‬

‫الشريحة ‪295-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫لغة ‪TSQL2‬‬ ‫‪‬‬

‫يمتد ‪ SQL‬لالستعالم عن الوقت الصحيح وجداول وقت المعاملة‬ ‫‪‬‬

‫تستخدم لتحديد ما إذا كانت العالقة مؤقتة أم غير زمنية‬ ‫‪‬‬

‫قد تتضمن شروط استعالم قاعدة البيانات المؤقتة الوقت والسمات‬ ‫‪‬‬

‫تتضمن حالة الوقت النقي الوقت فقط‬ ‫‪‬‬

‫الصفات والشروط الزمنية‬ ‫‪‬‬

‫الشريحة ‪296-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫إنشاء بيان الجدول‬ ‫‪‬‬

‫ممتد مع جملة ‪ AS‬اختيارية‬ ‫‪‬‬

‫يسمح للمستخدمين باإلعالن عن خيارات زمنية مختلفة‬ ‫‪‬‬

‫أمثلة‪:‬‬ ‫‪‬‬

‫كحالة صالحة<التفاصيل> (عالقة زمنية صالحة مع فترة زمنية صالحة)‬ ‫‪‬‬

‫‪ AS‬معاملة (العالقة الزمنية للمعاملة مع الفترة الزمنية للمعاملة)‬ ‫‪‬‬

‫الكلمات الرئيسية الحالة والحدث‬ ‫‪‬‬

‫حدد ما إذا كانت الفترة الزمنية أو النقطة مرتبطة بُبعد زمني صالح‬ ‫‪‬‬

‫الشريحة ‪297-26‬‬
‫مفاهيم قاعدة البيانات الزمنية (تابع)‬
‫بيانات السالسل الزمنية‬ ‫‪‬‬

‫كثيرا ما تستخدم في التطبيقات المالية والمبيعات واالقتصاد‬ ‫‪‬‬

‫نوع خاص من بيانات الحدث الصالحة‬ ‫‪‬‬

‫النقاط الزمنية للحدث محددة مسبًقا وفًقا لتقويم ثابت‬ ‫‪‬‬

‫تتم إدارتها باستخدام أنظمة إدارة السالسل الزمنية المتخصصة‬ ‫‪‬‬

‫بدعم من بعض حزم نظم إدارة قواعد البيانات التجارية‬ ‫‪‬‬

‫الشريحة ‪298-26‬‬
‫‪ 26.3‬مفاهيم قاعدة البيانات المكانية‬
‫تدعم قواعد البيانات المكانية المعلومات حول الكائنات الموجودة في‬ ‫‪‬‬

‫الفضاء متعدد األبعاد‬


‫أمثلة‪ :‬قواعد البيانات الخرائطية‪ ،‬ونظم المعلومات الجغرافية‪ ،‬وقواعد‬ ‫‪‬‬

‫بيانات معلومات الطقس‬


‫العالقات المكانية بين األشياء مهمة‬ ‫‪‬‬

‫ُم حّسن لالستعالم عن البيانات مثل النقاط والخطوط والمضلعات‬ ‫‪‬‬

‫االستعالمات المكانية‬ ‫‪‬‬

‫الشريحة ‪299-26‬‬
‫مفاهيم قاعدة البيانات المكانية (تابع)‬
‫عمليات القياس‬ ‫‪‬‬

‫يستخدم لقياس الخصائص العالمية للكائنات الفردية‬ ‫‪‬‬

‫عمليات التحليل المكاني‬ ‫‪‬‬

‫اكتشف العالقات المكانية داخل طبقات البيانات المعينة وفيما بينها‬ ‫‪‬‬

‫عمليات تحليل التدفق‬ ‫‪‬‬

‫المساعدة في تحديد أقصر طريق بين نقطتين‬ ‫‪‬‬

‫الشريحة ‪300-26‬‬
‫مفاهيم قاعدة البيانات المكانية (تابع)‬
‫تحليل الموقع‬ ‫‪‬‬

‫تحديد ما إذا كانت مجموعة معينة من النقاط والخطوط تقع ضمن مضلع‬ ‫‪‬‬

‫معين‬
‫تحليل التضاريس الرقمية‬ ‫‪‬‬

‫تستخدم لبناء نماذج ثالثية األبعاد‬ ‫‪‬‬

‫الشريحة ‪301-26‬‬
‫مفاهيم قاعدة البيانات المكانية (تابع)‬

‫الجدول ‪ 26.1‬األنواع الشائعة لتحليل البيانات المكانية‬

‫الشريحة ‪302-26‬‬
‫مفاهيم قاعدة البيانات المكانية (تابع)‬
‫أنواع البيانات المكانية‬ ‫‪‬‬

‫بيانات الخريطة‬ ‫‪‬‬

‫السمات الجغرافية أو المكانية للكائنات في الخريطة‬ ‫‪‬‬

‫السمة البيانات‬ ‫‪‬‬

‫البيانات الوصفية المرتبطة بميزات الخريطة‬ ‫‪‬‬

‫بيانات الصورة‬ ‫‪‬‬

‫صور األقمار الصناعية‬ ‫‪‬‬

‫نماذج المعلومات المكانية‬ ‫‪‬‬

‫نماذج ميدانية‬ ‫‪‬‬

‫نماذج الكائنات‬ ‫‪‬‬

‫الشريحة ‪303-26‬‬
‫مفاهيم قاعدة البيانات المكانية (تابع)‬
‫فئات المشغل المكاني‬ ‫‪‬‬

‫العوامل الطوبولوجية‬ ‫‪‬‬

‫ال تتغير الخصائص عند تطبيق التحوالت الطوبولوجية‬ ‫‪‬‬

‫المشغلين اإلسقاطيين‬ ‫‪‬‬

‫التعبير عن تقعر‪/‬تحدب األجسام‬ ‫‪‬‬

‫مشغلي متري‬ ‫‪‬‬

‫وصف هندسة الكائن على وجه التحديد‬ ‫‪‬‬

‫المشغلين المكانيين الديناميكيين‬ ‫‪‬‬

‫إنشاء وتدمير وتحديث‬ ‫‪‬‬

‫الشريحة ‪304-26‬‬
‫مفاهيم قاعدة البيانات المكانية (تابع)‬
‫االستعالمات المكانية‬ ‫‪‬‬

‫استعالمات النطاق‬ ‫‪‬‬

‫مثال‪ :‬ابحث عن جميع المستشفيات في منطقة مدينة متروبوليتان أتالنتا‬ ‫‪‬‬

‫أقرب االستعالمات الجيران‬ ‫‪‬‬

‫على سبيل المثال‪ :‬العثور على سيارة الشرطة أقرب موقع للجريمة‬ ‫‪‬‬

‫الصالت المكانية أو التراكبات‬ ‫‪‬‬

‫مثال‪ :‬ابحث عن جميع المنازل الواقعة على بعد ميلين من البحيرة‬ ‫‪‬‬

‫الشريحة ‪305-26‬‬
‫مفاهيم قاعدة البيانات المكانية (تابع)‬
‫فهرسة البيانات المكانية‬ ‫‪‬‬

‫ملفات الشبكة‬ ‫‪‬‬

‫أشجار ‪R‬‬ ‫‪‬‬

‫مؤشر االنضمام المكاني‬ ‫‪‬‬

‫تقنيات استخراج البيانات المكانية‬ ‫‪‬‬

‫التصنيف المكاني‬ ‫‪‬‬

‫االرتباط المكاني‬ ‫‪‬‬

‫التجمع المكاني‬ ‫‪‬‬

‫الشريحة ‪306-26‬‬
‫‪ 26.4‬مفاهيم قاعدة بيانات الوسائط المتعددة‬
‫تسمح قواعد بيانات الوسائط المتعددة للمستخدمين بتخزين الصور‬ ‫‪‬‬

‫والفيديو والصوت والمستندات واالستعالم عنها‬


‫االسترجاع القائم على المحتوى‬ ‫‪‬‬

‫التحليل التلقائي‬ ‫‪‬‬

‫تحديد يدوي‬ ‫‪‬‬

‫ُيستخدم اللون غالًبا في استرجاع الصور المستندة إلى المحتوى‬ ‫‪‬‬

‫الملمس والشكل‬ ‫‪‬‬

‫التعرف على األشياء‬ ‫‪‬‬

‫نهج تحويل الميزات غير المتغير (‪.)SIFT‬‬ ‫‪‬‬

‫الشريحة ‪307-26‬‬
‫مفاهيم قاعدة بيانات الوسائط المتعددة (تابع)‬
‫العالمات الداللية للصور‬ ‫‪‬‬

‫العالمات المقدمة من قبل المستخدم‬ ‫‪‬‬

‫اإلنشاء اآللي لعالمات الصور‬ ‫‪‬‬

‫توفر لغة الويب الوجودية (‪ )OWL‬التسلسل الهرمي للمفاهيم‬ ‫‪‬‬

‫تحليل مصادر البيانات الصوتية‬ ‫‪‬‬

‫الفهرسة المستندة إلى النص‬ ‫‪‬‬

‫الفهرسة على أساس المحتوى‬ ‫‪‬‬

‫الشريحة ‪308-26‬‬
‫‪ 26.5‬مقدمة لقواعد البيانات االستنتاجية‬
‫تستخدم قاعدة البيانات االستنتاجية الحقائق والقواعد‬ ‫‪‬‬

‫يمكن لمحرك االستدالل استنتاج حقائق جديدة باستخدام القواعد‬ ‫‪‬‬

‫تدوين ‪Prolog/Datalog‬‬ ‫‪‬‬

‫بناًء على توفير المسندات بأسماء فريدة‬ ‫‪‬‬

‫فاعل له معنى ضمني وعدد محدد من الحجج‬ ‫‪‬‬

‫إذا كانت الحجج كلها قيًم ا ثابتة‪ ،‬فإن المسند ينص على أن حقيقة معينة‬ ‫‪‬‬

‫صحيحة‬
‫إذا كانت الوسائط متغيرات‪ ،‬فسيتم اعتبارها بمثابة استعالم أو جزء من‬ ‫‪‬‬

‫قاعدة أو قيد‬

‫الشريحة ‪309-26‬‬
‫تدوين ‪ Prolog‬والشجرة اإلشرافية‬

‫الشكل ‪( 26.11‬أ) تدوين ‪( Prolog‬ب) الشجرة اإلشرافية‬

‫الشريحة ‪310-26‬‬
‫مقدمة إلى قواعد البيانات االستنتاجية (تابع)‬
‫تدوين سجل البيانات‬ ‫‪‬‬

‫برنامج مبني من كائنات أساسية تسمى الصيغ الذرية‬ ‫‪‬‬

‫حروف الصيغة ‪،a1(p‬أ‪…،2‬أن)‬ ‫‪‬‬

‫‪ p‬هو االسم المسند‬ ‫‪‬‬

‫‪ n‬هو عدد الوسائط للمسند ‪p‬‬ ‫‪‬‬

‫تفسيرات القواعد‬ ‫‪‬‬

‫اإلثبات النظري مقابل النموذج النظري‬ ‫‪‬‬

‫البديهيات االستنتاجية‬ ‫‪‬‬

‫البديهيات األرضية‬ ‫‪‬‬

‫الشريحة ‪311-26‬‬
‫مقدمة إلى قواعد البيانات االستنتاجية (تابع)‬

‫الشكل ‪ 26.12‬إثبات حقيقة جديدة‬

‫الشريحة ‪312-26‬‬
‫مقدمة إلى قواعد البيانات االستنتاجية (تابع)‬
‫برنامج أو قاعدة آمنة‬ ‫‪‬‬

‫يولد مجموعة محدودة من الحقائق‬ ‫‪‬‬

‫استعالم غير عودي‬ ‫‪‬‬

‫يشمل فقط المسندات غير العودية‬ ‫‪‬‬

‫الشريحة ‪313-26‬‬
‫استخدام العمليات العالئقية‬

‫الشكل ‪ 26.16‬المسندات‬
‫للتوضيح‬
‫العمليات العالئقية‬

‫الشريحة ‪314-26‬‬
‫‪ 26.6‬ملخص‬
‫قواعد البيانات النشطة‬ ‫‪‬‬

‫تحديد القواعد النشطة‬ ‫‪‬‬

‫قواعد البيانات المؤقتة‬ ‫‪‬‬

‫إشراك مفاهيم الوقت‬ ‫‪‬‬

‫قواعد البيانات المكانية‬ ‫‪‬‬

‫تنطوي على الخصائص المكانية‬ ‫‪‬‬

‫قواعد بيانات الوسائط المتعددة‬ ‫‪‬‬

‫تخزين الصور والصوت والفيديو والمستندات والمزيد‬ ‫‪‬‬

‫قواعد البيانات االستنتاجية‬ ‫‪‬‬

‫تدوين ‪ Prolog‬و‪Datalog‬‬ ‫‪‬‬

‫الشريحة ‪315-26‬‬

You might also like