Přejít k navigační liště

Zdroják » Databáze » Přehled grafových databází

Přehled grafových databází

Články Databáze

Předtím, než se pustíme do instalace grafové databáze, tak si ještě představíme jejich základní přehled. Ač nám je nabízeno kolem dvou desítek možností, pro rozhled nám postačí níže zmíněná pětice. Na konci kapitoly si vyhodnotíme nejvhodnější databázi, kterou můžeme využít zdarma v projektu postaveném na jazyku PHP.

Sones GraphDB

Sones GraphDB je vyvíjena v jazyku C# německou společností Sones. Navrženou strukturou se přirovnává k váženému grafu. Jinými slovy se jedná o graf s hranami ohodnocenými reálnými čísly.

Databázi lze provozovat jak na platformě běžící pod Microsoft .NET frameworkem, tak Mono, která zajistí její multiplatformnost. Nadále i jako SaaS (Software as a Service) na cloudové platformě Microsoft Azure nebo Amazon S3, což přináší mnohonásobně větší výkon. Pro přístup k datům je možné využít jedno z mnoha rozhraní (např. Java, C#, WebShell, WebDAV), k nimž se řadí i REST API (Representational State Transfer Application Programming Interface), které nám zaručí nekomplikovaný přístup vzhledem ke zvoleným technologiím aplikace.

Při výběru máme možnost volby ze dvou licencí, pod kterými je GraphDB dostupná. První z nich je open source AGPLv3 (Affero General Public License, version 3) komunitní verze, která nemá tak širokou škálu nabízené funkčnosti jako enterprise verze.

AllegroGraph

AllegroGraph je proprietární produkt tvořený vývojáři Franz, Inc. Návrh databáze je uzpůsoben tak, aby splňoval standardy W3C (World Wide Web Consortium) pro Resource Description Framework, neboli je určen pro manipulaci s propojenými daty a sémantickým webem.

Nabízí početný seznam knihoven pro komunikaci přes REST API s aplikacemi psanými např. v C#, Perl, Ruby a Scala.

Licenční politika popisuje tři verze — Free, Developer a Enterprise, kde první dvě jsou omezeny počtem záznamů v databázi. Mezi širokou klientelu se řadí velikáni jako Ford, Kodak a NASA (National Aeronautics and Space Administration).

Neo4j

Neo4j je jedna z nejpopulárnějších grafových databází ve své kategorii, což implikuje open source řešení, které je implementované v Javě. Pochází z dílny společnosti Neo Technology, kde byla první verze vydána v roce 2007 a od té doby získala celkem velké zastoupení ve vývojářské komunitě, která se nejenom zapojuje do běžných diskuzí https://groups.google.com/group/neo4j, ale i do samotného vývoje https://github.com/neo4j.

Ukládání grafové struktury je v podobě vrcholů, hran a vlastností, pro něž platí limity v řádech desítek miliard. Properties jsou další přidanou hodnotou, kterou může obsahovat každý vrchol nebo hrana v podobě klíč–hodnota. Mluvíme o tzv. property graph database.

Neo4j může být použita buď jako embedded mode (Java, JAR) (Java Archive), nebo jako standalone mode, pomocí kterého můžeme k databázi plnohodnotně přistupovat skrze REST API rozhraní.

FlockDB

FlockDB je tvořena Twitterem pod licencí Apache License, Version 2.0 pro účely analytiky souvisejících vztahů, přičemž doposavad nebyl vyvinut stabilní release. Michael Marr shrnul hlavní rysy FlockDB ve svém článku pro portál DevWebPro:

The biggest difference between FlockDB and other graph databases like Neo4j and OrientDB is graph traversal. Twitter’s model has no need for traversing the social graph. Instead, Twitter is only concerned about the direct edges (relationships) on a given node (account). For example, Twitter doesn’t want to know who follows a person you follow. Instead, it is only interested in the people you follow. By trimming off graph traversal functions, FlockDB is able to allocate resources elsewhere.

Načež mu hned bylo oponováno, že bez traverzování se nejedná o grafovou databázi, ale pouze o tzv. persisted graph.

Ať už se podle definic jedná o cokoliv, od FlockDB můžeme čekat velké věci. Mimo zmiňované cíle se profiluje dalšími, jako je maximální podpora pro operace add/update/remove. Nadále také obsažnost množiny aritmetických funkcí je další atypičností v prostředí grafových databází. Kromě toho dokáže stránkovat výsledky dotazů, které obsahují miliony záznamů. A v neposlední řadě podporuje horizontální škálování s replikací či online migrací dat.

InfiniteGraph

Grafová databáze je implementovaná v jazyce Java (mimo jádro v C++) od Objectivity, kde samotný název společnosti koreluje se strukturou databáze, která je objektově orientovaná. Skládá se z objektů (v grafové terminologii považován za vrchol) a hran pro jejich vzájemné propojení. Prozatím bohužel není možné přistupovat k databázi skrze REST API a je nám nabízeno pouze rozhraní v Javě.

Licence pro použití databáze jsou nabízeny ve dvou variantách. Bezplatná s sebou nese značné limity, jako omezení počtu hran a vrcholů po uplynutí 60denní zkušební verze. Nicméně mezi jedny z hlavních klientů patří vláda Spojených států amerických a poradenská společnost Deloitte.

Shrnutí

Výběr se může zdát „uměle zkreslený“ při pohledu na název seriálu, ale přeci jen svými vlastnostmi nejvíce vyhovuje Neo4j, která mimo jiné přesvědčila i značnou komunitou v pozadí a jejím agilním vývojem. Také podpora REST API, které nám umožní snadnou integraci do projektu vyvíjeného v PHP, se jeví jako ideální řešení.

Zdroje:

Článek původně vyššel na webu neo4j.cz.

Komentáře

Odebírat
Upozornit na
guest
3 Komentářů
Nejstarší
Nejnovější Nejvíce hlasů
Flajs

Myslím, že by v seznamu rozhodně neměla chybět ani OrientDB.

Karel

neo4j jsme pár týdnů testoval a zkoušel v něm provázat pár milionů entit a jejich vztahů. Nepodařilo se mi vyladit výkon, tak aby dotaz netrval vteřiny. Máte někdo lepší zkušenosti? Provozujete někdo neo4j v produkci?

Proč vám model napíše Python, i když jste si řekli o Rust

AI
Komentáře: 0
Výkonnostní propast mezi Pythonem a ostatními jazyky se za poslední rok a půl skoro zavřela. Dnešní modely zvládají Rust i Go srovnatelně dobře. Když jim ale volbu necháte, sáhnou stejně po Pythonu. A u knihoven je to ještě výraznější: mezi funkčně srovnatelnými balíčky je až 84procentní rozdíl v kvalitě generovaného kódu. Proč to tak je a co s tím.

WP2Shell: Kritická hrozba pro samotné jádro WordPressu. Útočníci mohou získat kontrolu nad webem

Zranitelnost ve WordPressu není žádná novinka. Kdo provozuje weby postavené na této platformě, ví, že bezpečnostní záplaty chodí prakticky pořád. O to větší pozornost by měla vzbudit chyba, u které nic z toho neplatí. A přesně takový je případ zranitelnosti, která dostala přezdívku wp2shell. potřeb. Zranitelný kontaktní formulář, děravý e-shopový plugin, opomenutá kontrola oprávnění v nějaké obskurní rozšiřující knihovně – to je denní chleba každého, kdo sleduje bezpečnostní feedy. Zpráva „nová chyba ve WordPress pluginu“ má tak nízkou informační hodnotu, že ji většina lidí přejde bez mrknutí oka.

Mýtus jedné aplikace: proč PWA nenahradí vývoj pro každou platformu

PWA mohou webu přidat ikonu na ploše, fungování bez připojení, notifikace a některé systémové funkce. Nejsou ale cestou k jednomu klientu pro všechny platformy. Vyplatí se tam, kde se lidé k webu vracejí a ocení okamžitý vstup z odkazu. Jakmile aplikace musí spolehlivě běžet na pozadí nebo fungovat stejně na každém zařízení, bývá vhodnější nativní řešení.