Abordagens NoSQL / Modelos Lógicos e Físicos - Aula 09/12 - Bancos de Dados 2020.2

Abordagens NoSQL / Modelos Lógicos e Físicos - Aula 09/12 - Bancos de Dados 2020.2

Introdução ao Cenário de Banco de Dados

Continuação do Curso

  • O vídeo é uma continuidade de um curso sobre banco de dados na Unicamp, focando no cenário NoSQL e Big Data.
  • André, o apresentador, recomenda assistir ao vídeo anterior para melhor compreensão dos conceitos abordados.

Impacto no Modelo Lógico e Físico

  • A apresentação será dividida em discussões sobre o impacto do NoSQL nos modelos lógico e físico de armazenamento.
  • Serão explorados diferentes modelos que se afastam do modelo relacional tradicional.

Modelos Não Relacionais

Estruturas Semi-Estruturadas

  • O universo semi-estruturado permite flexibilidade nas estruturas dos dados, como documentos JSON.
  • Os bancos de dados documentais são adequados para representar essa estrutura hierárquica.

Exemplos de Bancos de Dados Documentais

  • O Amazon DocumentDB é mencionado como um exemplo prático desse tipo de banco de dados.
  • Os bancos documentais geralmente refletem uma estrutura hierárquica baseada em JSON ou XML.

Representação com JSON

Características do JSON

  • JSON (JavaScript Object Notation) é um padrão aberto para intercâmbio de objetos, leve e fácil de usar.
  • Ele permite a representação simples e direta dos dados sem a necessidade de esquemas rígidos.

Estrutura Hierárquica

  • A estrutura do JSON pode ser vista como hierárquica, permitindo elementos subordinados dentro dele.
  • É possível aninhar objetos dentro de outros objetos, facilitando a organização dos dados complexos.

Integração com MongoDB

Armazenamento Direto no MongoDB

  • O MongoDB utiliza diretamente a estrutura JSON para armazenar e recuperar dados eficientemente.

Estruturas de Dados e Armazenamento em Bancos de Dados

Objetos e Flexibilidade nos Bancos de Dados

  • O objeto Jason pode ser armazenado diretamente no banco, permitindo a inclusão de objetos complexos que contêm outros objetos.
  • Os bancos de dados não são rígidos como os relacionais; não é necessário definir um esquema previamente, facilitando o armazenamento flexível.
  • É possível manipular dados com comandos para recuperar, atualizar e remover registros, exemplificando a versatilidade do sistema.

Comparação entre JSON e XML

  • A disciplina também aborda bancos de dados XML, que estruturam documentos informativos em uma hierarquia.
  • O JSON tem ganhado popularidade devido à sua simplicidade em comparação ao XML, que permite esquemas mais complexos.

Bancos de Dados Gráficos

  • Existem bancos que armazenam dados na forma de grafos, como Nilford e Virtuoso, permitindo análises específicas sobre as relações entre os dados.
  • Linguagens específicas podem ser utilizadas para percorrer e analisar esses gráficos, destacando a importância das relações na representação dos dados.

Estruturas Chave-Valor

  • As estruturas chave-valor são simples e permitem fácil distribuição dos dados; cada valor é associado a uma chave única.
  • Exemplos incluem Amazon DynamoDB e Redis; ambos utilizam essa abordagem para armazenamento eficiente.

Armazenamento Local no Navegador

  • O Web Storage é um sistema que utiliza o modelo chave-valor para armazenar informações localmente em aplicações web.
  • Comandos básicos permitem guardar valores associados a chaves únicas; isso facilita o desenvolvimento ágil sem complicações excessivas.

Exemplo Prático com Web Storage

  • Um exemplo prático mostra como gravar um valor usando uma chave única no armazenamento local do navegador.

Como Funciona o Registro Chave-Valor?

Introdução ao Registro Chave-Valor

  • O conceito de registro chave-valor é apresentado como uma forma simples e rápida de armazenar dados. A chave serve como um identificador único para acessar valores associados.
  • O registro permite que se adicione ou ajuste informações facilmente, demonstrando a flexibilidade do sistema em lidar com dados.

Estruturas de Dados e JSON

  • É possível combinar registros chave-valor com estruturas JSON, permitindo que os dados sejam manipulados de maneira mais complexa, como se fossem strings.
  • Os registros podem interpretar objetos diretamente, facilitando a interação com diferentes tipos de dados.

Comandos e Arquitetura Distribuída

  • Um conjunto de comandos pode ser utilizado para referenciar campos dentro dos registros, tornando o sistema mais sofisticado e eficiente na manipulação de dados distribuídos.
  • O Google Bigtable é mencionado como um exemplo que não se limita apenas ao modelo chave-valor, mas também incorpora ideias de tabelas sem seguir um modelo relacional tradicional.

Escalabilidade e Indexação

  • O Bigtable foi projetado para escalar rapidamente até petabytes, sendo utilizado em sistemas pesados da Google, como Google Search e Google Finance.
  • A estrutura do Bigtable permite criar visões esparsas das tabelas, onde nem todas as colunas precisam estar preenchidas.

Estrutura Interna do Bigtable

  • A indexação no Bigtable é feita por linhas que contêm famílias de colunas. Cada linha possui uma chave única que facilita a recuperação dos dados armazenados.
  • As colunas podem conter versões diferentes do mesmo objeto, permitindo modificações ao longo do tempo sem perder informações anteriores.

Distribuição e Replicação

  • A estrutura do Bigtable é inspirada em árvores B+, permitindo distribuir pedaços (ou tablets) entre várias máquinas para processamento eficiente.
Video description

Continuação do vídeo anterior sobre Big Data e NoSQL, com foco no impacto no modelo lógico/físico. São repassados modelos NoSQL. É revisto o modelo baseado em documentos e XML, com apresentação do modelo baseado em JSON e MongoDB. É revisado o modelo de grafos. É introduzido o modelo de chave-valor; com detalhamento do W3C Web Storage e do Redis. São apresentados exemplos práticos e como o JSON pode ser integrado com a abordagem.