طبقة تجريد قاعدة البيانات

طبقة تجريد قواعد البيانات ( DBAL [ 1 ] أو DAL ) هي واجهة برمجة تطبيقات توحد الاتصال بين تطبيق الحاسوب وقواعد البيانات مثل SQL Server و IBM Db2 و MySQL و PostgreSQL و Oracle و SQLite . تقليديًا، توفر جميع شركات قواعد البيانات واجهاتها الخاصة المصممة خصيصًا لمنتجاتها. ويقع على عاتق مبرمج التطبيق كتابة التعليمات البرمجية لواجهات قواعد البيانات التي سيدعمها التطبيق. تقلل طبقات تجريد قواعد البيانات من حجم العمل من خلال توفير واجهة برمجة تطبيقات متسقة للمطور، وإخفاء تفاصيل قاعدة البيانات خلف هذه الواجهة قدر الإمكان. توجد العديد من طبقات التجريد بواجهات مختلفة في لغات برمجة متعددة. إذا كان التطبيق يحتوي على مثل هذه الطبقة مدمجة، يُطلق عليه اسم " تطبيق مستقل عن قاعدة البيانات" . [ 2 ]

مستويات التجريد في قواعد البيانات

المستوى البدني (أدنى مستوى)

يتصل المستوى الأدنى بقاعدة البيانات وينفذ العمليات الفعلية التي يطلبها المستخدمون. في هذا المستوى، تُترجم التعليمات المفاهيمية إلى تعليمات متعددة تفهمها قاعدة البيانات. ويُمكّن تنفيذ هذه التعليمات بالترتيب الصحيح طبقة الوصول إلى البيانات (DAL) من تنفيذ التعليمات المفاهيمية.

قد يستخدم تنفيذ الطبقة المادية واجهات برمجة التطبيقات الخاصة بقاعدة البيانات أو يستخدم تقنية الوصول إلى قاعدة البيانات القياسية للغة الأساسية وإصدار SQL الخاص بقاعدة البيانات.

يُعدّ تنفيذ أنواع البيانات والعمليات الأكثر تحديدًا لقاعدة البيانات على هذا المستوى.

المستوى المفاهيمي أو المنطقي (المستوى المتوسط ​​أو المستوى الأعلى التالي)

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

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

مستوى الرؤية الخارجي أو مستوى الرؤية

يُتاح المستوى الخارجي للمستخدمين والمطورين، ويوفر نمطًا متسقًا لتنفيذ عمليات قواعد البيانات. [ 3 ] تُمثَّل عمليات قواعد البيانات بشكل غير دقيق باستخدام لغة SQL أو حتى الوصول إلى قاعدة البيانات على هذا المستوى.

ينبغي معاملة كل قاعدة بيانات على قدم المساواة على هذا المستوى دون أي فرق واضح على الرغم من اختلاف أنواع البيانات المادية والعمليات.

تجريد قاعدة البيانات في واجهة برمجة التطبيقات

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

تُستخدم طبقات تجريد قواعد البيانات على نطاق واسع في لغات البرمجة كائنية التوجه ، وهي مشابهة لطبقات التجريد على مستوى واجهة برمجة التطبيقات (API). في لغة كائنية التوجه مثل C++ أو Java، يمكن تمثيل قاعدة البيانات من خلال كائن ، حيث تمثل أساليبه وأعضاؤه (أو ما يعادلها في لغات البرمجة الأخرى) وظائف قاعدة البيانات المختلفة. كما تشترك هذه الطبقات مع واجهات برمجة التطبيقات في بعض المزايا والعيوب.

التجريد على مستوى اللغة

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

بدلاً من ذلك، توجد أغلفة رقيقة، توصف غالبًا بأنها طبقات تجريد خفيفة الوزن ، مثل OpenDBX [ 4 ] وVibeCode DB وlibzdb. [ 5 ] وأخيرًا، قد تقوم المشاريع الكبيرة بتطوير مكتباتها الخاصة، مثل libgda [ 6 ] لـ GNOME على سبيل المثال .

الحجج

مؤيد

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

ضد ذلك

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

انظر أيضاً

مراجع

  1. أمبلر، تيم؛ كلاود، نيكولاس (2015). أطر عمل جافا سكريبت لتطوير الويب الحديث . أبريس. ص  346. ISBN 978-1-4842-0662-1.
  2. "ما هو غير المرتبط بقاعدة البيانات؟ - تعريف من موقع WhatIs.com" .
  3. "مستويات التجريد" .
  4. "OpenDBX" . linuxnetworks.de . 24 يونيو 2012. تم الاطلاع عليه بتاريخ 26 يوليو 2018 .
  5. "Libzdb" . tildeslash.com . 2018. تم الاطلاع عليه بتاريخ 26 يوليو 2018 .
  6. "GNOME-DB" . 12 يونيو 2015. تم الاسترجاع في 26 يوليو 2018. مكتبة Libgda [...] هي في الأساس قاعدة بيانات وطبقة تجريد بيانات، وتتضمن امتداد واجهة مستخدم قائم على GTK+، وبعض الأدوات الرسومية.