Guia de BANCO DE DADOS:
Um BANCO DE DADOS (BD) é uma estrutura organizada de dados inter-relacionados, projetada para
ser armazenada e gerida de forma eficiente por um SGBD. O objetivo principal de um BD é armazenar
informações de maneira
sistemática, permitindo o acesso, a modificação e a recuperação rápida e eficiente dos dados.
Já os SGBDs, ou SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS, são softwares projetados para
gerenciar, organizar, armazenar e recuperar dados de maneira eficiente e segura.
Eles permitem que os usuários interajam com os dados sem precisar se preocupar com os
detalhes de armazenamento e gerenciamento, oferecendo uma camada de abstração entre os
bancos de dados e os aplicativos ou usuários que os utilizam.
Aqui um exemplo de um SGBD bem famoso:
E por serem o software que facilita a criação, o gerenciamento e a manipulação dum BD, possuem e devem possuir várias funcionalidades para serem classificados como um SGBD, exemplos de algumas dessas funções são a:
- Modelagem de dados: Permitem a definição de estruturas de dados, como tabelas, colunas e tipos de dados.
- Manipulação de dados: Oferecem linguagens de consulta, como SQL, para inserir, atualizar, excluir e consultar dados.
- Controle de acesso: Gerenciam permissões para garantir que apenas usuários autorizados possam acessar ou modificar os dados.
- Integridade e consistência: Mantêm a integridade dos dados através de mecanismos, como chaves estrangeiras e transações.
- Backup e recuperação: Possuem recursos para criar cópias de segurança dos dados e recuperar informações em caso de falhas.
- Concorrência Gerenciam o acesso simultâneo de múltiplos usuários para garantir a integridade dos dados durante operações concorrentes.
BANCO DE DADOS RELACIONAIS (SQL):
BANCO DE DADOS RELACIONAIS, também conhecidos como SQL (STRUCTURED QUERY LANGUAGE), ou LINGUAGEM DE
CONSULTA ESTRUTURADA,
e que tem o intuito de organizar os dados em tabelas estruturizadas
Cada tabela é composta por linhas e colunas, onde as colunas representam os atributos (ou campos) e as
linhas representam os
registros (ou tuplas). A relação entre as tabelas é estabelecida através de chaves estrangeiras, que são
referências a chaves
primárias de outras tabelas. Isso permite a criação de consultas complexas que relacionam múltiplas
tabelas para extrair informações.
Vantagens do SQL:
- Padronização: SQL é uma linguagem padronizada pela indústria, o que facilita a interoperabilidade entre diferentes de SGBD.
- Simplicidade de uso: A linguagem SQL é relativamente fácil de aprender e usar, especialmente para consultas básicas e manipulação de dados.
- Desempenho otimizado: SQL permite acesso rápido e eficiente aos dados, sendo capaz de recuperar múltiplos registros com comandos simples.
- Integridade dos dados: SQL oferece recursos para garantir a integridade e consistência dos dados nos BANCO DE DADOS RELACIONAIS.
- Consultas estruturadas: A capacidade de realizar consultas complexas e bem estruturadas, especialmente com o uso de cláusulas, que facilitam a combinação de dados de várias tabelas.
Desvantagens do SQL:
- Custo de licenciamento: Algumas versões de SGBDs SQL, como o MICROSOFT SQL SERVER, podem ter opções de licenciamento caras.
- Compatibilidade limitada: Uns tipos de SQL, por exemplo, é projetado para rodar apenas em servidores baseados no WINDOWS, limitando assim a flexibilidade em ambientes multiplataforma.
- Rigidez estrutural: SQL é baseado em esquemas rígidos, o que pode ser uma desvantagem quando se trabalha com dados não estruturados ou semiestruturados, onde o NOSQL pode oferecer mais flexibilidade.
BANCO DE DADOS NÃO RELACIONAIS (NOSQL):
BANCO DE DADOS NÃO RELACIONAIS, ou NOSQL (NOT ONLY SQL), NÃO APENAS SQL, surgiram
como uma alternativa aos bancos de dados tradicionais (é referido o SQL aqui) para lidar com grandes
volumes de dados e situações onde a flexibilidade na estrutura dos dados é mais
importante do que a consistência e a integridade transacional.
Eles não dependem de tabelas e linhas como estrutura de dados, permitindo armazenar dados de
maneira mais diversificada e menos estruturada.
E são basicamente, qualquer linguagem dos SGBDs, que não sejam baseadas no SQL,
por isso que é chamado de NOSQL (NOT ONLY SQL), NÃO APENAS SQL.
Vantagens do NOSQL:
- Flexibilidade: Bancos de dados NOSQL permitem armazenar dados com estruturas variáveis, o que proporciona maior agilidade no desenvolvimento de aplicações que lidam com dados dinâmicos.
- Escalabilidade horizontal: NOSQL é frequentemente escolhido por sua capacidade de escalar horizontalmente, distribuindo dados por vários servidores para lidar com cargas de trabalho muito grandes.
- Desempenho: Em muitos casos, especialmente com grandes volumes de dados e operações de leitura / escrita intensivas, os bancos de dados NOSQL podem oferecer melhor desempenho do que os bancos de dados relacionais.
- Suporte a dados não estruturados: NoSQL é ideal para armazenar dados que não se encaixam bem em tabelas, como documentos JSON, pares chave-valor, grafos ou colunas de dados variáveis.
- Modelagem de dados: Permite a modelagem de dados mais próxima da forma como os desenvolvedores pensam e estruturam suas aplicações, reduzindo a necessidade de abstrações e conversões.
Desvantagens do NOSQL:
- Falta de padrão: Ao contrário do SQL, não há um padrão universal para a linguagem de consulta em NOSQL, o que pode levar a uma curva de aprendizado mais acentuada e a problemas de interoperabilidade.
- Integridade dos dados: Muitos sistemas NOSQL relaxam as restrições de integridade referencial que são comuns em BDs de SQL, o que pode dificultar a manutenção da consistência dos dados.
- Complexidade de consultas: Realizar consultas complexas, especialmente aquelas que envolvem junções de múltiplas tabelas ou coleções, pode ser mais difícil e menos eficiente em NOSQL.
- Maturidade: Alguns bancos de dados NOSQL são relativamente novos e podem não ter a mesma maturidade e quantidade de recursos que os SGBDs relacionais estabelecidos.
- ACID: Muitos BDs de NOSQL não oferecem suporte completo às propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade), o que pode ser uma limitação crítica para aplicações que exigem transações altamente confiáveis.
OBSERVE:
NOSQL não é uma substituição direta para SQL, mas sim uma alternativa que é mais adequada para certos tipos de requisitos. A escolha entre SQL e NOSQL deve ser feita com base nas necessidades específicas do projeto, como a estrutura dos dados, a escala desejada, os requisitos de transação etc.