Bancos de Dados: Distribuídos, Orientados a Objetos, Cliente-Servidor e Paralelismo

Classificado em Computação

Escrito em em português com um tamanho de 6,17 KB.

Bancos de Dados Distribuídos

Bancos de dados distribuídos são sistemas compostos por múltiplos bancos de dados interligados, funcionando como um único banco lógico. Por exemplo, cada loja Walmart possui seu próprio banco de dados, mas a central tem acesso a todas as informações, visíveis em um único sistema. São independentes, mas operam de forma unificada.

Vantagens dos Bancos de Dados Distribuídos

Contingência: se a conexão de um servidor cai, ele continua operando e, ao restabelecer a conexão, sincroniza as informações.

Desvantagens

Complexidade, segurança, falta de padrões, inexperiência.

A distribuição é transparente: os usuários interagem com o sistema como se fosse um único. Isso se aplica ao desempenho, métodos de acesso, etc.

Transações são transparentes: cada transação mantém a integridade entre os múltiplos bancos de dados, podendo ser dividida em subtransações.

Replicação e Fragmentação

Replicação: os dados de um banco são transferidos para outro, garantindo alta disponibilidade. Não há um banco principal.

Fragmentação: uma tabela grande é dividida em partes menores. Por exemplo, em vez de um banco com todos os alunos do estado, cada estado tem seu próprio banco, acessível de qualquer lugar. Pode ser horizontal (por registro) ou vertical (por atributo). Exemplo: funcionários e salários em um banco, IDs e setores em outro, unificados no banco principal.

Transparência de replicação e fragmentação: o usuário não percebe a complexidade do Sistema Gerenciador de Banco de Dados Distribuído (SGBDD).

Bancos de Dados Orientados a Objetos

Um banco de dados orientado a objetos armazena informações na forma de objetos, utilizando a estrutura de dados da orientação a objetos. O gerenciador desse tipo de banco é conhecido como ODBMS ou OODBMS.

Objeto atômico: não é composto por outros objetos, é único.

Tupla: composta por outros objetos.

Conjunto de atributos: define um registro.

Set: conjunto.

Lazy load: carrega apenas os dados necessários, sob demanda, evitando carregar todos os registros. Bancos de dados orientados a objetos priorizam a disponibilidade, carregando apenas o que será usado.

O banco trabalha com listas, armazenando todos os objetos instanciados de uma classe. Carrega para a lista cada instância, apenas o que já foi utilizado. Lista de tuplas. Alcançabilidade: não precisa instanciar tudo de uma vez.

Versionamento: armazena as versões do código fonte utilizado.

Vantagens

  • Capacidade de armazenar objetos.
  • Não utiliza chaves primárias ou estrangeiras.
  • Os objetos se comunicam por mensagens.

Desvantagens

  • Alto custo de aquisição de novas tecnologias.
  • Falta de padronização das linguagens de manipulação.

Arquitetura Cliente-Servidor

Cliente-servidor é um modelo computacional que separa clientes e servidores, interligados por uma rede. Clientes enviam requisições aos servidores, que as processam e retornam resultados. Aplicado em diversos contextos, a arquitetura é similar.

A característica cliente-servidor descreve a relação entre programas em um aplicativo. O servidor fornece funções ou serviços aos clientes, que iniciam os pedidos.

Características do Cliente

  • Inicia pedidos aos servidores.
  • Espera por respostas.
  • Recebe respostas.
  • Utiliza recursos da rede.

Características do Servidor

  • Espera por pedidos dos clientes.
  • Atende os pedidos e responde com os dados solicitados.
  • Pode se comunicar com outros servidores.
  • Fornece recursos de rede.

Vantagens

  • Dados armazenados em servidores com maior controle de segurança.
  • Acesso e recursos controlados, garantindo permissões adequadas.
  • Funciona com clientes de diferentes capacidades.

Desvantagens

  • Clientes solicitam serviços, mas não os oferecem.
  • Sobrecarga do servidor com muitos clientes e grande volume de dados.

Estabelecimento de uma ligação cliente-servidor: pode ser orientada à conexão (como TCP) ou não (como UDP). No TCP, cliente e servidor estabelecem uma conexão e trocam mensagens, com o cliente finalizando a sessão. No UDP, o cliente envia mensagens em pacotes, sem conexão permanente.

Arquiteturas de Paralelismo em Bancos de Dados

Objetivos:

  • Criar um processador rápido com múltiplos processadores de alta velocidade.
  • Criar uma memória grande com vasta área de troca.

Memória Compartilhada

Vantagens: alta eficiência na comunicação entre processadores.

Desvantagens: não adequada para mais de 32 ou 64 processadores.

Discos Compartilhados

Vantagens: acesso à memória não é gargalo, aumenta a tolerância a falhas.

Desvantagem: grau de crescimento limitado.

Sem Compartilhamento

Vantagem: suporta grande número de processadores.

Desvantagem: comunicação entre processadores é fator limitante.

Hierárquico

Combina características de várias arquiteturas, reduzindo a complexidade da comunicação.

Implementação de Paralelismo em Bancos de Dados

Particionamento Horizontal

É o tipo mais comum. As tuplas de uma relação são divididas entre vários discos, cada tupla residindo em um disco diferente.

Descrevemos técnicas de fragmentação, alocação de dados, processamento e otimização de consultas em bancos de dados paralelos, tipos de paralelismo e detalhes de arquitetura. Sistemas de bancos de dados facilitam a exploração de hardwares interligados, compartilhando dados e processamento.

Entradas relacionadas: