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

Pragmatic Denormalization Balance التوازن الهندسي وكسر التطبيع

تعلّم تطبيع قواعد البيانات والصيغ المعيارية الأولى والثانية والثالثة في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

في هندسة قواعد البيانات الإنتاجية، تمثل الصيغة المعيارية الثالثة 3NF المعيار الافتراضي الواجب اتباعه؛ غير أن هناك حالتين عمليتين مهمتين يحتفظ فيهما المهندس بعمود إضافي عن وعي:

  • أعمدة اللقطة التاريخية (Historical Snapshot): حفظ عمود سعر البيع unit_price داخل جدول عناصر الفاتورة order_items ليس تكراراً خاطئاً، بل هو ضرورة محاسبية لأن سعر المنتج في الكتالوج قد يتغير لاحقاً بينما يجب أن تبقى الفاتورة القديمة ثابتة بالسعر الذي دفعه العميل وقت الشراء.
  • التخزين المحسوب للقراءة الكثيفة: حفظ المجموع النهائي في الأنظمة الضخمة شريطة ضبطه بمعاملات صارمة أو أعمدة مولدة.
SQL
-- Historical snapshot: unit_price_paid preserves checkout price
CREATE TABLE order_line_snapshots (
  order_id INT UNSIGNED NOT NULL,
  product_id INT UNSIGNED NOT NULL,
  qty SMALLINT UNSIGNED NOT NULL,
  unit_price_paid DECIMAL(10, 2) NOT NULL,
  PRIMARY KEY (order_id, product_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;