🗄️ شرح SQL وقواعد البيانات

تطبيع قواعد البيانات (Normalization)

ما هو التطبيع؟

التطبيع (Normalization) تنظيم الجداول لتقليل التكرار ومنع تناقض البيانات.

المشكلة: جدول غير مطبَّع

orders: id | customer_name | customer_phone | product1, product2...

تكرار بيانات العميل في كل طلب → تحديثها كابوس.

الشكل الطبيعي الأول (1NF)

  • كل خلية تحمل قيمة واحدة (لا قوائم).
  • لكل صف مفتاح فريد.

products: "قلم, دفتر" → ✅ صف لكل منتج.

الشكل الطبيعي الثاني (2NF)

  • يحقّق 1NF.
  • كل عمود يعتمد على كامل المفتاح الأساسي (مهمّ للمفاتيح المركّبة).

افصل بيانات العميل في جدول customers مستقلّ.

الشكل الطبيعي الثالث (3NF)

  • يحقّق 2NF.
  • لا عمود يعتمد على عمود غير مفتاحي (إزالة الاعتماد المتعدّي).

مثال: city و city_code معًا → انقل city_code لجدول مدن.

النتيجة

customers(id, name, phone)
products(id, name, price)
orders(id, customer_id)
order_items(order_id, product_id, quantity)

التوازن

💡 أحيانًا نتعمّد عدم التطبيع (Denormalization) لتسريع القراءة في الأنظمة الضخمة — مفاضلة بين النقاء والأداء.

🎯 التالي: أمان قواعد البيانات وحقن SQL.