مخطط الكائن العلائقية (أو آر أم)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

مخطط الكائن العلائقية (بالإنجليزية object-relational mapping ou ORM) هي تقنية برمجة الكمبيوتر تعمل على إنشاء الوهم لـ قاعدة بيانات الكائن من قاعدة البيانات المترابطة من خلال تعريف تعيينات بين قاعدة البيانات كائنات البيانات واللغة المستخدمة. يمكننا تسمية "التوافق بين العالم والعالم الكائن العلائقية.

شرح للمشكلة[عدل]

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

مثال من التعليمات البرمجية جافا التي تستخدم API (جي دي بي سي )JDBC(واجهة برمجة التطبيقات) لاسترداد البيانات العلائقية من العميل (العملاء باللغة الإنجليزية) لتحويلها إلى كائن جافا[1] :

public Customer loadCustomer(long customerId, Connection connection) {
    if (0 == customerId || connection == null) {
        return null;
    }
 
    PreparedStatement stmt = null;
    try {
        // preparation de la requete à la base de données
        stmt = connection.prepareStatement(
                " SELECT CUSTOMER_ID, CUSTOMER_NAME, CUSTOMER_ADDRESS "
                + " FROM CUSTOMER WHERE CUSTOMER_ID = ? ");
        stmt.setLong(1, customerId);
        ResultSet rs = stmt.executeQuery();
        if (rs.next()) {
            // transformation des données relationnelles en objet "Customer"
            Customer customer = new Customer();
            int index = 1;
            customer.setCustomerId(rs.getLong(index++));
            customer.setCustomerName(rs.getString(index++));
            customer.setCustomerAddress(rs.getString(index++));
            return customer;
        }
    } catch (final Exception e) {
        log.info("", e);
    } finally {
        // nettoyage
        if (stmt != null) {
            try {
                stmt.close();
            } catch (final SQLException e) {
                log.info("", e);
            }
        }
    }
    return null;
}



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

يمكن للأطر وجوه العلائقية رسم الخرائط القضاء على تكرار الكود في عمليات الخام.

تفصيل[عدل]

تعيين الكائن العلائقية هي لربط واحد أو أكثر صنف مع جدول ولكل ملف[3] الصنف يحوي حقل للجدول

على سبيل المثال، يرتبط فئة العملاء مع جدول العملاء، وترتبط الصفات على النحو التالي:

  • Customer.customerId ويرتبط مع CUSTOMER.CUSTOMER_ID
  • Customer.customerName ويرتبط مع CUSTOMER.CUSTOMER_NAME
  • Customer.customerAddress ويرتبط مع CUSTOMER.CUSTOMER_ADDRESS

في جافا، فمن الممكن استخدام الاستبطان لاسترداد المعلومات السمة في وقت التشغيل (النوع، القيمة، الخ.) ، وبناء ديناميكي طلبات إس كيو إل لـ عمليات إدارة البيانات (CRUD)، آليات مماثلة موجودة في لغات أخرى مع منصات من إنشاء مخطط الكائن العلائقية.

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

هناك العديد من الأدوات أو آر أم ORM المدفوع، رخصة حرة أو حتى مجانا.

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

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

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

مراجع[عدل]

  1. ^ Plain Old Java Object
  2. ^ Affectation
  3. ^ Attribut (informatique)