Download - OrientDB - cloud barcamp Libero Cloud
Orient DB su Libero Cloud
Luigi Dell’Aquila - @ldellaquila
1979Primo DB relazionale disponibile sul mercato
Copyright © 2010 Luca Garulli - www.orientechnologies.com
RDBMS
In 30 anni abbiamo imparato a ragionare in termini di:
• Tabelle
• Chiavi/Join
• SQL
• Indici
Ma in 30 anni…
• Internet
• Big Data
• Cloud
• Nuovi modelli di dati e di analisi
• I tempi e i cambiamenti!
ER
Logic scheme
Physical scheme
Optimization, denormalization
La modellazione
ER
Logic scheme
Physical scheme
Optimization, denormalization
Domain DataModel
La modellazione
La modellazione
id Name Surname
Address
1 John Smith 3
id Street City
3 Rue de la Vie
4
id City Contry
4 Paris 15
id Coutnry
15 France
La modellazione
id Name Surname
1 John Smith
id person Street City type
3 1 Rue de la Vie 4 5
id City Contry
4 Paris 15
id Coutnry
15 France
id Type
5 Home
La modellazione
id Name Surname
1 John Smith
id person Street City
3 1 Rue de la Vie 4
id City Contry
4 Paris 15
id Coutnry
15 France
id Coutnry
5 Home
id person address type
1 1 3 5
Le query
Select country.name from country
Join city on country.id = city.country
Join address on city.id = address.city
Join personAddress on personAddress.address = address.id
Join addressType on addressType.id = personAddress.type
Join person on personAddress.person = person.id
Where person.name = “John”
And addressType.name = “home”
E questo?
Amici degli amici… degli amici: Select * from ???
Questo è un grafo, non una tabella
Amici degli amici… degli amici: “Traverse”
1979Primo DB relazionale disponibile sul mercato
2009NoSQL movement
Copyright © 2010 Luca Garulli - www.orientechnologies.com
Cos’è Orient DB?
• NoSQL
• Graph Database
• REST/JSON
• Scalable
• Multi Platform
• ACID Transaction
Il modello dei dati
• Class - Inheritance• Vertex/Edge• Document
• Schema• Schemaful• Schemaless• Schema-mixed
Interfacce di interrogazione
• HTTP REST
• Native• Java• Scala• JavaScript• PHP• C• Ruby• .NET• Python• Node.js• Clojure
• Tinkerpop Blueprints
NoSQL ma…
SQL!
Esempi
CREATE CLASS PERSON EXTENDS V;
CREATE CLASS FRIEND EXTENDS E;
CREATE VERTEX PERSON SET NAME = “MARIO”, SURNAME = “ROSSI”
CREATE VERTEX PERSON SET NAME = “MARCO”, SURNAME = “VERDI”
SELECT NAME, SURNAME, ADDRESS.CITY.REGION.COUNTRY FROM PERSON WHERE SURNAME = “ROSSI” AND ADDRESS.CITY.REGION.COUTRY.CONTINENT.NAME = “EUROPE”;
CREATE EDGE FRIEND FROM #10:1 TO #10:2
CREATE EDGE FRIEND FROM (SELECT FROM PERSON WHERE SURNAME = “ROSSI”) TO (SELECT FROM PERSON WHERE SURNAME = “VERDI”)
Esempi
SELECT FROM CITY WHERE COUNTRY.NAME.substring(1,3).toUpperCase() = “TAL”
SELECT FROM AGENDA WHERE EMAIL MATCHES '\bA-Z0-9._%[email protected]?+\.A-Z?{2,4}\b’
SELECT name, $path, $depth FROM ( TRAVERSE * FROM Movie WHERE $depth <= 5 )
In più (in ordine sparso)
• Supporto Transazionale
• Javascript nativo
• Funzioni
• TinkerPop - Gremlin
• Java Object API
• Local/remote/embedded mode
• Veloce! 150.000 record/secondo (flat, no index)
Replication (high availability)
Replication
• ~ 0 config
• Multi Master
• Full replica or Sharding
• Fault Tolerant
• Automatic rerouting
• Perfetto per il cloud!
Replication
HAZELCAST
Replication
HAZELCAST HAZELCASTmulticast
Replication
HAZELCAST HAZELCAST
HAZELCAST
Multi Master
DISTRIBUTEDHOW-TO 1/1
• Unzip Orient DB package (>= 1.6.0)
• bin/dserver.sh
OrientDB e Libero Cloud
• Coming soon!
• Registrazione e prova gratuita
• http://cloud.libero.it/
DEMO
Risorse
Web
http://www.orientdb.org/
http://www.orientechnologies.com/
https://github.com/orientechnologies/orientdb/
Libri
Training & Certification
http://www.orientechnologies.com/training.htm