Classificar os dados
Uma empresa de varejo online tem diferentes tipos de dados. Cada tipo de dados pode se beneficiar de uma solução de armazenamento diferente.
Os dados de aplicativo podem ser classificados em uma de três maneiras: estruturados, semiestruturados e não estruturados. Aqui, você aprenderá a classificar os dados para escolher a solução de armazenamento adequada ao tipo de dados.
Abordagens para armazenar dados na nuvem
O seguinte vídeo apresenta suas opções para armazenar os dados na nuvem:
Dados estruturados
Em dados estruturados, às vezes chamados de dados relacionais, todos os dados têm os mesmos campos ou propriedades. Todos os dados têm a mesma organização e forma, ou esquema. O esquema compartilhado permite que esse tipo de dados seja facilmente pesquisado com linguagens de consulta, como a linguagem SQL. Essa funcionalidade torna esse estilo de dados perfeito para aplicativos como sistemas de CRM, reservas e gerenciamento de estoque.
Os dados estruturados costumam ser armazenados em tabelas de banco de dados com linhas e colunas. Na tabela, uma coluna de chave indica como uma linha de uma tabela se relaciona com os dados em outra linha de outra tabela. Na imagem a seguir, uma tabela que contém dados sobre notas obtém dados de uma tabela de nomes de alunos e uma tabela de dados de aulas usando colunas de chave.
Os dados estruturados são simples porque podem ser facilmente inseridos, consultados e analisados. Todos os dados estão no mesmo formato. No entanto, forçar uma estrutura consistente também significa que a evolução dos dados é mais difícil. Se você adicionar ou remover campos de dados, precisará atualizar cada registro para que ele fique em conformidade com a nova estrutura.
Dados semiestruturados
Os dados semiestruturados são menos organizados do que os dados estruturados. Os dados semiestruturados não são armazenados em um formato relacional, porque os campos não se ajustam perfeitamente em tabelas, linhas e colunas. Os dados semiestruturados contêm marcas que evidenciam a organização e a hierarquia dos dados. Um exemplo são pares chave/valor. Os dados semiestruturados também são conhecidos como dados não relacionais ou NoSQL (não apenas SQL).
Uma linguagem de serialização de dados define os dados semiestruturados. Na classificação de dados, a serialização é o processo de conversão de dados em um formato que possa ser transmitido ou armazenado.
Os desenvolvedores de software usam linguagens de serialização de dados para gravar dados armazenados na memória em um arquivo, que pode ser enviado para outro sistema, analisado e lido. O remetente e o destinatário não precisam saber detalhes sobre o outro sistema. Ambos os sistemas podem entender os dados se estiverem usando a mesma linguagem de serialização.
Linguagens comuns de serialização
Três linguagens comuns de serialização são XML, JSON e YAML.
XML
A linguagem XML foi uma das primeiras linguagens de dados a serem amplamente usadas. O XML é baseado em texto, o que o torna facilmente legível por computadores e por pessoas. Os analisadores XML estão disponíveis para quase todas as plataformas de desenvolvimento populares.
Você pode usar o XML para expressar relações. O XML tem padrões para esquema, transformação e até exibição na Web.
Este é um exemplo de nome de uma pessoa, idade e hobbies expressos em XML:
<Person Age="23">
<FirstName>Quinn</FirstName>
<LastName>Anderson</LastName>
<Hobbies>
<Hobby Type="Sports">Golf</Hobby>
<Hobby Type="Leisure">Reading</Hobby>
<Hobby Type="Leisure">Guitar</Hobby>
</Hobbies>
</Person>
O XML expressa a forma dos dados usando marcas, que são definidas dentro de chaves angulares. As marcas são fornecidas em duas formas: elementos, como <FirstName>
, e atributos, que podem ser expressos em texto, como Age="23"
. Os elementos podem ter elementos filho para expressar as relações. Por exemplo, a marca <Hobbies>
expressa uma coleção de elementos Hobby
.
O XML é flexível e pode expressar dados complexos com facilidade. No entanto, ela tende a ser mais detalhada, o que a torna maior de armazenar, processar e transmitir por uma rede. Como resultado, outros formatos se tornaram mais populares.
JSON
O JSON (JavaScript Object Notation) tem uma especificação leve e usa chaves para indicar a estrutura de dados. Comparado ao XML, o JSON é menos detalhado e é mais fácil de ser lido por pessoas. Com frequência, o JSON é usado por serviços Web para retornar dados.
Este é o nome, a idade e os hobbies da mesma pessoa expressos em JSON:
{
"firstName": "Quinn",
"lastName": "Anderson",
"age": "23",
"hobbies": [
{ "type": "Sports", "value": "Golf" },
{ "type": "Leisure", "value": "Reading" },
{ "type": "Leisure", "value": "Guitar" }
]
}
O formato JSON não é tão formal quanto o XML. Ele se aproxima mais de um modelo de par chave/valor do que de uma expressão de dados formal. Como você pode imaginar pelo nome, a linguagem de programação JavaScript traz suporte interno para esse formato e por isso é popular para o desenvolvimento na Web. Assim como o XML, outras linguagens têm analisadores que você pode usar para trabalhar com esse formato de dados. A desvantagem do JSON é que ele tende a ser mais orientado a programadores, ou seja, a leitura e a modificação dele são mais difíceis para pessoas sem conhecimento técnico.
YAML
O YAML (Ain’t Markup Language) é uma linguagem de serialização de dados desenvolvida mais recentemente. Um dos benefícios de usar o YAML é que ele é mais fácil de ser lido por pessoas do que algumas outras linguagens. A estrutura de dados é definida por separação e recuo de linha. O formato YAML reduz a dependência de caracteres estruturais, como parênteses, vírgulas e colchetes.
Estes são os mesmos dados expressos em YAML:
firstName: Quinn
lastName: Anderson
age: 23
hobbies:
- type: Sports
value: Golf
- type: Leisure
value: Reading
- type: Leisure
value: Guitar
Esse formato é mais legível do que o JSON. Arquivos de configuração que as pessoas gravam, mas os programas analisam, é um uso comum para ele. O YAML é o mais recente desses formatos de dados.
Geralmente, ele é usado para arquivos de configuração escritos por pessoas, mas analisados por programas.
O que são dados semiestruturados ou NoSQL?
O seguinte vídeo descreve os dados semiestruturados e as opções de armazenamento de dados NoSQL:
Dados não estruturados
A organização dos dados não estruturados não é definida. Os dados não estruturados geralmente são entregues no formato de arquivo, como em arquivos de foto ou vídeo. O arquivo de vídeo em si pode ter uma estrutura geral e ser fornecido com metadados semiestruturados, mas os dados que formam o vídeo propriamente dito não são estruturados. Portanto, fotos, vídeos e outros arquivos semelhantes são classificados como dados não estruturados.
Exemplos de dados não estruturados incluem:
- Arquivos de mídia, como fotos, vídeos e arquivos de áudio.
- Arquivos do Microsoft 365, como documentos do Word.
- Arquivos de texto.
- Arquivos de log.
Classificação de dados: Avaliar os tipos de dados
Você pode classificar os dados destas três maneiras: estruturados, semiestruturados e não estruturados. Entender as diferenças para classificar seus dados ajuda você a escolher a solução de armazenamento correta.
Os dados estruturados são dados organizados que se ajustam perfeitamente em tabelas ou colunas de dados. Os dados semiestruturados ainda são organizados e têm propriedades e valores claros, mas há variedade nos dados. Os dados não estruturados não se ajustam perfeitamente em tabelas ou colunas e não têm um esquema uniforme.
Vamos dar uma olhada nos conjuntos de dados usados em uma empresa de varejo online e classificá-los.
Dados do catálogo de produtos
Os dados do catálogo de produtos para um negócio de varejo online são semiestruturados por natureza. Cada produto tem um SKU de produto, uma descrição, uma quantidade, um preço, opções de tamanho, opções de cores, uma foto e, possivelmente, um vídeo. Portanto, a princípio, esses dados parecem relacionais, pois todos têm a mesma estrutura. No entanto, quando você introduzir novos produtos ou diferentes tipos de produtos, o ideal será adicionar campos de dados. Por exemplo, os novos tênis que você está oferecendo são habilitados para Bluetooth para retransmitir os dados do sensor do tênis para um aplicativo de ginástica no telefone do usuário. Esse recurso parece ser uma tendência cada vez maior, e você deseja dar aos clientes a opção de filtrar os dados por tênis "habilitados para Bluetooth". Você não deseja atualizar todos os dados de tênis existentes com uma propriedade habilitada para Bluetooth. Você quer adicionar essa nova propriedade apenas aos novos tênis.
Com a adição da propriedade habilitada para Bluetooth, os dados de tênis não ficam mais homogêneos. Você introduziu diferenças no esquema. Se essa alteração for a única exceção esperada, você poderá normalizar os dados existentes para que todos os produtos incluam um campo "habilitado para Bluetooth" a fim de manter uma organização estruturada e relacional. No entanto, se esse for apenas um dos muitos campos de especialidade que exigirão suporte no futuro, a classificação desses dados será semiestruturado. As marcas organizam os dados, mas cada produto no catálogo pode conter campos exclusivos.
A classificação dos dados do catálogo de produtos é semiestruturado.
Fotos e vídeos
As fotos e os vídeos exibidos nas páginas de produto são dados não estruturados. Embora o arquivo de mídia possa conter metadados, o corpo do arquivo de mídia não é estruturado.
A classificação de dados para fotos e vídeos é não estruturado.
Dados de negócios
Os analistas de negócios querem implementar business intelligence para realizar avaliações de pipeline de inventário e análises de dados de vendas. Para executar essas operações, dados de vários meses precisam ser agregados e, em seguida, consultados. Devido à necessidade de agregar dados semelhantes, esses dados precisam ser estruturados para que um mês possa ser comparado com o próximo.
A classificação para dados empresariais é estruturado.