Обектно-ориентирани бази данни: концепция, основни понятия, управление, примери

В обектно-ориентираните бази данни (ООБД) потребителите могат да извършват операции върху определена база данни, съставена от обекти, които могат да бъдат голямо разнообразие от типове и за кои операции са определени. Те могат ефективно да обработват двоична информация, като например мултимедийни обекти. Друго допълнително предимство на DBA е, че може да се програмира с малки процедурни разлики, без това да се отрази на цялата система.

Предпоставка за създаването на стандарта

Историята на обектно-ориентираните бази данни датира от края на миналия век. Те са създадени, за да отговорят на нуждите на нови приложения. Очакваше се, че по този начин обектно-ориентираните бази данни ще направят революция в софтуерните системи през 90-те години. Вече е ясно, че случаят не е такъв. Но възраждането на концепцията, благодарение на общността на свободния софтуер и идентифицирането на подходящи приложения, мотивира преосмислянето на характеристиките на СУБД като алтернатива на вездесъщите релационни бази данни.

Предпоставката на стандарта

Обектната ориентация осигурява гъвкавост за изпълнение на някои или всички изисквания и не е ограничена от типовете данни и езиците за заявки на традиционните бази данни. Ключова характеристика на СУБД е мощта, която те предлагат на разработчика, позволявайки му да определя както структурата на сложните обекти, така и операции с приложения. Друг причината за създаването на Друга ключова характеристика на DDBMS е все по-широкото използване на езици за разработване на софтуер.

Базите данни се превърнаха в основна част от много информационни системи, но традиционните бази данни са трудни за използване, когато приложенията, които имат достъп до тях, са написани на C++, Smalltalk или Java. Например обектно-ориентираните бази данни на 1С са проектирани така, че да могат да се интегрират директно с приложения, които използват обектно-ориентирани езици, като възприемат техните концепции: Visual Studio.Net, C++, C#, Microsoft SQL Server и други.

Основното предимство на OOPD е пълното премахване на нуждата от RM1 (импеданс) с последващи подобрения на производителността.

Основно предимство на OOPD

Недостатъци:

  1. Много примитивни консултативни механизми, без самостоятелен приет стандарт за платформа.
  2. Невъзможност за използване на съхранени процедури, тъй като обектите могат да бъдат достъпни само в клиента.
  3. Незрялост на пазара.
  4. Няма физическо групиране на обекти.

Обектна парадигма

Обектна парадигма

Обектно-ориентираните бази данни са програмируеми бази данни, които съхраняват сложни данни и техните връзки директно, без да се задават редове и колони, което ги прави по-подходящи за приложения, които работят с големи пакети. Обектите имат връзки много към много и са достъпни чрез използване на указатели, които са свързани с тях, за да се установят връзки. Както при всяка програмируема система, OOPD осигурява среда за разработване на приложения и постоянно хранилище, готово за използване. Той съхранява и манипулира информация, която може да бъде дигитализирана като обекти, осигурява бърз достъп и големи възможности за обработка.

Основни концепции, използвани в обектно-ориентирана база данни:

  • идентичност на обекта;
  • тип конструктор;
  • Езикова съвместимост;
  • йерархии на типовете и наследяване;
  • обработка на сложни обекти;
  • полиморфизъм и претоварване на оператори;
  • създаване на версии.
Създаване на версии

За да се разгледат изцяло всички аспекти на, кои понятия да се характеризира обектно-ориентираната база данни, е важно да се отбележат всички важни парадигми на обектите:

  1. Капсулирането е свойство, което позволява информацията да бъде скрита за други обекти, като по този начин се предотвратява неправилен достъп или конфликти.
  2. Наследяването е свойство, при което обектите наследяват поведение в йерархията на класовете.
  3. Полиморфизмът е свойство на дадена операция, чрез което тя може да се прилага към различни видове обекти.
  4. Интерфейсът или сигнатурата на дадена операция включва името и типовете данни на нейните аргументи или параметри.
  5. Реализацията или методът на дадена операция се специфицира отделно и може да се променя, без да се засяга интерфейсът. Потребителските приложни програми могат да работят с данни, като извикват посочените операции чрез техните имена и аргументи, независимо от начина, по който са реализирани.

Класове и функционалност

Класове и функционалност

При разглеждането на концепцията за класове в OOPD трябва да се прави разлика между термините "клас" и "тип". Типът се използва за описание на набор от обекти със сходно поведение. В този смисъл зависи от това кои операции могат да бъдат извикани върху обекта. Класът е набор от обекти, които имат една и съща вътрешна структура, така че той дефинира реализация, а типът описва как се използва.

Терминът "създаване на екземпляри" е насочен към факта, че инстанцията на даден клас може да се приложи за формиране на набор от обекти, които имат същата структура и поведение, както е установено от класа.

Функция на, което е много важно за еволюцията на обектите е, че те могат да променят класа си, включително атрибутите и операциите, като същевременно запазват идентичността си. Това изисква механизъм за обработка на получената семантична цялост.

Наследяването на база данни за обектно-ориентирана организация позволява класът да бъде дефиниран като подклас на съществуващ суперклас. Той наследява всички атрибути и методи от последния и може допълнително да дефинира свои собствени. Тази концепция е важен механизъм за подпомагане на повторната употреба. Едни и същи части от структурата на два различни класа могат да бъдат дефинирани само веднъж в общ суперклас, така че ще се пише по-малко код. Има някои системи, които позволяват един клас да бъде подклас на повече от един суперклас. Тази функция се нарича множествено наследяване, за разлика от единичното наследяване.

Пример за обектно-ориентирана база данни

Често е полезно да се използва едно и също име за различни, но сходни методи в суперкласа media от класовете picture и video. Много файлове могат да бъдат преглеждани от различни зрители. Те често трябва да преглеждат всички снимки и видеоклипове, като използват метода "преглед", и трябва да се стартира съответната програма. При извикване на функцията и предаване на връзка към видеоклипа се стартира медийният плейър. За да реализирате тази функция, първо трябва да дефинирате операция "view" в общия суперклас media на класовете picture и video. Всеки подклас пренаписва операцията на изгледа за своите специфични нужди. Това води до появата на различни методи, които използват едно и също име на операция. В този случай използването на тази функция има важно предимство.

Структура на OOPD

Структура на OOPD

Обектно-ориентираната парадигма се основава на капсулиране на данните и кода, свързани с всеки обект, в един модул. Концептуално всички взаимодействия между него и останалата част от системата се осъществяват чрез съобщения. Следователно интерфейсът между тях се определя от допустимия набор от.

В общия случай всеки обект е свързан с набор:

  1. Променливи, които съдържат данни за обекта и съответстват на атрибутите на ER модела.
  2. Съобщения, на които отговаря. Всяка от тях може да има или да няма параметри, един или повече.
  3. Методи, всеки от които представлява код, който реализира съобщение и връща стойност в отговор на него.

Съобщението в среда на OOBD не предполага използването на физически съобщения в компютърни мрежи. Напротив, тя се отнася до обмена на заявки между обекти, независимо от правилните детайли на тяхната реализация. Понякога даден израз извиква метод, за да инициира факта, че дадено съобщение е изпратено до обект, и използва подходящо изпълнение на метода.

Идентичност на обекта

Идентичност на обекта

Обектно-ориентираната система за бази данни осигурява уникална идентичност на всеки независим обект, съхраняван в базата данни. Обикновено се използва уникален системен идентификатор на обекта или OID. Стойността на OID е невидима за външен потребител, но системата я използва вътрешно за управление на препратките между обектите.

Основното свойство на OID е да бъде неизменен. Стойността на OID за даден обект не трябва да се променя. Така се запазва идентичността на представяния реален свят. Също така е за предпочитане всеки OID да се използва само веднъж, дори ако е премахнат от базата данни, неговият OID не трябва да се присвоява на друг. Често се счита за неподходящо да се основава на физическия адрес на обекта в хранилището, тъй като реорганизацията им в базата данни може да промени OID. Някои системи обаче използват физическия адрес като OID, за да повишат ефективността на извличане на обекти. Обектно-ориентираната структура автоматично налага релационни ограничения, които обикновено са по-приложими: домейн, ключ, цялост на обекта и референтна цялост.

Три основни конструктора

Три основни конструктора

В OOBD стойностите или състоянията на сложни обекти могат да се създават от други обекти с помощта на конструктори от определени типове. Един от начините за представянето им е всеки от тях да се разглежда като тройка (i, c, v), където i е уникалният идентификатор на обекта (OID), c е конструкторът, т.е. указателят за начина, по който се създава стойността на обекта, а v е стойността или състоянието на обекта. В зависимост от модела на данните и системата на ОО може да има няколко конструктора.

Трите основни конструктора на обектно-ориентираните бази данни са:

  • атоми;
  • кортежи;
  • задава.

Други по-често срещани употреби са списъците и схемите. Съществува и домейн D, който съдържа всички основни атомни стойности, до които системата има пряк достъп. Обикновено те включват цели числа, реални числа, символни низове, дати и всякакви други типове данни, които системата обработва директно. Структурата на обектите и операциите са включени в дефинициите на класовете.

Съвместимост с езици за програмиране

Основните концепции на обектно-ориентираните бази данни се използват като инструменти за проектиране и се кодират за работа с бази данни.

Съществуват няколко възможни езика, в които тези концепции могат да бъдат интегрирани:

  1. Разширение на езика за обработка на данни, например SQL, чрез добавяне на сложни типове и ООП. Системите предоставят обектно-ориентирани разширения на релационните системи, наречени обектно-ориентирани релационни системи.
  2. Прилагане на съществуващ обектно-ориентиран език за програмиране и разширяването му за работа с бази данни. Те се наричат постоянни езици за програмиране и позволяват на разработчиците да работят директно с данните, без да се налага да преминават през език за класове за обработка на данни, като например SQL. Те се наричат постоянни, защото данните продължават да съществуват и след края на програмата, която ги е създала.

Когато решавате кой вариант да използвате, трябва да имайте предвид, че устойчивите езици обикновено са мощни и е сравнително лесно да се допуснат програмни грешки, които да повредят базата данни. Сложността на езиците затруднява автоматичните оптимизации на високо ниво, като например намаляване на дисковия вход/изход. В много приложения възможността за декларативни заявки е от съществено значение, но постоянните езици понастоящем не позволяват безпроблемно такива заявки.

Йерархия на видовете наследяване

Обектно-ориентираните схеми на бази данни обикновено изискват голям брой. Няколко класа обаче са сходни.За да се даде възможност за пряко представяне на приликите между тях, те трябва да бъдат поставени в йерархия на специализациите. Тази концепция е подобна на моделите ER. Специализациите на класовете се наричат подкласове, които определят допълнителни атрибути и методи за съществуващ клас. Обектите, създадени с помощта на подкласове, наследяват всичко от родителя. Някои от тези унаследени характеристики може да са били заимствани от по-висшестоящи в йерархията.

Обектите се считат за сложни, тъй като изискват значителна площ за съхранение и не са част от стандартните типове данни, които обикновено се предлагат при обектно-ориентираното управление на бази данни (ООУБД). Тъй като размерът на обектите е значителен, ERP може да извлече част от обект и да я предостави на приложна програма, преди да извлече целия обект. Той може също така да използва техники за буфериране и кеширане, за да извлича части от даден обект предварително, преди приложната програма да има достъп до тях.

OOPD позволява на потребителите да създават нови типове, които включват като структура, както и операции, като в този случай това е разширяема система от типове. Могат да се създават нови библиотеки от типове, като се дефинират тяхната структура и операции. Много от тях могат да съхраняват и извличат обширен структуриран обект под формата на низове и символи или битове, които прехвърлят "както е" към приложната програма за интерпретация.

Методът може да осъществява пряк достъп до атрибутите на целевия обект по име, включително до всички атрибути, наследени от родителските класове, но трябва да осъществява достъп до атрибутите на други обекти с вторични сигнали. Концепцията позволява едно и също име на оператор или символ да се свързва с две или повече различни негови реализации в зависимост от вида на обекта, към който се прилага.

Създаване на приложения

създаване на приложение

Много приложения за бази данни, използващи системи с ОО, изискват няколко версии на един и същ обект. Действията по поддръжка обикновено се прилагат към софтуерната система при промяна на изискванията и включват промяна на някои модули за разработка и внедряване. Ако системата вече работи и ако е необходимо да се промени един или повече модули, разработчикът трябва да създаде нова версия на всеки модул, като направи промените.

Обърнете внимание, че може да има повече от две версии на даден обект, в случай че са необходими две версии в допълнение към оригиналния модул. Собствените версии на един и същ софтуерен модул могат да се актуализират едновременно. Това се нарича паралелно проектиране на обектно-ориентирани бази данни. Винаги обаче настъпва момент, в който е необходимо те да бъдат комбинирани, така че хибридната обектно-ориентирана база данни да включва направените промени.

Обектно-ориентирани условия

Всички компютърни системи трябва да притежават свойства на своята архитектура, за да се считат за. Например една система трябва да има таблици, за да се счита за релационна. OOPD не прави изключение и съдържа някои основни свойства на архитектурата на обектите. В реалния свят обаче много от тези свойства се обсъждат, а някои от тях, като например множественото наследяване, се разглеждат като усъвършенстване на модела обектно-ориентирана база данни, а не като част от основна. Например в обектно-ориентирания език Smalltalk не се поддържа множествено наследяване, въпреки че то се счита за част от архитектурата на обекта.

Методите за даден клас определят набор от операции, които могат да се извършват върху обекта. Например, когато се прилага към обект, той или връща стойност, или извършва някаква операция за актуализиране на стойностите. Понякога методите не го връщат. Ако е разработен метод за актуализиране на броя на пътниците за превозни средства, няма да бъде върната стойност, но елементът с данни в целевия обект ще я промени.

Обектите са основна концепция в OODB. По същество обектите са абстрактно представяне на нещата от реалния свят, които се съхраняват в тях. Обектът е екземпляр на клас в смисъл, че е изключен от неговата дефиниция.

Обектът може да се разглежда като самостоятелен пакет, който се състои от три части:

  1. Собствена лична информация, стойности на данните.
  2. частни процедури, които ще манипулират стойностите чрез дефиниция на клас.
  3. Отворен интерфейс, така че обектът да може да комуникира с други обекти.

Примери за OOPD

Използването на ООПД опростява концептуализацията, тъй като е по-естествено да се представи информацията, която трябва да се съхранява. За да се моделира структурата или логиката на базата данни, използването на диаграми на класовете позволява въвеждането на класове с техните структурни връзки и наследяване. За да се моделират част от динамиката, взаимодействието и поведението между обектите, ще се използва диаграма на последователността, за да се представи взаимодействието между обектите, подредени във времева връзка, като се описват възможните състояния, така че те да могат да бъдат намерени предвид промененото състояние след настъпването на събитието.

Примери за обектно-ориентирани бази данни

Пример за обектно-ориентирана база данни е показан по-долу.

Примери за обектно-ориентирани бази данни

Те имат име и срок на живот, който може да бъде краткосрочен или постоянен. Ключът към OODBMS е възможността, която те дават на разработчика, да определи колкото се може повече структури и операции, които да се прилагат към тях. Има гъвкавост и поддръжка за работа със сложни типове данни. Могат да се създават класове и подкласове, например клиентска база може да има подклас на тази клиентска референция и той ще наследи всички атрибути и характеристики на оригиналния клас, този подход позволява бърза и гъвкава обработка на сложни данни.

Статии по темата