قد يكون الاستعلام المحوَّل صالحًا نحويًا، ومع ذلك يكون خاطئًا.
وهذا أحد أهم الدروس في ترحيل قواعد البيانات. فقد تقبل محركات قواعد البيانات المختلفة SQL متشابهًا، مع إنتاج نتائج مختلفة بسبب التعامل مع NULL، وقواعد التواريخ، وأنواع البيانات، والتقريب، والفرز، أو التحويلات الضمنية.
استخدم قائمة التحقق التالية قبل اعتبار SQL المحوَّل جاهزًا للإنتاج.
1. تأكد من الغرض من الاستعلام
دوّن ما يُتوقع أن ينجزه الاستعلام المصدر.
هل يحسب الإيرادات؟ يعثر على الفواتير المتأخرة؟ يجهّز لوحة معلومات؟ يحدّث حالة الحساب؟ تمنح نتيجة الأعمال المتوقعة المراجعين شيئًا ملموسًا للحفاظ عليه أثناء التحويل.
2. احفظ نتيجة مصدر تمثيلية
شغّل الاستعلام الأصلي على بيانات تتضمن حالات عادية وغير معتادة.
تضمّن:
• قيم NULL
• السلاسل الفارغة
• الأرقام الصفرية والسالبة
• التواريخ الحدّية
• السجلات المكررة
• القيم الرقمية الكبيرة
• النصوص غير ASCII عند الحاجة
احفظ النتيجة حتى يمكن مقارنتها بقاعدة البيانات الهدف.
3. قارن أعداد الصفوف
ابدأ بأبسط مؤشر. إذا أعاد الاستعلام المصدر 2,410 صفوف وأعاد الهدف 2,397 صفًا، فقد حدث تغيير ما.
غالبًا ما تشير اختلافات أعداد الصفوف إلى سلوك الربط، أو التصفية، أو مقارنات NULL، أو حدود التواريخ، أو التعامل مع التكرارات.
4. تحقّق من القيم المحسوبة
قارن الإجماليات، والمتوسطات، والنسب المئوية، والنتائج المجمّعة.
انتبه بشكل خاص إلى القسمة الصحيحة، والدقة العشرية، والتقريب، وتجاوز السعة، والتحويل الضمني للنوع. قد تنتج هذه الاختلافات أخطاء صغيرة تصبح مؤثرة عبر مجموعات البيانات الكبيرة.
5. راجع سلوك NULL والسلاسل الفارغة
لا تتعامل قواعد البيانات دائمًا مع قيم NULL والسلاسل الفارغة بالطريقة نفسها.
تحقق من التعبيرات، والضم، والمقارنات، والدوال التجميعية، والمنطق الشرطي. قد يعمل الاستعلام بشكل صحيح، مع استبعاد القيم أو تغييرها بصمت.
6. اختبر منطق التاريخ والوقت
تُعدّ العمليات الحسابية على التواريخ من أكثر مواضع المشكلات شيوعًا أثناء الترحيل.
تحقق من:
• الفواصل الزمنية المضافة أو المطروحة
• التعامل مع المناطق الزمنية
• حدود الأشهر والسنوات
• ترقيم الأسابيع
• اقتطاع التواريخ
• سلوك التاريخ الحالي والطابع الزمني الحالي
استخدم تواريخ اختبار ثابتة متى أمكن، حتى تظل المقارنة قابلة للتكرار.
7. تأكد من الفرز ومقارنة النصوص
يمكن أن يؤثر ترتيب التوافق وحساسية حالة الأحرف في ORDER BY، وفحوصات المساواة، والتجميع، واكتشاف التكرارات.
اختبر النصوص ذات الأحرف الكبيرة والصغيرة المختلفة، واللهجات، والمسافات البيضاء عندما تكون هذه القيم موجودة في مجموعة البيانات الفعلية.
8. افحص الميزات الخاصة بقاعدة البيانات
ألقِ نظرة دقيقة على الدوال الخاصة بالمورّد، والجداول المؤقتة، وSQL الإجرائي، وSQL الديناميكي، وعمليات JSON، وأنواع البيانات غير المعتادة.
قد لا تتوفر ترجمة آمنة واحدًا لواحد لهذه المجالات، وغالبًا ما تتطلب من مطوّر أو اختصاصي قواعد بيانات اتخاذ القرار النهائي.
9. راجع التشخيصات بدلًا من تجاهلها
لا يعني التحذير بالضرورة فشل التحويل. إنه إشارة إلى أن SQL المترجم يستحق الاهتمام.
استخدم التشخيصات كقائمة انتظار للمراجعة. عالج الفروقات السلوكية الأعلى خطورة قبل تخصيص الوقت للتغييرات الشكلية.
10. اختبر قبل النشر
شغّل SQL المحوَّل في بيئة آمنة باستخدام بيانات تمثيلية. قارن المخرجات واختبر التقارير، والتطبيقات، والمهام المجدولة المعتمدة عليه.
يجب أن يكون سير العمل النهائي:
تحويل
مراجعة
مقارنة
اختبار
نشر
لا تُقاس جودة التحويل بصحة الصياغة فقط، بل بمدى موثوقية حفاظ SQL الهدف على معنى المصدر.