|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago |
README.md
Trabalhar com Dados: Dados Não-Relacionais
![]() |
---|
Trabalhar com Dados NoSQL - Sketchnote por @nitya |
Questionário Pré-Aula
Os dados não estão limitados a bases de dados relacionais. Esta lição foca em dados não-relacionais e abordará os conceitos básicos de folhas de cálculo e NoSQL.
Folhas de Cálculo
As folhas de cálculo são uma forma popular de armazenar e explorar dados porque exigem menos trabalho para configurar e começar. Nesta lição, aprenderás os componentes básicos de uma folha de cálculo, 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 passos semelhantes em comparação com outros softwares de folhas de cálculo.
Uma folha de cálculo é um ficheiro e estará acessível no sistema de ficheiros de um computador, dispositivo ou sistema de ficheiros baseado na nuvem. O software em si pode ser baseado no navegador ou uma aplicação que deve ser instalada num computador ou descarregada como uma app. No Excel, estes ficheiros também são definidos como livros de trabalho e esta terminologia será usada no restante desta lição.
Um livro de trabalho contém uma ou mais folhas de cálculo, onde cada folha de cálculo é identificada por separadores. Dentro de uma folha de cálculo, existem 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 folhas de cálculo contêm cabeçalhos nas primeiras linhas para descrever os dados numa célula.
Com estes elementos básicos de um livro de trabalho do Excel, usaremos um exemplo dos Modelos da Microsoft focado num inventário para explorar algumas partes adicionais de uma folha de cálculo.
Gerir um Inventário
O ficheiro de folha de cálculo chamado "InventoryExample" é uma folha de cálculo formatada de itens dentro de um inventário que contém três folhas de cálculo, onde os separadores são identificados como "Inventory List", "Inventory Pick List" e "Bin Lookup". A linha 4 da folha de cálculo Inventory List é o cabeçalho, que descreve o valor de cada célula na coluna do cabeçalho.
Existem casos em que uma célula depende dos valores de outras células para gerar o seu valor. A folha de cálculo Inventory List acompanha o custo de cada item no inventário, mas e se precisarmos de 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 folha de cálculo utilizou uma fórmula na coluna Inventory Value para calcular o valor de cada item multiplicando a quantidade sob o cabeçalho QTY pelos custos nas células sob o cabeçalho COST. Ao clicar duas vezes ou destacar uma célula, será exibida a fórmula. Notarás que as fórmulas começam com um sinal de igual, seguido do cálculo ou operação.
Podemos usar outra fórmula para somar todos os valores de Inventory Value e obter o seu valor total. Isto 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. As funções requerem argumentos, que são os valores necessários para realizar esses cálculos. Quando as funções requerem mais de um argumento, eles precisam ser listados numa 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". Estes tipos de sistemas de bases de dados podem ser categorizados em 4 tipos.
Fonte: Blog de Michał Białecki
As bases de dados chave-valor associam chaves únicas, que são identificadores únicos associados a um valor. Estes pares são armazenados usando uma tabela de dispersão com uma função de dispersão apropriada.
Fonte: Microsoft
As bases de dados grafo descrevem relações nos dados e são representadas como uma coleção de nós e arestas. Um nó representa uma entidade, algo que existe no mundo real, como um estudante ou um extrato bancário. As arestas representam a relação entre duas entidades. Cada nó e aresta têm propriedades que fornecem informações adicionais sobre cada um.
Os armazenamentos de dados colunares organizam os 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 como uma unidade.
Armazenamentos de Dados Documentais com o Azure Cosmos DB
Os armazenamentos de dados documentais baseiam-se no conceito de um armazenamento de dados chave-valor e são compostos por uma série de campos e objetos. Esta secção explorará bases de dados documentais com o emulador do Cosmos DB.
Uma base de dados do Cosmos DB encaixa-se na definição de "Não Apenas SQL", onde a base de dados documental do Cosmos DB depende de SQL para consultar os dados. A lição anterior sobre SQL cobre os conceitos básicos da linguagem, e poderemos aplicar algumas das mesmas consultas a uma base de dados documental aqui. Usaremos o Emulador do Cosmos DB, que nos permite criar e explorar uma base de dados documental localmente num computador. Lê 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 restantes campos com sublinhados foram gerados pelo Cosmos DB.
Explorar Dados com o Emulador do Cosmos DB
Podes descarregar e instalar o emulador para Windows aqui. Consulta esta documentação para opções sobre como executar o Emulador no macOS e Linux.
O Emulador abre uma janela no navegador, onde a vista Explorer permite explorar documentos.
Se estiveres a seguir os passos, clica em "Start with Sample" para gerar uma base de dados de exemplo chamada SampleDB. Se expandires o SampleDB clicando na seta, encontrarás um contentor chamado Persons
. Um contentor contém uma coleção de itens, que são os documentos dentro do contentor. Podes explorar os quatro documentos individuais sob Items
.
Consultar Dados Documentais com o Emulador do Cosmos DB
Também podemos consultar os dados de exemplo clicando no botão "New SQL Query" (segundo botão a partir da esquerda).
SELECT * FROM c
retorna todos os documentos no contentor. Vamos adicionar uma cláusula where e encontrar todos com menos de 40 anos.
SELECT * FROM c where c.age < 40
A consulta retorna dois documentos, e nota que o valor de age para cada documento é inferior a 40.
JSON e Documentos
Se estás familiarizado com o JavaScript Object Notation (JSON), notarás que os documentos se assemelham a JSON. Existe um ficheiro PersonsData.json
neste diretório com mais dados que podes carregar no contentor Persons no Emulador através do botão Upload Item
.
Na maioria dos casos, APIs que retornam dados em JSON podem ser diretamente transferidas e armazenadas em bases 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 you’ve 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
Existe um ficheiro TwitterData.json
que podes carregar na base de dados SampleDB. Recomenda-se que o adiciones a um contentor separado. Isto pode ser feito:
- Clicando no botão "New Container" no canto superior direito
- Selecionando a base de dados existente (SampleDB) e criando um ID para o contentor
- Definindo a chave de partição como
/id
- Clicando em OK (podes ignorar o resto das informações nesta vista, pois este é um pequeno conjunto de dados a ser executado localmente no teu computador)
- Abre o teu novo contentor e carrega o ficheiro Twitter Data com o botão
Upload Item
Tenta executar algumas consultas SELECT para encontrar os documentos que têm "Microsoft" no campo text. Dica: tenta usar a palavra-chave LIKE.
Questionário Pós-Aula
Revisão & Autoestudo
-
Existem algumas formatações e funcionalidades adicionais adicionadas a esta folha de cálculo que esta lição não aborda. A Microsoft tem uma grande biblioteca de documentação e vídeos sobre o Excel, caso estejas interessado em aprender mais.
-
Esta documentação arquitetural detalha as características dos diferentes tipos de dados não-relacionais: Dados Não-Relacionais e NoSQL.
-
O Cosmos DB é uma base de dados não-relacional baseada na nuvem que também pode armazenar os diferentes tipos de NoSQL mencionados nesta lição. Aprende mais sobre estes tipos neste Módulo de Aprendizagem do Cosmos DB da Microsoft.
Tarefa
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 automáticas podem conter erros ou imprecisões. O documento original no seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se uma tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas resultantes do uso desta tradução.