Quando falamos de banco de dados hoje em dia, a grande maioria das empresas reconhecem a sua importância. Porém, se voltarmos na história em 50 anos, podemos observar que a realidade era bem diferente. Na década de 70, sistemas eram raros e utilizados apenas em grandes corporações. Pequenas e médias empresas eram totalmente gerenciadas por auxílio de pilhas de papéis, com gerenciamento extremamente lento e complexo. Os cofres ou espaços físicos de alta segurança eram utilizados para armazenar essas informações.
Os primeiros protótipos de modelos que buscavam melhorias nesses processos foram realizados em universidades dos Estados Unidos. Nessa época foi desenvolvido o modelo de dados relacional. Este criou uma camada lógica, responsável por ligar os diferentes conceitos chaves através de relações. Nesse período, um projeto que juntou grandes empresas como Oracle, IBM e HP deu origem a linguagem de banco de dados SEQUEL, pioneira e inspiração para linguagens que surgiram anos depois. Posteriormente, a criação do modelo entidade-relacional permitiu que uma camada lógica facilitasse o desenvolvimento de projetos, ou seja, o projetista não precisava focar na estruturação dos dados mas sim na sua abstração. Os sistemas gerenciadores de bancos de dados passaram a ser menos complexos, isso porque a linguagem permitia interação em um nível mais alto.
Com a popularização dos recursos tecnológicos e da internet, novas soluções de SGBDs (Sistema Gerenciador de Banco de Dados) foram desenvolvidas para atender variedades de problemas que surgiram. Dentre os SGBDS mais comuns, podemos citar Oracle, DB2, MySQL, SQL Server, PostgreSQL. Devido a abrangência SGBDS as empresas passaram a ter opções diversificadas para atender as demandas internas. Podendo adotar soluções pagas ou de código aberto (open source). Levando isso em consideração, não existe a solução de SGBD ‘bala de prata’ que vai atender a todo e qualquer cenário da melhor maneira. Sendo assim, a adoção da ferramenta deve estar alinhada as expectativas de custos, mão de obra capacitada, visão de integração com outras soluções, atualização de infraestrutura e visão de mercado.
Quem são os envolvidos?
A evolução das linguagens de programação está em paralelo com a evolução dos bancos de dados. Isso porque ambas as áreas devem trabalhar em conjunto para suprir as exigências dos sistemas de informação. Caso não exista essa harmonização, o desempenho de ERP, CRM ou websites serão duramente comprometidos. Desde a fase de modelagem do banco de dados, o administrator de dados deve entender a necessidade do projeto de maneira profunda. Buscando compreender a regra de negócio e o objetivo daquela solução. Posteriormente, o administrador de banco de dados deve estar alinhado com a equipe de desenvolvimento para buscar a melhor performance possível no dia a dia. A análise dos pontos mais críticos do sistema, as rotinas de cargas de trabalho e monitoramento do comportamento do banco de dados é essencial para uma boa performance.
Quais os pontos chave?
A solução para armazenamento em bancos de dados foi evoluindo durante as décadas para suprir ao aumento exponencial dos sistemas de informação. As propriedades conhecidas como ACID (Atomidade, consistência, isolamento e durabilidade) buscam garantir que essa solução possa atender as demandas cada vez mais exigentes do mercado de tecnologia.
- Atomicidade: garante que a transação será executada na sua totalidade ou não será executada, evitando que um processo seja feito parcialmente.
- Consistência: garante que os dados são confiáveis, caso alguma anomalia aconteça o estado inicial será retornado.
- Isolamento: as transações são independentes, ou seja, uma não pode impactar as outras.
- Durabilidade: garante que os dados estejam disponíveis mesmo após falhas.
O que podemos esperar para o futuro?
Devido ao dinamismo do mundo tecnológico, todas as informações geradas acabam sendo armazenadas com fins de análise de negócio. Essa situação mostrou que os bancos de dados relacionais não conseguem suprir algumas das novas demandas. Há cenários onde a quantidade de dados é extremamente alta e isso inviabiliza a performance nesse tipo de banco de dados. Outra situação é que nem todos os dados armazenados pelas empresas estão estruturados em tabelas e com as relações organizadas. Grande parte está em imagens, vídeos ou não tem uma relação direta que possa ser organizada em tabelas. Para suprir essa necessidade foram desenvolvidos os bancos de dados não relacionais (NoSQL). Essa solução é eficiente nos cenários de BigData e Data lakes, que são a tendência de armazenamento de dados de grandes corporações. Pode-se citar os bancos de dados MongoDB, cassandra, dynamoDB e CosmosDB como as principais soluções da atualidade.