Conhecendo o Henrique Gogó - www.gogs.com.br
O que é o CouchDB
NoSQL
NoSQL Not only SQL
Alguns bancos de dados NoSQL
Por que CouchDB?
Por que CouchDB? OpenSource Livre de esquemas HTTP / REST JavaScript Escalabilidade Replicação
Um novo modelo: documentos No mundo real armazenamos dados em documentos
JSON
JSON
JSON
RESTful POST, GET, PUT e DELETE
RESTful POST, GET, PUT e DELETE basicamente um C.R.U.D. CREATE, READ, UPDATE e DELETE
Basicamente, mas não literalmente, ok?
Map / Reduce
 
Futon
E não é só isso...
Controle de usuário Validação CouchApp Nuvem
Entendendo um pouco mais
API  RESTful
GET  http://localhost:5984/ {"couchdb":"Welcome","version":"1.0.1"}
Criar  banco de dados PUT  http://localhost:5984/database {"ok":true}
PUT  http://localhost:5984/database {"ok":true} PUT  http://localhost:5984/database {"error":"fil...
Upcoming SlideShare
Loading in...5
×

Conhecendo o CouchDB

5,471

Published on

Apresentação sobre o banco não relacional (NoSQL) CouchDB, sua API Rest, e funções de consulta Map/Reduce

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,471
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
71
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Conhecendo o CouchDB

  1. 1. Conhecendo o Henrique Gogó - www.gogs.com.br
  2. 2. O que é o CouchDB
  3. 3. NoSQL
  4. 4. NoSQL Not only SQL
  5. 5. Alguns bancos de dados NoSQL
  6. 6. Por que CouchDB?
  7. 7. Por que CouchDB? OpenSource Livre de esquemas HTTP / REST JavaScript Escalabilidade Replicação
  8. 8. Um novo modelo: documentos No mundo real armazenamos dados em documentos
  9. 9. JSON
  10. 10. JSON
  11. 11. JSON
  12. 12. RESTful POST, GET, PUT e DELETE
  13. 13. RESTful POST, GET, PUT e DELETE basicamente um C.R.U.D. CREATE, READ, UPDATE e DELETE
  14. 14. Basicamente, mas não literalmente, ok?
  15. 15. Map / Reduce
  16. 17. Futon
  17. 18. E não é só isso...
  18. 19. Controle de usuário Validação CouchApp Nuvem
  19. 20. Entendendo um pouco mais
  20. 21. API RESTful
  21. 22. GET http://localhost:5984/ {"couchdb":"Welcome","version":"1.0.1"}
  22. 23. Criar banco de dados PUT http://localhost:5984/database {"ok":true}
  23. 24. PUT http://localhost:5984/database {"ok":true} PUT http://localhost:5984/database {"error":"file_exists","reason":"The database could not be created, the file already exists."}
  24. 25. Deletar banco de dados DELETE http://localhost:5984/database {"ok":true}
  25. 26. DELETE http://localhost:5984/database {"ok":true} DELETE http://localhost:5984/database {"error":"not_found","reason":"missing"}
  26. 27. Criar documento PUT http://localhost:5984/database/doc -d '{"nome":"Henrique","apelido":"Gogó"}' {"ok":true,"id":"doc","rev":"1-446a0c701e94053b4c3baaa5ef3fe68c"}
  27. 28. Criar documento gerando o id automaticamente POST http://localhost:5984/database/ -d '{"site":"http://www.gogs.com.br"}' -H "Content-Type: application/json" {"ok":true,"id":"468df12f72c2629fd9319b6dfd0009dd","rev":"1-0a48dec3e05fc52dae8b2943a4a55864"}
  28. 29. Ver documento GET http://localhost:5984/database/doc {"_id":"doc","_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c","nome":"Henrique","apelido":"Gogu00f3"}
  29. 30. Atualizar documento PUT http://localhost:5984/database/doc -d '{"_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c", "apelido":"Gogs"}' {"ok":true,"id":"doc","rev":"2-191182436ca9a532ec1124aa91b5a8da"}
  30. 31. Deletar documento DELETE http://localhost:5984/database/doc?rev=2-191182436ca9a532ec1124aa91b5a8da {"ok":true,"id":"doc","rev":"3-4c1033574d7d38e57fe92a1b51fc667d"}
  31. 32. Todos os dbs e docs GET http://localhost:5984/_all_dbs GET http://localhost:5984/database/_all_docs
  32. 33. Map Reduce
  33. 34. Map <ul><li>{&quot;total_rows&quot;:3,&quot;offset&quot;:0,&quot;rows&quot;:[ </li><ul><ul><li>{&quot;id&quot;:&quot;fc2636bf50556346f1ce46b4bc01fe30&quot;,&quot;key&quot;:&quot;Lena&quot;,&quot;value&quot;:25},
  34. 35. {&quot;id&quot;:&quot;1fb2449f9b9d4e466dbfa47ebe675063&quot;,&quot;key&quot;:&quot;Lisa&quot;,&quot;value&quot;:14},
  35. 36. {&quot;id&quot;:&quot;8ede09f6f6aeb35d948485624b28f149&quot;,&quot;key&quot;:&quot;Sarah&quot;,&quot;value&quot;:16} </li></ul></ul><li>]} </li></ul>
  36. 37. /database/_design/application/_view/ viewname?key=&quot;Lena&quot; {&quot;total_rows&quot;:3,&quot;offset&quot;:1,&quot;rows&quot;:[ {&quot;id&quot;:&quot;fc2636bf50556346f1ce46b4bc01fe30&quot;,&quot;key&quot;:”Lena”, &quot;value&quot;:25} ]}
  37. 38. Reduce <ul><li>{&quot;rows&quot;:[ </li><ul><li>{&quot;key&quot;:null,&quot;value&quot;:55} </li></ul><li>]} </li></ul>

×