• الـ Database Management System (DBMS) هو برنامج بيسمح للمستخدمين إنشاء، صيانة والوصول لقواعد البيانات.
  • مزاياه بتخليك تدير البيانات بشكل فعال وبسيط.
  • الـ(Application Program) بيتواصل مع الـ DBMS عن طريق إرسال Queries أو Requests.

ليه نستخدم DBMS؟

Files as Storage

لو بنستخدم Files للتخزين (File Based System)، بنواجه مشاكل كتير زي ال redundancy والتكرار وصعوبة إدارة البيانات. DBMS بيحل المشاكل دي عن طريق تنظيم البيانات وتحسين الوصول ليها.

File as Storage (File Based System)

زمان الناس كانت بتخزن الداتا في Files نصية، وده كان سهل وبسيط.

  • كانوا بيفصلوا البيانات في Files باستخدام:
    1. الـDelimited Files: يتم فصل كل قيمة بفاصلة (comma) أو نقطة.
    2. الـFixed Width Files: بيثبتوا عدد البايتس لكل قيمة.

File Storage

ميزة انك تخزن في Files ان الموضوع دا رخيص جدًا.

عيوبها

  • صعوبة الوصول للداتا: القراءة والكتابة والتحديث بيأخد وقت.
  • البحث بيطول: لازم تقرا الفايل من الأول لآخر.
  • الـData Redundancy: ممكن يحصل تكرار للبيانات لو فيه نسخ مختلفة.
  • عدم وجود علاقات: الملفات متقفلة على نفسها ومفيش Integrity بينهم.
  • الـData Administration: صعب تتحكم في مين يعدل ومين يستخدم الداتا.
  • الـEfficient Data Access: الوصول للداتا مش فعال.
  • الـConcurrent Access: مشكلة لو أكتر من شخص حاولوا يعدلوا في نفس الوقت.
  • الـCrash Recovery: لو حصل كراش، الداتا بتروح.
  • الـData Security: لو مسحوا الفايل، الداتا راحت.
  • الـReduced Application Development Time: مش بتوفر الوقت لإنك مش بتفكر في استرجاع الداتا بعد العطل.

Link to original

DBMS Functionalities

الـDBMS بيقدم خصائص وإمكانيات كتير زي إدارة البيانات المتزامنة (concurrency control) والتأمين (security)، واسترجاع البيانات في حالة الفشل (recovery).

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

  1. Define a Database: يعني بنحدد شكل قاعدة البيانات وأنواع البيانات اللي هنستخدمها.
  2. Constructing a Database: بنبدأ ندخل البيانات في القاعدة بعد ما نحددها.
  3. Data Retrieve and Database Manipulation: بنبحث عن البيانات ونعدلها لو محتاجين.
  4. Data Integrity: بنتأكد إن البيانات دقيقة ومتسقة.
  5. Data Dictionary (Meta Data): بنخزن معلومات عن هيكل البيانات زي الجداول والعلاقات.
  6. Data Security: بنحمي البيانات من أي حد مش مسموح له يشوفها.
  7. Concurrency: بننظم العمليات اللي بتحصل في نفس الوقت عشان متتعرضش لبعض.
  8. Database Backup and Recovery: بنعمل نسخ احتياطية للبيانات ونرجعها لو ضاعت.
  9. Data Independence: نقدر نغير في هيكل البيانات من غير ما نأثر على البرامج اللي بتستخدمها.
  10. Performance: بنحسن سرعة وكفاءة استرجاع ومعالجة البيانات.

Advantages of DBMS

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

العلاقة مع ACID

الاتفاقية (ACID: Atomicity, Consistency, Isolation, Durability) بتضمن إن قاعدة البيانات تشتغل بشكل صحيح حتى في وجود عمليات متزامنة أو أخطاء.


DBMS Terminologies

Data Model According to Their Goals

اتكلمنا عنها بالتفصيل Data Models in Databases

Schema

الـ Schema هو الوصف أو الخريطة لهياكل Database باستخدام Data Model. بيحدد إيه العناصر الموجودة وإزاي ماشية.

أ. Conceptual Schema

  • بيوصف الداتا بشكل عام ومنطقي.
  • مثال: لو عندك قاعدة بيانات للمدرسة، الـ Conceptual Schema هيوضح الكيانات زي Student وTeacher وClass، والعلاقات بينهم بدون الدخول في تفاصيل الجدول. ب. Physical Schema
  • بيوضح طريقة تخزين البيانات على الهارد.
  • مثال: تعريف الجداول في SQL Server، زي جدول Student اللي فيه StudentID (INT)، Name (NVARCHAR) إلخ. ج. External Schema
  • بيسمح بتصميم وجهات نظر مُختلفة للقاعدة لعدة مستخدمين.
  • مثال: لدائرة حسابات في الشركة ممكن يكون عندهم External Schema بيعرض لهم بيانات الفواتير بس، ومدير الـ HR عنده Schema مختلف بيعرض بيانات الموظفين.

Schema Example

Schema Example 2

Levels of Abstraction in a DBMS

في الـ DBMS بنقسم البيانات لمستويات مختلفة بالترتيب ده:

أ. Conceptual Level (Conceptual Schema)

  • ده المستوى اللي بنشوف فيه نظرة عامة ومنطقية للبيانات بدون تفاصيل التخزين.
  • مثال: عندك رسم ER يوضح الكيانات والعلاقات.

ب. Physical Level (Physical Schema)

  • بيوضح إزاي البيانات فعلياً متخزنة على الهارد (نوع البيانات، مواقع التخزين، استخدام Indexes، إلخ).
  • مثال: تصميم جداول في قاعدة بيانات SQL، مع تحديد الأعمدة، الأنواع (data types) والفهارس (indexes).

ج. External Level (External Schema)

  • ده بيقدم وجهات نظر مختلفة للمستخدمين حسب احتياجاتهم، بحيث كل مجموعة من المستخدمين تشوف جزء محدد من البيانات.
  • مثال: في نظام مصرفي، موظفي الدعم الفني ممكن يكون عندهم External Schema بتعرض لهم بيانات المعاملات بدون معلومات حساسة، بينما المديرين يشوفوا بيانات أكثر تفصيلاً.

أمثلة عملية توضيحية:

Example 1: Conceptual vs Physical Schema
  • الـConceptual Schema:
    رسم ER لقاعدة بيانات جامعية يظهر كيان “Student” بيوصفه بالاسم والعمر، وكيان “Course” بيوصفه بعنوانه.
  • الـPhysical Schema:
    جدول “Student” في SQL يكون له أعمدة EmployeeID (INT), Name (NVARCHAR), DOB (DATE) مع index على StudentID لتسريع البحث.
Example 2: External Schemas
  • الـExternal Schema for HR:
    جدول يعرض بيانات الموظفين بدون معلومات الراتب.
  • الـExternal Schema for Payroll:
    جدول يعرض معلومات الراتب مفصلة مع بيانات الموظفين.