Objektově orientované databáze: koncept, základní koncepty, správa, příklady

V objektově orientovaných databázích (OOBD) mohou uživatelé provádět operace s konkrétní databází složenou z objektů, což může být nejrůznějších typy a pro které jsou operace nastaveny. Mohou efektivně zpracovávat binární informace, například multimediální objekty. Další další výhodou OOBD je, že ji lze naprogramovat s malými procedurálními rozdíly, aniž by to ovlivnilo celý systém.

Předpoklady pro vytvoření standardu

Historie objektově orientované databáze OOBD začíná koncem minulého století. Byly vytvořeny tak, aby vyhovovaly potřebám nových aplikací. Přitom se předpokládalo, že objektově orientované databáze budou revolucionizovat v softwarových systémech během 90. let. V současnosti to pochopitelně není. Oživení tohoto konceptu prostřednictvím komunit svobodného softwaru a identifikace aplikací, které jsou pro něj vhodné, však motivuje revizi charakteristik OOBD, což je alternativa k všudypřítomným relačním databázím.

Předpoklady pro vytvoření standardu

Zaměření na objekty poskytuje flexibilitu pro zpracování některých nebo všech požadavků a není omezeno na datové typy a dotazovací jazyky tradičních databází. Klíčovou vlastností OOBD je schopnost, kterou poskytují vývojáři, což mu umožňuje specifikovat jak strukturu složitých objektů, tak i operace aplikace. Další důvod vzniku OOBD je rostoucí používání jazyků pro vývoj softwaru.

Databáze se staly základními základy mnoha informačních systémů, ale tradiční DB je obtížné používat, když jsou aplikace, které k nim přistupují, psány v jazyce C++, Smalltalk nebo Java. Například objektově orientované databáze 1C byly navrženy tak, aby mohly být přímo integrovány s aplikacemi používajícími objektově orientované jazyky přijetím jejich konceptů: Visual Studio.Net, C++, C#, Microsoft SQL Server a další.

Hlavní výhodou OOBD je úplné odstranění potřeby rms1 (impedance) s následným zlepšením výkonu.

Hlavní výhoda OOBD

Nedostatky:

  1. Velmi primitivní poradenské mechanismy, bez nezávislého standardu přijaté platformy.
  2. Nemožnost uložených procedur, protože objekty lze zobrazit pouze v klientovi.
  3. Nezralost na trhu.
  4. Žádné fyzické seskupení objektů.

Paradigma objektu

Paradigma objektu

Objektově orientované databáze jsou programovatelná databáze, která ukládá složitá data a jejich vztahy přímo, bez přiřazení řádků a sloupců, což je činí vhodnějšími pro aplikace pracující s velkými balíčky. Objekty mají vztah "mnoho k mnoha" a jsou přístupné pomocí ukazatelů, které s nimi souvisejí k navázání vztahu. Jako každý programovatelný poskytuje OOBD prostředí pro vývoj aplikací a trvalé úložiště připravené k použití. Ukládá a manipuluje s informacemi, které lze digitalizovat jako objekty, poskytuje rychlý přístup a poskytuje skvělé možnosti zpracování.

Základní pojmy používané v objektově orientované databázi:

  • identita objektů;
  • Typ konstruktoru;
  • kompatibilita S jazyky;
  • hierarchie typů a dědičnosti;
  • zpracování složitých objektů;
  • polymorfismus a přetížení operátorů;
  • vytváření verzí.
Vytváření verzí

Za účelem úplného zvážení všech aspektů, jaké jsou pojmy charakterizují objektově orientovanou databázi, je důležité si všimnout všech důležitých paradigmat objektu:

  1. Zapouzdření-vlastnost, která umožňuje skrýt informace pro zbývající objekty, čímž zabraňuje nesprávnému přístupu nebo konfliktům.
  2. Dědičnost-vlastnost, kterou objekty zdědí chování v hierarchii tříd.
  3. Polymorfismus - vlastnost operace, kterou lze použít na různé typy objektů.
  4. Rozhraní nebo podpis operace zahrnuje název a datové typy jejích argumentů nebo parametrů.
  5. Implementace nebo metoda operace je specifikována samostatně a lze ji změnit bez ovlivnění rozhraní. Vlastní aplikační programy mohou pracovat s daty voláním zadaných operací prostřednictvím jejich jmen a argumentů, ať už byly implementovány jakým způsobem.

Třídy a funkce

Třídy a funkce

Při pohledu na koncept tříd v OOBD je třeba rozlišovat mezi pojmy "třída" A "typ". Typ se používá k popisu sady objektů s podobným chováním. V tomto smyslu závisí na operacích, které mohou být na objektu vyvolány. Třída je sada objektů, které mají stejnou vnitřní strukturu, takže definuje implementaci a typ popisuje způsob použití.

Termín instance je zaměřen na skutečnost, že konkretizaci třídy lze použít k vytvoření sady objektů, které mají stejnou strukturu a chování nastavené třídou.

Zvláštnost, což je velmi důležité pro vývoj objektů je, že může změnit svou třídu, včetně atributů a operací při zachování identity. To bude vyžadovat mechanismus pro zpracování vznikající sémantické integrity.

Dědičnost objektově orientované databáze organizace umožňuje definovat třídu jako podtřídy již existující nadtřídy. Zdědí všechny atributy a metody od druhého a může dále definovat své vlastní. Tento koncept je důležitým mechanismem podpory opětovného použití. Stejné části struktury dvou různých tříd lze definovat pouze jednou ve společné nadtřídě, takže bude napsáno méně kódu. Existují některé systémy, které umožňují třídě být podtřídou y Více než jedné nadtřídy. Tato funkce se nazývá vícenásobná dědičnost, na rozdíl od jediné dědičnosti.

Příklad objektově orientované databáze

Často je užitečné použít stejný název pro různé, ale podobné metody nadtřídy médií ze tříd picture a video. Mnoho souborů si mohou prohlížet různí diváci. Často mají potřebu prohlížet všechny fotografie a videa pomocí metody "zobrazit" a musí být spuštěn příslušný program. Při volání funkce a předávání odkazu na video se spustí přehrávač médií. Chcete-li implementovat tuto schopnost, musíte nejprve definovat operaci "pohled" ve společné nadtřídě médií ze tříd picture a video. Každá z podtříd přepíše operaci zobrazení pro své specifické potřeby. To vede k různým metodám, které mají stejný název operace. V tomto případě má použití této funkce důležitou výhodu.

Struktura OOBD

Struktura OOBD

Objektově orientované paradigma je založeno na zapouzdření dat a kódu vztahujícího se ke každému objektu v jednom modulu. Koncepčně jsou všechny interakce mezi ním a zbytkem systému prováděny prostřednictvím zpráv. Rozhraní mezi nimi je proto určeno povolenou sadou.

Obecně je každý objekt spojen se sadou:

  1. Proměnných, které obsahují data objektu a odpovídají atributům modelu ER.
  2. Zprávy, na které odpovídá. Každý může nebo nemusí mít parametry, jeden, nebo více.
  3. Metody, z nichž každý je Kód implementující zprávy a vrací hodnotu v reakci na to.

Zpráva v oo prostředí neznamená použití fyzických SMS v počítačových sítích. Naopak se týká výměny dotazů mezi objekty bez ohledu na správné podrobnosti jejich implementace. Někdy výraz volá metodu k zahájení skutečnosti, že zpráva je odeslána do objektu, a používá provedení příslušné metody.

Identita objektů

Identita objektů

Objektově orientovaný databázový systém poskytuje jedinečnou identifikaci každému nezávislému objektu uloženému v databázi. Obvykle se implementuje pomocí jedinečného identifikátoru objektu generovaného systémem nebo OID. Hodnota OID je pro externího uživatele neviditelná, ale systém ji interně používá ke správě odkazů mezi objekty.

Hlavní vlastností OID je neměnnost. Hodnota OID pro konkrétní objekt by se nikdy neměla měnit. To zachovává identitu reprezentovaného reálného světa. Je také výhodné, aby byl každý OID používán pouze jednou, i když je odstraněn z databáze, jeho OID by neměl být přiřazen jinému. Je také často považováno za nevhodné založit jej na fyzické adrese objektu v úložišti, protože jejich reorganizace do DB může změnit OID. Některé systémy však používají fyzickou adresu jako OID ke zvýšení efektivity získávání objektů. Objektově orientovaná struktura automaticky ukládá relační omezení, která jsou obvykle použitelnější: doména, klíč, integrita objektu a referenční integrita.

Tři hlavní konstruktéři

Tři hlavní konstruktéři

The OOBD hodnoty nebo stavy složitých objektů lze vytvořit z jiných pomocí konstruktorů určitých typů. Jedním ze způsobů, jak je reprezentovat, je zacházet s každým jako s tripletem (I, c, v) , KDE i je jedinečný identifikátor objektu (OID), C je Konstruktor, tj. V závislosti na datovém modelu a systému oo může existovat několik konstruktérů.

Tři hlavní konstruktéři objektově orientovaných databází:

  • atom;
  • průvod;
  • sada.

Další obecnější použití jsou seznamy a schémata. Existuje také doména D, která obsahuje všechny základní atomové hodnoty dostupné přímo v systému. Obvykle zahrnují celá čísla a reálná čísla, řetězce znaků, data a jakékoli další typy dat, které systém zpracovává přímo. Struktura objektů i operace jsou zahrnuty do definic tříd.

Kompatibilita s programovacími jazyky

Základní pojmy objektově orientované databáze se používají jako návrhové nástroje a jsou kodifikovány pro provoz s DB.

Existuje několik možných jazyků, ve kterých lze tyto pojmy integrovat:

  1. Rozšíření jazyka pro zpracování dat, jako je SQL, přidáním složitých typů a OOP. Systémy poskytují objektově orientovaná rozšíření relačních systémů nazývaných objektově orientované relační systémy.
  2. Použít existující objektově orientovaný programovací jazyk a rozšířit jej pro práci s databázemi. Nazývají se konstantní programovací jazyk a umožňují vývojářům pracovat přímo s daty, aniž by museli procházet jazyk pro zpracování dat jako SQL. Říká se jim perzistence, protože data přetrvávají i po dokončení programu, který je vytvořil.

Při rozhodování, kterou možnost použít, musíte mít na mysli, že trvalé jazyky jsou obvykle výkonné a je relativně snadné dělat chyby programování, které poškozují dB. Složitost jazyků ztěžuje automatickou optimalizaci na vysoké úrovni, jako je snížení I / O disku. V mnoha aplikacích je schopnost deklarativních dotazů velmi důležitá, ale trvalé jazyky v současné době takové dotazy bez problémů neumožňují.

Hierarchie typů dědičnosti

Objektově orientovaná databázová schémata obvykle vyžadují velké množství tříd. Několik tříd se však navzájem podobá.Aby bylo možné přímo reprezentovat podobnosti mezi nimi, bude nutné je umístit do hierarchie specializací. Tento koncept je podobný modelům ER. Specializace tříd se nazývají podtřídy, které definují další atributy a metody pro existující třídu. Objekty vytvořené pomocí podtříd zdědí vše od nadřazeného. Některé z těchto zděděných charakteristik mohly být samy vypůjčeny od vyšších v hierarchii.

Objekty jsou považovány za složité, protože vyžadují významnou oblast úložiště a nejsou součástí standardních datových typů, které Správa objektově orientovaných databází (COOBD)obvykle nabízí. Protože velikost objektů je významná, může SOBD získat část objektu a poskytnout jej aplikačnímu programu před získáním celého objektu. A může také použít metody vyrovnávací paměti a ukládání do mezipaměti k získání částí objektu předem, než k nim má aplikační program přístup.

OOBD umožňuje uživatelům vytvářet nové typy, které zahrnují sebe jako struktura i operace jsou v tomto případě systémem rozšiřitelných typů. Je možné vytvořit knihovny nových typů definováním jejich struktury a operací. Mnoho z nich může ukládat a přijímat rozsáhlý strukturovaný objekt ve formě řetězců a znaků nebo bitů, které přenášejí "jak jíst"do aplikačního programu pro interpretaci.

Metoda může přímo přistupovat k atributům cílového objektu podle názvu, včetně jakýchkoli zděděných z nadřazených tříd, ale musí mít přístup k atributům jiných objektů se sekundárními signály. Koncept umožňuje propojit stejný název nebo symbol operátora se dvěma nebo více různými implementacemi v závislosti na typu objektů, na které se vztahuje.

Vytváření aplikací

Vytváření aplikací

Mnoho databázových aplikací, které používají oo systémy, vyžaduje více verzí stejného objektu. Činnosti údržby se obvykle vztahují na softwarový systém, jak se mění jejich požadavky, a zahrnují změnu některých vývojových a implementačních modulů. Pokud systém již funguje a pokud je třeba změnit jeden nebo více modulů, měl by vývojář vytvořit novou verzi každého z nich provedením změn.

Je třeba poznamenat, že kromě původního modulu mohou existovat více než dvě verze objektu, pokud jsou vyžadovány dvě. Nativní verze stejného softwarového modulu lze aktualizovat současně. Toto se nazývá paralelní návrh objektově orientovaných databází. Vždy však přichází okamžik, kdy je třeba je kombinovat, aby hybridní OOBD zahrnoval provedené změny bude nutné, aby byly kompatibilní.

Objektově orientované podmínky

Všechny počítačové systémy musí mít vlastnosti své architektury, aby mohly být zváženy. Například systém musí mít tabulky, aby byl považován za relační. OOBD není výjimkou a obsahuje některé základní vlastnosti objektové architektury. V reálném světě je však diskutováno mnoho z těchto vlastností a některé, například vícenásobná dědičnost, jsou považovány za vylepšení modelu objektově orientovaná databáze, nikoli jako součást základního rámce. Například v objektově orientovaném jazyce Smalltalk není vícenásobná dědičnost podporována, i když je považována za součást objektové architektury.

Metody pro třídu definují sadu operací, které lze provést nad objektem. Například když se použije na objekt, vrátí hodnotu nebo provede nějakou operaci k aktualizaci hodnot. Někdy to metody nevrátí. Pokud byla metoda vyvinuta k aktualizaci počtu cestujících pro dopravní prostředek, nebyla by vrácena žádná hodnota, ale datový prvek v cílovém objektu by to změnil.

Objekty jsou základním konceptem v OOBD. Objekty jsou v podstatě abstraktní reprezentací věcí skutečného světa, které jsou v něm uloženy. Objekt je instancí třídy, protože je z její definice vyloučen.

Objekt lze považovat za samostatný balíček, který má tři části:

  1. Vlastní osobní údaje, hodnoty dat.
  2. Soukromé postupy, které budou manipulovat s hodnotami, prostřednictvím definice třídy.
  3. Otevřené rozhraní, aby tento objekt mohl komunikovat s ostatními.

Příklady OOBD

Použití OOBD usnadňuje konceptualizaci, protože je přirozenější prezentovat informace, které je třeba zachovat. Pro modelování struktury nebo logiky databáze, použití diagramů tříd, umožňuje zadat třídy s jejich strukturálních vztahů a dědičnosti. Aby bylo možné modelovat část dynamiky, interakce a chování mezi objekty, bude sekvenční diagram použit k reprezentaci interakce mezi objekty umístěnými v časovém spojení, popisující možné stavy tak, aby mohly být nalezeny s ohledem na změněný stav po výskytu události.

Příklady OOBD

Příklad objektově orientované databáze je uveden níže.

Příklady objektově orientovaných databází

Mají jméno a životnost, která může být krátkodobá nebo trvalá. Klíčem OOBD je schopnost, kterou poskytují vývojáři specifikovat tolik struktur a operací, které mají být použity na ně. Existuje flexibilita a podpora pro zpracování složitých datových typů. Je možné vytvořit třídy a podtřídy, například klientská základna může mít podtřídu odkazu tohoto klienta a zdědí všechny atributy a vlastnosti původní třídy, tento přístup umožňuje rychlé a flexibilní zpracování složitých dat.

Články na téma