انتقل إلى المحتوى الرئيسي

MODULE 4 - قواعد البيانات في الإنتاج

أهداف الوحدة​

ستمكنك هذه الوحدة من:

  • تثبيت وتكوين PostgreSQL
  • فهم الفرق بين Jakarta و Javax Persistence
  • إتقان Hibernate واستراتيجيات DDL
  • استخدام Lombok لتقليل الكود المتكرر
  • ترحيل تطبيق من H2 إلى PostgreSQL
  • إدارة قواعد بيانات متعددة (MySQL، SQL Server، Oracle)

محتوى الوحدة​

النظرية​

تنقسم هذه الوحدة إلى 4 فصول نظرية يجب قراءتها قبل الانتقال إلى العمل العملي:

الفصل 1: PostgreSQL - التثبيت والتكوين​

  • ما هو PostgreSQL؟
  • التثبيت على Windows/Mac/Linux
  • أدوات الإدارة (pgAdmin، DBeaver)
  • إنشاء قواعد البيانات والمستخدمين
  • تكوين Spring Boot لـ PostgreSQL
  • الاتصال والاختبار
  • الأمان وأفضل الممارسات

الفصل 2: Jakarta vs Javax Persistence​

  • التاريخ: Java EE → Jakarta EE
  • الفروقات بين javax.persistence و jakarta.persistence
  • الترحيل: متى وكيف؟
  • التوافق مع Spring Boot 2.x vs 3.x
  • حل المشاكل الشائعة
  • اختيار النسخة الصحيحة

الفصل 3: Hibernate واستراتيجيات DDL​

  • ما هو Hibernate؟
  • دور Hibernate في Spring Boot
  • استراتيجيات ddl-auto بالتفصيل:
    • none: لا يوجد إجراء
    • validate: التحقق فقط
    • update: تحديث تدريجي
    • create: إعادة الإنشاء عند كل بدء
    • create-drop: إنشاء وحذف
  • متى تستخدم كل استراتيجية؟
  • تكوين لهجة Hibernate
  • سجلات SQL وتصحيح الأخطاء
  • الأداء والتحسين

الفصل 4: Lombok - تقليل الكود المتكرر​

  • ما هو Lombok؟
  • التثبيت والتكوين
  • التعليقات التوضيحية الرئيسية:
    • @Data
    • @Getter / @Setter
    • @NoArgsConstructor / @AllArgsConstructor
    • @RequiredArgsConstructor
    • @Builder
    • @ToString
    • @EqualsAndHashCode
  • المزايا والعيوب
  • أفضل الممارسات
  • التوافق مع JPA

الأعمال العملية​

TP4.1: ترحيل PostgreSQL والإنتاج​

الهدف: ترحيل تطبيق H2 إلى PostgreSQL باستخدام Lombok

المحتوى:

  • تثبيت وتكوين PostgreSQL
  • ترحيل من H2 إلى PostgreSQL
  • استخدام Jakarta Persistence
  • تطبيق Lombok على جميع الكيانات
  • تكوين استراتيجيات DDL
  • الاختبارات والتحقق
  • الترحيل إلى قواعد بيانات أخرى (MySQL، SQL Server، Oracle)

المدة المقدرة: 4-6 ساعات

المتطلبات المسبقة:

  • إكمال الوحدة 2 (TP2.1 و TP2.2)
  • إكمال الوحدة 3 (TP3.1 - بنية CRUD)
  • قراءة جميع فصول الوحدة 4

المستوى: متوسط إلى متقدم


المتطلبات المسبقة​

المعرفة المطلوبة​

قبل البدء في هذه الوحدة، يجب أن تكون قد أتقنت:

✅ الوحدة 2 (كاملة):

  • Spring Initializr
  • بنية المشروع
  • التكوين
  • التعليقات التوضيحية الأساسية
  • المستودعات وJPA الأساسية
  • H2 في الذاكرة والمستمر

✅ الوحدة 3 (كاملة):

  • بنية ثلاثية الطبقات
  • التحقق من البيانات
  • إدارة أخطاء HTTP
  • CRUD كامل

إذا لم تكن مرتاحًا مع هذه المفاهيم، عد إلى الوحدات السابقة.

البرامج المطلوبة​

  1. PostgreSQL 14+

    • سيتم تثبيته أثناء الوحدة
    • التحميل: postgresql.org
  2. pgAdmin أو DBeaver

  3. JDK 17+، Maven 3.9+، VS Code

    • مثبتة بالفعل منذ الوحدة 2

المدة المقدرة​

النظرية: 8-10 ساعات (4 فصول)
العمل العملي: 4-6 ساعات (1 TP كامل مع ترحيل)
المجموع: 12-16 ساعة (2-3 جلسات من 4-6 ساعات)


الموارد الإضافية​

الوثائق الرسمية​

الدروس الموصى بها​


معايير النجاح​

في نهاية هذه الوحدة، يجب أن تكون قادرًا على:

  • ✅ تثبيت وتكوين PostgreSQL
  • ✅ إنشاء وإدارة قواعد بيانات PostgreSQL
  • ✅ فهم الفروقات بين Jakarta و Javax Persistence
  • ✅ اختيار وتكوين الاستراتيجية الصحيحة لـ DDL Hibernate
  • ✅ استخدام Lombok لتقليل الكود المتكرر
  • ✅ ترحيل تطبيق من H2 إلى PostgreSQL
  • ✅ تكوين تطبيق لأنواع متعددة من قواعد البيانات
  • ✅ تصحيح مشاكل الاتصال والتكوين

الخطوات التالية​

بمجرد إكمال هذه الوحدة، ستكون جاهزًا لـ:

  • الوحدة 5: Spring Core - IoC و DI المتقدمة
  • الوحدة 6: Spring Data JPA المتقدمة (الانضمامات، JPQL، التحسين)
  • الوحدة 7: الأمان مع Spring Security

لماذا هذه الوحدة مهمة​

التطوير مقابل الإنتاج​

الجانبH2 (التطوير)PostgreSQL (الإنتاج)
النوعفي الذاكرة أو ملف محليخادم مخصص
الأداءمحدودأداء عالي
المستخدمون المتزامنونغير مناسبممتاز
الأدواتوحدة تحكم أساسيةpgAdmin، DBeaver
القابلية للتوسعضعيفةممتازة
الاستخدامتطوير/اختباراتإنتاج

قبل الوحدة 4​

❌ تطوير فقط (H2)
❌ كود مطول (الكثير من getters/setters)
❌ تكوين يدوي معقد
❌ غير جاهز للإنتاج

بعد الوحدة 4​

✅ جاهز للإنتاج (PostgreSQL)
✅ كود مختصر (Lombok)
✅ تكوين احترافي
✅ جاهز للنشر
✅ مهارات مطلوبة في الشركات

ملاحظة تعليمية​

لماذا تأتي هذه الوحدة بعد الوحدة 3؟

  1. علمتك الوحدة 3 بنية قوية (طبقة الخدمة، التحقق، إدارة الأخطاء)
  2. هذه البنية تعمل مع أي قاعدة بيانات
  3. الآن بعد أن أتقنت البنية، يمكنك التركيز على قاعدة البيانات
  4. PostgreSQL أكثر تطلبًا من H2: تحتاج إلى أساس جيد قبل استخدامه

التقدم المنطقي:

الوحدة 2: الأساسيات (H2 بسيطة)
↓
الوحدة 3: بنية قوية (لا تزال H2)
↓
الوحدة 4: الإنتاج (PostgreSQL) ← أنت هنا
↓
الوحدة 6: التحسين (استعلامات متقدمة)

الفصل 1 - PostgreSQL (نظرية مفصلة)