NoSQL: é um problema notacional!
Tags: ptbr, braziliandevs, nosql, db
Published: 2021-06-21 12:36:50

---
title: NoSQL: é um problema notacional!
published: true
description: NoSQL: é um problema notacional!
tags: ptbr, braziliandevs, nosql, db
cover_image: https://www.blazeclan.com/wp-content/uploads/2013/09/A-detailed-Outlook-to-No-SQL-Know-Hows.png
---
_Texto escrito em 2013_

<a href="https://devkico.itexto.com.br/wp-content/uploads/2013/08/tales_mileto.jpg"><img class=" wp-image-1497 " alt="Esses gregos viviam aprontando das suas" src="https://devkico.itexto.com.br/wp-content/uploads/2013/08/tales_mileto.jpg" width="116" height="113"></a>

Há estas coisas que parecem complexas e modernas que quando as encaramos de frente se mostram patéticamente simples: NoSQL, por exemplo. Sabe: leio muitos artigos sobre o assunto (tenho um projeto literário nesta direção inclusive) e sempre fico maravilhado com a capacidade dos autores de ocultarem o básico: o problema é notacional.
<h2>Gregos, romanos e indianos</h2>
<a style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; font-style: normal; color: #3a3a3a;" href="https://devkico.itexto.com.br/wp-content/uploads/2013/08/tabelagrega.jpg"><img class=" wp-image-1494 " title="Algarismos gregos" alt="Algarismos gregos" src="https://devkico.itexto.com.br/wp-content/uploads/2013/08/tabelagrega.jpg" width="236" height="158"></a> O sistema numérico grego

Quando penso na Grécia antiga lembro de pessoas como <a href="http://pt.wikipedia.org/wiki/Arquimedes">Arquimedes</a>, <a href="http://pt.wikipedia.org/wiki/Tales_de_Mileto">Tales de Mileto</a> ou <a href="http://pt.wikipedia.org/wiki/Euclides">Euclides</a>: gênios que definiram as bases da matemática atual.

(na realidade penso mesmo é em <a href="http://pt.wikipedia.org/wiki/Parm%C3%AAnides">Parmênides</a>&nbsp;que me inferniza desde 2001)

Sabem o que é interessante? Há um avanço monstruoso na geometria - em parte pelo fato da agrimensura ser um problema para o homem grego - no entanto há pouquíssimo avanço na álgebra. Por que isto hein?

<span style="font-size: 13px;">Passada a época dos gregos quem assume a vanguarda intelectual ocidental são os romanos e a matemática fica basicamente estagnada: com excessão dos algarismos romanos não há lá grandes novidades que revolucionaram o mundo numérico.</span>

O marasmo matemático continua até o século VI-VII quando na Índia surge algo muito estranho: os algarismos indo-arábicos. Pela primeira vez uma notação numérica posicional, em que a grandeza é definida pela posição do algarismo no texto. No século IX surgirá outra notação revolucionária: o número zero. Instintivamente o que representa melhor o número mil: M ou 1000? Aqui está a resposta: os gregos desenvolvem pouco a álgebra por não possuirem uma notação adequada.&nbsp;O resto é história: a álgebra se desenvolve monstruosamente e graças aos nossos amigos indianos fiz 3 vezes Cálculo I na faculdade. "Muito obrigado" amigos indianos!

O que quero dizer é: uma boa notação possibilita saltos gigantescos. E o que é uma notação? É uma representação de algo que expõe sua natureza essencial de forma gráfica. Quanto mais clara é a exposição desta natureza mais fácil sua compreensão e, consequentemente, maior a possibilidade de descobrirmos facetas até então ocultas relacionadas ao objeto retratado. Foi assim com a álgebra e é assim com bancos de dados.
<h2>Notação e bancos de dados</h2>
<a href="https://devkico.itexto.com.br/wp-content/uploads/2013/08/crianca_martelo.jpg"><img class="size-full wp-image-1501" alt="Dê para uma criança um martelo e o mundo se torna um prego." src="https://devkico.itexto.com.br/wp-content/uploads/2013/08/crianca_martelo.jpg" width="168" height="151"></a> Dê a uma criança um martelo e o mundo se torna um prego.

Será que toda informação pode ser representada apenas por linhas e colunas? Inicialmente as coisas não eram assim: no CODASYL por exemplo temos estruturas de dados navegacionais em inúmeras dimensões. Curiosamente, com o sucesso do SGBD relacional é como se todas as estruturas de dados de repente se tornassem bidimensionais.

É inegável os ganhos que o modelo relacional trouxe mas por outro lado nos acarretou também um enorme retrocesso intelectual. A impressão que tenho é a de que após 1976 (ano em que é lançada a primeira versão bem sucedida do Oracle) a única estrutura de dados existente seja a tabular e que a ela o mundo deveria se submeter.

Ao "tabelizarmos" o mundo que devemos representar muitas vezes terminamos com soluções muito mais caras que o necessário. Basta ver aquela sua tabela que começou com poucos campos e hoje conta com algumas dezenas, ou aquele malabarismo louco que você precisa fazer para representar relacionamentos entre suas entidades no modelo relacional.

O que quero dizer com isto é que o movimento NoSQL nos reapresentou notações mais adequadas para representar estruturas de dados como estas realmente são: grafos, árvores, campos variáveis, etc. Claro que há toda uma gama de problemas que é bem representado por tabelas, mas duvido muito que corresponda à maior parte dos casos.

Um dos pontos de venda do NoSQL é a escalabilidade obtida, mas aí eu pergunto: será que grande parte deste ganho de escalabilidade não seria o resultado de estarmos aplicando uma melhor notação na representação dos nossos dados?
<h2>Concluindo</h2>
NoSQL (detesto este nome) é mais do que simplesmente bancos de dados que não adotam o modelo relacional: são notações que podemos usar para representar o universo retratado por nossos sistemas. O que o NoSQL nos trouxe, ou melhor, nos reapresentou, não é "apenas" escalabilidade: é a popularização de outras notações até então eclipsadas pelo modelo relacional.

Esta redescoberta notacional, acredito, trará ganhos de qualidade computacional gigantescos nesta e na próximas décadas: acredito que aspectos até então ignorados da própria estrutura da informação se tornarão mais claros, bem mais nítidos, e com isto coisas maravilhosas surgirão. É o fim da "idade média relacional".

PS:

No início do ano publiquei aqui no blog uma bibliografia comentada de NoSQL: sugiro a leitura destes textos (em especial o de Kent) para aqueles que começaram a sua aventura nesta área. Eis o link:&nbsp;<a href="https://devkico.itexto.com.br/?p=1301">https://devkico.itexto.com.br/?p=1301</a>