A rubyist's naive comparison of
some database systems and
toolkits

                    Marc Lainez
Who am I ?
Ruby on rails developer
Agile optimist...
The sequel world
Object-relational mapping

 is a programming technique
for converting data between
incompatible type systems in
  relation...
Active record
Active record

One class, one table




One object, one row
Active record
What i don’t like about it

      what did i map again ?

migrations migrations migrations...

        Too m...
Active record
    What i like about it

     strongly bond to rails...

       nice documentation

works with most plugins...
Datamapper
Datamapper
very similar to ar
Datamapper
Datamapper
What i don’t like about it

         migrations

 Some plugins might not work
          (thinking sphinx)
Datamapper
  What i like about it
      mapping in models
          modular
   strategic Eager loading
works with most sql...
The NOSQL world
NOSQL

non-relational data stores
 that doesn’t require fixed
table schemas, and usually
   avoid join operations.
       ...
NOSQL and ruby
Document based db

     Mongodb
     couchdb
        ...
 Key/value store

      TOkyo
      redis
project ...
NOSQL and ruby

   mongodb
NOSQL and ruby

                     COUCHDB
       Stores documents as json
   easy to read, easy to parse, easy to send ...
COUCHDB

Web interface
COUCHDB

RELAXDB
COUCHDB, ar-like

   Stuffing

   couchfoo
NOSQL and ruby

             tokyo
        key/value store

      distributed (tyrant)

full-text search engine (dystopia)
NOSQL and ruby

        tokyo
        hash db
       one key, one value


       b-tree db
    one key, multiple values


...
Tokyo b-tree db
The best of both worlds ?
nosql in SQL

 friendly
What do i think about all this ?
a few links
http://www.belighted.com
http://datamapper.org/
http://www.mongodb.org/
http://couchdb.apache.org/
http://gith...
questions ?
A rubyist's naive comparison of some database systems and toolkits
Upcoming SlideShare
Loading in …5
×

A rubyist's naive comparison of some database systems and toolkits

3,352
-1

Published on

This talk is a quick comparison of some of the many relational and non relational database systems that can be used with ruby.

It was given at Fosdem 2010 (http://fosdem.org) in the Ruby on Rails Developer Room.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,352
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • A rubyist's naive comparison of some database systems and toolkits

    1. A rubyist's naive comparison of some database systems and toolkits Marc Lainez
    2. Who am I ?
    3. Ruby on rails developer
    4. Agile optimist...
    5. The sequel world
    6. Object-relational mapping is a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages. [wikipedia]
    7. Active record
    8. Active record One class, one table One object, one row
    9. Active record What i don’t like about it what did i map again ? migrations migrations migrations... Too much queries... (probably my fault, i’m lazy) Sometimes you have to switch to sql
    10. Active record What i like about it strongly bond to rails... nice documentation works with most plugins and gems... works with most sql databases
    11. Datamapper
    12. Datamapper very similar to ar
    13. Datamapper
    14. Datamapper What i don’t like about it migrations Some plugins might not work (thinking sphinx)
    15. Datamapper What i like about it mapping in models modular strategic Eager loading works with most sql databases faster than ar
    16. The NOSQL world
    17. NOSQL non-relational data stores that doesn’t require fixed table schemas, and usually avoid join operations. [wikipedia]
    18. NOSQL and ruby Document based db Mongodb couchdb ... Key/value store TOkyo redis project voldemort ...
    19. NOSQL and ruby mongodb
    20. NOSQL and ruby COUCHDB Stores documents as json easy to read, easy to parse, easy to send through a network is distributed database can exist in multiple places EAch document is a restful resource
    21. COUCHDB Web interface
    22. COUCHDB RELAXDB
    23. COUCHDB, ar-like Stuffing couchfoo
    24. NOSQL and ruby tokyo key/value store distributed (tyrant) full-text search engine (dystopia)
    25. NOSQL and ruby tokyo hash db one key, one value b-tree db one key, multiple values fixed-length db access via natural number keys table db mimics relational db
    26. Tokyo b-tree db
    27. The best of both worlds ?
    28. nosql in SQL friendly
    29. What do i think about all this ?
    30. a few links http://www.belighted.com http://datamapper.org/ http://www.mongodb.org/ http://couchdb.apache.org/ http://github.com/paulcarey/relaxdb http://github.com/paulca/stuffing http://www.google.com/search?q=couchfoo http://1978th.net/tokyocabinet/ http://friendlyorm.com/
    31. questions ?
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×