Introducao aos bancos_nao_relacionais_com_mongodb

164 visualizações

Publicada em

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
164
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introducao aos bancos_nao_relacionais_com_mongodb

  1. 1. Introdução aos bancos não- relacionais com MongoDB Unidev 1ª edição
  2. 2. Quem sou eu • Estagiário na SecrelNet; • Desenvolvedor há 8 anos; • Membro preguiçoso de comunidades; • Apaixonado pelo que faço; Eu com Jon "Maddog" Hall, CTO da Linux International
  3. 3. Primeiro, vamos recapitular o que são bancos de dados relacionais
  4. 4. Bancos grandes demais se tornam dificeis de se manter
  5. 5. FilosofiaA.C.I.D •Atomicity (Atômicidade) •Consistency (Consistência) •Isolation (Isolado) •Durability (Durável) * Bancos de dados precisam ser constantemente normalizados.
  6. 6. SQL (StructuredQuery Language) • Criada pela IBM em 1974 • Usada por todos os bancos relacionais • Realiza todos os tipos de operações em um banco de dados • Consultas mal escritas podem acarretar em gargalo
  7. 7. Revisão feita, agora vamos ver como são os banco não-relacionais
  8. 8. Um pouco de historia.... • Termo NoSQL criado 1998 porCarlo Strozzi • Carlo Stozziconsiderava o SQL: • Muito complexo • Pouco portábil • Limitado • Com uma fraca usabilidade • Criou a próprialinguagem baseado emOperator-Stream Paradigm(Pipe) Carlo Strozzi Utilizava-se de recursos comoAWK, Perl e Grep para se realizar a busca
  9. 9. No começo do NoSQL.. As tabelas eram arquivos textos separados por tab Uso de redirecionamento à esquerda para leitura dos dados
  10. 10. Um pouco de historia.... • Em 2004 foi lançadoo BigTable pela Google.Seguido pelo Dynamo(Amazon) em 2007 e pelo Cassandra(Facebook)em 2008 • Em 2009 foi realizado o primeiro grande evento debancosNoSQLem San Fracisco, patrocinadopela Last.FMcomparceria comFacebookeLinkedin • Tambémrecebeu o nomede NoREL (Not Relational) Programação 1º grande evento de NoSQL
  11. 11. Um pouco de historia.... Em 2008 usando MySQL (banco relacional) oTwitter ficou 84 horas offline ao decorrer do ano. Já em 2009 após migrar para Cassandra esse tempo caiu para 23 horas e 45 minutos. Fonte: http://bit.ly/1yZ0cEn(ComputerWorld) Fonte: http://bit.ly/1aZA0Or (InfoWorld)
  12. 12. Hoje existe uma variedade de bancos NoSQL
  13. 13. Agora vamos falarde coisa boa, vamos falar de
  14. 14. • Lançado em Fevereiro de 2009 pela 10gen (hoje Mongo Inc.) • Escrito em C++ • Opensource (código-aberto) • Surgiu da palavra homongous (gigantesco) • Orientado à documentos • Mais de 9 milhões de downloads desde seu lançamento
  15. 15. Quem utiliza?
  16. 16. Schemas • Utilizasse de BSON (Binary JSON) Exemplo de JSON
  17. 17. Beleza, beleza. Já entendi maaaaas....
  18. 18. Bancos Relacionaisx MongoDB • MongoDB não possui nenhum tipo de relacionamento entre seus documentos • Segue o modelo BASE (Basically Available, Soft state, Eventual consistency): • Disponível otempo inteiro • Disponível emestado leve • Eventualmenteconsistente • Facilmente escalonável
  19. 19. Motivo 1: Evita "AlterTables" • Documentos não precisam seguir ter os mesmos atributos • Como se cada linha da tabela fosse "independente" • É função no DBA garantir que essa liberdade não vire bagunça
  20. 20. Motivo 2:Auto-sharding • Consiste em utilizar mais de uma máquina para rodar todo o Banco de Dados • Processo trás uma série de vantagens: • Otimiza o tempodas consultas • Casoalguma das máquinastenha problema • MongoDB possui sistemas de sharding automático
  21. 21. Motivo 2:Auto-sharding
  22. 22. Motivo 3: Ótimo para Big Data • O protocolo mais utilizado hoje porWeb Services é o JSON • Acaba evitando ORM (Object-Relational Mapping) em diversas situações
  23. 23. Motivo 4: Simples porém Robusto • BSON Query relativamente simples • Não há preocupação com relacionamentos • Ideal para iniciantes em NoSQL
  24. 24. Iniciandono
  25. 25. Instalando o Via linha de comando: (linhas de comando são legais) Usuários de Linux baseados em Debian/Ubuntu: Usuários de Linux baseados em RedHat/Fedora/CentOS: Usuários de MacOSX: Usuários de NPM (todos os Sistemas Operacionais) *Recomendado
  26. 26. Instalando o Via linha de comando: (linhas de comando são legais) Para usuários de Windows via Chocolatey: Ou baixando diretamente do site xD https://www.mongodb.org/downloads
  27. 27. Instalando cliente gráfico http://robomongo.org/
  28. 28. Inicializandoo Mongo 1º passo: Inicialização do servidor do Mongo 2º passo: * Para os fãs de terminal: * Para os fãs de interface gráfica: Abram o Robomongo
  29. 29. APIs para Mongo •PyMongo (Python) •Php_mongo (PHP) •Mongo JDBC Driver (Java) • Mongo Ruby Driver (Ruby) • Mgo (Go) Para outras linguagens consulte: http://api.mongodb.org/
  30. 30. Quem sabe faz ao vivo!
  31. 31. Agora é a hora....
  32. 32. Me sigam :D https://github.com/Ziggoto http://pt.slideshare.net/ziggoto

×