В обектно-ориентирани бази данни (OODBs), потребителите могат да задават операции върху конкретна база данни, която е съставена от обекти, които могат да бъдат от голямо разнообразие от типове и за които са зададени операции. Те могат ефективно да обработват двоична информация като мултимедийни обекти. Друго допълнително предимство на OODB е, че може да се програмира с леки процедурни разлики, без да се засяга цялата система.
Предварителни условия за създаването на стандарта
Историята на обектно-ориентираните OODB бази данни започва в края на миналия век. Те са създадени, за да отговорят на нуждите на нови приложения. Предположението беше, че обектно-ориентираните бази данни ще революционизират софтуерните системи през 90-те години. Сега е ясно, че това не е така. Въпреки това, възраждането на тази концепция чрез общностите на свободния софтуер и идентифицирането на подходящи приложения за нея мотивира преглед на характеристикитеOODB, който е алтернатива на вездесъщите релационни бази данни.
Обектно-ориентираният осигурява гъвкавостта за обработка на някои или всички изисквания и не се ограничава до типовете данни и езиците за заявки на традиционните бази данни. Ключова характеристика на OODB е възможността, която те предоставят на разработчика, което му позволява да указва както структурата на сложните обекти, така и операциите на приложението. Друга причина за създаване на OODB е нарастващото използване на езици за разработка на софтуер.
Базите данни се превърнаха в основата на много информационни системи, но традиционните бази данни са трудни за използване, когато приложенията, които имат достъп до тях, са написани на C++, Smalltalk или Java. Например, 1C обектно-ориентирани бази данни са проектирани по такъв начин, че да могат да бъдат директно интегрирани с приложения, използващи обектно-ориентирани езици, като приемат техните концепции: Visual Studio. Net, C ++, C, Microsoft SQL Server и други.
Основното предимство на OODB е пълното премахване на необходимостта от RMs1 (импеданс) с последващи подобрения на производителността.
Недостатъци:
- Много примитивни механизми за консултации, без стандартно приета платформа.
- Не мога да съхранявам процедури, защото обектите могат да бъдат достъпни само в клиента.
- Незрялост на пазара.
- Без физическо групиране на обекти.
Обектна парадигма
Обектно-ориентирани бази данни са програмируеми бази данни, които съхраняват сложни данни и техните връзки директно, без да присвояват редове и колони, което ги прави по-подходящи за приложения, които работят с големи партиди. Обектите имат връзки много към много и са достъпни чрез използването на указатели, които са свързани с тях, за да установят връзки. Като всеки програмируем, OODB предоставя среда за разработка на приложения и постоянно хранилище, готово за експлоатация. Той съхранява и манипулира информация, която може да бъде дигитализирана под формата на обекти, осигурява бърз достъп и предоставя страхотни възможности за обработка.
Основни понятия, използвани в обектно-ориентирана база данни:
- идентификация на обекта;
- тип конструктор;
- езикова съвместимост;
- тип йерархии и наследяване;
- обработка на сложни обекти;
- полиморфизъм и претоварване на оператора;
- създаване на версии.
За да се разгледат напълно всички аспекти, които характеризират обектно-ориентирана база данни, важно е да се отбележат всички важни обектни парадигми:
- Капсулирането е свойство, което ви позволява да скриете информация за други обекти, като по този начин предотвратявате неправилен достъп или конфликти.
- Наследяването е свойство, чрез което обектите наследяват поведението в йерархията на класовете.
- Полиморфизмът е свойство на операция, с която може да се приложиразлични видове обекти.
- Интерфейсът или подписът на операция включва името и типове данни на нейните аргументи или параметри.
- Изпълнението или методът на дадена операция се посочва отделно и може да бъде променен, без да се засяга интерфейсът. Потребителските приложения могат да работят с данни, като извикват определени операции чрез техните имена и аргументи, независимо от начина, по който са били внедрени.
Класове и функционалност
Когато се разглежда концепцията за класове в OODB, е необходимо да се прави разлика между термините "клас" и "тип". Типът се използва за описание на набор от обекти с подобно поведение. В този смисъл зависи от това какви операции могат да бъдат извикани върху обекта. Класът е колекция от обекти, които споделят една и съща вътрешна структура, така че дефинира реализация, докато типът описва как да се използва.
Терминът инстанциране се отнася до факта, че инстанцирането на клас може да се използва за създаване на набор от обекти, които имат същата структура и поведение, както е зададено от класа.
Характеристика, която е много важна за еволюцията на обектите, е, че може да променя своя клас, включително атрибути и операции, като същевременно запазва идентичността. Това ще изисква механизъм за обработка на получената семантична цялост.
Наследяването на обектно-ориентирана база данни на организация позволява да се дефинира клас като подклас на вече съществуващ суперклас. Той ще наследи всички атрибути и методи от последния и може по избор да дефинирасобствен. Тази концепция е важен механизъм в подкрепа на повторната употреба. Същите части от структурата на два различни класа могат да бъдат дефинирани само веднъж в общ суперклас, като по този начин ще бъде написан по-малко код. Има някои системи, които позволяват на един клас да бъде подклас на повече от един суперклас. Тази функция се нарича множествено наследяване, за разлика от единично наследяване.
Пример за обектно-ориентирана база данни
Често е полезно да се използва едно и също име за различни, но подобни методи на медийния суперклас от класовете за картини и видео. Много файлове могат да се разглеждат от различни зрители. Често им се налага да преглеждат всички снимки и видеоклипове с помощта на метода "преглед" и трябва да стартирате съответната програма. Когато функцията бъде извикана и се предаде връзка към видеото, медийният плейър се стартира. За да се реализира тази функция, на първо място, е необходимо да се дефинира операцията "презентация" в общия медиен суперклас от класовете картина и видео. Всеки от подкласовете предефинира операцията за търсене за своите специфични нужди. Това води до различни методи, които имат едно и също име на операцията. В този случай използването на тази функция има важно предимство.
OODB структура
Обектно-ориентираната парадигма се основава на капсулирането на данни и код, свързани с всеки обект в един модул. Концептуално всички взаимодействия между него и останалата част от системата се осъществяват с помощта на съобщения. Оттук и интерфейсътмежду тях се определя от разрешения набор.
По принцип всеки обект е свързан с набор:
- Променливи, които съдържат данни за обекта и съответстват на атрибутите на модела на ER.
- Съобщения, на които той отговаря. Всеки може или не може да има параметри, един или повече.
- Методи, всеки от които е код, който имплементира съобщения и връща стойност в отговор на него.
Съобщения в OO среда не предполага използването на физически SMS в компютърни мрежи. Напротив, това се отнася до обмена на заявки между обекти, независимо от правилните детайли на тяхното изпълнение. Понякога израз извиква метод, за да задейства факта, че съобщението е изпратено до обект, и използва изпълнението на съответния метод.
Идентификация на обекта
Обектно-ориентираната база данни осигурява уникална идентификация за всеки независим обект, съхранен в базата данни. Обикновено се реализира с помощта на генериран от системата уникален идентификатор на обект или OID. Стойността на OID е невидима за външния потребител, но системата я използва вътрешно за управление на връзките между обекти.
Основното свойство на OID е да бъде неизменяем. Стойността на OID за конкретен обект никога не трябва да се променя. Това запазва идентичността на реалния свят, който се представя. Също така е за предпочитане всеки OID да се използва само веднъж, дори ако е премахнат от базата данни, неговият OID не трябва да се присвоява на друг. Също така често се смята за неподходящо да се базира на физическоадреса на обекта в хранилището, тъй като реорганизирането им в базата данни може да промени OID. Някои системи обаче използват физическия адрес като OID, за да повишат ефективността на извличането на обекти. Обектно-ориентираната рамка автоматично налага релационни ограничения, обикновено по-приложими: домейн, ключ, целостта на обекта и референтна цялост.
Три основни конструктора
В OODB стойности или състояния на сложни обекти могат да бъдат създадени от други, като се използват конструктори от определени типове. Един от начините да ги представим е да мислим за всеки като триплет (i, c, v), където i е уникалният идентификатор на обекта (OID), c е конструкторът, тоест указател за това как е стойността на обекта създадено, а v е стойността или състоянието на обекта. Може да има множество конструктори в зависимост от модела на данните и OO системата.
Три основни обектно-ориентирани конструктора на база данни:
- атоми;
- кортежи;
- комплекти.
Други по-чести употреби са списъци и диаграми. Има и домейн D, който съдържа всички основни атомни стойности, директно достъпни в системата. Те обикновено включват цели числа, реални числа, низове от знаци, дати и всеки друг тип данни, които системата обработва директно. Както структурата на обектите, така и операциите са включени в дефинициите на класове.
Съвместимост с езици за програмиране
Основните концепции на обектно-ориентирани бази данни се използват вкато инструменти за проектиране и кодифицирани за работа с базата данни.
Има няколко възможни езика, в които тези понятия могат да бъдат интегрирани:
- Разширяване на език за обработка на данни като SQL чрез добавяне на сложни типове и ООП. Системите предоставят обектно-ориентирани разширения на релационни системи, наречени обектно-ориентирани релационни системи.
- Използване на съществуващ обектно-ориентиран език за програмиране и разширяване за работа с бази данни. Те се наричат постоянни езици за програмиране и позволяват на разработчиците да работят директно с данни, без да се налага да преминават през език за обработка на данни като SQL. Те се наричат постоянни, защото данните продължават да съществуват след края на програмата, която ги е създала.
Когато решавате коя опция да използвате, имайте предвид, че постоянните езици обикновено са мощни и е сравнително лесно да се правят програмни грешки, които увреждат базата данни. Сложността на езиците затруднява автоматичните оптимизации на високо ниво, като например намаляване на дисковия вход/изход. В много приложения способността да се правят декларативни заявки е важна, но постоянните езици в момента не позволяват такива заявки без проблеми.
Йерархия на типовете наследяване
Обектно-ориентирани схеми на база данни обикновено изискват голям брой класове. Въпреки това, няколко класа са подобни един на друг. За да позволите директно представяне на приликите между тях, трябва да поставитеги в йерархия от специализации. Тази концепция е подобна на ER моделите. Класовите специализации се наричат подкласове, които дефинират допълнителни атрибути и методи за съществуващ клас. Обектите, създадени с подкласове, наследяват всичко от родителя. Някои от тези наследени характеристики може да са заимствани от тези по-високо в йерархията.
Обектите се считат за сложни, защото изискват голямо количество място за съхранение и не са част от стандартните типове данни, които обикновено предлага Обектно-ориентирано управление на бази данни (OODBS). Тъй като размерът на обектите е значителен, SOOBMS може да получи част от обект и да я предостави на приложение, преди да придобие целия обект. Може също да използва методи за буфер и кеш, за да получи части от обект преди време, преди приложението да може да получи достъп до тях.
OODB позволява на потребителите да създават нови типове, които включват както структура, така и операции, в този случай системата с разширяеми типове. Можете да създавате библиотеки от нови типове, като дефинирате тяхната структура и операции. Много от тях могат да съхраняват и получават голям структуриран обект под формата на низове и знаци или битове, които се предават "както са" на приложната програма за интерпретация.
Методът може директно да осъществява достъп до атрибутите на целевия обект по име, включително всички наследени от родителски класове, но трябва да осъществява достъп до атрибути на други обекти с вторични сигнали. Концепцията ви позволява да свържете едно и също име на оператор или символ сдве или повече различни негови реализации, в зависимост от типа на обектите, за които се прилага.
Изграждане на приложения
Много приложения за бази данни, използващи OO системи, изискват множество версии на един и същи обект. Обикновено дейностите по поддръжка се прилагат към софтуерна система, когато изискванията им се променят и включва промяна на някои от модулите за разработка и внедряване. Ако системата вече работи и ако един или повече модули трябва да бъдат променени, разработчикът трябва да създаде нова версия на всеки от тях, като направи промени.
Обърнете внимание, че може да има повече от две версии на обект, в случай че се изискват две в допълнение към оригиналния модул. Собствени версии на същия софтуерен модул могат да бъдат актуализирани едновременно. Това се нарича паралелен обектно-ориентиран дизайн на база данни. Винаги обаче идва момент, в който те трябва да бъдат обединени, за да може хибридната OODB да включи направените промени, така че да са съвместими.
Обектно-ориентирани условия
Всички компютърни системи трябва да имат свойства на тяхната архитектура, за да бъдат взети предвид. Например, една система трябва да има таблици, за да се счита за релационна. OODB не е изключение и съдържа някои основни свойства на архитектурата на обекта. Въпреки това, в реалния свят много от тези свойства се обсъждат и някои, като например множественото наследяване, се считат за подобрения на обектно-ориентирания модел на база данни, а некато част от базовата линия. Например, в обектно-ориентирания език Smalltalk, множественото наследяване не се поддържа, въпреки че се счита за част от архитектурата на обекта.
Методите за клас дефинират набор от операции, които могат да бъдат извършени върху обект. Например, когато се прилага към обект, той или връща стойност, или извършва някаква операция за актуализиране на стойностите. Понякога методите не го връщат. Ако методът е проектиран да актуализира броя на пътниците за превозно средство, няма да бъде върната стойност, но елементът от данни в целта ще го промени.
Обектите са основна концепция в OODB. По същество обектите са абстрактно представяне на нещата от реалния свят, които се съхраняват в него. Обектът е екземпляр на клас в смисъл, че е изключен от неговата дефиниция.
Можете да мислите за обект като самостоятелен пакет, който има три части:
- Собствена лична информация, стойности на данните.
- Частни процедури, които ще манипулират стойности чрез дефиницията на класа.
- Отворете интерфейса, за да може този обект да комуникира с други.
OODB примери
Използването на OODB опростява концептуализацията, защото е по-естествено да се представи информацията, която трябва да бъде съхранена. За да моделирате структурата или логиката на база данни, използването на диаграми на класове ви позволява да въвеждате класове с техните структурни връзки и наследяване. За да се моделира част от динамиката, взаимодействието иповедение между обекти, диаграма на последователност ще бъде използвана за представяне на взаимодействието между обекти, намиращи се във временна връзка, описваща възможните състояния, така че те да могат да бъдат намерени предвид промененото състояние след настъпването на събитието.
По-долу е показан пример за обектно-ориентирана база данни.
Те имат име и цял живот, който може да бъде временен или постоянен. Ключът OODB е способността, която предоставят на разработчика, за да посочи колко структури и операции ще бъдат приложени към тях. Има гъвкавост и поддръжка за обработка на сложни типове данни. Можете да създавате класове и подкласове, например клиентската база може да има подклас на връзката на този клиент и тя ще наследи всички атрибути и характеристики на оригиналния клас, този подход ви позволява бързо и гъвкаво да обработвате сложни данни.