→ كل ألعاب PlaybookEnglishافتح اللعبة
قواعد البيانات · ضبط قاعدة البيانات تحت حمل حي

🛒 طريقة اللعب: Query Quest

أنتم مسؤولو قاعدة بيانات متجر إلكتروني إماراتي، والجمعة البيضاء على وشك أن تضرب قاعدة بياناتكم.

هدفك

اخدموا أكبر عدد من الاستعلامات الجيدة في الثانية خلال ثلاث جولات. ابنوا الفهارس التي تحتاجها أكثر الاستعلامات ازدحامًا، وأبقوا الكتابة رخيصة عندما تقفز عمليات الشراء، والتزموا بميزانية 12 ألف درهم، وحافظوا على صحة المخزون بمستوى العزل المناسب، وتعافوا بسرعة من بطاقة العطل في كل جولة.

يدير فريقكم قاعدة بيانات متجر واحد على خادم من 9 أنوية (9,000 ms من المعالج في الثانية). تواجه كل الفرق عبء العمل نفسه في كل جولة. يحوّل نموذج تكلفة الاستعلامات تصميمكم إلى حمل على المعالج، ثم يحوّل الحمل إلى استعلامات مُجابة في الوقت.

انضم خلال 30 ثانية

  1. امسح رمز QR على الشاشة الكبيرة بكاميرا هاتفك، أو افتح صفحة اللعبة واكتب الرمز المكوّن من 4 أحرف.
  2. اكتب اسمك الأول. لا تطبيق ولا حساب.
  3. انضم إلى فريق أو أنشئ فريقًا وسمِّه، ويحصل كل عضو على دور. في الوضع الفردي تدير فريق قاعدة البيانات خاصًا بك.
  4. إذا أُغلق هاتفك أو أُعيد تحميل الصفحة، افتحها من جديد: ستعود إلى مكانك نفسه.

أدوار الفريق

القائد
يدير نقاش الفريق ويرسل القرار النهائي. إذا توقف هاتف القائد يمكن لأي عضو أن يتولى الدور. في هذه اللعبة: تولَّ قائمة الفهارس: اربط كل فهرس باستعلام مزدحم، واحذف الفهارس التي لا يقرؤها أحد.
المحلل
مسؤول عن الأرقام وعن توقع الفريق لنتيجة الجولة. في هذه اللعبة: اضرب معدل كل استعلام في تكلفته لتجد الاستعلام الذي يستهلك أكبر قدر من المعالج.
أمين الصندوق
يراقب الميزانية والتكاليف قبل أن يلتزم الفريق. في هذه اللعبة: أبقِ الذاكرة المخبئية والفهارس والنسخ الاحتياطي ضمن 12 ألف درهم: كل ألف درهم زائدة تكلف 150 استعلامًا في الثانية.
مسؤول المخاطر والأخلاقيات
ينبه إلى الأضرار ويعترض قبل أن يلتزم الفريق. في هذه اللعبة: اختر مستوى العزل وخطة النسخ الاحتياطي: المخزون المباع بلا رصيد والبيانات المفقودة مسؤوليتك.
المتحدث
يتواصل مع الفرق الأخرى ويعرض قصة الفريق في جلسة النقاش. في هذه اللعبة: اشرح للقاعة أي استعلام كان عنق الزجاجة لديكم ولماذا عالجه اختياركم للفهرس.

الجولات الثلاث

في كل جولة تتوقع نتيجتك، وتتخذ قراراتك خلال نحو 8 دقائق، ثم يكشف النموذج ما حدث. وبين الجولات تظهر بطاقة حدث.

  1. 1

    الجولة 1 · موسم التصفح

    نحو 6,000 قراءة في الثانية ونحو 180 كتابة فقط. بطاقة العطل: تعطل قرص الخادم الرئيسي.

    انتبه إلى: استعلامكم الأغلى، واستغلال المعالج، ومدة توقفكم بسبب تعطل القرص.

  2. 2

    الجولة 2 · الجمعة البيضاء

    تقفز عمليات الشراء وتحديثات المخزون إلى 700 في الثانية لكل منها، و30% من كتابات المخزون تتزاحم على العروض الرائجة نفسها. بطاقة العطل: سكربت خاطئ يصفّر الأسعار.

    انتبه إلى: تكلفة الشراء مع كل فهرس على الطلبات، وتراجع نسبة الإصابة في الذاكرة المخبئية، والطلبات المباعة بلا مخزون حسب مستوى العزل.

  3. 3

    الجولة 3 · التقارير أثناء التخفيضات

    يصل جدول الطلبات إلى 2.8 مليون صف ويحدّث المديرون تقرير المبيعات حسب الفئة 40 مرة في الثانية. بطاقة العطل: انهيار الخادم الرئيسي وقت الذروة.

    انتبه إلى: هل أصبح ربط التقرير أكبر مستهلك للمعالج، وكيف غيّره الملخص المُجسَّد أو فهرس التاريخ.

قراراتك

ما الذي يفعله كل عنصر تحكم على هاتفك، وكيف تفكر فيه.

مستوى التطبيعكل جولةمُطبَّعة (3NF): صفحات المنتجات والتقارير تحتاج إلى ربط، والكتابة رخيصة. غير مُطبَّعة: صفحة المنتج تكلف 0.2 ms بلا فهرس مراجعات، لكن الشراء يكلف 1.5 ضعف، والمراجعة +1 ms، وتحديث السعر 4 أضعاف. 3NF مع ملخص مُجسَّد: التقرير يكلف 1 ms، وكل عملية شراء +0.6 ms.

عدم التطبيع يحرر خانة فهرس في الجولة 1، لكنه يؤلم في الجمعة البيضاء. الملخص المُجسَّد يؤتي ثماره حين يُشغَّل التقرير 40 مرة في الثانية.

الفهارس المراد بناؤهاكل جولةحتى 4 من 7 فهارس، 0.3 ألف درهم لكل منها. مع الفهرس تكلف القراءة 0.15 ms + الصفوف المطابقة × تكلفة الصف؛ ومن دونه مسح كامل بتكلفة 0.00004 ms لكل صف. كل فهرس يضيف 1.0 ms إلى كل إدراج أو تحديث على جدوله.

اضربوا المعدل في التكلفة لكل استعلام. مسح المراجعات وسجل العميل يكلف 40–112 ms من دون فهرس، فيهيمن على الحمل. الفهارس على الطلبات تبطئ كل عملية شراء.

حجم الذاكرة المخبئيةكل جولةمن 0 إلى 64 GB بسعر 0.12 ألف درهم لكل GB. ترتفع نسبة الإصابة مع الذاكرة ÷ (الذاكرة + نصف مجموعة العمل) وتنخفض كلما زادت نسبة الكتابات، لأن الكتابة تُبطل الصفحات المخزنة. الإصابة تكلف 0.05 ms.

تفيد الذاكرة المخبئية أكثر في الجولة 1 التي يغلب عليها القراءة. في الجمعة البيضاء تُبطلها الكتابات، فتشتري ذاكرة كبيرة فائدة أقل وتستهلك الميزانية.

مستوى العزلكل جولةالقراءة غير المُلتزَمة (الكتابة ×1.0، أكثر بيع بلا مخزون)، أو القراءة المُلتزَمة (×1.05)، أو القراءة القابلة للتكرار (×1.2، حالات شاذة نادرة)، أو التسلسلية (×1.4، بلا حالات شاذة، لكن الكتابات الرائجة تُلغى وتُعاد). الطلبات المباعة بلا مخزون تُرد قيمتها وتخفض الثقة.

تحت تزاحم شديد على العروض الرائجة، تبيع القراءة المُلتزَمة نحو 189 طلبًا بلا مخزون في الجولة 2. القراءة القابلة للتكرار حل وسط جيد؛ والتسلسلية تكلف وقت المعالج.

النسخ الاحتياطي والتماثلكل جولةبلا نسخ (مجاني)، أو نسخ ليلي (0.8 ألف درهم)، أو نسخة متماثلة فورية (3.5 ألف درهم)، أو نسخة متماثلة مع الاستعادة إلى نقطة زمنية (4.5 ألف درهم). تضيف النسخ المتماثلة حتى 3,000 ms/s من سعة القراءة وتتحول خلال دقائق. وحدها الاستعادة إلى نقطة زمنية تلغي تغييرًا خاطئًا.

النسخة المتماثلة تنسخ الأخطاء فورًا، فهي ليست نسخًا احتياطيًا. قارنوا سعة القراءة الإضافية بتكلفتها قبل زحمة الجمعة البيضاء.

ما تراه على هاتفك

هذه الجولة
القراءات والكتابات في الثانية، وحجم جدول الطلبات، ونسبة كتابات المخزون على العروض الرائجة نفسها، ومعالج الخادم، وميزانية 12 ألف درهم.
عبء العمل في هذه الجولة
كل فئة استعلام مع معدلها في الثانية والفهرس الذي يخدمها. تُظهر الكتابات الجدول الذي تغيّره، فترون أي الفهارس يجب أن تحدّثها.
صندوق الشيفرة
الجولة 1 تعرض دالة تكلفة البحث، والجولة 2 شيفرة الشراء بالقراءة ثم الكتابة التي قد تبيع بلا مخزون، والجولة 3 ربط تقرير المبيعات.
قاعدة بياناتك في الجولة الماضية
الاستعلامات الجيدة في الثانية، واستغلال المعالج، ونسبة الإصابة في الذاكرة المخبئية، والاستعلام الأغلى، والطلبات المباعة بلا مخزون، والتكلفة.
تنبيه
يظهر عندما يغيّر حدثٌ هذه الجولة: تعطل قرص، أو خلل أسعار، أو تضاعف الحركة، أو عرض خاطف، أو لوحة الحالة الجديدة، أو قواعد التدقيق.

كيف تُحتسب نقاطك

تستخدم كل ألعاب المكتبة لوحة النقاط نفسها. نتيجتك في كل جولة هي الاستعلامات الجيدة في الثانية (QPS)، وتضيف لوحة الصدارة المرونة والثقة.

النقاط = 100 × (0.5 × الأداء + 0.25 × المرونة + 0.25 × الثقة) + نقاط التوقع
الأداء: الاستعلامات الجيدة في الثانيةالاستعلامات الجيدة في الثانية: الاستعلامات المخدومة × النسبة المُجابة ضمن مستوى الخدمة (قرب 100% تحت 75% من المعالج، وتنخفض بسرعة فوق 85%)، ناقص واحد لكل طلب مبيع بلا مخزون، وناقص 150 عن كل ألف درهم فوق ميزانية 12 ألف درهم.
المرونة (0–100)يتحرك التعافي في كل جولة نصف المسافة نحو هدف بطاقة العطل. تعطل القرص: بلا نسخ 5، ليلي 40، متماثلة 85، استعادة لنقطة زمنية 88. سكربت الأسعار الخاطئ: بلا نسخ 10، ليلي 45، متماثلة 20، استعادة لنقطة زمنية 92 (أقل بـ 8 لغير المُطبَّعة). انهيار الخادم: بلا نسخ 30، ليلي 40، متماثلة أو استعادة لنقطة زمنية 90.
الثقة (0–100)تتحرك صحة البيانات نصف المسافة نحو 95 ناقص 0.15 لكل طلب مبيع بلا مخزون (حتى 55)، ناقص تباعد نسخ الأسعار في المخطط غير المُطبَّع، ناقص أضرار خلل الأسعار، وبعد التدقيق ناقص 10 للبيانات الشخصية المنسوخة و6 لغياب النسخ الاحتياطي.

الأداء هو مجموع الاستعلامات الجيدة في الثانية عبر الجولات، مُعايَرًا من الأدنى إلى الأعلى في القاعة. وقبل كل جولة تتوقع أيضًا «استعلاماتك الجيدة في الثانية في هذه الجولة»: إذا اقتربت من النتيجة تحصل على ما يصل إلى 10 نقاط إضافية، وإذا أخطأت بالكامل فلا نقاط. ويمكن للميسّر تغيير الأوزان قبل بدء اللعبة.

نصائح

  • اقرؤوا جدول عبء العمل على أنه المعدل × التكلفة. استعلام يُشغَّل 2,000 مرة في الثانية يحتاج إلى فهرس أكثر بكثير من استعلام يُشغَّل مرتين.
  • أربع خانات فهارس فقط: اختاروا ما يزيل أكبر عمليات المسح الكامل، ثم تحققوا مما يكلفه كل منها لكتاباتكم.
  • في الجمعة البيضاء جدول الطلبات كثيف الكتابة. كل فهرس إضافي على الطلبات يضيف 1.0 ms إلى 700 عملية شراء في الثانية.
  • أبقوا المعالج تحت نحو 75%. فوق 85% يدفع تأخر الطوابير كثيرًا من الاستعلامات خارج مستوى الخدمة.
  • القراءة القابلة للتكرار هي غالبًا النقطة المثلى تحت التزاحم: قليل من البيع بلا مخزون من دون إعادات التسلسلية.
  • خططوا النسخ الاحتياطي لبطاقات العطل: النسخة المتماثلة تعالج الانهيار، لكن وحدها الاستعادة إلى نقطة زمنية ترجع عن تغيير خاطئ.

أخطاء شائعة

  • ترك قائمة الفهارس فارغة أو اختيار فهارس لا يقرؤها أحد. من دونها يحتاج الخادم إلى نحو عشرة أضعاف معالجه.
  • شراء ذاكرة مخبئية بحجم 64 GB للجمعة البيضاء. الكتابات تُبطلها والتكلفة الإضافية تتجاوز الميزانية.
  • معاملة النسخة المتماثلة كنسخة احتياطية. عندما يضرب خلل الأسعار، تحمل النسخة المتماثلة الأسعار المصفّرة نفسها.
  • تجاهل العزل لأنه لا يغيّر السرعة كثيرًا. الطلبات المباعة بلا مخزون تكلف ردّ المبالغ والثقة.

مثال تطبيقي

في الجولة 1 يختار فريق مخطط 3NF، وفهارس على الفئة والاسم و reviews(product_id) و customer_id، وذاكرة مخبئية 8 GB، والقراءة المُلتزَمة، ونسخًا ليليًا. التكلفة 8.96 ألف درهم. يعمل المعالج عند 52%، فيخدم 6,078 من 6,082 استعلامًا في الثانية؛ وأكبر مستهلك للمعالج هو الترتيب حسب السعر بتكلفة 8 ms لكل مسح. يُباع 3 طلبات بلا مخزون، وتستغرق استعادة القرص المعطل 180 دقيقة. أما فريق بلا فهارس فيحتاج إلى 1,011% من معالجه ولا يخدم إلا 317 استعلامًا في الثانية.

صدمات قد تحدث

يسحب الميسّر بطاقة حدث واحدة قبل الجولتين 2 و3، وتغيّر السوق ابتداءً من تلك الجولة.

النموذج وراء اللعبة

نموذج تكلفة الاستعلام مع انتقائية الفهرس وتضخم الكتابة. يحوّل الفهرس المسح الكامل للجدول إلى بحث قصير في شجرة B-tree، لكن كل إدراج أو تحديث على ذلك الجدول يجب أن يحدّث الفهرس أيضًا. للخادم ميزانية معالجة ثابتة: عندما يتجاوز الاستغلال 75% تكسر أزمنة الاستجابة مستوى الخدمة وتقل الاستعلامات الجيدة.

تكلفة القراءة = 0.15 + الصفوف المطابقة × تكلفة الصف مع فهرس، وإلا 0.00004 ms × صفوف الجدول ؛ تكلفة الكتابة = الأساس + 1.0 ms × عدد الفهارس على ذلك الجدول ؛ ρ = Σ λ·التكلفة ÷ 9,000 ms/s ؛ الاستعلامات الجيدة في الثانية = المخدومة × SLA(ρ) − الطلبات المباعة بلا مخزون − 150 × كل ألف درهم فوق الميزانية
الفهرس
شجرة B-tree على عمود تجد الصفوف المطابقة من دون قراءة الجدول كله.
المسح الكامل للجدول
قراءة كل صف للإجابة عن استعلام. هنا 0.00004 ms لكل صف، أي 80 ms لمليوني طلب.
تضخم الكتابة
عمل إضافي لكل كتابة: كل فهرس على الجدول يجب تحديثه مع كل إدراج أو تحديث.
التطبيع (3NF)
تخزين كل معلومة مرة واحدة مرتبطة بالمفاتيح. كتابة آمنة ورخيصة؛ والقراءة تحتاج إلى ربط.
العرض المُجسَّد
نتيجة استعلام محسوبة مسبقًا ومخزنة، وهنا ملخص مبيعات يُحدَّث مع كل عملية شراء.
مستوى العزل
مدى صرامة الفصل بين المعاملات المتزامنة، من القراءة غير المُلتزَمة إلى التسلسلية.
التحديث المفقود
معاملتان تقرآن القيمة نفسها وتكتبان معًا فيضيع أحد التغييرين، مثل بيع القطعة نفسها مرتين.
نسبة الإصابة في الذاكرة المخبئية
نسبة القراءات المُجابة من الذاكرة بدل قاعدة البيانات. الكتابات تُبطل البيانات المخزنة.
RTO و RPO
هدف زمن التعافي (مدة التوقف) وهدف نقطة التعافي (مقدار البيانات المفقودة).

للميسّرين 3 جولات · نحو 50 دقيقة

التحضير

  • وضع الفرق مع 3–5 أعضاء لكل فريق هو الأفضل؛ ويصلح الوضع الفردي أيضًا لأن هناك خمسة حقول فقط.
  • خصّص 8 دقائق لكل جولة؛ وقد تحتاج الجولة 1 إلى 10 دقائق بينما تقرأ الفرق جدول عبء العمل.
  • تُكمل الروبوتات العدد حتى 3 قواعد بيانات. تختار فهارس معقولة لكنها غير مثالية وتنوّع خيارات العزل والنسخ الاحتياطي.
  • قبل الجولة 1، اكتب على السبورة: التكلفة = المعدل × ms لكل استعلام، واحسبوا معًا صفًا واحدًا من جدول عبء العمل.

أوضاع اللعب

فريق
القائد يتولى الفهارس، والمحلل يحدد المخطط، وأمين الخزينة يحدد حجم الذاكرة المخبئية مقابل الميزانية، ومسؤول المخاطر يختار العزل والنسخ الاحتياطي، والمتحدث يشرح الاستعلام الذي كان عنق الزجاجة.
فردي
يدير كل طالب قاعدة بيانات كاملة. مناسب للتحقق من أن كل طالب يستطيع قراءة المعدل × التكلفة من جدول عبء العمل.
مختلط
يدير كل طالب قاعدة بيانات ونتيجة الفريق هي المتوسط. اطلب من أعضاء الفريق مقارنة قوائم الفهارس قبل الإرسال.

جدول الجلسة

قبل المحاضرةافتح لوحة الميسّر على حاسوب جهاز العرض، واختر وضع اللعب من الإعدادات، وتأكد من ظهور رمز QR.
0–5 دقيقةينضم الطلاب بمسح الرمز. اقرأ الموقف بصوت عالٍ أثناء تكوين الفرق، ونبّههم إلى أدوارهم على الهواتف.
5–15 دقيقةالجولة 1: 8 دقائق للقرار والتوقع، ثم إعلان النتائج. اقرأ العنوان الرئيسي وسطرًا لافتًا من نتائج أحد الفرق.
بين الجولاتاسحب بطاقة الحدث أو اخترها، وامنح الفرق 30 ثانية لقراءتها قبل فتح الجولة التالية.
15–25 دقيقةالجولة 2، ثم إعلان النتائج.
27–37 دقيقةالجولة 3، ثم النتائج النهائية: منصة الفائزين والجوائز ومخطط النقاط.
آخر 12 دقيقةناقش الأسئلة أدناه، ثم افتح التأملات (4 دقائق)، ونزّل ملف CSV.

ما يحدث عادة

  • فرق بقائمة فهارس فارغة أو عشوائية في الجولة 1. الطلب على معالجها يتجاوز 100% بكثير.
  • فرق تُبقي فهرس التاريخ أو الحالة على الطلبات خلال الجمعة البيضاء. أشر إلى سطر تكلفة الشراء لديها.
  • اختيار القراءة غير المُلتزَمة من أجل السرعة. اعرض الطلبات المباعة بلا مخزون في جدول القاعة.
  • شراء النسخ المتماثلة على أنها نسخ احتياطية. بطاقة العطل في الجولة 2 تُظهر أن النسخ المتماثلة تنسخ خلل الأسعار.

أسئلة النقاش

  1. أي استعلام كان الأغلى لديكم في الجولة 1، وأي فهرس عالجه؟ وكم كلّفكم الفهرس نفسه في الجمعة البيضاء؟
  2. هل باع أي فريق مخزونًا غير موجود؟ تتبّعوا شيفرة القراءة ثم الكتابة وبيّنوا أين يمكن لعمليتَي شراء أن تريا القطعة الأخيرة معًا.
  3. حمتكم النسخة المتماثلة من تعطل القرص لكنها لم تحمكم من خلل الأسعار. لماذا لا تُعد النسخة المتماثلة نسخًا احتياطيًا؟

أسئلة متابعة

  • أي فهرس واحد أزال أكبر قدر من حمل المعالج لديكم، وكيف حسبتم ذلك؟
  • لماذا انخفضت نسبة الإصابة في الذاكرة المخبئية في الجولة 2 مع أن حجمها لم يتغير؟
  • تتبّعوا شيفرة الشراء: عند أي سطر يمكن لمشتريَين أن يريا الهاتف الأخير معًا؟
  • متى يستحق المخطط غير المُطبَّع تكلفة كتابته؟
  • ما الفرق بين النسخة المتماثلة والنسخة الاحتياطية، في جملة واحدة؟
  • لو شُغّل التقرير 400 مرة في الثانية، ماذا ستغيّرون؟

التأمل والأدلة

اكتب مذكرة تصميم قصيرة للمدير التقني للمتجر: أي مخطط وفهارس وحجم ذاكرة مخبئية ومستوى عزل وخطة نسخ احتياطي ستشغّلها في الجمعة البيضاء القادمة، ولماذا. استخدم أرقامًا من جولاتك: الاستغلال، ونسبة الإصابة في الذاكرة المخبئية، والطلبات المباعة بلا مخزون، وزمن التعافي.

يكتب الطلاب 80–120 كلمة على هواتفهم. ويصدّر تبويب البيانات كل قرار ونتيجة وتوقع وتأمل في ملف CSV واحد للتقييم.

أدوات لوحة التحكم

  • إيقاف المؤقت مؤقتًا أو تمديده أو ضبطه، والرجوع جولة إلى الوراء
  • سحب بطاقة الحدث أو اختيارها أو كتابتها
  • نقل اللاعبين وتعيين القائد وإضافة لاعبين من الحاسوب
  • منح نقاط أو خصمها مع سبب يظهر على الهواتف
  • إرسال رسالة إلى كل الشاشات، وإخفاء الأسماء، وإبراز فريق
  • اختصارات: P وضع العرض، Q رمز الانضمام