Кіріспе

Деректер базасын басқару жүйесінің түрі

Объектік деректер базасы немесе объектіге бағытталған деректер базасы – объектіге бағытталған бағдарламалауда қолданылатын нысандар түрінде ақпарат ұсынылған деректер базасын басқару жүйесі. Объектік деректер базалары кестелік құрылымға негізделген реляциялық деректер базаларынан өзгеше. Үшінші түрі – объектілік-реляциялық деректер базасы – екі тәсілдің біріктірілген нұсқасы. Объектік деректер базалары 1980-жылдардың басынан бері зерттеле бастады.

Шолу

Нысанға бағытталған деректер қорын басқару жүйелері (НБДБЖ), сондай-ақ НБДБЖ (нысан дерекқорын басқару жүйесі) деп аталады, деректер қорының мүмкіндіктерін нысанға бағытталған бағдарламалау тілінің мүмкіндіктерімен біріктіреді. НБДБЖ нысанға бағытталған бағдарламашыларға өнімді әзірлеуге, оларды нысандар ретінде сақтауға және НБДБЖ ішінде жаңа нысандар жасау үшін қолданыстағы нысандарды көшіруге немесе өзгертуге мүмкіндік береді. Деректер қоры бағдарламалау тілімен біріктірілгендіктен, бағдарламалаушы бір ортада тұрақтылықты сақтай алады, себебі НБДБЖ және бағдарламалау тілі бірдей бейнелеу үлгісін қолданады. Реляциялық ДҚБЖ жобалары, керісінше, деректер базасының моделі мен қолданба арасында нақты бөлінуді сақтайды. Веб-технологияны қолданудың артуы, Интранет және Экстранет желілерін енгізумен байланысты, компаниялар күрделі деректерді көрсету үшін НБДБЖ-ға қызығушылық танытады. Деректерді нысандар ретінде сақтауға арнайы жасалған ДҚБЖ пайдалану мультимедиалық презентацияға бағытталған компанияларға немесе компьютерлік көмекпен жобалауды (CAD) пайдаланатын ұйымдарға артықшылық береді. Кейбір нысанға бағытталған деректер қоры Delphi, Ruby, Python, JavaScript, Perl, Java, C#, Visual Basic NET, C++, Objective C және Smalltalk сияқты нысанға бағытталған бағдарламалау тілдерімен жақсы жұмыс істеуге арналған; JADE сияқты басқалары өздерінің бағдарламалау тілдеріне ие. НБДБЖ нысанға бағытталған бағдарламалау тілдерімен дәл бірдей модельді қолданады.

Тарих

Объектілік деректер қорын басқару жүйелері 1970 жылдардың басында және ортасында графтық құрылымдағы объектілерді деректер қорында басқаруды қолдайтын ішкі мүмкіндіктерді зерттеуден пайда болды. "Объектіге бағдарланған деректер базасы жүйесі" термині алғаш рет 1985 жылы қолданылды. Атақты зерттеу жобаларының қатарында Encore Ob/Server (Браун университеті), EXODUS (Висконсин университеті – Мэдисон), IRIS (Hewlett Packard), ODE (Bell Labs), ORION (Микроэлектроника және компьютерлік технологиялар корпорациясы немесе MCC), Vodak (GMD IPSI) және Zeitgeist (Texas Instruments) бар. ORION жобасы басқа жобаларға қарағанда көбірек жарияланған материалдарға ие болды. MCC-нің Вон Ким осы материалдардың ең жақсыларын MIT Press баспасында жарық көрген кітапқа жинақтады. Алғашқы коммерциялық өнімдерге Gemstone (Servio Logic, кейін GemStone Systems деп аталды), Gbase (Graphael) және Vbase (Ontologic) кірді. 1980 жылдардың соңынан 1990 жылдардың ортасына дейін нарыққа қосымша коммерциялық өнімдер енгізілді. Оларға ITASCA (Itasca Systems), Jasmine (Fujitsu, Computer Associates арқылы сатылды), Matisse (Matisse Software), Objectivity/DB (Objectivity, Inc.), ObjectStore (Progress Software, бастапқыда Object Design, Incorporated деп аталған eXcelon компаниясынан сатып алынды), ONTOS (Ontos, Inc., бұрынғы Ontologic), O2 (O2 Technology, бірнеше компаниямен біріктірілді, Informix сатып алды, кейін Informix IBM сатып алды), POET (қазір Versant-тың FastObjects, Poet Software сатып алынды), Versant Object Database (Versant Corporation), VOSS (Logic Arts) және JADE (Jade Software Corporation) кірді. Осы өнімдердің кейбіреуі нарықта қалды және InterSystems Caché сияқты жаңа ашық кодты және коммерциялық өнімдерге қосылды. Объектілік деректер қорын басқару жүйелері объектіге бағытталған бағдарламалау тілдеріне тұрақтылық тұжырымын қосты. Алғашқы коммерциялық өнімдер әртүрлі тілдермен интеграцияланды: GemStone (Smalltalk), Gbase (LISP), Vbase (COP) және VOSS (Smalltalk үшін виртуалды объект сақтау жүйесі). 1990 жылдардың көп бөлігінде C++ коммерциялық объектілік деректер базасын басқару нарығында басымдық танытты. Сатушылар 1990 жылдардың соңында Java-ны, ал соңғы кезде C#-ты қосты. 2004 жылдан бастап объектілік деректер базалары екінші өсу кезеңін бастан кешірді, себебі Smalltalk, Java немесе C# сияқты ООП тілдерінде толығымен жазылған, мысалы, Versant-тың db4o (db4objects), Obsidian Dynamics-тың DTS/S1 және Perst (McObject) сияқты ашық кодты және коммерциялық лицензиялармен қолжетімді объектілік деректер базалары пайда болды.

Техникалық ерекшеліктері

Көптеген объектілік деректер базалары сонымен қатар сұраныс тілін ұсынады, бұл декларативтік бағдарламалау тәсілін қолдана отырып объектілерді табуға мүмкіндік береді. Объектілік сұраныс тілдері және сұраныс пен навигациялық интерфейстерді интеграциялау саласында өнімдер арасындағы ең үлкен айырмашылықтар кездеседі. ODMG Object Query Language, OQL арқылы стандарттауға тырысты. Объектіні іздеусіз, сілтемелер арқылы тікелей алуға болатындықтан деректерге қол жеткізу жылдамырақ болуы мүмкін. Өнімдер арасындағы тағы бір айырмашылық – деректер базасының схемасын анықтау тәсілінде. Дегенмен, жалпы ерекшелік – бағдарламалау тілі мен деректер базасының схемасы бірдей типтерді пайдаланады. Деректерге байланысты сынып әдістері оның дұрыс интерпретациясы үшін жауапты болғандықтан мультимедиялық қолданбалар жеңілдетіледі. Көптеген объектілік деректер базалары, мысалы Gemstone немесе VOSS, нұсқалауды қолдайды. Объектіні оның барлық нұсқаларының жиынтығы ретінде қарастыруға болады. Сонымен қатар, объектінің нұсқаларын өздігінен объектілер ретінде қарастыруға болады. Кейбір объектілік деректер базалары белсенді деректер базаларының негізі болып табылатын триггерлер мен шектеулерге жүйелі қолдау көрсетеді. Мұндай деректер базасының тиімділігі бір объект туралы үлкен көлемдегі деректерді қажет ететін салаларда айтарлықтай жақсарады. Мысалы, банк мекемесі пайдаланушының шот ақпаратына қол жеткізіп, операциялар, шот ақпаратын енгізу сияқты кең ауқымды ақпаратты тиімді түрде ұсынуы мүмкін.

Стандарттар

Объект деректерін басқару тобы – объект дерекқорлары және объект-реляциялық бейнелеу құрастырушы компаниялардың консорциумы, академиялық қауымдастықтың мүшелері және мүдделі тараптар. Оның мақсаты – деректерді басқару жүйелерінде объектілерді сақтайтын, тасымалданатын қолданбаларды құруға мүмкіндік беретін спецификациялар жиынтығын жасау болды. Ол спецификациясының бірнеше нұсқасын жариялады. Соңғы нұсқасы – ODMG 3.0. 2001 жылға қарай көптеген негізгі объект дерекқоры және объект-реляциялық бейнелеу өнімдері ODMG Java Language Binding стандартына сәйкес екенін мәлімдеді. Спецификацияның басқа компоненттеріне сәйкестік әртүрлі болды. 2001 жылы Java Data Objects спецификациясының негізі ретінде ODMG Java Language Binding Java Community Process-ке ұсынылды. ODMG мүшелері Java Data Objects спецификациясына күш-жігерін жұмылдыруға шешім қабылдады. Осының нәтижесінде ODMG 2001 жылы таратылды. Көптеген объект дерекқоры идеялары SQL:1999 стандартына да еніп, объект-реляциялық дерекқор өнімдерінде әртүрлі деңгейде жүзеге асырылды. 2005 жылы Кук, Рай және Розенбергер қосымша объектке бағытталған сұраныс API енгізу үшін барлық стандарттау жұмыстарын тоқтатып, сұраныстарды білдіру үшін OO бағдарламалау тілін, яғни Java және .NET-ті пайдалануды ұсынды. Осының нәтижесінде Native Queries пайда болды. Сол сияқты, Microsoft 2005 жылдың қыркүйегінде C# және VB бағдарламалау тілдерімен тілдік интеграцияланған дерекқор сұраныс мүмкіндіктерін қамтамасыз ету үшін Language Integrated Query (LINQ) және LINQ-тің іске асырылуы DLINQ-ті жариялады. 2006 жылдың ақпанында Object Management Group (OMG) ODMG 3.0 спецификациясына негізделген жаңа спецификацияларды әзірлеу құқығын алғанын және Object Database Technology Working Group (ODBT WG) құрылғанын жариялады. ODBT жұмыс тобы объект дерекқоры технологиясының (мысалы, көшірмелеу), деректерді басқарудың (мысалы, кеңістіктік индекстеу) және деректер форматтарының (мысалы, XML) жетістіктерін қамтитын стандарттар жиынтығын құруды және осы стандарттарға объект дерекқоры қолданылатын салаларды қолдайтын жаңа мүмкіндіктерді енгізуді жоспарлады (мысалы, нақты уақыт жүйелері). ODBT жұмыс тобының жұмысы 2009 жылдың наурызында тоқтатылды, себебі 2008 жылдың соңындағы экономикалық қиындықтардан кейін ODB сатушылары өз ресурстарын басқа бағыттарға жұмылдыруға шешім қабылдады. 2007 жылдың қаңтарында World Wide Web Consortium XQuery тіліне соңғы ұсыным мәртебесін берді. XQuery деректер моделі ретінде XML-ді пайдаланады. Бастапқыда объект дерекқоры үшін әзірленген кейбір идеялар XQuery-ге енді, бірақ XQuery өзінен-өзі объектке бағытталған емес. XML-дің танымалдылығына байланысты XQuery қозғалтқыштары объект дерекқорымен бәсекелеседі, себебі деректерді сақтау құралы өте күрделі немесе өзгермелі, оны реляциялық дерекқорда ыңғайлы түрде сақтау мүмкін емес. XQuery сонымен қатар модульдерді жазуға мүмкіндік береді, олар объектке бағытталған жүйелермен қамтамасыз етілген инкапсуляция мүмкіндіктерін ұсынады. XQuery v1 және XPath v2 және одан кейінгі нұсқалары қуатты және ашық бастапқы коды бар және еркін (FOSS) бағдарламалық жасақтамада, сондай-ақ коммерциялық жүйелерде қол жетімді. Оларды үйрену және пайдалану оңай, сонымен қатар өте қуатты және жылдам. Олар реляциялық емес және XQuery SQL-ге негізделмеген (бірақ XQuery-ді жасаған адамдардың бірі SQL-ді де ойлап тапқан). Бірақ олар бағдарламалау мағынасында объектке бағытталған емес: XQuery жасыру, жасырын жөнелту, сыныптар мен әдістермен инкапсуляцияны қолданбайды. XQuery дерекқорлары әдетте XML және JSON алмасу форматы ретінде пайдаланады, бірақ басқа форматтар да қолданылады. 2000-жылдардың басынан бастап JSON деректер форматын әзірлеушілер басқаратын қосымшаларда қабылдануы мен танымалдылығы артты. JSONiq, JSON үшін XQuery сұранысының аналогы (XQuery негізгі өрнектері мен операцияларын бөліседі), JSON және XML форматтарының деректерге бағытталған ақпарат үшін функционалдық баламалығын көрсетті. Осыған байланысты OODBMS-ті ұстаушылардың негізгі стратегиясы JSON-ті өздерінің дерекқорына қайта бейімдеу (ішкі деректер түрі ретінде пайдалану арқылы) болды. 2016 жылдың қаңтарында PostgreSQL 9.5 нұсқасы барлық негізгі реляциялық және реляциялық емес манипуляциялар үшін толық функциялар мен операциялар жиынтығы бар тиімді JSON ішкі деректер түрін (JSONB) ұсынған алғашқы FOSS OODBMS болды.

РБҚБЖ-мен салыстыру

Объектілік деректер қоры күрделі деректерді және деректер арасындағы қатынастарды реляциялық қатарлар мен бағандарға бейімдеусіз тікелей сақтайды, бұл оларды өте күрделі деректермен жұмыс істейтін қолданбалар үшін ыңғайлы етеді. Объектілердің көпке-көп қатынасы болады және оларға көрсеткіштер арқылы қол жеткізіледі. Көрсеткіштер қатынастарды орнату үшін объектілермен байланыстырылады. OODBMS-тің тағы бір артықшылығы – ол бүкіл жүйеге әсер етпей, шағын процедуралық өзгерістермен бағдарламалана алады.