Seja muito bem-vindo(a)

Ao espaço onde guardo minhas anotações!😊

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:

  1. Modelagem de dados:
  2. Permitem a definição de estruturas de dados, como tabelas, colunas e tipos de dados.

  3. Manipulação de dados:
  4. Oferecem linguagens de consulta, como SQL, para inserir, atualizar, excluir e consultar dados.

  5. Controle de acesso:
  6. Gerenciam permissões para garantir que apenas usuários autorizados possam acessar ou modificar os dados.

  7. Integridade e consistência:
  8. Mantêm a integridade dos dados através de mecanismos, como chaves estrangeiras e transações.

  9. Backup e recuperação:
  10. Possuem recursos para criar cópias de segurança dos dados e recuperar informações em caso de falhas.

  11. Concorrência
  12. Gerenciam o acesso simultâneo de múltiplos usuários para garantir a integridade dos dados durante operações concorrentes.
BD são fundamentais para diversas aplicações computacionais, e eles podem ser classificados basicamente em BANCO DE DADOS RELACIONAIS (SQL), e NÃO RELACIONAIS (NOSQL).


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:

  1. Padronização:
  2. SQL é uma linguagem padronizada pela indústria, o que facilita a interoperabilidade entre diferentes de SGBD.

  3. Simplicidade de uso:
  4. A linguagem SQL é relativamente fácil de aprender e usar, especialmente para consultas básicas e manipulação de dados.

  5. Desempenho otimizado:
  6. SQL permite acesso rápido e eficiente aos dados, sendo capaz de recuperar múltiplos registros com comandos simples.

  7. Integridade dos dados:
  8. SQL oferece recursos para garantir a integridade e consistência dos dados nos BANCO DE DADOS RELACIONAIS.

  9. Consultas estruturadas:
  10. 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:
  1. Custo de licenciamento:
  2. Algumas versões de SGBDs SQL, como o MICROSOFT SQL SERVER, podem ter opções de licenciamento caras.

  3. Compatibilidade limitada:
  4. Uns tipos de SQL, por exemplo, é projetado para rodar apenas em servidores baseados no WINDOWS, limitando assim a flexibilidade em ambientes multiplataforma.

  5. Rigidez estrutural:
  6. 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:

  1. Flexibilidade:
  2. 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.

  3. Escalabilidade horizontal:
  4. NOSQL é frequentemente escolhido por sua capacidade de escalar horizontalmente, distribuindo dados por vários servidores para lidar com cargas de trabalho muito grandes.

  5. Desempenho:
  6. 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.

  7. Suporte a dados não estruturados:
  8. 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.

  9. Modelagem de dados:
  10. 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:
  1. Falta de padrão:
  2. 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.

  3. Integridade dos dados:
  4. 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.

  5. Complexidade de consultas:
  6. 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.

  7. Maturidade:
  8. 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.

  9. ACID:
  10. 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.