Como eu usei MongoDB no meu projeto de graduação

download Como eu usei MongoDB no meu projeto de graduação

of 137

description

Palestra sobre MongoDB

Transcript of Como eu usei MongoDB no meu projeto de graduação

  • QUEBRANDOPARADIGMAS

    Como eu usei

    no meu projeto de graduao

  • QUEBRANPARADIGMAS

    DO

  • PARADIGMA

    padro ou modelo,suposies, conceitos,

    valores e prticas;

  • como um paradigma formado

  • sobre...esta palestra

  • paradigmas sobre...esta palestra

  • faculdadeparadigmas

    sobre...esta palestra

  • macacosfaculdade

    paradigmas

    sobre...esta palestra

  • dragon ball zmacacos

    faculdadeparadigmas

    sobre...esta palestra

  • dragon ball zmacacos

    faculdadeparadigmas

    sobre...esta palestra

  • mongoDBdragon ball z

    macacosfaculdade

    paradigmas

    sobre...esta palestra

  • um softwaremongoDB

    dragon ball zmacacos

    faculdadeparadigmas

    sobre...esta palestra

  • desafios

    mongoDBdragon ball z

    macacosfaculdade

    paradigmas

    um software

    sobre...esta palestra

  • mim

    mongoDBdragon ball z

    macacosfaculdade

    paradigmas

    um softwaredesafios

    sobre...esta palestra

  • UMA PALESTRA EGOSTAvoc est certo...

  • @shamanime

    JeffersonQueiroz

    Venerando

  • @shamanime

    JeffersonQueiroz

    Venerando

  • FACULDADEtudo comea com a

  • H UMA VERDADESOBRE FACULDADES

  • como eu penso que

  • como eu penso que como minha me pensa...

  • how I think it will be...como minha me pensa...como realmente ...

  • enquanto voctenta se formar

  • Voc encontravrios paradigmas.

  • VOC APRENDE BASICAMENTE...uma forma de programar.uma forma de modelar seu banco.uma forma de documentar.

  • No h tempo suficientepara ensinar tudo.

  • E o mais importante seu projeto de graduao.Se estiver fazendo TI.

  • Ento voc voltapara o que aprendeu.

  • Ento voc vol

    ta

    para o que ap

    rendeu.}

    Consegue identificaralguns paradigmas

    criados at chegar aqui?

  • VAMOS POR A MO NA MASSA.

  • EU TAMBM TIVE QUE GRADUAR.VAMOS POR A MO NA MASSA.

  • Eu trabalhava em uma agncia de publicidade

  • no havia um bom software

    Eu trabalhava em uma agncia de publicidade

  • muito trabalho para compensar isso

    no havia um bom software

    Eu trabalhava em uma agncia de publicidade

  • por que no resolver o problema?

    muito trabalho para compensar isso

    no havia um bom software

    Eu trabalhava em uma agncia de publicidade

  • um software para controlaragncias de publicidade

    +Ruby on Rails e umbanco relacional

  • +VAMOS L!um software para controlaragncias de publicidade

    Ruby on Rails e umbanco relacional

  • Eu no programava em Rails.Um timo desafio. E paradigma.

  • Eu aprendi.E no foi to ruim assim.

  • PROBLEMAo grande

  • MODELAGEMDE DADOS

  • PORQUE FOI DIFCIL #1

    requisitos NO so totalmentedefinidos no incio...

    eles mudam com o desenvolvimento.

  • PORQUE FOI DIFCIL #2

    mudanas precisamde migraes...

    difcil manter o controle,voltar e refazer ruim.

  • PORQUE FOI DIFCIL #3

    requisitos ainda soinstveis...

    desenvolvimentoprecisa ser rpido.

  • PORQUE FOI DIFCIL #4

    regras de negcioso complicadas...

    muitas tabelase joins.

  • ESQUEMADEFINIDO

    objetos podem sernicos.

    PORQUE FOI DIFCIL #5

  • REVISO

    Requisitos instveis

    Difcil modelar as regras de negcio

    Desenvolvimento lento

    PORQUE FOI DIFCIL

  • VAMOSOLHAR O OUTRO

    LADO DAMOEDA

  • MySQLFirebird

    PostgreSQLSQLite

    OracleDB2

    CouchDBBigData

    Vertica

    CassandraMemcacheDB

  • PORQUE O

    ARREPIA

  • PORQUE ELE ARREPIA

    Modelo de dados de Documentos

  • sem esquemas

    PORQUE ELE ARREPIA

    Modelo de dados de Documentos

  • n-dimensional

    PORQUE ELE ARREPIA

    Modelo de dados de Documentos

  • Sem joins

    PORQUE ELE ARREPIA

    Modelo de dados de Documentos

  • Possui uma estrutura...

    PORQUE ELE ARREPIA

    Modelo de dados de Documentos

  • JSON

  • SEXTA 13

    JSON

  • Consultas Ad hoc

    PORQUE ELE ARREPIA

  • Consultas dinmicasConsultas Ad hoc

    PORQUE ELE ARREPIA

  • ndices secundrios

    PORQUE ELE ARREPIA

  • At 64 ndices por coleondices secundrios

    PORQUE ELE ARREPIA

  • Replicao

    PORQUE ELE ARREPIA

  • Usado para redundnciaReplicao

    PORQUE ELE ARREPIA

  • Failover automticoReplicao

    PORQUE ELE ARREPIA

  • Velocidade e durabilidade

    PORQUE ELE ARREPIA

  • Journaling ou replicaoVelocidade e durabilidade

    PORQUE ELE ARREPIA

  • Escalabilidade

    PORQUE ELE ARREPIA

  • Escalar horizontalmente muito fcil

    Escalabilidade

    PORQUE ELE ARREPIA

  • DocumentosConsultas Ad hocndices secundriosReplicaoVelocidade e durabilidadeEscalabilidade

    PORQUE ELE ARREPIAREVISO

  • como issoME AJUDOU

  • SEM ESQUEMAS

    represente os dados como realmente so;

    sem migraes = mais tempo desenvolvendo;

    uma consulta retorna tudo;

  • "Com grande poder vm grandes responsabilidades"

    - Tio Ben

  • NO DEIXE SEUS DOCUMENTOSVIRAREM UMA BAGUNA

  • MODELO RELACIONAL

    DOCUMENTOS

    sem redundncia,formas normais

    sem joins,redundncia ok

  • DOCUMENTOS

    So auto-contidosContm todas informaes

  • Performance++Uma consulta retorna tudo

    DOCUMENTOS

  • DOCUMENTOS

    Pode ser linkado ou incorporado

  • DOCUMENTOS LINKADOS

    Mais usado para relaesmany-to-many;

    Funciona bem quando a duplicao de dados um problema;

  • DOCUMENTOS INCORPORADOS

    Ei, Dawg, ouvi que voc gosta de documentos ento coloquei um documento no seu documento pra que voc tenha vrios documentos dentro do documento.

  • DOCUMENTOS INCORPORADOS

    Ei, Dawg, ouvi que voc gosta de documentos ento coloquei um documento no seu documento pra que voc tenha vrios documentos dentro do documento.

    PUTZ!MEMES TRADUZIDOSSO HORRVEIS

  • MO NA MASSA #1// representao de um job{ "_id" : ObjectId( "4fa969cef8955b304e000056" ), "campanha" : "Promoo de frias sup. Thiago", "cliente_id" : ObjectId( "4f271132f8955b177a000019" ), "data_entrada" : Date( 1337040000000 ), "data_entrega" : Date( 1337040000000 ), "func_nome" : "Jefferson Queiroz", "func_usuario" : "jefferson", "funcionario_id" : ObjectId( "4f271132f8955b177a000004" ), "numero" : 4, "status" : "produo", "titulo" : "Frias legais", "updated_at" : Date( 1336502734000 ), "verba" : "4500.0" }

  • MO NA MASSA #1// representao de um job{ "_id" : ObjectId( "4fa969cef8955b304e000056" ), "campanha" : "Promoo de frias sup. Thiago", "cliente_id" : ObjectId( "4f271132f8955b177a000019" ), "data_entrada" : Date( 1337040000000 ), "data_entrega" : Date( 1337040000000 ), "func_nome" : "Jefferson Queiroz", "func_usuario" : "jefferson", "funcionario_id" : ObjectId( "4f271132f8955b177a000004" ), "numero" : 4, "status" : "produo", "titulo" : "Frias legais", "updated_at" : Date( 1336502734000 ), "verba" : "4500.0" }

  • MO NA MASSA #2

    // inserir cliente e telefones> db.clientes.insert({ nome: 'Jefferson Queiroz Venerando', cidade: 'Iturama', telefones: [ numero: '34 5687-1432', op: 'TIM'}, numero: '34 3442-4321', op: 'Vivo'} ]})

  • { "_id" : ObjectId( "4f2c0bec740e950417000038" ), "created_at" : Date( 1328286700000 ), "desconto_cliente" : 0, "formato" : "40x50", "func_nome" : "Jefferson", "func_usuario" : "jefferson", "funcionario_id" : ObjectId( "4f271132f8955b177a000001" ), "job_id" : ObjectId( "4f2acb2d740e950417000017" ), "servico_id" : ObjectId( "4f271133f8955b177a00002e" ), "status" : "criao", "titulo" : "Outdoor", "updated_at" : Date( 1334175800000 ), "valor_fornecedores" : [ { "_id" : ObjectId( "4f457739f8955b5420000001" ), "fornecedor_id" : ObjectId( "4f271132f8955b177a00001a" ), "valor" : "321.0" }, { "_id" : ObjectId( "4f457739f8955b5420000002" ), "fornecedor_id" : ObjectId( "4f271132f8955b177a00001b" ), "valor" : "123.0" } ], "vlr_com_desconto" : "50.0", "vlr_fornecedores" : "444.0", "vlr_servico" : "50.0", "vlr_total" : "494.0" }

  • { "_id" : ObjectId( "4f2c0bec740e950417000038" ), "created_at" : Date( 1328286700000 ), "desconto_cliente" : 0, "formato" : "40x50", "func_nome" : "Jefferson", "func_usuario" : "jefferson", "funcionario_id" : ObjectId( "4f271132f8955b177a000001" ), "job_id" : ObjectId( "4f2acb2d740e950417000017" ), "servico_id" : ObjectId( "4f271133f8955b177a00002e" ), "status" : "criao", "titulo" : "Outdoor", "updated_at" : Date( 1334175800000 ), "valor_fornecedores" : [ { "_id" : ObjectId( "4f457739f8955b5420000001" ), "fornecedor_id" : ObjectId( "4f271132f8955b177a00001a" ), "valor" : "321.0" }, { "_id" : ObjectId( "4f457739f8955b5420000002" ), "fornecedor_id" : ObjectId( "4f271132f8955b177a00001b" ), "valor" : "123.0" } ], "vlr_com_desconto" : "50.0", "vlr_fornecedores" : "444.0", "vlr_servico" : "50.0", "vlr_total" : "494.0" }

  • DOCUMENTOSTrabalhe com os dados da forma que eles so

    REVISO

    Desenvolvimento rpidoConsistncia sua responsabilidade

  • MAP REDUCEDAHORA A VIDA!

    AINDA

  • nem tudo so

    FLORES

  • TENHA EM MENTE

    Arquivos mapeados na memria

  • Melhor rodar em 64-bit

    TENHA EM MENTE

    Arquivos mapeados na memria

  • Memria para os dados alocada automaticamente

    TENHA EM MENTE

    Arquivos mapeados na memria

  • Replicao importante

    TENHA EM MENTE

    Arquivos mapeados na memria

  • Limite de tamanho do documento16 MB no MongoDB v2.0

    TENHA EM MENTE

  • #1 desencorajar documentos com profundos nveis de aninhamento

    TENHA EM MENTE

    Limite de tamanho do documento

  • #2 performance

    TENHA EM MENTE

    Limite de tamanho do documento

  • Sem transaes

    TENHA EM MENTE

  • Trabalhe com 1 documento por vez

    TENHA EM MENTE

    Sem transaes

  • Sem BEGIN, COMMIT ou ROLLBACK

    TENHA EM MENTE

    Sem transaes

  • Compreenda as limitaes tambm...

    Ainda h mais...

    TENHA EM MENTE

  • Sem ACIDTenha memria suficienteSem transaes, srio

    TENHA EM MENTEREVISO

  • no fim

    O QUE FOI FEITO

  • nossa ideia...

    FOI CONSTRUDA DO ZEROUSANDO MONGODB

  • FUNCIONA MUITO BEM

    MongoDB foi uma tima escolha

  • At para pequenos projetosMongoDB foi uma tima escolha

    FUNCIONA MUITO BEM

  • Sem dores de cabea at agora

    FUNCIONA MUITO BEM

    MongoDB foi uma tima escolha

  • EU ME FOR

    MEI

  • E QUEBRE

    I

    O PARADI

    GMA

    DA FACULD

    ADE

  • nossa

    VIROU UM PRODUTO

  • QUE J FUNCIONA

    EM PRODUO

  • A vida comeaonde terminasua zona de conforto!

    REVISO

  • PERGUNTAS?

  • Obrigado!JEFFERSON Q. VENERANDO

    @shamanime

    E obrigado Stephanie Pellegrino pelas ilustraes

    http://shamani.me