Por Gabriel Feitosa Vilar
TÓPICOS AVANÇADOS EM BANCO DE DADOS
       Banco de Dados Orientado a Documentos
De acordo com a               :




  “Banco de dados escalável, de alta
perfomance, open-souce, schema-free,
     orientado-a-documentos.”
SQL

Structured Query Language

  SELECT * FROM * WHERE 1=1;
=

SQL NoSQL
NoSQL?
NoSQL



               Not Only SQL

SELECT * FROM comments WHERE author = 'Gabriel';

   db.comments.find(:author => “Gabriel”)
NoSQL
✔   1998 como um bando de dados relacional e open-
    source, mas sem interface SQL;
✔   “Completamente distinto do modelo relacional”;
✔   Deveria se chamar NoREL;
✔   Voltou a ser usado em 2009 em um evento de banco
    de dados open-sources distribuídos;
✔   Vieram para suprir as necessidades do bandos de
    dados tradicionais;
✔   E como a própria mongoDB diz:
    “Banco de dados escalável, de alta perfomance,
        open-souce, schema-free, orientado-a-
                     documentos.”
Orientado a Documentos

✔   Modelo relacional: representa um mundo real
    (que é n-dimensional) usando uma abordagem
    bidimensional;
✔   Orientado a Documentos?
    Documentos é equivalente a Registros.
✔   Sintaxe JSON;
JASON?
JSON (JavaScript Object Notation)
Gabriel = {
    nome: “Gabriel Feitosa Vilar”,
    apelido: “CoGUMm”,
    email: “cogumm@gmail.com”,
    site: “www.cogumm.net”
}


db.aulasql.save(Gabriel)
SCHEMA-FREE

✔   Migrations;
✔   Linguagem com tipagem dinâmica (Like   !);
✔   Altamente flexível;
E na PRÁTICA?


Database == Database
Coleções == Tabelas
Documento == Linha
Então vamos ao que
realmente interessa!
              #souDev
Instalando o                                         no Ubuntu
~$ sudo apt-get -y install tcsh git-core scons g++ libpcre++-dev libboost-dev
libreadline-dev xulrunner-1.9.1-dev
~$ sudo apt-get install mongodb


Testando:
            http://localhost:28017/



Instalando o                                        no Rails
gem install mongoid bson_ext
Por quê usar ?
Por quê eles usam!!!
drivers para:
✔   C             ✔   REST         ✔   F#
✔   C++           ✔   C# e .NET    ✔   Go
✔   Java          ✔   Closure      ✔   Groovy
✔   Javascript    ✔   ColdFusion   ✔   Haskell
✔   PHP           ✔   Delphi       ✔   Lua
✔   Perl          ✔   Erlang       ✔   Node.js
✔   Python        ✔   Factor       ✔   etc........
✔   Ruby          ✔   Fantom
Perguntas ?
Obrigado!!


     /CoGUMm

   http://twitter.com/cogumm
   http://facebook.com/cogumm
   http://linkedin.com/in/cogumm
Fontes
✔   http://www.mongodb.org/
✔   http://mongoid.org/
✔   http://railscasts.com/episodes/238-mongoid
✔   http://pt.asciicasts.com/episodes/238-mongoid
✔   http://railscasts.com/episodes/194-mongodb-and-mongomapper
✔   http://www.mongodb.org/display/DOCS/Drivers

MongoDB

  • 1.
    Por Gabriel FeitosaVilar TÓPICOS AVANÇADOS EM BANCO DE DADOS Banco de Dados Orientado a Documentos
  • 2.
    De acordo coma : “Banco de dados escalável, de alta perfomance, open-souce, schema-free, orientado-a-documentos.”
  • 3.
    SQL Structured Query Language SELECT * FROM * WHERE 1=1;
  • 4.
  • 5.
  • 6.
    NoSQL Not Only SQL SELECT * FROM comments WHERE author = 'Gabriel'; db.comments.find(:author => “Gabriel”)
  • 7.
    NoSQL ✔ 1998 como um bando de dados relacional e open- source, mas sem interface SQL; ✔ “Completamente distinto do modelo relacional”; ✔ Deveria se chamar NoREL; ✔ Voltou a ser usado em 2009 em um evento de banco de dados open-sources distribuídos; ✔ Vieram para suprir as necessidades do bandos de dados tradicionais; ✔ E como a própria mongoDB diz: “Banco de dados escalável, de alta perfomance, open-souce, schema-free, orientado-a- documentos.”
  • 8.
    Orientado a Documentos ✔ Modelo relacional: representa um mundo real (que é n-dimensional) usando uma abordagem bidimensional; ✔ Orientado a Documentos? Documentos é equivalente a Registros. ✔ Sintaxe JSON;
  • 9.
  • 10.
    JSON (JavaScript ObjectNotation) Gabriel = { nome: “Gabriel Feitosa Vilar”, apelido: “CoGUMm”, email: “cogumm@gmail.com”, site: “www.cogumm.net” } db.aulasql.save(Gabriel)
  • 11.
    SCHEMA-FREE ✔ Migrations; ✔ Linguagem com tipagem dinâmica (Like !); ✔ Altamente flexível;
  • 12.
    E na PRÁTICA? Database== Database Coleções == Tabelas Documento == Linha
  • 13.
    Então vamos aoque realmente interessa! #souDev
  • 14.
    Instalando o no Ubuntu ~$ sudo apt-get -y install tcsh git-core scons g++ libpcre++-dev libboost-dev libreadline-dev xulrunner-1.9.1-dev ~$ sudo apt-get install mongodb Testando: http://localhost:28017/ Instalando o no Rails gem install mongoid bson_ext
  • 16.
    Por quê usar? Por quê eles usam!!!
  • 17.
    drivers para: ✔ C ✔ REST ✔ F# ✔ C++ ✔ C# e .NET ✔ Go ✔ Java ✔ Closure ✔ Groovy ✔ Javascript ✔ ColdFusion ✔ Haskell ✔ PHP ✔ Delphi ✔ Lua ✔ Perl ✔ Erlang ✔ Node.js ✔ Python ✔ Factor ✔ etc........ ✔ Ruby ✔ Fantom
  • 18.
  • 19.
    Obrigado!! /CoGUMm http://twitter.com/cogumm http://facebook.com/cogumm http://linkedin.com/in/cogumm
  • 20.
    Fontes ✔ http://www.mongodb.org/ ✔ http://mongoid.org/ ✔ http://railscasts.com/episodes/238-mongoid ✔ http://pt.asciicasts.com/episodes/238-mongoid ✔ http://railscasts.com/episodes/194-mongodb-and-mongomapper ✔ http://www.mongodb.org/display/DOCS/Drivers