Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Mas o que são "dados não estruturados"?

Olá.

Estou iniciando neste curso sobre MongoDB. Até o momento, já foi mencionado mais de uma vez que o MongoDB e bancos NoSQL trabalham com dados não estruturados, mas não foi definido o que seriam dados não estruturados.

Não sei se estou me adiantando em um conceito que vai ser apresentado futuramente, mas se possível gostaria de entender melhor o que seria isso.

Então: o que seriam dados não estruturados? Seria possível dar um exemplo de dados estruturados e um exemplo de dados não estruturados para ficar mais clara a comparação entre eles? E por que bancos de dados relacionais não conseguem trabalhar com dados não estruturados? Ou conseguem?

Obrigado!

4 respostas

Os dados estruturados são nos bancos de dados SQL, em NoSQL os dados são não estruturados, veja as imagens abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ei Arthur, agradeço sua resposta bem humorada (a última foto foi a melhor), mas ainda não entendi.

Eu tava tentando raciocinar que dados estruturados seriam tabelas e os não estruturados seriam qualquer outra coisa que não fosse possível modelar como uma tabela. Só que assistindo aos vídeos, eu vi que os dados de séries usados no curso para popular a base no MongoDB são possíveis sim de se modelar como uma tabela. A única diferença que vi foi no formato em que eles são apresentados: um JSON e com algumas propriedades de vez em quando não presentes em todos. Então dados não estruturados seriam tipo uma matriz esparsa? Pra mim não ficou claro qual a vantagem de salvar os dados assim.

Vou deixar minhas dúvidas aqui novamente só para ficar registrado:

Então: o que seriam dados não estruturados? Seria possível dar um exemplo de dados estruturados e um exemplo de dados não estruturados para ficar mais clara a comparação entre eles? E por que bancos de dados relacionais não conseguem trabalhar com dados não estruturados? Ou conseguem?

Obrigado!

solução!

NoSQL é considerado não estruturado justamente porque não tem um schema fixo, essa é uma das vantagens dele

É o que faz dele flexivel, no SQL por exemplo, se você quer adicionar uma nova coluna, vai precisar alterar a tabela inteira e adicionar um novo valor em todos os dados salvos nessa tabela, no NoSQL é só adicionar o novo campo no registro, os outros registros não terão o novo campo, mas seu banco de dados não vai quebrar, não vai dar erro, por isso é mais flexivel, ele não tem schema fixo como SQL

Então mesmo que NoSQL utilize JSON, que é uma estrutura de dados, a definição de dados estruturados utilizada nos bancos de dados tem haver com o schema, se é rígido como SQL, então os dados são estruturados, se é flexivel como NoSQL, são dados não estruturados

E a vantagem de salvar os dados dessa forma tem haver com performance, salvando assim a inserção e a atualização fica mais rápida, afinal de contas não se trata de uma tabela, ele pode ser modelado como uma tabela, mas não é uma tabela, é um JSON, mais rápido nas operações de leitura e escrita

Sobre quando utilizar NoSQL, Fábio Akita disse uma vez em um dos seus vídeos: "Você sempre deve escolher SQL por padrão e pra usar um NoSQL no lugar dele, precisa ter uma justificativa muito forte e muito bem embasada em números"

Imagine que fazemos o software que captura informações vindas de Apple watch ou Galaxy watch, informações de batimentos cardíacos que cada usuário te manda uma vez a cada dois minutos, NoSQL neste caso é uma boa escolha, pois não é necessário garantir ACID para salvar cada batimento cardiaco dos usuários, se faltar um batimento durante um minuto não vai ser um problema, o usuário nem vai perceber, ou seja, podemos ter uma consistência fraca eventual

Mas em um sistema bancário por exemplo, os dados precisam ser consistentes sempre, não pode faltar 1 centavo, SQL é uma boa escolha nesse caso pois garante o ACID

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Sei que não respondi todas as suas dúvidas, mas vou deixar abaixo vídeos do Fabio Akita onde ele com certeza irá sanar todas elas, recomendo os vídeos do Fábio Akita, ele fala bastante sobre programação, bancos de dados, computação no geral, inclusive nos vídeos ele aprofunda no significado de ACID e sobre vantagens/quando usar NoSQL, e esses exemplos de batimento cardiaco etc eu aprendi assistindo os vídeos dele =D

Aee, agora sim. Muito obrigado, Arthur!

Nossa, eu lembro do Akita de quase 20 anos atrás, quando ele veio na faculdade para palestrar sobre Ruby. Muito legal ver ele ainda ativo na área. Salvei os vídeos aqui.

Valeu mesmo!