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 كامل
إذا لم تكن مرتاحًا مع هذه المفاهيم، عد إلى الوحدات السابقة.
البرامج المطلوبة
-
PostgreSQL 14+
- سيتم تثبيته أثناء الوحدة
- التحميل: postgresql.org
-
pgAdmin أو DBeaver
- أداة إدارة قواعد البيانات
- التحميل: pgadmin.org أو dbeaver.io
-
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؟
- علمتك الوحدة 3 بنية قوية (طبقة الخدمة، التحقق، إدارة الأخطاء)
- هذه البنية تعمل مع أي قاعدة بيانات
- الآن بعد أن أتقنت البنية، يمكنك التركيز على قاعدة البيانات
- PostgreSQL أكثر تطلبًا من H2: تحتاج إلى أساس جيد قبل استخدامه
التقدم المنطقي:
الوحدة 2: الأساسيات (H2 بسيطة)
↓
الوحدة 3: بنية قوية (لا تزال H2)
↓
الوحدة 4: الإنتاج (PostgreSQL) ← أنت هنا
↓
الوحدة 6: التحسين (استعلامات متقدمة)