Кіріспе
Бағдарламалау техникасы Объекті-реляциялық бейнелеу (ОРМ, О/РМ және О/Р бейнелеу құралы) – компьютерлік ғылымда деректерді реляциялық деректер базасы мен объектіге бағытталған бағдарламалау тілінің қалыптық жады арасында түрлендіруге арналған бағдарламалау техникасы. Бұл бағдарламалау тілінің ішінде пайдалануға болатын виртуалды нысандар базасын құрайды. Объектіге бағытталған бағдарламалауда деректерді басқару тапсырмалары скалярлық мәндерді нысандарға біріктіретін нысандарға әсер етеді. Мысалы, бір адамды көрсететін, сонымен қатар нөл немесе одан көп телефон нөмірлері мен нөл немесе одан көп мекенжайлары бар телефон кітабының жазбасын қарастырайық. Бұл нысанға бағытталған іске асыруда «Person object» арқылы атрибуты/өрісі бар әр дерек элементін: адамның аты-жөнін, телефон нөмірлерінің тізімін және мекенжайлар тізімін қамтитын модельдеуге болады. Телефон нөмірлерінің тізімі «PhoneNumber» нысандарын және т.б. қамтиды. Әрбір осындай телефон кітабының жазбасы бағдарламалау тілімен бір нысан ретінде қарастырылады (мысалы, оған нысанға сілтеме құрайтын бір айнымалы сілтеме жасай алады). Нысанмен әртүрлі әдістерді байланыстыруға болады, мысалы, таңдалған телефон нөмірін, үй мекенжайын және т.б. қайтару әдістері. Керісінше, SQL сияқты реляциялық деректер базасы скалярларды топтастырады, содан кейін кестеде тізімделеді. Туплдар мен нысандардың кейбір жалпы ұқсастықтары бар, өйткені олар екі жолы да атаулы өрістерге мәндерді жинаудың жолдары, сондықтан бүкіл жиынтықты бір құрамдас нысан ретінде өңдеуге болады. Олардың көптеген айырмашылықтары бар, бірақ, атап айтқанда: өмірлік циклді басқару (қатарларды енгізу және жою, қоқыс жинау немесе сілтемелерді санау), басқа нысандарға сілтемелер (нысан сілтемелер, шетелдік кілт сілтемелер) және мұрагерлік (реляциялық деректер базасында жоқ). Сонымен қатар, нысандар қалыптық жадыда басқарылады және бір процестің толық бақылауында болады, ал деректер базасының туплдары ортақ болады және құлыптау, біріктіру және қайталап талпынуды қамтуы керек. Объектінің реляциялық бейнелеуі осы айырмашылықтардың барлығын есепке ала отырып, туплдарды нысандарға және кері бейнелеу үшін автоматтандырылған қолдауды қамтамасыз етеді. Мәселе негізгісі – нысанның логикалық бейнелеуін, қажет болған кезде нысан ретінде қайта жүктелу үшін, нысанның қасиеттері мен олардың қатынастарын сақтай отырып, дерекқорда сақталуы мүмкін атомдалған нысанға аудару. Егер осы сақтау және алу функциясы іске асырылса, нысандар тұрақты деп аталады. ОРМ құралдарының кемшіліктері, әдетте, іске асыру кодында нақты не болып жатқанын жасыратын абстракцияның жоғары деңгейінен туындайды. Сонымен қатар, ОРМ бағдарламалық жасақтамасына үлкен сенім арту нашар жасалған деректер базаларын жасаудың басты факторы ретінде аталды.
Object–relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programming technique for converting data between a relational database and the heap of an object oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language. In object oriented programming, data management tasks act on objects that combine scalar values into objects. For example, consider an address book entry that represents a single person along with zero or more phone numbers and zero or more addresses. This could be modeled in an object oriented implementation by a "Person object" with an attribute/field to hold each data item that the entry comprises: the person's name, a list of phone numbers, and a list of addresses. The list of phone numbers would itself contain "PhoneNumber objects" and so on. Each such address book entry is treated as a single object by the programming language (it can be referenced by a single variable containing a pointer to the object, for instance). Various methods can be associated with the object, such as methods to return the preferred phone number, the home address, and so on. By contrast, relational databases, such as SQL, group scalars into tuples, which are then enumerated in tables. Tuples and objects have some general similarity, in that they are both ways to collect values into named fields such that the whole collection can be manipulated as a single compound entity. They have many differences, though, in particular: lifecycle management (row insertion and deletion, versus garbage collection or reference counting), references to other entities (object references, versus foreign key references), and inheritance (non existent in relational databases). As well, objects are managed on heap and are under full control of a single process, while database tuples are shared and must incorporate locking, merging, and retry. Object–relational mapping provides automated support for mapping tuples to objects and back, while accounting for all of these differences. The heart of the problem involves translating the logical representation of the objects into an atomized form that is capable of being stored in the database while preserving the properties of the objects and their relationships so that they can be reloaded as objects when needed. If this storage and retrieval functionality is implemented, the objects are said to be persistent. Disadvantages of ORM tools generally stem from the high level of abstraction obscuring what is actually happening in the implementation code. Also, heavy reliance on ORM software has been cited as a major factor in producing poorly designed databases.
Нысанға бағдарланған деректер қоры
Басқа тәсіл – объектіге бағытталған деректерді басқару жүйесін (OODBMS) немесе деректерді модельдеуде көбірек икемділікті қамтамасыз ететін, түпнұсқа XML деректер базалары сияқты құжатқа бағытталған деректер қорын пайдалану. OODBMS – объектіге бағытталған мәндермен жұмыс істеу үшін арнайы жасалған деректер қоры. OODBMS пайдалану деректерді SQL форматына және одан кері түрлендіру қажеттілігін жояды, себебі деректер бастапқы нысандық бейнеленген күйде сақталады және қатынастар тікелей көрсетіледі, қосымша кестелер/операциялар қажеттілігі болмайды. Құжатқа бағытталған деректер қоры үшін ORM-ға балама ретінде нысандық құжат карталары (ODM) қолданылады. Құжатқа бағытталған деректер қоры пайдаланушыға нысандарды кесте қатарларына "бөлуден" де сақтайды. Осы жүйелердің көптеген түрлері деректер жиынтығын алу үшін XQuery сұраныс тілін де қолдайды. Объектіге бағытталған деректер қоры көбінесе күрделі, тар мақсаттағы қолданбаларда қолданылады. OODBMS пайдалануға қарсы аргументтердің бірі – ол ad hoc, қолданбаға тәуелсіз сұраныстарды орындауға қабілетсіз болуы мүмкін. Осы себепті көптеген бағдарламашылар SQL сұраныстарын шектеулі деңгейде өңдей алатындықтан, нысандық SQL карталау жүйесімен жұмыс істеуге бейім. Басқа OODBMS жүйелері SQL деректер қорына көшірме жасау арқылы, белгілі сұраныс үлгілерін сақтай отырып, ad hoc сұраныстар қажеттілігін шешуге мүмкіндік береді.
Қиындықтар
Объектілік жүйені реляциялық деректер базасына бейімдеуді қарастырғанда түрлі қиындықтар туындайды. Бұл қиындықтар объекті-реляциялық үйлесімсіздік деп аталады. ORM-ді іске асырудың орнына, кез келген маңызды деректер базасымен бірге келетін түпкілікті процедуралық тілдерді пайдалануға болады. Оларды клиенттен SQL сұранымдарын қолдана отырып шақыруға болады. Деректерге қол жеткізу объектісі (DAO) жоба үлгісі осы сұранымдарды абстракциялау үшін қолданылады және қосымшаның қалған бөлігіне жеңіл салмақты, объектіге бағытталған интерфейс ұсынады.