قاعدة بيانات علائقية غرضية

قاعدة بيانات علائقية غرضية التوجه  أو تسمى إدارة قواعد بيانات علائقية غرضية التوجه، هي نظم إدارة قواعد البيانات DBMS تشابه لقاعدة البيانات العلاقيه لكن تختلف عنها بوجود نموذج قواعد البيانات كائنية التوجه : object , classes and inheritance مدعوم مباشرة من خلال مخطط قواعد البيانات و لغة الاستعلام. إضافةً لذلك كما نظم العلاقات ، فهو يدعم تمديد نموذج البيانات مع نوع البيانات المخصصة و طرقها.
قاعدة بيانات علائقية غرضية التوجه تقدم حل وسط بين قاعدة البيانات العلاقيه و قاعدة البيانات الموجهة للكائنات ، في قاعدة البيانات علائقية غرضية التوجه المفهوم هو ان البيانات الموجودة في قواعد البيانات يتم معالجتها بشكل جماعي مع استعلامات في لغة الاستعلام. وفي الطرف الاقصى(OODBMSes) نظم إدارة البيانات الموجهة للكائنات بحيث ان قاعدة البيانات هي مخزون كائنات مستمر للبرمجيات المكتوبة بلغة البرمجة الموجهة للكائنات مع برمجة واجهة برمجة التطبيقات (API) للتخزين و إسترجاع الكائنات ، كما انه الدعم المتوفر للاستعلام قليل او أحياناً لا يوجد دعم.

نظرة عامة

تنشأ الحاجة الأساسية لقاعدة بيانات الكائنات ذات العلاقة من حقيقة أن قاعدة البيانات العلائقية والموضوعية لها مزاياها وعيوبها الفردية. إن التماثل في نظام قاعدة البيانات العلائقية مع علاقة رياضية تسمح له باستغلال العديد من التقنيات والنظريات المفيدة من النظرية المحددة. لكن هذه الأنواع من قواعد البيانات ليست مفيدة عندما تأتي هذه المسألة لتعقيد البيانات لمصدر وعدم توافق needed بين التطبيق و DBMS.
يسمح نموذج قاعدة البيانات الموجهة للكائنات بالحاويات مثل المجموعات والقوائم ، وأنواع البيانات التعسفية التي يحددها المستخدم بالإضافة إلى الكائنات المتداخلة. وهذا يجلب القواسم المشتركة بين أنظمة أنواع التطبيقات وأنظمة قواعد البيانات التي تزيل أي مشكلة تتعلق بعدم تطابق المعاوقة. لكن قواعد بيانات الكائن ، على عكس العلاقة العلائقية لا توفر أي قاعدة رياضية لتحليلها العميق. [2] [3]
الهدف الأساسي لقاعدة بيانات الكائن - العلائقية هو سد الفجوة بين قواعد البيانات العلائقية وتقنيات النمذجة الموجهة للكائنات المستخدمة في لغات البرمجة مثل Java أو C ++ أو Visual Basic .NET أو C #. ومع ذلك ، هناك بديل أكثر شيوعًا لتحقيق مثل هذا الجسر هو استخدام أنظمة قواعد بيانات علائقية قياسية مع شكل ما من برامج رسم الخرائط ذات الصلة بالأشياء (ORM). في حين ركزت منتجات RDBMS أو SQL-DBMS التقليدية على الإدارة الفعالة للبيانات المستمدة من مجموعة محدودة من أنواع البيانات (التي تحددها المعايير اللغوية ذات الصلة) ، فإن نظام DBMS المرتبط بالأشكال يسمح لمطوري البرامج بدمج أنواعهم الخاصة والأساليب التي تنطبق عليهم في DBMS.
يتكامل ORDBMS (مثل ODBMS أو OODBMS) مع لغة برمجة موجهة للكائنات. الخصائص المميزة لـ ORDBMS هي 1) البيانات المعقدة ، 2) نوع الميراث ، و 3) سلوك الكائن. يعتمد إنشاء البيانات المعقدة في معظم SQL ORDBMSs على تعريف المخطط الأولي عبر نوع المعرفة من قبل المستخدم (UDT). التسلسل الهرمي داخل البيانات المركبة المهيكلة يوفر خاصية إضافية ، اكتب الوراثة. بمعنى ، يمكن أن يكون للنوع المنظم أنواع فرعية تعيد استخدام كل سماتها وتحتوي على سمات إضافية خاصة بالنوع الفرعي. هناك ميزة أخرى ، وهي سلوك الكائن ، مرتبطة بالوصول إلى كائنات البرنامج. يجب أن تكون عناصر البرنامج هذه قابلة للتخزين وقابلة للنقل لمعالجة قواعد البيانات ، لذلك عادة ما يتم تسميتها ككائنات ثابتة. داخل قاعدة البيانات ، تكون كافة العلاقات مع كائن برنامج مستمر عبارة عن علاقات مع معرف الكائن الخاص به (OID). يمكن التعامل مع كل هذه النقاط في نظام ارتباط مناسب ، على الرغم من أن معيار SQL وتطبيقاته تفرض قيودًا تعسفية وتعقيدًا إضافيًا [4] [page needed]
في البرمجة الكائنيه (OOP)، يتم وصف سلوك الكائن من خلال الطرق (وظائف الكائن). تتميز الطرق التي يتم الإشارة إليها باسم واحد بنوع المعلمات الخاصة بها ونوع الكائنات المرتبطة بها (توقيع الطريقة). تسمّى لغات OOP هذا مبدأ تعدد الأشكال ، الذي يُعرّف لفترة وجيزة بأنه "واجهة واحدة ، العديد من التطبيقات". ترتبط مبادئ OOP الأخرى ، و الميراث والتغليف ، بالطرق والسمات. يتم تضمين توريث الطريقة في توريث النوع. التغليف في OOP هو درجة الوضوح المعلنة ، على سبيل المثال ، من خلال معدّلات الوصول العامة والخاصة والمحمية.

لمحة تاريخيه

نظم إدارة قواعد البيانات العلاقات الكائنيه ازدهر بسبب البحث الذي تم في بداية 1990
البحث وسع مبدأ قواعد البيانات العلاقيه بإضافة مبدأ الكائنات.
يهدف الباحثون إلى الاحتفاظ بلغة استعلام تصريحي تعتمد على حساب التفاضل والتكامل كمركب أساسي في الهندسة المعمارية. من المحتمل أن يكون المشروع البحثي الأبرز ، Postgres (UC Berkeley) ، أنتج منتجين يتتبعان سلالتهما إلى هذا البحث: Illustra و PostgreSQL.
في منتصف التسعينيات ، ظهرت منتجات تجارية مبكرة. تضمنت هذه الأمثلة Illustra [1] (شركة Illustra Information Systems ، التي حصلت عليها Informix Software ، والتي حصلت بدورها على IBM) ، Omniscience (Omniscience Corporation ، التي حصلت عليها شركة Oracle وأصبحت Oracle Lite الأصلية) ، و UniSQL (UniSQL، Inc. حصل عليها KCOMS). طور المطور الأوكراني رسلان زاسوخين ، مؤسس شركة Paradigma Software Inc. ، وشحن النسخة الأولى من قاعدة بيانات فالنتينا في منتصف التسعينات باسم C ++ SDK. بحلول العقد القادم ، أصبحت PostgreSQL قاعدة بيانات قابلة للتطبيق تجارياً ، وهي أساس للعديد من المنتجات الحالية التي تحافظ على ميزات ORDBMS الخاصة بها.
وقد اشار بعض علماء الكمبيوتر على ان هذه المنتجات تعتبر "أنظمة إدارة قواعد البيانات ذات الصلة بالأشياء" أو ORDBMSs. [2]
العديد من الافكار المتعلقة بقاعدة البيانات المرتبطة بالكيمياء المبكرة قد أصبحت مدمجة إلى حد كبير في SQL: 1999 عبر أنواع منظمة. في الواقع ، يمكن وصف أي منتج يتقيد بالجوانب الموجهة للكائنات في SQL: 1999 كمنتج إدارة قاعدة بيانات الكائنات. على سبيل المثال ، تقوم DB2 ، و قاعدة بيانات Oracle ، و Microsoft SQL Server في IBM بتقديم المطالبات لدعم هذه التقنية وتقوم بذلك بدرجات متفاوتة من النجاح.

مقارنة مع RDBMS

نظم إدارة البيانات العلاقية عادةً يتضمن تقرير (SQL) :
   CREATE TABLE Customers  (
       Id          CHAR(12)    NOT NULL PRIMARY KEY,
       Surname     VARCHAR(32) NOT NULL,
       FirstName   VARCHAR(32) NOT NULL,
       DOB         DATE        NOT NULL
    );
    SELECT InitCap(Surname) || ', ' || InitCap(FirstName)
      FROM Customers
     WHERE Month(DOB) = Month(getdate())
       AND Day(DOB) = Day(getdate())
تسمح معظم قواعد بيانات SQL الحالية بصياغة الدالات المخصصة ، مما يسمح بظهور الاستعلام على النحو التالي:
    SELECT Formal(Id)
      FROM Customers
     WHERE Birthday(DOB) = Today()
في قاعدة بيانات الكائنات المترابطة ، قد يرى المرء شيئًا من هذا القبيل ، مع أنواع بيانات محددة من المستخدم وتعبيرات مثل BirthDay ():
    CREATE TABLE Customers (
      Id           Cust_Id     NOT NULL  PRIMARY KEY,
      Name         PersonName  NOT NULL,
      DOB          DATE        NOT NULL
    );
    SELECT Formal( C.Id )
      FROM Customers C
     WHERE BirthDay ( C.DOB ) = TODAY;
يمكن أن يوفر نموذج العلاقات الموضوعية ميزة أخرى من حيث أن قاعدة البيانات يمكنها الاستفادة من العلاقات بين البيانات لتجميع السجلات ذات الصلة بسهولة. في تطبيق دفتر العناوين ، سيتم إضافة جدول إضافي إلى تلك المذكورة أعلاه لعقد عناوين صفر أو أكثر لكل عميل. باستخدام RDBMS التقليدية ، يتطلب جمع المعلومات لكل من المستخدم وعنوانه "الانضمام":

 
     SELECT InitCap(C.Surname) || ', ' || InitCap(C.FirstName), A.city
       FROM Customers C join Addresses A ON A.Cust_Id=C.Id -- the join
      WHERE A.city="New York"
يظهر نفس الاستعلام في قاعدة بيانات الكائنات العلاقية بشكل أكثر بساطة:
    SELECT Formal( C.Name )
      FROM Customers C
     WHERE C.address.city="New York" -- the linkage is 'understood' by the ORDB