أولا أي شيء اقوله هنا هو (مسودة قابلة للأخذ والرد والتعليق والتوبيخ الخ .. خذ راحتك😀). طيب نبدأ و نأخذ نظره تاريخية على ما قد يعد ممارسة تقليدية ناضجة ويفضلها عدد كبير من المبرمجين المفضلة عند التعامل برمجيا مع قواعد البيانات وهو عبر الصديق الحميم (تعليمات SQL).
وبما أنني ذكرت الـ SQL فطبيعي انك تروح اول شيء تنشيء قاعدة بيانا وجداول ووتسوي (علاقات) بينها والخ مثل الصورة التالية وفي افضل الاحوال تنشئها باستخدام الواجهة المرئية لقاعدة البيانات عندك كما هو حاصل في phpmyAdmin على سبيل المثال. zetcode.com.
ما سبق هو فقط لمجرد المثال لا أكثر وكذلك من باب أبدأ مع القاري بما يعرف أولا ومن ثم انتقل به لما تريده أن يعرف. فنحن نتحدث عن التعامل مع لغتين مختلفة الاهداف والمبرمج مطلوب منه يضع بالحسبان التناغم والانسجام بينهما ويحرص على تعويض المفقود بينهم والتجسير بما يؤدي لتكاملهم.
من باب التوضيح، نحن نتحدث بالخصوص عن أنظمة RDBMS وهي اختصار لـ Relational Database Management System وهي النظم المعتادة التي تعتمد على SQL. ولذلك نستبعد من حديثنا أنواع الـ NoSQL المعروفة. فكما نعرف أن انظمة RDBMS كما هو الحال مع MySQL/MariaDB يعتمد على الجداول والعلاقات بينها
طيب واذا سوينا تحليل ونمذجة بمفاهيم الـ OOP وجينا نعمل ما يقابله في قواعد البيانات أو العكس بدأنا بنمذجة قواعد البيانات ومن ثم جينا نعمل نمذجة الـ OPP. في الأنظمة الكبيرة راح نلاقي تعقيدات بالغة وتعارضات كثيرة ملخصة في الجدول التالي: tutorialspoint.com
الآن دعنا نلقي نظرة على الـ ORM والذي هو اختصار لـ Object Relational Mapping والموضوع طويل ولكن بنحاول نبسطه والتبسيط يخون الكثر من التفاصيل. باختصار شديد الموضوع في رأيي الشخصي توفير framework يسهل للمبرمج التعامل مع OPP و Rational databases بأقل جهد ممكن (بتفائل شديد).
إذا الـ ORM هو Framework في رأيي يمكن المحلل والمصمم من التعامل مع الـ Framework فقط دون الحاجة لمتخصصين في الـ OPP على حدة ومتخصصين بـ Rational Databases ومن ثم الحرص على ايجاد التناغم بينهما والعمل على حل التعارضات والمشاكل كما هو في الجدول التوضيحي أعلاه.
جاري تحميل الاقتراحات...