Sie sind auf Seite 1von 11

ALMA MATER STUDIORUM - UNIVERSITA DI BOLOGNA

Scuola di Ingegneria
Corso di laurea in Ingegneria Gestionale

Database relazionali e database a grafo a


confronto:
analisi delle prestazioni di MySQL e Neo4j

Presentata da Relatore
Nicholas Tonna Chiar.ma Prof.ssa Wilma Penzo

Anno Accademico 2015/2016


III sessione
Tema generale
Descrizione, analisi e comparazione prestazionale dei database
a grafo con i database relazionali.

Argomenti trattati

I database NoSQL

Confronto tra Relational e Graph database

Il Graph DBMS Neo4j

Comparazione prestazionale tra Neo4j e MySQL


Introduzione
- Database: insieme organizzato di dati che sta alla base del
sistema informativo aziendale.
- DBMS (Database Management System): sistemi software per la
gestione delle basi di dati.

Il DBMS pi utilizzato quello relazionale basato sul modello di


Codd (1970):
Organizza i dati in tabelle

Utilizza il linguaggio standard SQL


I limiti del RDBMS
Con questo modello logico stato possibile descrivere al meglio
quasi lintera totalit dei casi duso che si presentavano nel
mondo reale.

Oggi lavvento di internet e dei social ha mostrato i limiti di


questo modello.

Costi di risposta molto alti nel caso la query richieda molti join.

Schema di memorizzazione dei dati molto rigido.

Relationship con ambiguit semantica.

Ridotta scalabilit.
I Database NoSQL
Sono una valida alternativa al modello relazionale. Sono di
quattro tipi:

Key-value store

Document database

Column-oriented database

Graph database
- si basa sulla teoria dei grafi
I Graph Database
Modelli di riferimento
- RDF (Resource Description Framework)
- Property Graph Model

Sfrutta lattraversamento del grafo


- non utilizza le costose operazioni di join
- reso possibile grazie all index-free adjacency

Non possiede un linguaggio di interrogazione standard

Non possiede uno schema fisso (schema-less)


Neo4j
un database a grafo open source supportato da Neo Technology,
utilizza il modello property graph ed sviluppato interamente in Java
Le transazioni seguono le propriet ACID;
Pu memorizzare fino a diversi miliardi di nodi, relationship e
propriet;
Possiede linguaggi di interrogazione dichiarativi ed espressivi;
Possiede unalta velocit di interrogazione tramite attraversamenti
del grafo;
schema-less;
Non possiede una politica di accesso controllata;
Pu essere usato sia in modalit server che embedded
Confronto prestazionale tra Neo4j e MySQL
Si confrontano le capacit di Neo4j e MySQL nel trattare dati
connessi che possono essere rappresentati con una struttura
a grafo

Progettazione del test:


Le structural query:
S0: trovare tutti i nodi orfani (cio senza archi in entrata e in
uscita) allinterno del grafo.
S4: attraversare il grafo fino a profondit 4 e determinare il
numero di nodi trovati.
S128: attraversare il grafo fino a profondit 128 e determinare
il numero di nodi trovati.

I risultati sono espressi in millisecondi


Le data query sono:
I1: determinare il numero dei nodi che hanno una propriet con
valore (integer) uguale ad un certo valore assegnato.
I2: determinare il numero dei nodi che hanno una propriet con
valore (integer) inferiore ad un certo valore assegnato.

C1: determinare il numero di nodi le cui propriet contengono una


certa stringa (o sequenza di caratteri).
Conclusioni
Vantaggi portati dai database a grafo rispetto al RDBMS:
Forniscono migliori prestazioni nel trattare dati connessi che
richiedono lattraversamento del grafo;
Forniscono migliori prestazioni nel trattare grandi quantit di dati
(scalabilit migliore);
Sono pi flessibili e trattano meglio dati non strutturati o
semistrutturati;

Svantaggi:
Livello di maturit minore;
Assenza di un linguaggio standard.

Das könnte Ihnen auch gefallen