إس كيو إل SQL

إس كيو إل هي اللغة التي تسأل بها البرامج قاعدة البيانات، ولهذا فإن كل تقرير مبيعات تقرؤه على الشاشة هو سؤال بهذه اللغة يُطرح نيابة عنك.

يُعرف أيضًا بـ لغة الاستعلام البنيوية لغة قواعد البيانات استعلامات SQL

التعريف

إس كيو إل هي اللغة التي تُسأل بها قاعدة البيانات، فأنت تكتب السؤال وهي تتكفل بإيجاد الإجابة. وصاحب المحل لا يكتبها بنفسه أبدًا، لكن كل تقرير مبيعات يظهر على الشاشة هو في أصله سؤال بهذه اللغة يطرحه البرنامج نيابة عنه.

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

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

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

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

أسئلة حول إس كيو إل

هل أحتاج إلى تعلم إس كيو إل لأدير عملي؟
لا. موظفوك لن يروها أبدًا. لكن يستحق أن تعرف الاسم، لأنك حين تطلب تقريرًا جديدًا، فإن ما يُكتب لإنتاجه هو إس كيو إل، وهذا عمل صغير في الغالب.
هل إس كيو إل هي نفسها قاعدة البيانات؟
لا. إس كيو إل هي اللغة التي تطرح بها الأسئلة. أما MySQL وPostgreSQL وSQL Server فهي قواعد بيانات تفهم تلك اللغة. لغة واحدة ومنتجات عدة.
ما هو حقن إس كيو إل وهل يجب أن أقلق منه؟
هو أن يكتب شخص غريب في نموذج ما يغيّر السؤال الذي يطرحه موقعك على قاعدة البيانات. والكود المكتوب جيدًا يجعل ذلك مستحيلًا. فهي عادة في البرمجة لا منتج يُشترى.
هل أستطيع أخذ بياناتي معي إذا غيّرت المورّد؟
غالبًا نعم، لأن قاعدة بيانات إس كيو إل تُصدَّر بسهولة. اطلب نموذجًا من التصدير كتابةً قبل التوقيع، لا بعد أن تسوء العلاقة.

ما زلت غير متأكد كيف ينطبق هذا على مشروعك؟

أخبرنا بما تبنيه وسنجيبك بلغة واضحة.