Graafitietokanta
Graafitietokanta on tietokanta, jossa tietoa varastoidaan solmuihin (engl. nodes) ja niiden välisiin suhteisiin (engl. relationships).[1] Muodollisesti graafi on kokoelma solmuja (engl. vertices) ja kaaria (engl. edges).[1]
Näin ollen rakenne muodostaa graafin, josta myös nimi. Oleellinen osa graafitietokantoja on myös kyselykieli jolla tietoa haetaan tietokannasta. Toisin kuin relaatiomalliin perustuvissa tietokannoissa kyselykieleksi vakiintunut SQL, ei graafitietokannoilla ole vastaavaa standardisoitua kyselykieltä.
Perusidea
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/GraphDatabase_PropertyGraph.png/250px-GraphDatabase_PropertyGraph.png)
Graafitietokannoissa entiteetit esitetään solmukohtina, eli nodeina. Solmut ovat yhteydessä toisiin solmuihin. Yhteydet voivat kuvata eri asioita, kuten "A on töissä kohteessa B".
Kukin yhteys (eli kaari) voi lisäksi pitää sisällään muuta relevanttia tietoa (properties) liittyen solmujen yhteyteen.
Edut
Koska graafitietokannat varastoivat yhteydet muihin solmuihin suoraan solmu-tietueeseen, on kyselyiden toteuttaminen usein nopeampaa kuin esimerkiksi relaatiomalliin perustuvissa tietokannoissa (eli relaatiotietokannoissa), joissa liittyvä tieto täytyy hakea erikseen käymällä läpi jokainen tallennettu tietue.
Käytännön esimerkki relaatiotietokannan hausta voisi olla tilanne, jossa haettaisiin käyttäjän (ID 99) kaikki seuraajat. Relaatiotietokannassa tämä tehtäisiin hakemalla tiedot seuraajat-relaatiosta (taulusta) hakemalla kaikki käyttäjät, jotka seuraavat haluttua käyttäjä-ID 99:iä.
Vastaavasti graafitietokannassa vastaava haku saataisiin suoritettua "seuraamalla" käyttäjä-solmuun tallennettuja yhteyksiä (joiden tyyppi on "seuraaja"), nopeuttaen kyselyä huomattavasti suurilla tietomäärillä.
Graafitietokannat soveltuvat myös erittäin hyvinlähde? monimuotoisten, eli polymorfisten suhteiden tallentamiseen.
Graafitietokantaohjelmistoja
- AgensGrap
- Profium
- AllegroGraph
- ArangoDB
- JanusGraph
- Neo4j
- Oracle Spatial and Graph (osana Oracle Database:a)
- TigerGraph
Lähteet
- ↑ a b Ian Robinson, Jim Webber & Emil Eifrem: Graph Databases. Second Edition. O’Reilly Media. ISBN 978-1-491-93089-2.