quinta-feira, 3 de março de 2016

Database Internals - CMU

Estamos vivendo um período muito legal para bancos de dados, frase que eu já disse umas mil vezes e você já deve estar cansado de ouvir, ok. O resultado disso é que a maneira que nós, profissionais de banco de dados, encaramos a construção de soluções, modelamos, criamos e mantemos os nossos bancos, está passando por uma transformação, que vale a pena acompanhar de perto.

Então pare um pouco e reflita… Você conhece bem os fundamentos e mecanismos internos do seu banco de dados? Não é necessário saber o código fonte ou os mínimos detalhes da engine, longe disso, pergunto se você consegue entender os reais motivos de um problema, como o crash recovery funciona e coloca o banco em um estado consistente, o que é Write Ahead Logging, checkpoint, MVCC, ou como é a estrutura de uma B+tree?

Já faz anos que entrevisto profissionais de banco de dados, seja para lugares onde trabalhei ou a pedido de clientes, e em geral o que me mais me impressiona (negativamente) é a quantidade de DBAs ou desenvolvedores que trabalham com bancos de dados relacionais durante anos e não fazem ideia de conceitos básicos da engine com qual estão trabalhando. São profissionais que sabem utilizar o banco, fazer backup, um restore, rotinas de manutenção e até seguem recomendações de melhores práticas, porém param aí, não procuram entender os porquês e nos problemas mais difíceis, acabam não resolvendo a causa raiz e criando uma série de remendos/paliativos.

Então se você quer aprender mais sobre engines de bancos de dados, tem uma conexão com a internet e está disposto a perder investir algumas horas de sono nas próximas semanas, recomendo acompanhar um curso de banco de dados…

Certa vez esbarrei com o perfil de Andy Pavlo (http://www.cs.cmu.edu/~pavlo/), um acadêmico envolvido com banco de dados e em um de seus tweets cheguei a um curso dele lá na universidade de Carnegie Mellon: Database Systems (http://15721.courses.cs.cmu.edu/spring2016/).

O curso está sendo gravado e publicado aqui: https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx?#folderID=%22ed2ee867-9610-4bad-94af-5d12c2ea47cd%22

O curso tem por objetivo explorar as novidades dos bancos de dados relacionais e o que está mudando no desenvolvimento dos produtos, explicando detalhes de funcionamento das engines relacionais que tanto gostamos. Ainda nem cheguei na metade do curso, mas estou aqui recomendando. Logo no início o Andy menciona que o curso é um Database Internals, então aproveitei o gancho para o título do post.

É um conteúdo diferente do que estamos acostumados, pois o foco é como construir um SGBDR! Só a lista de leitura dos paper que estão na agenda do curso vale a pena: http://15721.courses.cs.cmu.edu/spring2016/schedule.html

E para você que está acompanhando o SQL Server, vai ficar satisfeito em saber que em diversos momentos ele elogia a pesquisa e os avanços do SQL Server, o que deixa claro que mesmo sendo uma engine que entrou mais tarde do mercado de bancos de dados, se comparado ao Oracle e DB2, tem um futuro longo pela frente, e esperamos, brilhante.

Espero que possamos conversar sobre o curso e que ele incentive você a se aprofundar cada vez mais no mundo dos bancos de dados, que é fantástico.

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

Um comentário:

  1. S-E-N-S-A-S-I-O-N-A-L. Amei essa postagem Luti, pode ter certeza que vou ver toooodos esses vídeos da "Carnegie Mellon University". Ótima postagem. obrigada
    Caroline Lavecchia

    ResponderExcluir