GNU/Linux >> Znalost Linux >  >> Linux

Co je to objektově orientovaná databáze

Úvod

Objektově orientované databáze jsou typem systému správy databází. Různé systémy správy databází poskytují další funkce. Objektově orientované databáze přidávají databázovou funkcionalitu do objektových programovacích jazyků a vytvářejí lépe spravovatelné kódové báze.

Tento článek poskytuje podrobný přehled objektově orientovaných databází s příklady.

Definice databáze objektů

Databázi objektů spravuje o bject-o riented d atab ase m řízení s systém (OODBMS). Databáze kombinuje koncepty objektově orientovaného programování s principy relační databáze.

  • Objekty jsou základním stavebním blokem a instancí třídy, kde je typ vestavěný nebo definovaný uživatelem.
  • Třídy poskytnout schéma nebo plán pro objekty, které definují chování.
  • Metody určit chování třídy.
  • Ukazatele pomáhají získat přístup k prvkům databáze objektů a navazovat vztahy mezi objekty.

Hlavní charakteristikou objektů v OODBMS je možnost uživatelsky vytvořených typů . Objekt vytvořený v projektu nebo aplikaci se uloží do databáze tak, jak je.

Objektově orientované databáze přímo pracují s daty jako s kompletními objekty. Všechny informace přicházejí v jednom okamžitě dostupném balíčku objektů namísto několika tabulek.

Naproti tomu základní stavební kameny relačních databází, jako je PostgreSQL nebo MySQL, jsou tabulky s akcemi založenými na logických spojeních mezi daty tabulky.

Díky těmto vlastnostem jsou objektové databáze vhodné pro projekty se složitými daty, které vyžadují objektově orientovaný přístup k programování. Objektově orientovaný systém správy poskytuje podporované funkce určené pro objektově orientované programování, kde jsou komplexní objekty ústřední. Tento přístup sjednocuje atributy a chování dat do jedné entity.

Koncepty objektově orientovaného programování

Objektově orientované databáze úzce souvisí s koncepty objektově orientovaného programování. Čtyři hlavní myšlenky objektově orientovaného programování jsou:

  • Polymorfismus
  • Dědičnost
  • Zapouzdření
  • Abstrakce

Tyto čtyři atributy popisují kritické charakteristiky objektově orientovaných systémů řízení.

Polymorfismus

Polymorfismus je schopnost objektu mít více podob. Tato schopnost umožňuje, aby stejný programový kód pracoval s různými datovými typy. Jak auto, tak kolo se mohou rozbít ale mechanismus je jiný. V tomto příkladu je akční přestávka polymorfismus. Definovaná akce je polymorfní — výsledek se mění v závislosti na výkonu vozidla.

Dědičnost

Dědičnost vytváří hierarchický vztah mezi souvisejícími třídami a zároveň činí části kódu znovupoužitelnými. Definování nových typů zdědí všechna existující pole tříd a metody a dále je rozšiřuje. Stávající třída je rodič třídy, zatímco dítě class rozšiřuje rodiče.

Například nadřazená třída s názvem Vehicle bude mít dětské třídy Auto a Na kole . Obě dětské třídy dědí informace z nadřazené třídy a extend nadřazenou třídu s novými informacemi v závislosti na typu vozidla.

Zapouzdření

Zapouzdření je schopnost seskupit data a mechanismy do jednoho objektu, aby byla zajištěna ochrana přístupu. Prostřednictvím tohoto procesu jsou skryty části informací a podrobnosti o tom, jak objekt funguje výsledkem je zabezpečení dat a funkcí. Třídy na sebe vzájemně působí prostřednictvím metod, aniž by bylo nutné vědět, jak konkrétní metody fungují.

Například automobil má popisné vlastnosti a akce. Můžete změnit barvu auta, ale model nebo značka jsou příklady vlastností, které se změnit nedají. Třída zapouzdřuje všechny informace o autě do jedné entity, kde některé prvky jsou modifikovatelné, zatímco některé ne.

Abstrakce

Abstrakce je postup reprezentace pouze základních datových funkcí pro potřebnou funkci . Proces vybírá důležité informace, zatímco nepotřebné informace zůstávají skryté. Abstrakce pomáhá snížit složitost modelovaných dat a umožňuje opětovné použití.

Například existují různé způsoby připojení počítače k ​​síti. Webový prohlížeč vyžaduje připojení k internetu. Typ připojení je však irelevantní. Navázané připojení k internetu představuje abstrakce , zatímco různé typy připojení představují různé implementace abstrakce.

Příklady objektově orientované databáze

Existují různé druhy implementací objektových databází. Většina z nich obsahuje následující funkce:

Funkce Popis
Dotazovací jazyk Jazyk pro vyhledání objektů a načtení dat z databáze.
Transparentní vytrvalost Schopnost používat objektově orientovaný programovací jazyk pro manipulaci s daty.
ACID transakce Transakce ACID zaručují, že všechny transakce proběhnou bez konfliktních změn.
Ukládání do mezipaměti databáze Vytváří částečnou repliku databáze. Umožňuje přístup k databázi z paměti programu místo z disku.
Obnovení Obnova po havárii v případě selhání aplikace nebo systému.

Drahý kámen/S

GemStone/S je objektový databázový systém založený na Smalltalku – objektově orientovaném programovacím jazyku ovlivněném Javou. Vývojáři, kteří píší aplikace ve Smalltalku, se této databázi snadno přizpůsobí. GemStone/S se hladce integruje se stávajícími aplikacemi Smalltalk a zvyšuje rychlost a produktivitu.

Gemstone/S je nejlepší pro projekty s vysokou dostupností. Existuje několik možností licencování v závislosti na velikosti projektu. Databázový server je dostupný pro různé platformy, včetně Linuxu, Windows, macOS, Solaris, AIX a také Raspberry Pi.

ObjectDB

ObjectDB je NoSQL objektová databáze pro programovací jazyk Java. Ve srovnání s jinými databázemi NoSQL je ObjectDB kompatibilní s ACID. ObjectDB neposkytuje API a vyžaduje použití jednoho ze dvou vestavěných Java databázových API:

  • JPA s JPA Query Language (JPQL) na základě syntaxe Java.
  • JDO s JDO Query Language (JDQL) na základě syntaxe SQL.

ObjectDB zahrnuje všechny základní datové typy v Javě, uživatelsky definované třídy a standardní Java kolekce. Každý objekt má jedinečné ID. Počet prvků je omezen pouze maximální velikostí databáze (128 TB). ObjectDB je k dispozici napříč platformami a výkon benchmarku je výjimečný.

ObjectDatabase++

ObjectDatabase++ je objektová databáze v reálném čase určená pro aplikace na straně serveru. Požadovaná externí údržba je minimální.

ObjectDatabase++ podporuje:

  • Víceprocesové s vícevláknovými serverovými aplikacemi.
  • Úplná kontrola transakcí.
  • Obnovení v reálném čase.
  • Jazyky související s C++, VB.NET a také C#.

Objektová databáze je založena na C++. Jednou z hlavních funkcí je pokročilá automatická obnova po haváriích systému bez narušení integrity databáze.

Objektivita/DB

Objektivita/DB využívá sílu objektů a uspokojuje komplexní požadavky v rámci Big Data. Objektová databáze je flexibilní díky podpoře více jazyků:

  • C++
  • C#
  • Python
  • Java

Změny schématu probíhají dynamicky bez nutnosti prostojů, což umožňuje dotazy v reálném čase na jakýkoli typ dat. Objektivita/DB je k dispozici pro více platforem, včetně macOS, Linux, Windows nebo Unix.

ObjectStore

ObjectStore integruje se s C++ nebo Java a poskytuje perzistenci paměti pro zlepšení výkonu aplikační logiky. Databáze objektů je kompatibilní s ACID. Schopnost reagovat umožňuje vývojářům vytvářet distribuované aplikace napříč platformami, ať už on-premise nebo v cloudu.

Hlavní funkcí je cloudová škálovatelnost, která umožňuje přístup k databázi odkudkoli. ObjectStore bezproblémově zjednodušuje proces vytváření a výměny dat.

Versant

Versant poskytuje primární perzistenci transparentních objektů z C++, Java a .NET. Existuje však také podpora pro Smalltalk a Python. Versant podporuje různá rozhraní API v závislosti na použitém jazyce. K dispozici jsou také standardní SQL dotazy, díky nimž je Versant NoSQL databází.

Objektová databáze je víceuživatelská databáze klient-server. Versant funguje nejlépe při použití pro online transakční systémy s velkým množstvím dat a souběžnými uživateli.

Výhody a nevýhody objektově orientované databáze

Každá technika databázového modelování má své výhody a nevýhody. Než se rozhodnete pro objektově orientované databáze, musíte kromě záměru aplikace znát dostupné jazyky.

Výhody

Hlavní výhody jsou:

  • Komplexní data a širší škála datových typů ve srovnání s datovými typy MySQL.
  • Snadné ukládání a rychlé načítání dat.
  • Bezproblémová integrace s objektově orientovanými programovacími jazyky.
  • Snazší modelování pokročilých problémů reálného světa.
  • Rozšiřitelné pomocí vlastních datových typů.

Nevýhody

Některé nevýhody zahrnují:

  • Není tak rozšířené jako relační databáze.
  • Žádný univerzální datový model. Chybí teoretické základy a standardy.
  • Nepodporuje zobrazení.
  • Vysoká složitost způsobuje problémy s výkonem.
  • Neexistuje adekvátní bezpečnostní mechanismus a přístupová práva k objektům.

Linux
  1. Co je uživatel Linuxu?

  2. Co je to sysadmin?

  3. Co dělá „lc_all=c“?

  1. Jak zjistit, jaký formát databáze váš web používá

  2. Co je to relační databáze?

  3. Co znamená hodnota symbolu z příkazu nm?

  1. Co je databáze NoSQL? – Vysvětlení NoSQL

  2. Co je relační databáze?

  3. Co je databázový server a k čemu se používá?