رسم الخرائط بين الكائنات والعلاقات

يُعدّ ربط الكائنات بالعلاقات ( ORM ، O/RM ، وأداة ربط الكائنات بالعلاقات ) في علوم الحاسوب أسلوبًا برمجيًا لتحويل البيانات بين قاعدة بيانات علائقية وذاكرة (عادةً ما تكون الكومة ) لغة برمجة كائنية التوجه . يُنشئ هذا، في الواقع، قاعدة بيانات كائنات افتراضية يمكن استخدامها من داخل البرنامج.

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

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

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

ملخص

يتم عادةً تغليف التفاصيل الخاصة بتنفيذ برامج تشغيل التخزين في واجهة برمجة التطبيقات (API) في لغة البرمجة المستخدمة، مما يوفر طرقًا للتفاعل مع وسيط التخزين بطريقة أبسط وأكثر توافقًا مع نماذج التعليمات البرمجية المحيطة.

فيما يلي مثال بسيط مكتوب بلغة C# لتنفيذ استعلام مكتوب بلغة SQL باستخدام محرك قاعدة بيانات.

باستخدام System.Collections.Generic ؛string sql = "SELECT id, first_name, last_name, phone, birth_date, sex, age FROM persons WHERE id = 10" ; List <Person> result = context.Persons.FromSqlRaw ( sql ) .ToList ( ) ; string name = result [ 0 ] [ " first_name " ] ;

في المقابل، يستخدم ما يلي واجهة برمجة تطبيقات ORM-job التي تجعل من الممكن كتابة التعليمات البرمجية التي تستخدم بشكل طبيعي ميزات اللغة.

Person person = repository.GetPerson ( 10 ) ; string firstName = person.GetFirstName ( ) ;

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

Person person = Person.Get ( 10 ) ;

مقارنة بتقنيات الوصول إلى البيانات التقليدية

بالمقارنة مع التقنيات التقليدية للتبادل بين لغة البرمجة الكائنية وقاعدة البيانات العلائقية، فإن تقنية ORM غالباً ما تقلل من كمية التعليمات البرمجية التي يجب كتابتها. [ 2 ]

تنبع عيوب أدوات ORM بشكل عام من المستوى العالي من التجريد الذي يحجب ما يحدث فعليًا في كود التنفيذ.

قواعد البيانات الموجهة للكائنات

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

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

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

التحديات

تنشأ مجموعة متنوعة من الصعوبات عند النظر في كيفية مطابقة نظام كائني مع قاعدة بيانات علائقية. وتُعرف هذه الصعوبات باسم عدم تطابق المعاوقة بين النظام الكائني والنظام العلائقي . [ 3 ]

يُعد استخدام لغات البرمجة الإجرائية الأصلية المُرفقة مع كل قاعدة بيانات رئيسية بديلاً لتطبيق تقنية ORM. ويمكن استدعاء هذه اللغات من جانب العميل باستخدام عبارات SQL. ويُستخدم نمط تصميم كائن الوصول إلى البيانات (DAO) لتجريد هذه العبارات وتوفير واجهة برمجة تطبيقات كائنية التوجه خفيفة الوزن لبقية أجزاء التطبيق. [ 4 ]

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

انظر أيضاً

مراجع

  1. 1 2 "ما هو ربط الكائنات بالعلاقات؟" . نظرة عامة على Hibernate . JBOSS Hibernate . تم الاطلاع عليه بتاريخ 27 يناير 2022 .
  2. باري، د.، ستانيندا، ت. (1998). "حل مشكلة تخزين الكائنات في جافا" . مجلة الكمبيوتر . 31 (11). معهد مهندسي الكهرباء والإلكترونيات (IEEE): 33-40 . doi : 10.1109/2.730734 . في هذا التمرين، استلزم الأمر 496 سطرًا من التعليمات البرمجية باستخدام ربط جافا ODMG مقارنةً بـ 1923 سطرًا من التعليمات البرمجية باستخدام JDBC.
  3. إعادة النظر في رسم خرائط الكائنات العلائقية - دراسة كمية حول تأثير تكنولوجيا قواعد البيانات على استراتيجيات رسم خرائط الكائنات العلائقية. إم لورنز، جيه بي رودولف، جي هيس، إم أوفلاكر، إتش بلاتنر. المؤتمر الدولي لعلوم النظم في هاواي (HICSS)، 4877-4886 (DOI:10.24251/hicss.2017.592)
  4. فويرشتاين، ستيفن؛ بيل بريبيل (سبتمبر 1997). "برمجة أوراكل PL/SQL" . 18.5 تعديل الكائنات الدائمة . تم الاسترجاع في 23 أغسطس 2011 .{{cite web}}: CS1 maint: location ( link )
  5. "تنفيذ استعلامات SQL الخام | وثائق Django" . مشروع Django . تم ​​الاطلاع عليه بتاريخ 8 سبتمبر 2024 .