OrientDB

3,969 views
3,762 views

Published on

3 Comments
6 Likes
Statistics
Notes
No Downloads
Views
Total views
3,969
On SlideShare
0
From Embeds
0
Number of Embeds
286
Actions
Shares
0
Downloads
82
Comments
3
Likes
6
Embeds 0
No embeds

No notes for slide

OrientDB

  1. 1. OrientDB The fastest NoSQLdocument graph dbms
  2. 2. Spiel• Best of NoSQL• Best of RDBMS• New ideas & concepts Luca Garulli
  3. 3. Features• HTTP / Binary• REST• JSON
  4. 4. Features• Schema-less• Schema-full •constraints / validations / inheritance• Hybrid
  5. 5. Features• ACID Transactions••Complex Types Arrays / Hashes / Embedded Documents• Direct Links
  6. 6. Features• SQL in NoSQL• WTH?• SELECT * FROM employee WHERE name LIKE %Jay% AND status = 0
  7. 7. JSON Documents{ @rid = 26:10, @class = Developer, name : Luca, surname : Garulli, company : 19:76}
  8. 8. Fetch PlanInvoice 3:100 | | customer +---------> Customer |! 5:233 | city! country +---------> City ---------> Country |! 11:2! 12:3 | orders +--------->* [OrderItem OrderItem OrderItem] [ 8:12! 8:19! 8:23 ]
  9. 9. JavaODocument doc = new ODocument( db,"Person" );doc.field( "name", "Luke" );doc.field( "surname", "Skywalker" );doc.field( "city", new ODocument("City" ).fields("name","Rome") );doc.save();
  10. 10. orientdb-jrubyperson_class = DB.create_class :person, :name => :stringdoc = OrientDB::Document.new DB, "Person"doc[:name] = "Luke"doc[:surname] = "Skywalker"doc[:city] = OrientDB::Document.new DB, "City", :name => "Rome"doc.save
  11. 11. orientdb-jrubyList<ODocument> result = db.query( new OSQLSynchQuery( "select * from person where city.name = Rome" ) );for( ODocument d : result ) { System.out.println( "Person: " + d.field( "name" ) +d.field( "surname" ) );}results = DB.first SELECT * FROM where WHERE city = "Rome"results.each do |doc| puts "Person: " + person.name + doc.surnameend
  12. 12. Queries• select from Account where address.city.country.name = Italy• select from Account where addresses contains (city.country.name = Italy)• select from Profile where any() like %Jay%• select from Tree where children contains ( married = true )• select from User where roles containsKey shutdown• select from Vehicle where @class = Car• select from Friend where @version > 100
  13. 13. ConsoleORIENT database v.0.9.23 www.orientechnologies.com Type help to display all thecommands supported.> connect remote:localhost/demo admin admin Connecting to database[remote:localhost/demo] with user admin...OK> select from profile where nick.startsWith(L)---+--------+--------------------+--------------------+--------------------+ # | REC ID | NICK! | SEX! | AGE |---+--------+--------------------+--------------------+--------------------+ 0 | 10:0 | Lvca | male | 34 1 | 10:3 | Leo | male | 22 2 | 10:7 | Luisa | female | 273 item(s) found. Query executed in 0.013 sec(s).> close Disconnecting from the database [demo]...OK> quit
  14. 14. Web Admin
  15. 15. WINNING, DUH!
  16. 16. Links• OrientDB • orientechnologies.com• JRuby Client • github.com/aemadrid/orientdb-jruby

×