faceboook

Conheça alguns diferentes tipos de bancos de dados

Assim como existem várias linguagens de programação para aplicações ou sites, existem diferentes tipos de bancos de dados para cada área. Entenda!(...)

Autor: Redação Impacta

Não pode ler esse artigo agora? Ouça a matéria no Player abaixo:

Em tempos de transformação digital e Indústria 4.0, o desempenho de uma empresa está cada vez mais atrelado à eficiência da sua infraestrutura de TI. Nesse sentido, na hora de definir como implantar uma solução, uma das principais decisões a serem tomadas diz respeito aos tipos de bancos de dados que serão utilizados para sustentá-la.

Entretanto, é natural ter algumas dúvidas relacionadas aos fatores que influenciam essa escolha. Afinal, há diferenças fundamentais entre bancos de dados — e elas impactam diretamente o desempenho de cada software naquele ambiente.  

Pensando nisso, elaboramos este conteúdo completo para tirar suas dúvidas sobre o tema. Mostraremos aqui os diferentes tipos de bancos de dados existentes atualmente no mercado, bem como sua aplicabilidade e as estratégias de monitoramento mais adequadas. Confira!

Quais os tipos de bancos de dados existentes?

Para entendermos mais a fundo as diferenças entre os tipos de bancos de dados, primeiro devemos separá-los em duas categorias: os modelos relacionais e os não-relacionais. A seguir, explicamos as principais características de cada grupo.

1. Banco de dados relacional

Os bancos de dados relacionais são fundamentados no paradigma da orientação a conjuntos, uma vez que sua base é construída em cima da Teoria dos Conjuntos. Esses bancos armazenam informações em estruturas chamadas tabelas, compostas por colunas — atributos e linhas —, tuplas ou registros.
Sua linguagem é a SQL (Structured Query Language). Eles são usados para dados tabulares, de fácil inserção e recuperação. Um ponto importante é que esse modelo domina, atualmente, a maior fatia do mercado de banco de dados, devido à sua aplicabilidade. Seus principais representantes são o Oracle, o SQL Server, o MySQL e o PostgreSQL.
Falaremos sobre cada um deles de forma detalhada mais à frente.  Aqui, vale destacar que sistemas ERP, CRM e similares utilizam bancos relacionais, cuja característica principal é a preocupação com a consistência de seus dados, garantida pelo princípio conhecido como ACID. Veja quais são os pilares desse conceito:

  • atomicidade: em uma transação, ou todos os registros são alterados ou tudo é restaurado à condição original, garantindo que nenhuma alteração fique pela metade;
  • consistência: assegura que os dados sejam consistentes antes e depois de uma alteração. Não se pode, por exemplo, vender um item cuja quantidade na compra é maior do que a disponível em estoque;
  • isolamento: é encarregado de isolar as transações, de forma que elas sejam visíveis ao restante da aplicação somente depois de concluídas. Um exemplo é o ajuste do salário de um funcionário. Enquanto o Departamento de Pessoal não termina de atualizar o cadastro do funcionário, os demais setores continuam a ver o salário antigo. Depois de concluída a transação, uma nova consulta no setor financeiro, por exemplo, mostrará o novo salário;
  • durabilidade: toda informação do banco de dados precisa ser durável, somente podendo ser alterada pela aplicação por meio de comandos DML (Data Manipulation Language), que fazem “inserts”, “updates” ou “deletes”.

Soluções que manipulam dados de natureza mais diversa, por sua vez, tendem a funcionar melhor com bancos de dados capazes de facilitar esse processo. É o que mostraremos a seguir.

2. Banco de dados não-relacional

Esse tipo de banco de dados surge como solução para situações nas quais os bancos relacionais não atendem de forma satisfatória. Ambientes com dados mistos — como imagens, mapas e tabelas — que não podem ser facilmente tabulados em linhas e colunas. Por isso, eles precisam de uma solução não-relacionada. 

Nessa categoria, temos os bancos conhecidos como NoSQL (do inglês, Not Only SQL — Não Apenas SQL). Esses bancos dão vazão a demandas de gigantes como Google, por exemplo, que oferecem, no seu portfólio, as mais diversas soluções, desde contas de e-mail, dados espaciais, armazenamento de imagens e Cloud Computing. Podemos citar como exemplos de bancos NoSQL: MongoD, Redis e Cassandra.
Enquanto bancos relacionais usam o conceito de ACID, como detalhamos, os bancos NoSQL utilizam o paradigma conhecido como CAP. Suas características são:

  • consistency: consistência nas informações armazenadas;
  • availability: disponibilidade do banco de dados;
  • partition tolerance: tolerância ao particionamento das informações.

Sua natureza faz com que o responsável precise avaliar qual dos atributos mencionados é o mais importante para seu negócio, pois o NoSQL não garante totalmente os três.

Quais são os bancos de dados mais conhecidos?

Em ambas as categorias de banco de dados, alguns deles se destacam — seja por performance, seja por facilidade de uso, seja por outro motivo. Falaremos aqui sobre os mais conhecidos, explicando suas características gerais e os diferenciais mais importantes.

Oracle

Lançado em 1980, o Oracle é o banco de dados relacional mais utilizado no mercado. Ele utiliza como linguagem oficial o PS/SQL. Suas principais características são a robustez, a segurança e sua capacidade de gerenciar um grande volume de dados. Além disso, o Oracle é bem versátil, já que roda tanto em Windows como Linux.
Quem utiliza esse banco de dados deve ter em mente que ele exige um hardware potente para oferecer máximo desempenho.

SQL Server

Considerado como o primeiro passo para qualquer analista ou Engenheiro de Software, o SQL Server foi lançado em 1989 pela Microsoft. Também relacional, ele oferece mecanismos que facilitam a administração dos dados. Entretanto, apesar da grande popularidade nos primeiros anos no mercado, o SQL Server passou mais de duas décadas rodando apenas em Windows.
Consequentemente, ele perdeu muito espaço a nível mundial. Nos últimos anos, uma versão Linux foi lançada para preencher essa lacuna. A linguagem que ele utiliza é a Transact-SQL, uma espécie de variação da SQL. Por não ser procedural, ela não exige o detalhamento dos processos como um todo, apenas o que o usuário final quer executar.

MySQL

Lançado em 1996, o MySQL é um banco de dados relacional que também pertence à Oracle. Em abril de 2019, ele entrou na versão 8.0.16 e, desde sempre, tem dois grandes diferenciais: além de ser focado em sistemas online, é totalmente Open Source.
Ele inclui licenças de software livre e comercial para diferentes plataformas: Windows, Linux, Solaris, MacOS, FreeBSD etc. A linguagem utilizada é PHP, algo que tornou o MySQL uma opção favorável para o desenvolvimento de sites, além da administração de servidores Apache.

PostgreSQL

A principal característica do PostgreSQL é ser Open Source. Lançado em 1986, ele se encontra atualmente na versão 12 — disponibilizada em outubro de 2019 — e é considerado por muitos o banco de dados relacional de código aberto mais avançado do mundo.
O PostgreSQL permite o uso das seguintes linguagens de programação:

  • ANSI C;
  • yacc;
  • lex;
  • python;
  • sh;
  • perl;
  • asm.

Sua utilização também é mais indicada para sistemas online. A facilidade de utilização e o fato de não exigir um hardware tão potente fazem dele uma boa opção para as empresas — sobretudo as que trabalham com Linux, pois elas podem aproveitar o código aberto. Entretanto, uma das críticas mais comuns é sua falta de interface administrativa.

MongoDB

Para começar, trata-se de um banco de dados não-relacional. Lançado em 2009 pela empresa de mesmo nome, o MongoDB é um tipo de banco de dados Open Source, orientado a documentos (document database) e que usa a linguagem C++, além de suportar pesquisas feitas em formato JavaScript.
Ele conta com alguns recursos interessantes, como o sharding e as capped collections. O primeiro permite dividir os documentos das coleções entre diferentes servidores, algo muito útil para grandes volumes de dados. As capped collections, por sua vez, têm tamanho predefinido e o conteúdo é rotativo.
Isso significa que ele apaga os documentos mais antigos conforme o limite estabelecido é alcançado. Assim, em cada solicitação de busca, ele exibe os documentos mais recentes. O grande diferencial, como você pode ver, é a flexibilidade.

Apache Cassandra

O Cassandra é um sistema não-relacional altamente escalável. Inicialmente criado pelo Facebook, ele teve seu código aberto para uso em 2008. Grosso modo, ele reúne a arquitetura do DynamoDB — originalmente da Amazon Web Services (AWS) — e uma modelagem de dados baseada em BigTable, da Google.
Atualmente, entretanto, ele é gerenciado pela Fundação Apache, além de alguns apoiadores de outras empresas. A linguagem utilizada é Java e o banco oferece vantagens como:

  • flexibilidade;
  • performance;
  • boa tolerância a falhas;
  • escalabilidade linear (que acompanha o crescimento da infraestrutura);
  • altamente distribuído;
  • suporta muitos datacenters nativamente.

Vale destacar, no entanto, que ele não é muito recomendado para pequenos volumes de dados.

Qual a solução mais adequada a escolher?

A escolha entre bancos relacionais e não relacionais está intimamente ligada à aplicação. Em se tratando de sistemas desenvolvidos para criar, alterar, excluir e consultar informações que tenham um padrão de formato regular, o banco de dados mais adequado é o relacional. 
Alguns exemplos práticos são os sistemas de gerenciamento financeiro, administração de empresas, contábeis etc. Em contrapartida, grandes soluções baseadas em nuvem e dados não tabulados com características heterogêneas demandam a utilização de um banco não-relacional.
Em ambos os casos, é preciso estabelecer processos bem detalhados para realizar o monitoramento e garantir bons resultados.

Como fazer o monitoramento de bancos de dados?

O primeiro passo para ser um administrador de bancos de dados (DBA) eficiente é buscar capacitação. O conhecimento técnico é essencial para ter sucesso nessa atividade, já que ela pode variar bastante entre cada sistema utilizado. Dependendo do tamanho do banco de dados e da empresa, pode ser necessário um time focado nisso.
A escolha de uma boa ferramenta de monitoramento também é importante para garantir a estabilidade da infraestrutura. Um sistema de alertas para picos de desempenho ou falhas em geral, por exemplo, ajuda a identificar pontos que precisam ser melhorados na estrutura do banco de dados.
Vale destacar que boas métricas ajudam a manter a performance sob controle. Com relatórios abrangentes e informações detalhadas, você pode avaliar o que está dando certo e o que pode ser aperfeiçoado.
Um exemplo de problema é a falta de um determinado recurso (memória, tráfego, armazenamento etc.) necessário para a execução de um processo. A identificação precisa ser feita o quanto antes para evitar a indisponibilidade de plataformas e soluções que impactam o funcionamento da empresa como um todo.
Por fim, lembre-se de estabelecer planos de ação para cada situação. Afinal, se uma irregularidade é encontrada, é importante que esse risco já tenha sido mapeado para que a resposta seja estratégica. Tomar decisões em situações de emergência é algo que sempre traz consigo um risco maior de novos problemas.
Como você pode ver, existem diferentes tipos de bancos de dados, cada um com suas particularidades. Estabelecer um monitoramento amplo, por sua vez, é parte essencial da gestão da infraestrutura de TI. Então, adote o hábito de atualizar constantemente suas habilidades buscando bons cursos e desenvolva um trabalho cada vez melhor na sua equipe!
Se gostou do post, compartilhe esse conhecimento com seus colegas nas redes sociais!

Deixe o seu comentário!

Não perca nenhum post!