# قاعدة البيانات الكائنية

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

## نظرة عامة

عندما تتحد قدرات قاعدة البيانات مع قدرات لغة برمجة كائنية التوجه، فالنتيجة هي نظام إدارة قاعدة بيانات كائنية التوجيه (OODBMS).
والاتجاه الحالي في لغات البرمجة هو استخدام الكائنات، وبالتالي صنع نظام إدارة قاعدة بيانات كائنية التوجيه (OODBMS) مثالية للمبرمجين المتوجهين نحو الكائن لأن باستطاعتهم تطوير المنتج، وتخزينه ككائنات، ويمكنهم تكرار أو تعديل الكائنات من أجل صناعة كائنات جديدة في هي نظام إدارة قاعدة بيانات كائنية التوجيه (OODBMS). والمعلومات الحالية لا تشمل فقط البيانات بل أيضا الفيديو، والملفات الصوتية والرسومات، والصور التي تعتبر أنواع بيانات معقدة. ونظام إدارة قاعدة البيانات المترابطة ليس قادرا على دعم هذه الأنواع المعقدة للبيانات. بحاجة لمصدر ومن خلال الترابط مع لغة البرمجة، يمكن للمبرمج المحافظة على الثبات داخل بيئة واحدة لأن كلا من نظم إدارة قاعدة بيانات كائنية التوجيه (OODBMS) ولغة البرمجة سوف تستعمل نفس نموذج التقديم. ومشاريع نظام قواعد البيانات المترابطة التي تستخدم أنواع البيانات المعقدة ستضطر إلي الانقسام إلي مهمتين منفصلتين: مفهوم قواعد البيانات والتطبيق.
وبينما يزداد استخدام تقنية تطبيق ويب مع تنفيذ الإنترنت والاكسترانت، فإن للشركات اهتمام كبير في نظم إدارة قاعدة بيانات كائنية التوجيه (OODBMS) من أجل عرض بياناتها المعقدة. واستخدام نظام إدارة قاعدة البيانات والمصمم بشكل معين من أجل تخزين البيانات ككائنات يعطي ميزة للشركات المستعدة لتقديم وسائل وسائط متعددة أو المنظمات التي تستخدم التصميم بمساعدة الحاسوب (CAD).
ويتم تصميم بعض قواعد البيانات الكائنية التوجه للعمل بشكل جيد مع برمجة كائنية التوجه مثل دلفي، روبي (لغة برمجة)، بايثون، بيرل، جافا (لغة برمجة)، سي شارب، فيجوال بيزك دوت نت، سي++ (لغة برمجة)، سي-الكائنية، ولغة [Smalltalk]، وقواعد بيانات أخرى لديها لغات برمجة خاصة بها. وتستخدم نظم إدارة قاعدة بيانات كائنية التوجيه (OODBMS) نفس المفهوم مثل لغات البرمجة كائنية التوجه.

## التاريخ

نمت نظم إدارة قاعدة بيانات الكائن من البحث أثناء أوائل إلى وسط السبعينات والوصول إلى أن يكون لها دعم إدارة قاعدة بيانات داخلية للكائنات المهيكلة بالرسومات. وقد ظهر مصطلح «نظام قاعدة البيانات الكائنية التوجيه» لأول مرة في عام 1985. وقد شملت المشروعات البحثية المعروفة Encore-Ob/Server (جامعة براون)، EXODUS (جامعة ويسكونسن-ماديسون)، RRIS قوس قزح (Hewlett-Packard)، ODE (مختبرات بل)، ORION (شركة تكنولوجيا الكمبيوتر والإلكترونيات الدقيقة)، Vodak(GMD-IPSI)، روح العصر Zeitgeist (شركة Texas Instruments). ومشروع ORION كان له مزيداً من الأبحاث المنشورة أكثر من أي أعمال أخرى. وقد جمع Won Kim صاحب مركز صيانة التحكم أفضل تلك الأبحاث في كتاب تم نشره عن طريق دار نشر MIT.
والمنتجات التجارية المبكرة قد شملت قاعدة بيانات [Gemstone] (Servio Logic ، وهو اسم تم تغييره إلى نظم GemStone)، وGbase (Graphael)، و Vbase (Ontologic). وقد شهدت أوائل التسعينات إلى منتصفها منتجات تجارية إضافية تدخل السوق. وهذه المنتجات شملت ITASA (نظم Itasca)، Jasmine (Fujitsu)، والتي تم تسويقها عن طريق شركة Computer Associates)، Matisse(برمجية Matisse)، قاعدة بيانات [Objectivity/DB] (شركة Objectivity)، [ObjectStore] (شركة [Progress Software]، والتي تم الحصول عليها من eXcelon والتي كانت في الأصل شركة Object Design)، ONTOS(شركة Ontos، والتي تغير اسمها إلى Ontologic)، O$_2$. Morgan Kaufmann Publishers, 1992. ISBN 1-55860-169-4.</ref>(شركة Technology O$_2$ والتي اندمجت مع عدد من الشركات، وتم شراؤها عن طريق شركة informix، والتي بدورها اشترتها آي‌ بي‌ إم، POET(والتي هي الآن قاعدة بيانات [FastObjects] من شركة Versant التي حصلت على برمجية Poet)، قاعدة بيانات كائن Versant(شركة [Versant])، VOSS(شركة Logic Arts) ولغة [JADE] (شركة [JADE] للبرمجيات). وبعض هذه المنتجات لا تزال في السوق وتم انضمامه من خلال مصدر جديد مفتوح ومنتجات تجارية مثل شركة [InterSystems CACHÉ] (انظر قوائم المنتجات أدناه)
وقد أضافت نظم إدارة قواعد بيانات الكائن مفهوم [زمن الاستمرارية] للغات برمجة الكائن. فقد تم ربط المنتجات التجارية المبكرة بالعديد من اللغات: GemStone (لغة برمجة Smalltalk])، Gbase(ليسب)، Vbase (لغة برمجة معالج كائن سي COP) وVOSS (نظام تخزين كائن افتراضي للغة Smalltalk). وفي معظم التسعينات، سيطرت سي++ (لغة برمجة) على السوق التجاري لإدارة قاعدة بيانات الكائن. وقد أضاف التجار جافا (لغة برمجة) في أواخر التسعينات ومؤخراً لغة سي شارب.
وبدايةً من عام 2004، شهدت قواعد بيانات الكائنات فترة نمو ثانية عندما ظهرت قواعد بيانات كائنات مصدر مفتوح والتي كانت ميسورة التكلفة وسهلة الاستخدام، لأنها كانت مكتوبة بالكامل بلغات البرمجة الكائنية التوجه مثل Smalltalk وJava أو C#، مثل لغة [db4o](كائنات db4)، DTS/S1 من شركة Obsidian Dynamics [نظام Perst] (McObject)، ومتاحة تحت مصدر مفتوح مزدوج ترخيص تجاري.

## الفترة الزمنية

* 1985- تم إدخال مصطلح قاعدة بيانات كائن لأول مرة
* 1988
** بدأت شركة [Versant Corporation] (كشركة لعلوم الكائن)
** تم تأسيس شركة Objectivity
* أوائل 1990
** Gemstone ([Smalltalk])
** GBase (ليسب)
** VBase (O2-ONTOS-INFORMIX)
** بدأت قاعدة البيانات [Objectivity/DB]
* منتصف 1990
** شركة [Versant Object Database]
** قاعدة بيانات [ObjectStore]
** Poet
** Jade
** Matisse
* 2000
** Cache’
** بدأ مشروع قواعد بيانات الكائنات [db4o] من خلال كارل روزينبرج
** قاعدة بيانات كائن ObjectDB للغة Java
* 2001
** تحصل آي‌ بي‌ إم على [Informix] (Illustra) وترتبط مع خادم قاعدة بيانات [DB2]
** تم شحن db4o إلى أول عميل استطلاعي
* 2004- البدء التجاري لقاعدة البيانات db4o كشركة db4objects,inc.
* 2008- تم شراء db4o عن طريق شركة [Versant Corporation]

## استخدام قواعد بيانات كائن

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

## الخصائص التقنية

تقدم أيضا معظم قواعد بيانات الكائن نوعاً ما من لغة استعلام، والذي يتيح باكتشاف الكائنات من خلال أكثر من مدخل [برمجة استعلامية]. وهو في مجال لغات استعلام الكائن، وارتباط الأسطح البينية للاستعلام بالأسطح البينية الملاحية، حيث توجد أكبر الفروق بين المنتجات. وقد كانت هناك محاولة للتوحيد القياسي من [مجموعة إدارة بيانات كائن] مع [لغة استعلام كائن].
ويمكن أن يكون الوصول للبيانات أسرع لأن [الوصلات] غير لازمة في الغالب (كما في التنفيذ الجدولي قاعدة البيانات المترابط). وهذا لأنه يمكن استرداد الكائن بشكل مباشر بدون بحث، من خلال المؤشرات. (ومع هذا، فيمكن القول بأن الوصلات هي مستوى أعلى من تجرد تتبع المؤشر) والمجال الآخر للاختلاف بين المنتجات هو طريقة التي يتحدد بها تصميم قاعدة البيانات. ومع هذا، فالسمة العامة هي أن لغة البرمجة وتصميم القاعدة البيانات يستخدمان نفس النوع من التعريفات.
ويتم استخدام تطبيقات الوسائط المتعددة لأن وسائل البرمجة المصاحبة للبيانات مسئولة عن تفسيرها الصحيح. وتقدم العديد من قواعد بيانات الكائن، مثلاً VOSS، دعم [تعيين الإصدار]. فيمكن رؤية الكائن كمجموعة لكل إصداراته. وكذلك، يمكن معاملة إصدارات الكائن ككائنات مستقلة. وتقدم بعض قواعد بيانات الكائن أيضاً دعماً نظامياً لكل من [المشغلات] والقيود التي هي أساس [قاعدة البيانات النشطة].
وقد تم تحسين كفاءة قاعدة البيانات تلك إلى حد بعيد في المجال الذي يتطلب كميات هائلة من البيانات عن شيء واحد. مثلاً، يمكن لمؤسسة مصرفية أن تحصل على معلومات عن حساب مستخدم وتقدمها بكفاءة مع معلومات مكثفة مثل التعاملات، وقيود معلومات الحساب الخ. وتقع خوارزمية [Big O Notation] لتصميم قاعدة البيانات تلك من O (n) إلى O(1)، والتي تزيد الكفاءة في هذه الحالات المحددة.

## المعايير

كانت [مجموعة إدارة بيانات الكائن] ODMG جمعية لبائعي قواعد بيانات الكائن والتخطيط المترابط - الكائن، وأعضاء المجتمع الأكاديمي، والأطراف المعنية. وكان الهدف هو تكوين مجموعة من المواصفات التي تتيح تطبيقات محمولة تخزن الكائنات في نظم إدارة قواعد البيانات. وقد نشرت العديد من الإصدارات بمواصفاتها. وكان أخر إصدار هو ODMG 3.0. وبحلول عام 2001، أعلن معظم بائعي قواعد بيانات الكائن الرئيسيين والتخطيط المترابط - الكائن التوحد مع لغة جافا الخاصة بمجموعة إدارة بيانات الكائن. وقد تم خلط الإذعان للمكونات الأخرى للمواصفات. ففي عام، تم إخضاع ربط لغة جافا ODMG إلى [عملية مجتمع جافا] كأساس لمواصفات [كائنات بيانات جافا]. ثم قررت الشركات الأعضاء في ODMG أن تركز جهودها على تحديد مواصفات كائنات بيانات جافا. ونتيجة لذلك، تم حل ODMG في عام 2001.
وكذلك تم استيعاب العديد من أفكار قواعد بيانات الكائن في لغة [إس كيو إل:1999] وتم تنفيذها بدرجات متفاوتة في منتجات [قاعدة بيانات كائن مترابطة].
وفي عام 2005، اقترح Cook وRai وRosenberger إسقاط كل جهود توحيد القياس من أجل إدخال نظام استعلام APIs كائن التوجه إضافي بل واستخدام لغة البرمجة OO ذاتها، أي جافا، وNET للتعبير عن الاستعلامات. ونتيجة لهذا، ظهرت [الاستعلامات الأصلية]. وبالمثل، أعلنت مايكروسوفت عن [الاستعلام المترابط للغة] (LINQ)، وكان التنفيذ في سبتمبر 2005، لتوفير قدرات لغة مترابطة استعلامية لقواعد البيانات مع لغات برمجتها C# وVB.NET 9.
وفي فبراير 2006، أعلنت [مجموعة إدارة كائن] (MG) أنها قد حصلت على الحق في تطوير مواصفات جديدة بناء على مواصفات ODMG 3.0 وتكوين مجموعة عمل تكنولوجيا قاعدة بيانات كائن (ODBT WG). وقد خططت هذه المجموعة لتكوين مجموعة من المعايير التي سوف تجمع كل التقدمات في تقنية قاعدة بيانات الكائن (مثل التكرار)، وإدارة البيانات (مثل الفهرسة المكانية)، وأشكال البيانات (مثل XML) وإدراج سمات جديدة في هذه المعايير التي تدعم المجالات التي يتم فيها استخدام قواعد بيانات الكائن (مثل نظم الزمن الحقيقي). وتم توقف عمل مجموعة ODBT WG في مارس 2009 عندما قرر بائعو قواعد بيانات الكائن المشتركين في هذه الجهود التركيز على مواردهم في أماكن أخرى، بعد الاضطراب الاقتصادي في أواخر عام 2008.
وفي يناير 2007، قدمت رابطة الشبكة العالمية حالة توصية نهائية للغة إكس كويري. فتستخدم لغة إكس كويري لغة الرقم القابلة للامتداد كمفهوم لبياناتها. وبعض الأفكار التي تم تطويرها في الأصل لقواعد بيانات الكائن قد وجدت طريقها من خلال لغة إكس كويري، لكن إكس كويري ليست في داخلها كائنية التوجه. وبسبب شعبية لغة الرقم القابلة للامتداد، تتنافس محركات إكس كويري مع قواعد بيانات الكائن كأداة لتخزين البيانات المعقدة للغاية أو المتغيرة لدرجة أنها لا تستمر بشكل مناسب في قاعدة بيانات مترابطة.

## المقارنة مع نظم إدارة قواعد بيانات المترابطة

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

## طالع أيضًا

* قائمة لغات البرمجة كائنية التوجه