Ir para o conteúdo

Dados (computação)

Origem: Wikipédia, a enciclopédia livre.
 Nota: Para outros significados, veja Dado.
Ver artigo geral: Dados
Vários tipos de dados que podem ser visualizados através de um dispositivo de computador.

Na ciência da computação, dados (tratado como plural ou substantivo massivo [en]) são qualquer sequência de um ou mais símbolos; dado (tratado como singular) é uma única unidade de dados. Dados requerem interpretação para se tornarem informação. Dados digitais são dados representados usando o sistema numérico binário de uns (1) e zeros (0), em vez da representação analógica [en]. Em sistemas computacionais modernos (pós-1960), todos os dados são digitais.

Os dados existem em três estados: dados em repouso [en], dados em trânsito e dados em uso [en]. Os dados dentro de um computador, na maioria dos casos, movem-se como dados paralelos. Os dados que se movem para ou de um computador, na maioria dos casos, movem-se como dados seriais. Os dados provenientes de um dispositivo analógico, como um sensor de temperatura, podem ser convertidos para o digital usando um conversor analógico-digital. Os dados que representam quantidades, caracteres ou símbolos nos quais as operações são realizadas por um computador são armazenados e gravados em mídia de gravação magnética [en], óptica [en], eletrônica ou mecânica e transmitidos na forma de sinais elétricos ou ópticos digitais.[1] Os dados entram e saem dos computadores por meio de dispositivos periféricos.

Os elementos da memória do computador física consistem em um endereço e um byte/palavra de armazenamento de dados. Dados digitais são frequentemente armazenados em bancos de dados relacionais, como tabelas ou bancos de dados SQL, e geralmente podem ser representados como pares abstratos de chave/valor. Os dados podem ser organizados em diversos tipos de estruturas de dados, incluindo matrizes, grafos e objetos. As estruturas de dados podem armazenar dados de diversos tipos, incluindo números, strings e até mesmo outras estruturas de dados.

Características

[editar | editar código]

Metadados ajudam a traduzir dados em informações. Metadados são dados sobre os dados. Metadados podem ser implícitos, especificados ou fornecidos.

Dados relacionados a eventos ou processos físicos terão um componente temporal. Este componente temporal pode ser implícito. Este é o caso quando um dispositivo, como um registrador de temperatura, recebe dados de um sensor de temperatura. Quando a temperatura é recebida, presume-se que os dados tenham uma referência temporal atual. Assim, o dispositivo registra a data, a hora e a temperatura em conjunto. Quando o registrador de dados comunica temperaturas, ele também deve relatar a data e a hora como metadados para cada leitura de temperatura.

Fundamentalmente, os computadores seguem uma sequência de instruções que lhes são fornecidas na forma de dados. Um conjunto de instruções para executar uma determinada tarefa (ou tarefas) é chamado de programa. Um programa são dados na forma de instruções codificadas para controlar a operação de um computador ou outra máquina.[2] No caso nominal, o programa, conforme executado pelo computador, consistirá em código de máquina. Os elementos de armazenamento manipulados pelo programa, mas que não são executados pela unidade central de processamento (CPU), também são considerados dados. Em sua essência, um dado único é um valor armazenado em um local específico. Portanto, é possível que programas de computador operem em outros programas de computador, manipulando seus dados programáticos.

Para armazenar bytes de dados em um arquivo, eles precisam ser serializados em um formato de arquivo. Normalmente, os programas são armazenados em tipos de arquivo especiais, diferentes daqueles usados para outros dados. Arquivos executáveis contêm programas; todos os outros arquivos também são arquivos de dados [en]. No entanto, arquivos executáveis também podem conter dados usados pelo programa, que são incorporados a ele. Em particular, alguns arquivos executáveis possuem um segmento de dados [en], que nominalmente contém constantes e valores iniciais para variáveis, ambos os quais podem ser considerados dados.

A linha entre programa e dados pode se tornar tênue. Um interpretador, por exemplo, é um programa. Os dados de entrada para um interpretador são, em si, um programa, mas não um programa expresso em linguagem de máquina nativa. Em muitos casos, o programa interpretado será um arquivo de texto legível por humanos, que é manipulado com um programa editor de texto. A metaprogramação, da mesma forma, envolve programas manipulando outros programas como dados. Programas como compiladores, linkers, depuradores, atualizadores de programas, antivírus e similares usam outros programas como seus dados.

Por exemplo, um usuário pode primeiro instruir o sistema operacional a carregar um programa de processamento de texto a partir de um arquivo e, em seguida, usar o programa em execução para abrir e editar um documento [en] armazenado em outro arquivo. Neste exemplo, o documento seria considerado dado. Se o processador de texto também possuir um corretor ortográfico, o dicionário (lista de palavras) do corretor ortográfico também seria considerado dado. Os algoritmos usados pelo corretor ortográfico para sugerir correções seriam dados em código de máquina ou texto em alguma linguagem de programação interpretável.

Em um uso alternativo, arquivos binários (que não são legíveis por humanos) são às vezes chamados de dados, em oposição a textos legíveis por humanos.[3]

A quantidade total de dados digitais em 2007 foi estimada em 281 bilhões de gigabytes (281 exabytes).[4][5]

Chaves e valores, estruturas e persistência de dados

[editar | editar código]

As chaves nos dados fornecem o contexto para os valores. Independentemente da estrutura dos dados, sempre há um componente chave presente. As chaves de dados e as estruturas de dados são essenciais para atribuir significado aos valores dos dados. Sem uma chave que esteja direta ou indiretamente associada a um valor, ou a um conjunto de valores em uma estrutura, os valores tornam-se sem significado e deixam de ser dados. Ou seja, deve haver um componente chave vinculado a um componente valor para que este seja considerado um dado.

Os dados podem ser representados em computadores de diversas maneiras, conforme os exemplos a seguir:

  • A memória de acesso aleatório (RAM) armazena dados aos quais a CPU tem acesso direto. Uma CPU só pode manipular dados dentro de seus registradores ou memória. Isso difere do armazenamento de dados, onde a CPU precisa direcionar a transferência de dados entre o dispositivo de armazenamento (disco, fita, etc.) e a memória. A RAM é uma matriz de posições lineares contíguas que um processador pode ler ou gravar, fornecendo um endereço para a operação. O processador pode operar em qualquer posição da memória a qualquer momento e em qualquer ordem. Na RAM, o menor elemento de dados é o bit binário. As capacidades e limitações de acesso à RAM são específicas do processador. Em geral, a memória principal é organizada como uma matriz de posições, começando no endereço 0 (hexadecimal 0). Cada posição pode armazenar geralmente 8 ou 32 bits, dependendo da arquitetura do computador.
  • As chaves de dados não precisam ser um endereço de hardware direto na memória. Códigos de chaves indiretos [en], abstratos e lógicos podem ser armazenados em associação com valores para formar uma estrutura de dados. As estruturas de dados possuem deslocamentos/offsets (ou links/ligações ou caminhos) predeterminados a partir do início da estrutura, nos quais os valores dos dados são armazenados. Portanto, a chave de dados consiste na chave da estrutura mais o deslocamento (ou links ou caminhos) para dentro da estrutura. Quando tal estrutura é repetida, armazenando variações dos valores dos dados e das chaves de dados dentro da mesma estrutura repetida, o resultado pode ser considerado semelhante a uma tabela, na qual cada elemento da estrutura repetida é considerado uma coluna e cada repetição da estrutura é considerada uma linha da tabela. Em tal organização de dados, a chave de dados geralmente é um valor em uma (ou uma composição dos valores em várias) das colunas.

Estruturas de dados recorrentes organizadas

[editar | editar código]
  • A visualização tabular de estruturas de dados repetidas é apenas uma das muitas possibilidades. Estruturas de dados repetidas podem ser organizadas hierarquicamente, de modo que os nós sejam interligados em uma cascata de relações pai-filho. Valores e estruturas de dados potencialmente mais complexas são vinculados aos nós. Assim, a hierarquia nodal fornece a chave para acessar as estruturas de dados associadas aos nós. Essa representação pode ser vista como uma árvore invertida. Os sistemas de arquivos dos sistemas operacionais de computador modernos são um exemplo comum; e o XML é outro.

Dados classificados ou ordenados

[editar | editar código]
  • Os dados apresentam algumas características inerentes quando ordenados por uma chave [en]. Todos os valores para subconjuntos da chave aparecem juntos. Ao percorrer sequencialmente grupos de dados com a mesma chave, ou quando um subconjunto da chave muda, isso é chamado, em processamento de dados, de quebra ou quebra de controle [en]. Isso facilita particularmente a agregação de valores de dados em subconjuntos de uma chave.

Armazenamento periférico

[editar | editar código]
  • Até o advento da memória que não é volátil de grande capacidade, como a memória flash, o armazenamento persistente de dados era tradicionalmente realizado gravando os dados em dispositivos de bloco externos, como fitas magnéticas e discos rígidos. Esses dispositivos tipicamente buscam um endereço na mídia magnética e, em seguida, leem ou gravam blocos de dados de um tamanho predeterminado. Nesse caso, o endereço localizado na mídia é a chave de dados e os blocos são os valores dos dados. Os primeiros sistemas de arquivos ou sistemas operacionais de disco utilizavam dados brutos em disco, reservando blocos contíguos no disco rígido para arquivos de dados [en]. Nesses sistemas, os arquivos podiam ficar cheios, esgotando o espaço de dados antes que todos os dados fossem gravados neles. Assim, muito espaço de dados não utilizado era reservado improdutivamente para garantir espaço livre suficiente para cada arquivo. Sistemas de arquivos posteriores introduziram partições. Eles reservavam blocos de espaço de dados em disco para partições e utilizavam os blocos alocados de forma mais econômica, atribuindo dinamicamente blocos de uma partição a um arquivo conforme necessário. Para isso, o sistema de arquivos precisava controlar quais blocos estavam sendo usados ou não pelos arquivos de dados em um catálogo ou tabela de alocação de arquivos. Embora isso tenha otimizado o uso do espaço em disco, resultou na fragmentação dos arquivos e, consequentemente, em uma sobrecarga de desempenho devido ao tempo adicional de busca para leitura dos dados. Os sistemas de arquivos modernos reorganizam os arquivos fragmentados dinamicamente para otimizar os tempos de acesso. Desenvolvimentos posteriores em sistemas de arquivos resultaram na virtualização de unidades de disco, ou seja, onde uma unidade lógica pode ser definida como partições de várias unidades físicas.

Dados indexados

[editar | editar código]

Acessar um pequeno subconjunto de dados de um conjunto muito maior pode implicar em buscas ineficientes e sequenciais pelos dados. Índices são uma forma de copiar chaves e endereços de localização de estruturas de dados em arquivos, tabelas e conjuntos de dados, organizando-os em estruturas de árvore invertida para reduzir o tempo necessário para acessar um subconjunto dos dados originais. Para isso, a chave do subconjunto de dados a ser acessado deve ser conhecida antes do início do acesso. Os índices mais populares são a árvore B e os métodos de indexação por chave hash dinâmica. A indexação representa uma sobrecarga para arquivar e acessar dados. Existem outras maneiras de organizar índices, como ordenar as chaves e usar um algoritmo de busca binária.

Abstração e indireção

[editar | editar código]
  1. A estrutura taxonômica de classes, que é um exemplo de estrutura de dados hierárquica; e
  2. em tempo de execução, a criação de referências a estruturas de dados em memória de objetos que foram instanciados a partir de uma biblioteca de classes.

Um objeto de uma classe específica só existe após a instanciação. Depois que a referência de um objeto é liberada, o objeto também deixa de existir. Os locais de memória onde os dados do objeto estavam armazenados tornam-se lixo e são reclassificados como memória não utilizada, disponível para reutilização.

Dados de banco de dados

[editar | editar código]

Processamento paralelo e distribuído de dados

[editar | editar código]
  • Tecnologias modernas de persistência de dados escaláveis e de alto desempenho, como o Apache Hadoop, dependem do processamento paralelo massivo de dados distribuídos em vários computadores comuns em uma rede de alta largura de banda. Nesses sistemas, os dados são distribuídos por vários computadores e, portanto, qualquer computador específico no sistema deve estar representado na chave dos dados, seja direta ou indiretamente. Isso permite a diferenciação entre dois conjuntos de dados idênticos, cada um sendo processado em um computador diferente ao mesmo tempo.

Ver também

[editar | editar código]

Referências

[editar | editar código]
  1. «Data». Lexico. Consultado em 14 de janeiro de 2022. Arquivado do original em 23 de junho de 2019 
  2. «Computer program». The Oxford pocket dictionary of current english. Consultado em 11 de outubro de 2012. Cópia arquivada em 28 de novembro de 2011 
  3. «file(1)». OpenBSD manual pages. 24 de dezembro de 2015. Consultado em 4 de fevereiro de 2018. Cópia arquivada em 5 de fevereiro de 2018 
  4. Paul, Ryan (12 de março de 2008). «Study: amount of digital info > global storage capacity». Ars Technics. Consultado em 13 de março de 2008. Cópia arquivada em 13 de março de 2008 
  5. Gantz, John F.; et al. (2008). «The diverse and exploding digital universe». International Data Corporation via EMC. Consultado em 12 de março de 2008. Arquivado do original em 11 de março de 2008