بيركلي دي بي

بيركلي دي بي ( BDB ) هي مكتبة برمجية لقواعد البيانات المدمجة ، تُستخدم لتخزين بيانات المفتاح/القيمة ، ولها أهمية تاريخية في مجال البرمجيات مفتوحة المصدر . كُتبت بيركلي دي بي بلغة C مع واجهات برمجة تطبيقات (API) للعديد من لغات البرمجة الأخرى . تخزن BDB أزواج المفاتيح/البيانات العشوائية كمصفوفات بايت، وتدعم عناصر بيانات متعددة لمفتاح واحد. بيركلي دي بي ليست قاعدة بيانات علائقية ، [ 2 ] على الرغم من أنها تتضمن ميزات قواعد البيانات ، مثل معاملات قواعد البيانات ، والتحكم في التزامن متعدد الإصدارات ، وتسجيل الكتابة المسبقة . تعمل BDB على مجموعة واسعة من أنظمة التشغيل ، بما في ذلك معظم أنظمة يونكس وويندوز ، وأنظمة التشغيل في الوقت الحقيقي .

تولت شركة Sleepycat Software الدعم والتطوير التجاري لمكتبة BDB من عام 1996 إلى عام 2006. استحوذت شركة Oracle Corporation على Sleepycat Software في فبراير 2006، واستمرت في تطوير وبيع مكتبة C Berkeley DB. في عام 2013، أعادت Oracle ترخيص BDB بموجب رخصة AGPL [ 3 ] [ 4 ] وأصدرت إصدارات جديدة حتى مايو 2020. وتواصل Bloomberg LP تطوير نسخة معدلة من إصدار 2013 من BDB ضمن قاعدة بيانات Comdb2 الخاصة بها، بموجب رخصة Sleepycat الأصلية .

أصل

نشأت قاعدة بيانات بيركلي (Berkeley DB) في جامعة كاليفورنيا، بيركلي، كجزء من نظام التشغيل بي إس دي (BSD )، وهو نسخة بيركلي من نظام التشغيل يونكس . بعد إصدار 4.3BSD (1986)، سعى مطورو بي إس دي إلى إزالة أو استبدال جميع التعليمات البرمجية التي تعود أصولها إلى نظام يونكس الأصلي لشركة AT&T، والذي اشتُق منه بي إس دي. وللقيام بذلك، احتاجوا إلى إعادة كتابة حزمة قاعدة بيانات يونكس dbm . [ 5 ] أنشأ سيلتزر ويغيت [ 6 ] قاعدة بيانات جديدة، غير مقيدة بأي براءات اختراع لشركة AT&T: جدول تجزئة على القرص تفوق في الأداء على مكتبات dbm الموجودة . صدرت قاعدة بيانات بيركلي لأول مرة في عام 1991، ثم أُدرجت لاحقًا مع إصدار 4.4BSD. [ 5 ] في عام 1996، طلبت نتسكيب من مطوري مكتبة Berkeley DB تحسينها وتوسيعها، وكانت حينها في الإصدار 1.86، لتلبية متطلبات نتسكيب لخادم LDAP [ 7 ] ولاستخدامها في متصفح نتسكيب . أدى هذا الطلب إلى إنشاء شركة Sleepycat Software ، التي استحوذت عليها شركة أوراكل في فبراير 2006. [ 8 ]

ركزت إصدارات Berkeley DB 1.x على إدارة تخزين بيانات المفتاح/القيمة، ويُشار إليها باسم "مخزن البيانات" (DS). أضافت إصدارات 2.x نظام قفل يُتيح الوصول المتزامن إلى البيانات، وهو ما يُعرف باسم "مخزن البيانات المتزامن" (CDS). أضافت إصدارات 3.x نظام تسجيل للمعاملات والاسترداد، يُسمى "مخزن بيانات المعاملات" (TDS). أضافت إصدارات 4.x إمكانية نسخ سجلات المعاملات وإنشاء قاعدة بيانات موزعة عالية التوفر ذات نسخة رئيسية واحدة ونسخ متعددة. تُسمى هذه مجموعة ميزات "التوافر العالي" (HA). أدى تطور Berkeley DB أحيانًا إلى تغييرات طفيفة في واجهة برمجة التطبيقات (API) أو تنسيق سجلات المعاملات، ولكن نادرًا ما تغيرت تنسيقات قواعد البيانات. يدعم Berkeley DB HA التحديثات عبر الإنترنت من إصدار إلى آخر من خلال الحفاظ على إمكانية قراءة وتطبيق سجلات المعاملات الخاصة بالإصدار السابق.

ابتداءً من الإصدار 6.0.21 (Oracle 12c)، أصبحت جميع منتجات Berkeley DB مرخصة بموجب رخصة GNU AGPL . [ 9 ] [ 10 ] سابقًا، كان يتم إعادة توزيع Berkeley DB بموجب رخصة BSD ذات الأربعة بنود (قبل الإصدار 2.0)، ورخصة Sleepycat العامة، وهي رخصة مفتوحة المصدر معتمدة من مبادرة المصادر المفتوحة (OSI) ورخصة برمجيات حرة معتمدة من مؤسسة البرمجيات الحرة (FSF ). [ 11 ] [ 12 ] يأتي المنتج مزودًا بشفرة المصدر الكاملة، وبرنامج بناء، ومجموعة اختبارات، ووثائق. وقد أدت هذه الميزة الشاملة، إلى جانب شروط الترخيص، إلى استخدامه في العديد من البرامج الحرة والمفتوحة المصدر . أما أولئك الذين لا يرغبون في الالتزام بشروط رخصة GNU AGPL، أو يستخدمون إصدارًا أقدم مرخصًا برخصة Sleepycat العامة، فيمكنهم شراء رخصة ملكية أخرى لإعادة التوزيع من شركة Oracle . تُعرف هذه التقنية بالترخيص المزدوج .

تتضمن قاعدة بيانات بيركلي واجهات توافق لبعض مكتبات قواعد بيانات يونكس التاريخية: dbm و ndbm و hsearch ( مكتبة System V و POSIX لإنشاء جداول تجزئة في الذاكرة ). [ 13 ]

بنيان

يتميز نظام Berkeley DB ببنية أبسط بكثير من أنظمة إدارة قواعد البيانات العلائقية . ومثل SQLite و LMDB ، فهو لا يعتمد على نموذج الخادم/العميل ، ولا يدعم الوصول إلى الشبكة ، حيث تصل البرامج إلى قاعدة البيانات باستخدام استدعاءات واجهة برمجة التطبيقات (API) داخل العملية . أضافت أوراكل دعمًا للغة SQL في الإصدار 11g R2 استنادًا إلى واجهة برمجة تطبيقات SQLite الشائعة، وذلك بتضمين نسخة من SQLite في Berkeley DB (حيث يستخدم Berkeley DB للتخزين). [ 14 ] 

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

يدعم Berkeley DB ميزات قواعد البيانات مثل معاملات ACID ، والقفل الدقيق ، والنسخ الاحتياطي السريع ، والتكرار .

استخدام شركة أوراكل لاسم "Berkeley DB"

تستخدم شركة أوراكل اسم "Berkeley DB" لثلاثة منتجات مختلفة، واحد منها فقط هو BDB: [ 15 ]

  1. مكتبة قواعد البيانات Berkeley DB، وهي مكتبة C التي تتناولها هذه المقالة
  2. Berkeley DB Java Edition، [ 16 ] مكتبة جافا خالصة، تصميمها مستوحى من مكتبة C ولكنها غير مرتبطة بها بأي شكل آخر.
  3. Berkeley DB XML، [ 17 ] برنامج C++ يدعم XQuery ، ويتضمن إصدارًا قديمًا من مكتبة قاعدة بيانات C

برامج مفتوحة المصدر لا تزال تستخدم قاعدة بيانات بيركلي

كانت قاعدة بيانات بيركلي (BDB) منتشرة على نطاق واسع في السابق، لكن استخدامها انخفض بشكل حاد منذ عام 2013 (انظر قسم الترخيص ). ومن أبرز البرامج التي لا تزال تستخدم قاعدة بيانات بيركلي لتخزين البيانات ما يلي:

لا تزال أنظمة التشغيل مفتوحة المصدر ولغات البرمجة مثل بيرل وبايثون تدعم واجهات Berkeley DB القديمة. يأتي نظاما التشغيل FreeBSD و OpenBSD مزودين بـ Berkeley DB 1.8x لدعم استدعاء نظام التشغيل [ 19 ] [ 20 ] المستخدم في برامج كلمات المرور مثل [ 21 ] . أما أنظمة تشغيل لينكس، بما فيها تلك المبنية على ديبيان [ 22 ] وفيدورا [ 23 فتأتي مزودة بمكتبات Berkeley DB 5.3.dbopen()pwb_mkdb

الترخيص

يتوفر برنامج Berkeley DB الإصدار 2.0 والإصدارات الأحدث بموجب ترخيص مزدوج :

  1. رخصة أوراكل التجارية [ 24 ]
  2. رخصة المصادر المفتوحة

كان لتغيير رخصة المصادر المفتوحة في عام 2013 من رخصة Sleepycat إلى رخصة AGPL أثرٌ كبير على برمجيات المصادر المفتوحة. ولأن BDB مكتبة برمجية، فإن أي تطبيق يرتبط بها يجب أن يكون مرخصًا بموجب رخصة متوافقة مع AGPL. كان على العديد من تطبيقات المصادر المفتوحة، وجميع تطبيقات المصادر المغلقة، إعادة ترخيصها لتصبح متوافقة مع AGPL، وهو ما لم يكن مقبولًا لدى العديد من المطورين وأنظمة التشغيل مفتوحة المصدر. وبحلول عام 2013، ظهرت بدائل عديدة لـ BDB، وكان نظام Debian Linux مثالًا نموذجيًا في قراره بالتخلي التام عن Berkeley DB، مفضلًا استخدام Lightning Memory-Mapped Database (LMDB). [ 26 ]

انظر أيضاً

مراجع

  1. "تنزيلات قاعدة بيانات أوراكل بيركلي" . تم الاطلاع عليه بتاريخ 27 سبتمبر 2020 .
  2. دليل مرجعي لقاعدة بيانات بيركلي: ما الذي لا تُعدّ قاعدة بيانات بيركلي؟ . Doc.gnu-darwin.org (2001-05-31). تم الاطلاع عليه بتاريخ 2013-09-18.
  3. "إصدار رئيسي: Berkeley DB 12gR1 (12.1.6.0)" . مشاريع مفتوحة المصدر في أوراكل . 10 يونيو 2013. مؤرشف من الأصل في 5 ديسمبر 2013. تم الاطلاع عليه في 11 أبريل 2021 .
  4. ناثان، ويليس (10 يوليو 2013). "ديبيان، وقاعدة بيانات بيركلي، ورخصة AGPLv3" . أخبار لينكس الأسبوعية . مؤرشف من الأصل في 22 يوليو 2013. تم الاطلاع عليه في 22 أبريل 2021 .
  5. 1 2 أولسون، مايكل أ.؛ بوستيك، كيث؛ سيلتزر، مارغو (1999). "قاعدة بيانات بيركلي" (ملف PDF) . وقائع مسار FREENIX، المؤتمر التقني السنوي لـ USENIX. مؤرشف ( ملف PDF) من الأصل بتاريخ 9 أكتوبر 2022. تم الاطلاع عليه بتاريخ 20 أكتوبر 2009 .
  6. سيلتزر، مارغو؛ يغيت، أوزان (1991). "حزمة تجزئة جديدة لنظام يونكس" . وقائع المؤتمر التقني الشتوي لـ USENIX. تم الاطلاع عليه في 20 أكتوبر 2009 .
  7. برونيلي، مارك (28 مارس 2005). "مقدمة في قواعد بيانات بيركلي" . أخبار لينكس للمؤسسات . مؤرشف من الأصل في 6 سبتمبر 2008. تم الاطلاع عليه في 28 ديسمبر 2008 .
  8. "التعرف على Berkeley DB Java Edition" . objectcomputing.com . تم الاطلاع عليه بتاريخ 7 مارس 2025 .
  9. [ إعلان قاعدة بيانات بيركلي ] إصدار رئيسي: قاعدة بيانات بيركلي 12gR1 (12.1.6.0) . تم الاطلاع عليه في 5 يوليو 2013. (على الرغم من ذكر رخصة AGPL هناك، إلا أن أرشيف المصدر لا يزال يعلن عن شروط BSD-4-Clause في الإصدار 6.0.19.)
  10. "لقطة من مصدر 6.0.19 في ذلك الوقت" . 13 يونيو 2013.
  11. "رخصة سليبي كات" . مبادرة المصادر المفتوحة . 31 أكتوبر 2006. تم الاطلاع عليه في 28 ديسمبر 2008 .
  12. "التراخيص" . مؤسسة البرمجيات الحرة . 10 ديسمبر 2008. مؤرشف من الأصل في 16 ديسمبر 2008. تم الاطلاع عليه في 28 ديسمبر 2008 .
  13. "التوافق مع واجهات يونكس القديمة" . docs.oracle.com . تم الاطلاع عليه بتاريخ 20 نوفمبر 2019 .
  14. "تويتر / غريغوري بيرد: @humanications لم نكن ..."
  15. "تنزيلات قاعدة بيانات أوراكل بيركلي: أحدث إصدارات الإنتاج" .
  16. "Oracle Berkeley DB Java Edition" . مؤرشف من الأصل بتاريخ 2017-07-11.
  17. "Berkeley DB XML" . مؤرشف من الأصل بتاريخ 2016-07-18.
  18. "bogofilter -- Fast Bayesian Spam Filter Code (Git)" . sourceforge.net . تم الاطلاع عليه بتاريخ 17-05-2024 .
  19. "dbopen(3)" . صفحات دليل FreeBSD . تم الاطلاع عليه بتاريخ 18-04-2023 .
  20. "صفحات دليل OpenBSD" . dbopen(3) . تم الاسترجاع في 18-04-2023 .
  21. "pwd_mkdb(8)" . صفحات دليل OpenBSD . تم الاطلاع عليه بتاريخ 18-04-2023 .
  22. مدير الموقع، دبيان. "ديبيان - تفاصيل حزمة db5.3-util في sid" . دبيان - الحزم . تم الاسترجاع بتاريخ 2026-05-08 .
  23. "نظرة عامة - rpms/libdb" . src.fedoraproject.org . تم الاطلاع عليه بتاريخ 18-04-2023 .
  24. "معلومات التنزيل والترخيص والمبيعات" . 30 نوفمبر 2017.
  25. "إصدار رئيسي: Berkeley DB 12gR1 (12.1.6.0)" . 10 يونيو 2013. تم الاطلاع عليه في 15 يوليو 2013 .
  26. أوندريج سوري (19 يونيو 2014). "هدف المشروع الجديد: التخلص من قاعدة بيانات بيركلي (بعد جيسي)" . قائمة بريدية debian-devel . دبيان .