ما هي الفيوز (Views) في SQL؟

الفيوز في SQL هي عبارة عن Virtual Table أو جدول وهمي يتم إنشاؤه بناءً على استعلام (Query) محدد باستخدام جملة SELECT. هو مش بيخزن Data انما هو مجرد بيخزن جملة Select ولما بناديها بينفذها الفكرة الأساسية من الفيو هي توفير وسيلة مبسطة ومرنة للتعامل مع البيانات دون الحاجة لتكرار نفس الأكواد أو تنفيذ استعلامات معقدة في كل مرة.


لماذا نستخدم الفيوز؟

  1. سهولة الصيانة:
    • إذا كنت تستخدم نفس الاستعلام (Query) في أكثر من مكان، فإن تعديل أي شيء يتطلب تغيير الكود في جميع الأجهزة أو البرامج المرتبطة.
    • باستخدام الفيوز، يتم التعديل مرة واحدة فقط على السيرفر.
  2. إعادة الاستخدام:
    • الفيوز تعمل كاختصار للاستعلامات المعقدة.
    • بدل كتابة نفس الكود في كل مرة، يمكنك استخدام الفيو كأنها جدول جاهز.
  3. تحسين الأمان:
    • من خلال الفيوز، يمكن عرض جزء معين من البيانات للمستخدمين بدون الكشف عن الجدول الأساسي.
    • مثلًا، يمكن إخفاء أعمدة حساسة كالأجور أو البيانات الشخصية.
  4. إخفاء التعقيد:
    • تساعد الفيوز في إخفاء الاستعلامات المعقدة عن المستخدمين.
    • كل ما يحتاجونه هو استدعاء الفيو، وستقوم الفيو بتنفيذ التفاصيل المعقدة بالنيابة عنهم.

مميزات الفيوز:

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

كيفية عمل الفيوز؟

  1. يتم كتابة استعلام SQL يحتوي على جملة SELECT.

  2. يتم حفظ الاستعلام كـ View باستخدام الأمر:

    CREATE VIEW view_name AS
    SELECT column1, column2
    FROM table_name
    WHERE condition;
  3. لاستدعاء الفيو، يتم استخدام نفس الطريقة لاستدعاء الجداول العادية:

    SELECT * FROM view_name;

أمثلة على استخدام الفيوز:

1. عرض بيانات مختارة:

بدلاً من عرض كل الأعمدة في الجدول الأصلي، يمكن إنشاء View لعرض أعمدة معينة فقط:

CREATE VIEW employee_view AS
SELECT employee_id, employee_name, department
FROM employees
WHERE active = 1;

2. تبسيط الاستعلامات المعقدة:

إذا كان لديك استعلام يحتوي على جمل JOIN متعددة أو شروط معقدة، يمكنك إنشاء View لتسهيل الأمر:

CREATE VIEW sales_summary AS
SELECT product_id, SUM(sales) AS total_sales
FROM sales
GROUP BY product_id;

تطبيق الفيوز في البرامج المرتبطة بالسيرفر:

  • البرامج المثبتة على أجهزة المستخدمين تقوم بإرسال Queries للسيرفر للحصول على البيانات.
  • عند استخدام الفيوز، يتم إرسال استعلام مبسط للسيرفر الذي ينفذ جملة SELECT الخاصة بالفيو ويرجع النتيجة مباشرة.
  • إذا احتاجت الشركة لتعديل في المنطق (Logic) أو إضافة شروط جديدة، يتم تعديل الفيو فقط، دون الحاجة لتحديث كل الأجهزة أو البرامج.

متى لا تكون الفيوز الحل الأمثل؟

  • إذا كنت تحتاج استعلامات ديناميكية تعتمد على Parameters.
  • عند الحاجة إلى أداء عالٍ جدًا لأن بعض الفيوز، خاصةً المعقدة، قد تؤثر على سرعة الاستعلام.

الخلاصة:

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