Guia Completo sobre Banco de Dados Distribuído

Classificado em Computação

Escrito em em português com um tamanho de 4,05 KB

Banco de Dados Distribuído

Objetivo

  • Prover independência
  • Manter transparência para o usuário, que "verá" um único banco de dados.
  • Oferecer disponibilidade

Características

  • Conexão de nós de BD através de Redes de computadores:
    • Transmitir seus dados e comandos SQL entre sites.
  • Inter-relação lógica entre os dados conectados:
  • Ausência de homogeneidade entre os nós
  • Os BD podem tanto estar perto ou longe

Vantagens

  • Reflete a estrutura organizacional
  • Autonomia local
  • Maior disponibilidade
  • Modularidade
  • Economia de infraestrutura

Desvantagens

  • Complexidade
  • Maior custo
  • Segurança
  • Difícil manter integridade

Tipos de BD Distribuído

  • Homogêneo: BD iguais em todos os nós, abordagem top-down, faz modelagem já pensando em um ambiente distribuído.
  • Heterogêneo: BD diferente em todos os nós, abordagem bottom-up, verifica as modelagens atuais e tenta se adaptar.

Formas de Distribuição

Replicação

Existe uma cópia em cada um dos nós, tornando as bases de dados iguais.

Tipos de Replicação:
  • Síncrona: Cada transação é concluída quando todos os nós confirmam.
  • Assíncrona: O nó principal executa a transação enviando confirmação ao solicitante e então encaminha a transação aos demais nós.

Fragmentação

Os dados são divididos em todo o sistema, fazendo uma base de dados diferente em cada nó. (Fragmentação vertical e horizontal)

Big Data

Capacidade de processar e armazenar grandes quantidades de dados. O Big Data é baseado em 5 V's:

  • Volume: Cuidar em como processar todo esse volume.
  • Variedade: Se importa em lidar com as variedades dos tipos de dados.
  • Velocidade: Reagir rápido o suficiente para lidar com a velocidade.
  • Veracidade: Ser mais resistente a ruídos e anormalidades de dados.
  • Valor: Acessar esta quantidade exorbitante de dados.

HADOOP

Framework Java de computação distribuída, faz a distribuição em cluster e processa grande volume de dados, é um projeto da Apache.

HDFS (Hadoop Distributed File System)

É um módulo de sistema de arquivos Hadoop, responsável por gerenciar a distribuição de arquivos entre nós. Faz a divisão de dados em pequenos pedaços e distribui entre os clusters. Utiliza algoritmo (MapReduce) que mapeia os dados nos diversos clusters.

MapReduce

Utilizado para processar grande volume de dados em paralelo, faz a divisão de seu trabalho em um conjunto de tarefas independentes, criado inicialmente pelo Google.

Spark

É um conjunto de algoritmos criado pela Apache Foundation para processamento de grande quantidade de dados em alta velocidade. Um projeto 100% open source.

BD NoSQL

Orientados a Colunas

Modelo mais parecido com BD Relacional, com suas estruturas parecidas com uma tabela. Contém armazenamento em colunas.

Orientados a Chave-Valor

Modelo com estrutura similar a um dicionário. Todo dado armazenado possuirá uma chave que o identifica.

Orientado a Grafo

Modelo com estrutura de dados compostas por vértices e arestas. As Arestas interligam os vértices e Os Vértices representam os dados. E as suas arestas representam seus relacionamentos.

Orientados a Documentos

Modelo com estrutura de documentos. Normalmente estes documentos são JSON ou XML. É o modelo NoSQL mais comum a ser utilizado atualmente.

Benefícios de usar um NoSQL

  1. Flexibilidade
  2. Escalabilidade
  3. Disponibilidade
  4. Open Source
  5. Baixo Custo Operacional
  6. Funcionalidades especiais

Entradas relacionadas: