ملاحظات ختامية وأسئلة تحدٍّ
ملاحظات ختامية
شكرًا لبقائك معنا حتى النهاية! آمل أن تكون القراءة ممتعة ومثيرة للتفكير.
في هذه المرحلة، غطّينا معظم أوامر SQL والدوال المهمة، لكنني آمل أن تكون أهم المكاسب هي التقنيات وقواعد التفكير في الاستعلامات (queries). ومن أهمها:
- مقارنة شكل الجداول المتاحة بالنتيجة المرغوبة لتقرير أي تجميع نقطع.
- فحص موضع المعلومات التي نحتاجها. هل هي في صف مجاور؟ أم في مجموعة؟ أم في مجموعة البيانات كلها؟
- تفسير الاستعلامات في البنية المنطقية الصحيحة. على سبيل المثال، النظر إلى العبارات الشرطية على أنها أساسًا صواب أو خطأ؛ والنظر إلى
<table1> JOIN <table2> ON ...كجدول ضخم واحد.
وإذا نظرنا إلى الأمام، فمن المفيد على الأرجح، لإكمال تعليمك في SQL، أن تطّلع على دوال النافذة (window functions) والتعبيرات الجدولية الشائعة (common table expressions، أو CTE). ويمكنك محاكاة سلوكها بالتقنيات التي تعلمتها هنا، لكنها تسهّل الحياة كثيرًا وتعرّفك بنموذج جديد قيّم. وقد أغفلت هذين المفهومين لأن SQLite لم تكن تدعم دوال النافذة وقت الكتابة، وأردت تجنّب تعقيد قاعدة بيانات ولهجة SQL جديدتين.
وحتى الآن، لم نتعلم سوى استهلاك البيانات (أي الاستعلام عنها). وهناك مجال آخر كامل في SQL لمعالجة البيانات. ويتناول إجراءات مثل إنشاء الجداول وإدخال البيانات وحذفها. وقد يكون فهم هذه المفاهيم مفيدًا حتى إن كنت لا تدير قواعد البيانات، لأنه يساعدك في فهم أمور منها سبب بناء الجداول بالطريقة التي هي عليها.
والأهم من ذلك، ما زلت بحاجة إلى كثير من التدريب لتصبح فعّالًا في مشكلات العالم الحقيقي. ويقدّم القسم التالي بعض التمارين، لكن الصعوبة تزداد بحدّة. وربما تريد أن تخرج إلى العالم وتتدرّب على ما غطّيناه حتى الآن ثم تعود عندما تكون مستعدًا.
أسئلة التحدي
صُمّمت تمارين الفصول السابقة لتقليل التعقيد وتهيئة بيئة حاضنة. أما هذا الفصل فيمثّل الحد الفاصل مع عالم مسائل SQL المتوحش. والفكرة هنا هي التعلّم بالنار — فالأسئلة محسّنة للمنفعة لا لسهولة التعلّم. وقد يجد حتى الكتّاب المخضرمون في SQL صعوبة؛ وفي هذه الصعوبة قيمة كبيرة.
دعوة للمسائل
المسائل الجيدة تصنع درسًا تعليميًا أو تفسده. وإن كانت لديك فكرة لمسألة أو قسم جديد، يسعدني مساعدتك في نشره هنا مع نسبة الفضل كاملة إليك. راسلني على zichongkao@gmail.com أو أرسل طلب سحب. وتذكّر أن المسائل الجيدة ليست بالضرورة صعبة — إنها تعرض تقنيات لها تطبيقات واسعة النطاق.
مجموعة بيانات المشاركة في رعاية مشاريع مجلس الشيوخ
من إعداد: Kao
في هذا القسم، نقدّم مجموعة بيانات جديدة من الدورة 114 للكونغرس (2015-2016) جمعها James Fowler وآخرون. وقد أعدت معالجة مجموعة البيانات لتتيح لنا دراسة علاقات المشاركة في رعاية مشاريع القوانين بين أعضاء مجلس الشيوخ.
يُسمى عضو مجلس الشيوخ الذي يقدّم مشروع القانون "الراعي" (sponsor). ويمكن لأعضاء آخرين إظهار دعمهم بالانضمام إلى رعاية مشروع القانون. ويُسمى المنضمون إلى الرعاية وقت التقديم "الرعاة الأصليين" (المصدر). ويوضح كل صف (row) في الجدول مشروع القانون، والراعي، وأحد الرعاة الأصليين، والولايتين التي يمثلها عضوا المجلس. ولاحظ أنه يمكن أن يكون لمشروع القانون أكثر من راعٍ مشارك.