Artigo do tipo Teórico
Recursos especiais neste artigo:
Conteúdo sobre boas práticas.
Autores: Marcos Antônio Boaventura Feitoza e Rodrigo Oliveira Spínola
Compressão de dados
Este artigo aborda o tema compressão de dados. Para isso, introduz o tema considerando o cenário em que ela pode ser utilizada. Em seguida discute os tipos de compressão de dados e apresenta três dos principais algoritmos de compressão utilizados pelos SGBDs. Ao final, o artigo apresenta rapidamente como trabalhar com compressão de dados no MySQL.


Em que situação o tema é útil
Este artigo apresenta alguns conceitos básicos da compressão de dados, funcionamento de três dos mais famosos e implementados algoritmos de compressão de dados, e uma rápida visualização sobre como fazer a compressão de dados no MySQL. O entendimento sobre compressão de dados tem se tornado essencial em organizações de médio e grande portes. Economizar espaço em disco é uma solução interessante quando o espaço disponível para armazenamento é limitado.

Durante muitos anos empresas, corporações e organizações em geral mantiveram dados cruciais para sua existência armazenados de maneira física em arquivos escritos ou outras formas não seguras de se armazenar, o que trazia enormes inconvenientes como a demora na localização de um determinado dado, e também o próprio armazenando por ser feito de maneira escrita ocupando espaço físico.

Com o avanço da tecnologia computacional, processar dados tornou-se algo tão comum, que hoje grande parte das organizações, se não todas, utilizam recursos computacionais como sistemas gerenciadores de banco de dados conhecidos também como SGBDs, para realizar o armazenamento de suas informações, ganhando assim inúmeros fatores positivos como maior velocidade para localização de uma determinada informação, segurança no armazenamento, integridade das informações, restrição de acesso aos dados, confidencialidade das informações, entre outras vantagens que um SGBD pode fornecer aos seus usuários com grande facilidade. Porém, devido a esta mesma facilidade em armazenar informações, muitos dados vêm sendo processados e armazenas em SGBDs, fazendo com que o custo de processamento e armazenamento de informações se torne cada vez maior.

Em contrapartida a esse problema, muitos dos SGBDS, se não todos, oferecem recursos de compressão de dados, onde os dados em comum são codificados em símbolos menores, fazendo com que o mesmo dado tenha seu tamanho reduzido ocupando menor espaço de armazenamento em disco e também um aumento de desempenho devido à redução do movimento mecânico do disco rígido fornecendo uma maior velocidade ao acesso da informação armazenada. Por outro lado, estas soluções de compressão também trazem alguns fatores negativos como a sobrecarga de uso da CPU devido a operações frequentes de descompressão de dados.

Neste contexto, este artigo aborda o que é a compressão de dados, como é feita e apresenta três dos principais algoritmos utilizados por SGBDs: o algoritmo de Huffman e o algoritmo de Lev-Limpel versões LZW, LZ77. Por fim, o artigo apresenta vantagens e desvantagens em utilizar compressão de dados em sistemas gerenciadores de banco de dados.

Compressão de dados

A compressão de dados é basicamente o processo de transformar um fluxo de entrada de símbolos em outros símbolos codificados menores, ou seja, essa codificação é uma estratégia adotada para reduzir o espaço físico que um determinado dado ocupa, também melhorando as taxas de transferências de dados obtendo um maior desempenho em aplicações que trabalharão intensivamente sobre dados armazenados em disco.

A compressão de dados é estudada juntamente com a teoria da codificação. Codificação é entendida como sendo um processo para levar uma representação à outra, toda informação ou dado que é transformado é chamado de código. O primeiro componente de uma codificação é sempre a entrada, como exemplo um arquivo de texto. O segundo componente é o codificador, que na verdade é um algoritmo que contém toda a lógica para a codificação da entrada, e por fim, a saída que é o código gerado, a nova representação da entrada.

A codificação da compressão de dados é diferente da codificação criptográfica que é utilizada por alguns protocolos ou serviços de transmissão de dados que visam manter a confidencialidade de alguma informação ou dado. O objetivo da compressão de dados é usar a codificação como uma estratégia para a otimização no armazenamento de informações ou dados em dispositivos de disco.

...
Quer ler esse conteúdo completo? Tenha acesso completo