You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/br/2-Working-With-Data/06-non-relational/README.md

14 KiB

Trabalhando com Dados: Dados Não-Relacionais

 Sketchnote por (@sketchthedocs)
Trabalhando com Dados NoSQL - Sketchnote por @nitya

Quiz Pré-Aula

Os dados não estão limitados a bancos de dados relacionais. Esta lição foca em dados não-relacionais e abordará os fundamentos de planilhas e NoSQL.

Planilhas

Planilhas são uma forma popular de armazenar e explorar dados porque exigem menos trabalho para configurar e começar. Nesta lição, você aprenderá os componentes básicos de uma planilha, bem como fórmulas e funções. Os exemplos serão ilustrados com o Microsoft Excel, mas a maioria das partes e tópicos terá nomes e etapas semelhantes em comparação com outros softwares de planilhas.

Uma planilha vazia do Microsoft Excel com duas abas

Uma planilha é um arquivo e estará acessível no sistema de arquivos de um computador, dispositivo ou sistema de arquivos baseado em nuvem. O software em si pode ser baseado em navegador ou um aplicativo que deve ser instalado em um computador ou baixado como um app. No Excel, esses arquivos também são definidos como workbooks (pastas de trabalho), e essa terminologia será usada pelo restante desta lição.

Um workbook contém uma ou mais worksheets (planilhas), onde cada planilha é identificada por abas. Dentro de uma planilha, há retângulos chamados células, que contêm os dados reais. Uma célula é a interseção de uma linha e uma coluna, onde as colunas são identificadas por caracteres alfabéticos e as linhas por números. Algumas planilhas contêm cabeçalhos nas primeiras linhas para descrever os dados em uma célula.

Com esses elementos básicos de um workbook do Excel, usaremos um exemplo dos Modelos da Microsoft focado em um inventário para explorar algumas partes adicionais de uma planilha.

Gerenciando um Inventário

O arquivo de planilha chamado "InventoryExample" é uma planilha formatada de itens dentro de um inventário que contém três abas, onde as abas são identificadas como "Inventory List", "Inventory Pick List" e "Bin Lookup". A linha 4 da aba Inventory List é o cabeçalho, que descreve o valor de cada célula na coluna do cabeçalho.

Uma fórmula destacada de um exemplo de lista de inventário no Microsoft Excel

Existem casos em que uma célula depende dos valores de outras células para gerar seu valor. A planilha Inventory List acompanha o custo de cada item em seu inventário, mas e se precisarmos saber o valor total de tudo no inventário? Fórmulas realizam ações nos dados das células e são usadas para calcular o custo do inventário neste exemplo. Esta planilha usou uma fórmula na coluna Inventory Value para calcular o valor de cada item multiplicando a quantidade sob o cabeçalho QTY e seus custos pelas células sob o cabeçalho COST. Ao clicar duas vezes ou destacar uma célula, a fórmula será exibida. Você notará que as fórmulas começam com um sinal de igual, seguido pelo cálculo ou operação.

Uma função destacada de um exemplo de lista de inventário no Microsoft Excel

Podemos usar outra fórmula para somar todos os valores de Inventory Value e obter seu valor total. Isso poderia ser calculado somando cada célula para gerar a soma, mas isso pode ser uma tarefa tediosa. O Excel possui funções, ou fórmulas predefinidas para realizar cálculos nos valores das células. Funções exigem argumentos, que são os valores necessários para realizar esses cálculos. Quando funções exigem mais de um argumento, eles precisam ser listados em uma ordem específica ou a função pode não calcular o valor correto. Este exemplo usa a função SUM e utiliza os valores de Inventory Value como argumento para gerar o total listado na linha 3, coluna B (também referida como B3).

NoSQL

NoSQL é um termo abrangente para as diferentes formas de armazenar dados não-relacionais e pode ser interpretado como "não-SQL", "não-relacional" ou "não apenas SQL". Esses tipos de sistemas de banco de dados podem ser categorizados em 4 tipos.

Representação gráfica de um banco de dados chave-valor mostrando 4 chaves numéricas únicas associadas a 4 valores variados

Fonte: Blog de Michał Białecki

Bancos de dados chave-valor associam chaves únicas, que são identificadores únicos associados a um valor. Esses pares são armazenados usando uma tabela de hash com uma função de hash apropriada.

Representação gráfica de um banco de dados gráfico mostrando as relações entre pessoas, seus interesses e locais

Fonte: Microsoft

Bancos de dados gráficos descrevem relações nos dados e são representados como uma coleção de nós e arestas. Um nó representa uma entidade, algo que existe no mundo real, como um estudante ou extrato bancário. Arestas representam a relação entre duas entidades. Cada nó e aresta possuem propriedades que fornecem informações adicionais sobre eles.

Representação gráfica de um banco de dados colunar mostrando um banco de dados de clientes com duas famílias de colunas chamadas Identidade e Informações de Contato

Bancos de dados colunares organizam dados em colunas e linhas, como uma estrutura de dados relacional, mas cada coluna é dividida em grupos chamados famílias de colunas, onde todos os dados sob uma coluna estão relacionados e podem ser recuperados e alterados em uma única unidade.

Bancos de Dados Documentais com o Azure Cosmos DB

Bancos de dados documentais baseiam-se no conceito de banco de dados chave-valor e são compostos por uma série de campos e objetos. Esta seção explorará bancos de dados documentais com o emulador do Cosmos DB.

Um banco de dados Cosmos DB se encaixa na definição de "Não Apenas SQL", onde o banco de dados documental do Cosmos DB depende de SQL para consultar os dados. A lição anterior sobre SQL aborda os fundamentos da linguagem, e poderemos aplicar algumas das mesmas consultas a um banco de dados documental aqui. Usaremos o Emulador do Cosmos DB, que nos permite criar e explorar um banco de dados documental localmente em um computador. Leia mais sobre o Emulador aqui.

Um documento é uma coleção de campos e valores de objetos, onde os campos descrevem o que o valor do objeto representa. Abaixo está um exemplo de um documento.

{
    "firstname": "Eva",
    "age": 44,
    "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5",
    "_rid": "bHwDAPQz8s0BAAAAAAAAAA==",
    "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"",
    "_attachments": "attachments/",
    "_ts": 1630544034
}

Os campos de interesse neste documento são: firstname, id e age. Os demais campos com sublinhados foram gerados pelo Cosmos DB.

Explorando Dados com o Emulador do Cosmos DB

Você pode baixar e instalar o emulador para Windows aqui. Consulte esta documentação para opções sobre como executar o Emulador no macOS e Linux.

O Emulador abre uma janela no navegador, onde a visualização Explorer permite explorar documentos.

A visualização Explorer do Emulador do Cosmos DB

Se você estiver acompanhando, clique em "Start with Sample" para gerar um banco de dados de exemplo chamado SampleDB. Ao expandir o SampleDB clicando na seta, você encontrará um contêiner chamado Persons. Um contêiner contém uma coleção de itens, que são os documentos dentro do contêiner. Você pode explorar os quatro documentos individuais em Items.

Explorando dados de exemplo no Emulador do Cosmos DB

Consultando Dados Documentais com o Emulador do Cosmos DB

Também podemos consultar os dados de exemplo clicando no botão de nova consulta SQL (segundo botão da esquerda para a direita).

SELECT * FROM c retorna todos os documentos no contêiner. Vamos adicionar uma cláusula where e encontrar todos com menos de 40 anos.

SELECT * FROM c where c.age < 40

Executando uma consulta SELECT em dados de exemplo no Emulador do Cosmos DB para encontrar documentos que possuem um campo de idade com valor menor que 40

A consulta retorna dois documentos, observe que o valor de idade para cada documento é menor que 40.

JSON e Documentos

Se você está familiarizado com JavaScript Object Notation (JSON), notará que os documentos se parecem com JSON. Há um arquivo PersonsData.json neste diretório com mais dados que você pode carregar no contêiner Persons no Emulador via o botão Upload Item.

Na maioria dos casos, APIs que retornam dados em JSON podem ser diretamente transferidas e armazenadas em bancos de dados documentais. Abaixo está outro documento, que representa tweets da conta do Twitter da Microsoft, recuperados usando a API do Twitter e inseridos no Cosmos DB.

{
    "created_at": "2021-08-31T19:03:01.000Z",
    "id": "1432780985872142341",
    "text": "Blank slate. Like this tweet if youve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK",
    "_rid": "dhAmAIUsA4oHAAAAAAAAAA==",
    "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"",
    "_attachments": "attachments/",
    "_ts": 1630537000

Os campos de interesse neste documento são: created_at, id e text.

🚀 Desafio

Há um arquivo TwitterData.json que você pode carregar no banco de dados SampleDB. Recomenda-se adicioná-lo a um contêiner separado. Isso pode ser feito por:

  1. Clicar no botão de novo contêiner no canto superior direito
  2. Selecionar o banco de dados existente (SampleDB) e criar um id para o contêiner
  3. Definir a chave de partição como /id
  4. Clicar em OK (você pode ignorar o restante das informações nesta visualização, pois este é um pequeno conjunto de dados rodando localmente em sua máquina)
  5. Abrir seu novo contêiner e carregar o arquivo de dados do Twitter com o botão Upload Item

Tente executar algumas consultas SELECT para encontrar os documentos que possuem "Microsoft" no campo de texto. Dica: tente usar a palavra-chave LIKE.

Quiz Pós-Aula

Revisão e Autoestudo

Tarefa

Soda Profits


Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.