02 - Chapter 2 - Database System Concepts and Architecture

02 - Chapter 2 - Database System Concepts and Architecture

مقدمة حول نظم البيانات

التعريف بالفصل

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

أهمية المحتوى النظري

  • يشير المحاضر إلى أن هذا الفصل يحتوي على محتوى نظري كثيف، مما يساعد الطلاب على تأسيس فهم قوي لمفاهيم نظم إدارة قواعد البيانات.
  • يعتمد المحاضر على تقديم مقاطع مهمة من الكتاب لتسهيل الدراسة، مع التأكيد على ضرورة قراءة الكتاب بالكامل.

المفاهيم الأساسية في نظم البيانات

نماذج البيانات والمخططات

  • يتناول المحاضر مصطلحات هامة مثل نموذج البيانات والمخطط وقاعدة بيانات الحالة.
  • يوضح مفهوم التجريد وكيفية إخفاء التفاصيل غير الضرورية عن المستخدمين.

التعامل مع البيانات

  • يشرح كيف يمكن للمستخدمين التفاعل مع قاعدة البيانات دون الحاجة لفهم كيفية تخزينها فعليًا.
  • يؤكد أن التركيز يجب أن يكون على الشكل العام للبيانات بدلاً من تفاصيل التخزين.

نموذج بيانات العلاقات

تعريف نموذج بيانات العلاقات

  • يعرف نموذج بيانات العلاقات بأنه مجموعة من المفاهيم والأدوات المستخدمة لوصف هيكل قاعدة البيانات والعلاقات بين الكيانات.
  • يشير إلى أهمية استخدام أدوات ومعايير متفق عليها لتسهيل الفهم والتواصل بين المتخصصين في المجال.

العمليات الرئيسية في قاعدة البيانات

  • يناقش العمليات الأساسية التي يحتاجها المستخدمون للتفاعل مع قاعدة البيانات وتحديث المعلومات.

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

مستويات التعبير عن المعلومات

  • يتحدث المحاضر عن كيفية التعبير عن المعلومات بمستويات مختلفة، بدءًا من المستويات العالية التي تفتقر للتفاصيل وصولاً إلى التفاصيل الدقيقة.

الوسائط التخزينية

  • يستعرض أنواع الوسائط التخزينية المختلفة وكيفية تأثيرها على فهم المستخدمين العاديين لبيانات النظام.

فهم البيانات والعلاقات في قواعد البيانات

مقدمة حول البيانات

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

تخزين المعلومات عن الموظفين

  • يتم الاحتفاظ ببيانات الموظفين مثل الاسم، رقم الهوية، تاريخ الميلاد، والعنوان في قاعدة بيانات معينة.
  • يُشار إلى هذه المعلومات باسم "السمات" أو "Attributes"، حيث تشمل تفاصيل مثل اسم الموظف ورقم الهاتف.

العلاقات بين الكيانات

  • توضيح مفهوم العلاقة (Relation) بين الكيانات المختلفة في قاعدة البيانات، مثل علاقة الطالب بالكورس الذي يدرسه.
  • مثال على العلاقة: مشروع يعمل فيه عدة موظفين، مما يعكس ارتباطات متعددة بين الكيانات.

نماذج البيانات

  • تقديم نموذج بيانات يوضح كيفية فهم المستخدم العادي للبيانات والعلاقات بينها.
  • أهمية فهم الهيكل العام للبيانات وكيفية ارتباط الجداول ببعضها البعض.

هيكل الجداول والارتباطات

  • عرض هيكل الجداول في قاعدة البيانات وكيفية تنظيمها بشكل فعلي مع الأعمدة المختلفة لكل جدول.
  • التمييز بين "العلاقة" (Relation) و"شكل العلاقة" (Relationship)، حيث تشير الأولى إلى الجدول والثانية إلى الارتباطات بين الكيانات.

التخزين والتنسيق

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

الفهارس وأهميتها

  • شرح مفهوم الفهرس (Index)، ودوره في تسريع الوصول إلى المعلومات داخل قاعدة بيانات كبيرة.

الفرق بين المخطط والبيانات الفعلية

  • ضرورة التمييز بين مخطط قاعدة البيانات (Schema)، والذي يمثل التصميم العام للجداول، وبين البيانات الفعلية المخزنة فيها.

تغييرات مستمرة في البيانات

  • التأكيد على أن بيانات القاعدة تتغير باستمرار من خلال إضافة وحذف الصفوف.

ما هي قاعدة البيانات؟

تعريف قاعدة البيانات

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

الهيكل التنظيمي للبيانات

  • الهدف هو فصل البرامج عن كيفية تخزين البيانات، مما يسهل التعامل مع المعلومات.
  • هناك ثلاثة مستويات رئيسية في تنظيم البيانات:
  • المستوى الداخلي: يهتم بتفاصيل التخزين.
  • المستوى المفهومي: يصف البنية العامة للبيانات دون تفاصيل دقيقة.
  • المستوى الخارجي: يُظهر كيف يتفاعل المستخدمون مع البيانات.

مستويات تنظيم قاعدة البيانات

المستوى الخارجي

  • يمثل مستوى المستخدمين المباشر ويحتوي على عرض مخصص لكل مستخدم بناءً على احتياجاته.
  • يمكن أن يكون لكل مجموعة من المستخدمين عرض خاص بهم، مثل المحاسبين أو المدرسين، مما يخفي التفاصيل غير الضرورية لهم.

المستوى المفهومي

  • يركز على وصف كيفية تنظيم وتخزين البيانات بشكل عام دون الدخول في تفاصيل محددة.

استقلالية قاعدة البيانات

مفهوم الاستقلالية

  • تعني القدرة على تعديل بنية قاعدة البيانات (الأسكيما) دون التأثير على التطبيقات الأخرى المرتبطة بها.
  • يمكن إجراء تغييرات مثل توزيع البيانات عبر خوادم مختلفة دون الحاجة لتعديل الأسكيما الأساسية.

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

لغات إدارة قواعد البيانات

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

هذه الملاحظات تلخص المحتوى الرئيسي للنقاش حول قواعد بيانات وأنظمتها وكيفية إدارتها.

نظام إدارة قواعد البيانات: المفاهيم الأساسية

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

  • يتحدث المتحدث عن مفهوم "الداتا بيز" ونظام إدارة قواعد البيانات، مشيرًا إلى أهمية الميتاداتا والفيشن في تنظيم البيانات.

عملية التحكم في البيانات

  • يوضح كيف تتم عملية التحكم في بيانات الداتا بيز من خلال نظام التشغيل الذي يقوم بجدولة عمليات القراءة والكتابة.

مفهوم البافر

  • يشرح المتحدث مصطلح "بافر"، وهو مساحة مخصصة في الذاكرة لتخزين نسخ من عناصر البيانات قبل الكتابة على القرص مباشرة.

تحسين الأداء

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

وظائف الرس (الرس)

  • يتناول دور الرس في التحكم بعمليات الحصول على المعلومات من قاعدة البيانات سواء كانت موجودة في الجداول أو غيرها.

التفاعل مع التطبيقات وقواعد البيانات

أنواع التطبيقات

  • يذكر المتحدث وجود مجموعة من التطبيقات التي تتعامل مع نظام إدارة قواعد البيانات، موضحًا كيفية استخدام الأوامر لبناء قاعدة بيانات جديدة.

صلاحيات المستخدمين

  • يناقش كيفية منح الصلاحيات للمستخدمين أو منعهم منها عبر الأوامر المستخدمة في النظام.

دور المبرمجين

  • يتطرق إلى دور المبرمجين الذين يقومون بكتابة برامج للتفاعل مع الجداول داخل قاعدة البيانات باستخدام لغات برمجة مختلفة مثل C# وC++.

عملية تجميع الاستعلامات وتحسين الأداء

وظيفة الكومبايلر

  • يوضح كيف يعمل الكومبايلر على استلام الاستعلامات والتحقق من صحتها قبل تنفيذها وتخزين النتائج في كتالوج قاعدة البيانات.

التعامل مع الأخطاء

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

تحسين الاستعلامات

  • يتحدث عن وظيفة "الكويري أوبتمايزر" الذي يسعى لاختيار أسرع وأفضل الطرق للحصول على المعلومات المطلوبة من قاعدة البيانات.

البرامج والتفاعل مع النظام

إرسال الأوامر للنظام

  • يستعرض كيف تقوم البرامج المكتوبة بلغة البرمجة بإرسال الأوامر إلى ما يسمى بالبري كومبايلر لاستخراج التعليمات اللازمة لتنفيذ العمليات المطلوبة.

فهم عملية الكومبايلر وتحويل الأكواد

دور الكومبايلر في تحويل الأوامر

  • يقوم الكومبايلر بأخذ أوامر الـ DM Statements التي أرسلها المبرمج، ويقوم بعملية كيشين لتحويلها إلى ما يسمى بـ Object Code.
  • بعد ذلك، يتم إرسال هذا الكود إلى لغة الهوست (Host Language) مثل C++ أو Java.

الربط بين الأكواد

  • يتم ربط كود الـ Object Code الناتج من عملية الكومبايل مع كود الهوست لخلق ما يسمى بالـ Transaction.
  • يحتوي كود التنفيذ على استدعاءات لأجزاء مسؤولة عن تنفيذ العمليات.

إدارة البيانات والصلاحيات

  • يتطلب النظام صلاحيات معينة لإدارة البيانات واسترجاعها بشكل صحيح.
  • يتعامل النظام مع معلومات المستخدمين والإحصائيات الناتجة عن تنفيذ العمليات.

إدارة الترانزكشن والبيانات

التعامل مع الترانزكشن

  • يجب أن يكون هناك تحكم في عمليات الترانزكشن المتعددة لتجنب أي مشاكل قد تؤدي إلى عدم سلامة البيانات.
  • وظيفة التحكم هي ضمان سلامة العمل حتى عند تشغيل عدة ترانزكشن في نفس الوقت.

النسخ الاحتياطي واسترجاع البيانات

  • نظام النسخ الاحتياطي يقوم بأخذ نسخ من قواعد البيانات وتحديد مواعيد محددة لذلك.
  • يمكن استرجاع قاعدة البيانات إلى الحالة السابقة قبل حدوث أي مشكلة باستخدام نظام الاسترجاع.

أدوات مساعدة لإدارة قواعد البيانات

أدوات نقل البيانات

  • تستخدم الأدوات لنقل البيانات من ملفات قديمة إلى قاعدة بيانات جديدة، مع مراعاة اختلافات التنسيق بينهما.

التحويلات اللازمة للبيانات

  • تقوم القاعدة الجديدة بإجراء التحويلات اللازمة لضمان توافق تنسيقات البيانات المختلفة.

استراتيجيات النسخ والتنظيم

النسخ الاحتياطي الكامل والجزئي

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

إعادة تنظيم البيانات

  • تساعد أدوات التنظيم في إعادة ترتيب تخزين البيانات داخل الملفات بما يتناسب مع احتياجات النظام.

ما هي الإحصائيات وكيف تؤثر على اتخاذ القرارات؟

أهمية الإحصائيات في تحليل البيانات

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

تحسين الأداء بناءً على التحليل

  • قد يتطلب الأمر إضافة بعض التعديلات لتحسين سرعة الحصول على البيانات وزيادة الكفاءة.

تطور الأنظمة: من النظام المركزي إلى الأنظمة الموزعة

النظام المركزي

  • كان هناك نظام مركزي يعتمد على "المين فريم"، وهو كمبيوتر ضخم يتم فيه تشغيل جميع البرامج.
  • كانت الوظائف مرتبطة بالمين فريم فقط، حيث كانت تستقبل المدخلات وترسل النتائج دون معالجة.

الانتقال إلى الأنظمة الموزعة

  • مع تطور التكنولوجيا، أصبح العمل موزعًا عبر عدة سيرفرات، كل منها مختص بوظيفة معينة.
  • يمكن تنفيذ بعض العمليات البسيطة مباشرة على الكلاينت بدلاً من الرجوع للسيرفر.

أنواع بنى الأنظمة: تو تير وثري تير

مفهوم التو تير

  • يشير "التو تير" إلى بنية تعتمد على مستويين: مستوى المستخدم (الكلاينت) ومستوى قاعدة البيانات (السيرفر).

مفهوم الثري تير

  • بينما "الثري تير" يتضمن ثلاثة مستويات تشمل واجهة المستخدم، المنطق التجاري وقاعدة البيانات.

تفاعل العميل مع قاعدة البيانات

كيفية تواصل العميل مع السيرفر

  • يتم إرسال استفسارات قواعد البيانات (SQL Statements) من التطبيق إلى السيرفر، الذي يقوم بمعالجة الطلبات وإرجاع النتائج للعميل.
  • إذا كان العميل يحتاج لتنفيذ عملية أو إجراء معاملة على قاعدة البيانات، فإنه يتوجب عليه التواصل مع السيرفر.

الاتصال بالسيرفر

  • يتم إنشاء اتصال بين العميل والسيرفر باستخدام ما يسمى "Open Database Connectivity" (ODBC)، وهو برنامج يوفر إمكانية الربط بين التطبيقات والسيرفرات.
  • ODBC يعمل كوسيط بين العميل والسيرفر، مما يسهل عملية التواصل.

ظهور تطبيقات الويب

الانتقال من التطبيقات التقليدية إلى تطبيقات الويب

  • تم تطوير تطبيقات جديدة تعتمد على فكرة الويب، مما أدى إلى ظهور مفهوم جديد يُعرف بـ "Three-Tier Architecture".
  • في هذا النموذج الجديد، يتم تقسيم التطبيق إلى عدة مستويات بدلاً من مستويين فقط.

هيكلية ثلاثية المستويات

  • المستوى الأوسط في الهيكلية الجديدة يُسمى "Application Server"، والذي يتوسط بين واجهة المستخدم وقاعدة البيانات.
  • هذه الهيكلية تسهل إدارة العمليات وتوزيع الأعباء بين مختلف المكونات.

مزايا استخدام Three-Tier Architecture

تحسين الأداء والكفاءة

  • تقسيم العمل على ثلاثة مستويات يساعد في تحسين الأداء ويجعل النظام أكثر كفاءة.
  • يمكن أن تعمل الطلبات بشكل أسرع وأسهل بفضل وجود وسيط ينقل المعلومات بين المكونات المختلفة.

فوائد إضافية

  • تقليل التكاليف والوقت اللازم لتحديث الأنظمة؛ حيث يمكن تعديل البرنامج مرة واحدة فقط بدلاً من تعديله لكل عميل بشكل منفصل.
  • تعزيز الأمان؛ حيث يمكن التحكم في صلاحيات الوصول والتأكد من هوية المستخدم قبل السماح له بالتفاعل مع قاعدة البيانات.

خلاصة حول بنية Three-Tier

التركيب العام للنظام

  • تتكون البنية الثلاثية من واجهة المستخدم عند العميل، و"Application Server" كوسيط، و"Database Management System" موجود عند السيرفر.
Video description

By Mohamed El Desouki - محمد الدسوقى mohamed_eldesouki@hotmail.com Tel :00966 553450836 جامعة سلمان بن عبد العزيز - السعودية - الخرج Chapter 2 - Database System Concepts and Architecture in Arabic Text Book: Fundamentals of Database Systems,6th Edition, by Elmasri/Navathe, published by Addison-W To get Lecture slide ,