Banco de Dados para Aplicações Web mais Comuns

Banco de Dados para Aplicações Web mais Comuns

Alguns bancos de dados guardam objetos, estrutura relacional de tabelas, hierarquias, etc. Quais são todos esses tipos (modelos)? Quando a aplicação de cada um é indicada (além, claro, da preferência do desenvolvedor)? Exemplos de cada um?

Disparado o mais usado é o modelo relacional que está aí há mais de 40 anos servindo muito bem quase todos os problemas da computação que exijam armazenamento de dados.

Outros modelos estão sendo usados mais recentemente em sites que precisam de muita escalabilidade ou por quem segue o paradigma de orientação à modinha. Ou seja, a pessoa não precisa daquilo, mas usa porque viu que tem um monte de gente usando. Os principais: chave-valor, orientado a objeto, grafos, hierárquico.

Há maneiras diferentes de implementar esses modelos, um dos mais usados em alguns sistemas é o hierárquico baseado em documento (alguns especificamente como XML "XML Databases) e os colunares "DBMS".

Quando os dados não tem uma estrutura definida, funciona bem como um documento e não possui relação pode ser mais interessante usar o modelo de documento, mesmo que em conjunto com o relacional.

Quando não há estrutura definida, provavelmente será muito diferente, não há relacionamentos e os dados funcionam isoladamente, chave-valor pode ser mais adequado. Muitas vezes é usado apenas como cache e não o banco de dados principal.

Muitos destes modelos não permitem performance bruta. Eles até podem responder rápido colocando hardware que ajude ser rápido. Eles costumam escalar melhor, ou pelo menos mais fácil de escalar.

Estas duas formas são as mais usadas quando não se usa o modelo relacional.

Estes modelos não costumam ser ACID o que pode ser impeditivo em muitos casos. Alguns para serem ACID abrem mão de vantagens pelo qual são escolhidos.

Em geral eles são chamados de NoSQL, que é um nome equivocado.

Na verdade as principais marcas de banco de dados do mercado que sempre foram relacionais começaram ter mecanismos para trabalhar melhor com os outros modelos também. Portanto um banco de dados híbrido te dá o melhor dos dois mundos. Eles sempre permitiram o modelo de documento, chave-valor e outros modelos, mas nunca foi simples, nunca teve nada pronto, agora tem.

Alguns sites são tão simples que sequer usam sistemas gerenciadores mesmo e preferem um sistema de arquivos simples.

Não gosto muito de rankings deste tipo, mas existe o DB-Engines Ranking para ver os mais usados, segundo critérios deles (não confie muito, é só uma base). E tem a tendência do que mais se pergunta no SOen.

Note que só o MongoDB não relacional têm relevância, curiosamente um que tem bem pouca vantagem em relação aos DBs tradicionais que se modernizaram.

O fato é que as pessoas acabam complicando o que é simples. Aqui vai um pouco de opinião: pra que usar algo que você não precisa? Para fazer o básico, sem preocupações de integridade, performance, facilidades para obtenção dos dados de diversas formas o NoSQL pode ser mais fácil de desenvolver para ele, mesmo onde ele não é necessário de fato, mas quando começa pedir essas características o modelo relacional começa se destacar, e a maioria dos problemas precisam deste modelo. Como banco de dados mesmo só vejo vantagem em usar esses modelos quando precisa de distribuição do banco de dados, principalmente depois que os relacionais começaram adotar outros modelos de forma integrada.

O modelo híbrido fornecido pelos principais DBs que eram relacionais parece ser um modelo vitorioso. Outros modelos podem ser mais adequados em nichos.

Há muita coisa feita com interface web mas que não importa para o banco de dados. Em geral há abuso de fazer web o que funcionaria melhor como aplicação nativa.

Entre para ver ou adicionar um comentário

Outros artigos de Antonio Francisco da Silva

  • SOLID

    SOLID

    O que é SOLID: O guia completo para você entender os 5 princípios da POO SOLID são cinco princípios da programação…

  • Como construir TDD (Test Driven Development) com XUnit e .NET Core 3.0

    Como construir TDD (Test Driven Development) com XUnit e .NET Core 3.0

    Desenvolvimento baseado na codificação de testes unitários; Abordagem que tem "início" em 2002, com a publicação do…

  • Tutotial Grátis Linkedin - Linkedin de Resultados

    Tutotial Grátis Linkedin - Linkedin de Resultados

    Curso para quem não consegue NADA com o Linkedin! - Curso gratuito

  • Como evitar o golpe do falso emprego

    Como evitar o golpe do falso emprego

    Introdução Ofertas falsas de emprego são comuns em qualquer época, mas aumentam consideravelmente em tempos de crise…

  • Plano para a vida toda

    Plano para a vida toda

    01 - Faça o que é certo, não o que é fácil. O nome disso é ÉTICA; 02 - Para realizar coisas grandes, comece pequeno.

  • Perspective

    Perspective

    “Performing, responsible management is the alternative to tyranny and our only protection against it.” —Peter Drucker

  • É Necessário Sempre Acreditar que o Sonho é Possível

    É Necessário Sempre Acreditar que o Sonho é Possível

    Ontem, 13/11/2018, falei para uns amigos que meus objetivos principais para 2019 seriam tirar minhas certificações em…

  • Blockchain: O que é?

    Blockchain: O que é?

    Ela é uma espécie de banco de dados, onde ficam armazenadas todas as informações sobre as transações de Bitcoins. O…

  • A importância da análise de requisitos para o sucesso de um projeto

    A importância da análise de requisitos para o sucesso de um projeto

    Utilizar técnicas para extrair informação necessária torna-se umas das tarefas mais importantes para que projeto atenda…

  • O Poder da Esperança

    O Poder da Esperança

    JULIÁN MELGOSA E MICHELSON BORGES Praticar exercícios físicos e ter uma dieta balanceada são hábitos que trazem…

Outras pessoas também visualizaram

Conferir tópicos