Antes de responder a pergunta acima, pense primeiro numa questão mais abrangente: o que é modelagem de dados? E ainda numa segunda, esta um pouco mais específica: como devemos consultar e atualizar um banco de dados? As respostas certamente não são tão simples, mas pelo menos agora já existem alternativas mais flexíveis das que haviam em um passado não muito distante. A modelagem em grafos, para o engenheiro de software inglês Alistair Jones, é uma delas.
Alistair trabalha na Neo Technology, empresa desenvolvedora do neo4j, um banco de dados baseado em grafos open source “poderoso e expressivo para armazenar, consultar e manipular dados”. Ele é considerado um “expert” em metodologias ágeis – especificamente para testes de desempenho – e, no segundo encontro NoSQLBr, ocorrido em São Paulo na semana passada, Jones apresentou um overview sobre a modelagem baseada em grafos, pontuando princípios e diferenças em relação aos modelos tradicionais de modelagem de dados.
“O melhor modelo é o que melhor resolve o seu problema”
Esse “mantra” você já deve ter ouvido – e entoado – algumas vezes, e não só em se tratando de modelagem de dados. Mas não custa reforçar que apegar-se a um modelo único como sendo a tal “bala de prata” que solucionará todos os seus problemas é algo bastante arriscado. E a respeito disso, voltando à pergunta inicial, por qual motivo você escolheria um banco de dados baseado em grafos? Esse modelo facilita o acesso a dados em redes ou hierarquias, via múltiplos nós.
E o mais importante: você precisa de flexibilidade para acessar os dados no futuro (um modelo baseado em grafos, ressalva Alistair Jones, é mais fácil de mudar que os outros). Como exemplo, ele mostra como poderia ser a modelagem de dados para um site disponível em vários idiomas.
O que há de diferente?
- Você deixa a manutenção dos relacionamentos para o banco de dados
- Chaves substitutas desaparecem ou são desnecessárias (com exceção do ID)
- Relacionamentos ganham um nome explícito
Princípios da modelagem em grafos
Os “nós” representam conceitos múltiplos: com isso, é possível quebrá-los e distingui-los uns dos outros.
Adotar o paradigma > Nós por identidade (ID) >> Relacionamentos por acesso
Relacionamentos para consultas ao banco
- Relacionamentos devem ser o principal meio para acessar dados em nós
- Fazer traverse é barato: essa é a principal vantagem de usar um banco de dados baseado em grafos
- A modelagem em grafos é similar à modelagem relacional, só que mais fácil
Assista ao vídeo com a íntegra da apresentação de Alistair Jones no NoSQLBr para entender em detalhes como funciona a modelagem de dados baseada em grafos:
Referência: Gonow Tecnologia - http://www.gonow.com.br/blog/2011/10/25/por-que-escolher-um-banco-de-dados-baseado-em-grafos/