Blob

Pesquisa realizada por Jonatas Santos, Jose Carlos Motta e Leonardo Rosa em 2007-2

O que é BloB:São objetos de dados que armazenam informações multimídias no formato binário em tabelas de banco de dados.Como ele é um objeto de armazenamento de dados pode ser chamado também de campo de dados.Blob se origina do nome lob que significa Large Object,traduzindo para o português,algo como objeto grande.

Características:São campos de tamanho grande,maiores do que os campos convencionais dos principais sistemas gerenciadores de banco de dados.Campos convencionais tipo integer,date,char,em termos de tamanho de armazenamento de informações são bem pequenos comparados com campos do tipo BLOB.São campos definidos na ordem de KB,MB,GB,grandes quantidades de bytes,em geral no momento em que são criadas as tabelas em que estão aqueles campos,realizando um grande armazenamento de bytes.Os valores de tamanho dos campos que em outros tipos de dados são declaradas no tipo Blob não há necessidade de declarar,pois o tamanho dos campos são determinados pelo tamanho da página de dados informados no momento de criação do banco de dados.Um vídeo WMF,de 17MB por exemplo é perfeitamente armazenável nesse tipo de campo,sem nenhuma restrição.O arquivo é armazenado diretamente no disco onde está a tabela de banco de dados sem necessidade de fazer como algumas implementações de sistemas de banco de dados que armazenam somente o nome e a extensão do arquivo em um campo, porém fisicamente o arquivo está armazenado em outra área do disco que não faz parte do banco de dados.

Pontos Relevantes:Como o dados blobs maiores são armazenados fora da página em que estão os demais dados das tabelas,há uma aumento da densidade dos registros de dados que estão na tabela,elevando a performançe e o melhor desempenho nas consultas tanto dos dados triviais quanto do dado blob.É o que fala o tutorial comparativo de Ivan Presonil.em: http://www.comunidade-firebird.org/cflp/downloads/CFLP_T012.PDF

Outro ponto importante é que a utilização de banco de dados para o armazenamento de arquivos binários pode ser interessante para solucionar alguns problemas de usuários ou de sistemas.Mais é necessário se ater a algumas considerações:De acordo com as considerações finais feitas em
http://www.linhadecodigo.com.br/Artigo.aspx?id=100 por Paulino Michelazzo.

1-Armazenamento de arquivos multimídias de páginas web gera um elevado overhead no banco de dados ,pois o arquivos são armazenados em uma área como colocado anteriormente separada da área de armazenamento dos dados,gera lentidão porque é criado um arquivo especial,grande para armazenamento dos dados multimídia.

2-Como conseqüência da situação acima,não existe cache no disco para tais arquivos.O melhor a fazer é manter os arquivos em cache num servidor proxy para acesso imediato do que envia-las do banco para o cliente que é mais lento.Por outro lado não existe problema de permissão pois,após configurar determinado diretório para escrita,é possível enviar todos os arquivos para o mesmo e estes herdarem as permissões.

Será mostrado agora um exemplo dentro do MySQL de criação de tabela e armazenamento de arquivos binários em tabelas no banco.Exemplo encontrado em: http://www.linhadecodigo.com.br/Artigo.aspx?id=100.
OBS:Uma melhor visualização da formatação das tabelas pode ser vista acessando o link acima.

mysql> create database blobs; 
Query OK, 1 row affected (0.09 sec) 

mysql> use blobs; 
Database changed
mysql> CREATE TABLE teste (Id_Blob INT(10) NOT NULL PRIMARY KEY, Na_Imagem MEDIUMBLOB); 
Query OK, 0 rows affected (0.23 sec)

mysql> SHOW TABLES; 
+-----------------+ 
| Tables_in_blobs | 
+-----------------+ 
| teste           | 
+-----------------+ 
1 row in set (0.01 sec) 

mysql> SHOW COLUMNS FROM teste; 
+-----------+------------+------+-----+---------+-------+ 
| Field     | Type       | Null | Key | Default | Extra | 
+-----------+------------+------+-----+---------+-------+ 
| Id_Blob   | int(10)    |      | PRI | 0       |       | 
| Na_Imagem | mediumblob | YES  |     | NULL    |       | 
+-----------+------------+------+-----+---------+-------+ 
2 rows in set (0.05 sec) : full source reference

Após a criação do Banco é realizada as inserções de imagens.

mysql> INSERT INTO teste (Id_Blob,Na_Imagem) VALUES (1,LOAD_FILE("/error.gif"));
Query OK, 1 row affected (0.07 sec)

Relação com a disciplina compiladores:O processo de conversão de imagem,sons,ou vídeos em informações binárias no banco é semelhante ao processo de tradução de um texto fonte para um texto objeto feito por um compilador.O SGBD deve ter mecanismos internos como alguma engine que lê e agrupa os bits em átomos,identificando-os, e determina sua seqüência,analogamente ao analisador léxico e analisador sintático respectivamente

Parecer da equipe:Diante dessa análise vimos que apesar de alguns pontos críticos esse recurso tem grandes vantagens no que diz respeito à administração,a cústódia,a segurança e integridade das informações.Principalmente informações grandes.Os ganhos serão notados de acordo com a finalidade que cada usuário deseja.

Bibliografia:
Artigo desenvolvido por Ivan Presonil,Traduzido por Paulo Vaz-"BloB ou não BloB eis a questão…"
http://www.comunidade-firebird.org/cflp/downloads/CFLP_T012.PDF

Artigo desenvolvido por Paulino Michelazzo-"Blob fields in MySQL Databases"
http://www.linhadecodigo.com.br/Artigo.aspx?id=100

Monografia desenvolvida por Ricardo Czelusniak da Silva-"Benchmark em Bancos de dados multimídia:Análise de desempenho em Recuperação de objetos multimídias"
http://dspace.c3sl.ufpr.br/dspace/bitstream/1884/4683/1/disserta_ricardo.pdf

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License