DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo .net Magazine 68 - Manipulando BLOBs

Trabalhando com campos BLOB com SQL Server e Oracle






Manipulando BLOBs

Trabalhando com campos BLOB com SQL Server e Oracle

Do que trata o artigo

Este artigo mostra como armazenar dados não estruturados em bancos de dados SQL Server e Oracle. Os dados não estruturados nos permitem armazenar no banco de dados qualquer tipo de informação, como imagens, arquivos executáveis, arquivos zipados etc.

Para que serve

Os BLOBs são usados para armazenar imagens e outros dados binários, como arquivos executáveis, planilhas do Excel, arquivos zipados etc. Já os CLOBs permitem armazenar textos longos, como por exemplo, a descrição detalhada de um produto.

Em que situação o tema é útil

BLOBs/CLOBs podem reduzir muito o número de linhas de código de suas aplicações ao permitir o armazenamento de arquivos binários, por exemplo. Imagine uma aplicação que manipule uma quantidade muito grande de imagens, como um catálogo de produtos. Neste caso é mais prático armazenar as imagens no próprio banco de dados, pois se utilizássemos o sistema de arquivos seria necessária a criação de toda uma lógica de gerenciamento e sincronização entre produtos e imagens.

 

Resumo do DevMan

Os bancos de dados modernos como SQL Server e Oracle permitem armazenar em seus bancos de dados  não somente dados estruturados como inteiros, decimais, strings etc., mas também dados binários. Usando LOBs (Large Objects) podemos armazenar qualquer tipo de informação no banco de dados, desde imagens até arquivos executáveis por exemplo. Neste artigo veremos como armazenar e recuperar imagens e textos longos em bancos de dados SQL Server 2005 e Oracle 10g através do desenvolvimento de um exemplo prático.

 

Os bancos de dados modernos permitem armazenar informações conhecidas como “não estruturadas”,  ou seja,  não se encaixam em nenhum tipo de dados com os quais costumamos trabalhar (inteiros, strings, decimais etc.). Estes tipos de dados são chamados de LOBs (Large Objects), que  permitem armazenar no banco de dados diversos tipos de informações, como imagens, textos longos, arquivos zipados, arquivos executáveis, arquivos Xml etc.    

O tipo de LOB mais comum e mais utilizado é o BLOB (Binary Large Object), que aceita qualquer tipo de informação. Paralelo a isso temos também a possibilidade de trabalhar com textos imensos, que são os chamados CLOBs (Character Large Objects).

Neste artigo veremos como manipular estes tipos de dados com os dois principais bancos de dados do mercado, SQL Server 2005 e Oracle 10g.

Vantagens na utilização de CLOBs/BLOBs

Você pode estar se perguntando neste momento qual a vantagem de utilizar campos BLOB para armazenar imagens e textos longos. Imagine um cadastro de produtos que armazene imagens para todos os itens do catálogo. Poderíamos ter uma coluna com o endereço físico do arquivo de imagem, neste caso a imagem seria armazenada em um arquivo do sistema operacional. Mas agora imagine este cenário com um cadastro imenso, com milhões de registros. Seria necessária a criação de uma lógica exclusiva para a manutenção de imagens no sistema de arquivos, o que adicionaria complexidade e consequentemente linhas de código à sua aplicação. Ao armazenar diretamente no banco de dados você não precisa preocupar-se com isso, pois as imagens estarão juntamente com os registros dos produtos.

É claro que esta não é a alternativa definitiva, depende muito de cada caso e os objetivos da aplicação sendo desenvolvida. Um inconveniente que você deve estar imaginando sobre essa solução é que seu banco de dados poderá crescer muito e rapidamente. Entretanto, com o custo que temos atualmente por GB não acho que isso seja impeditivo para este tipo de solução.

BLOBs/CLOBs no Oracle 10g

Para demonstrar o exemplo em Oracle 10g utilizaremos a ferramenta Oracle SQL Developer, uma ferramenta gratuita extremamente poderosa e essencial aos desenvolvedores que trabalham com o Oracle. Para baixá-la confira a seção de links no final do artigo. Caso você não tenha um servidor Oracle, é possível utilizar a versão gratuita (Oracle Database 10g Express Edition), cujo link para download também está disponível no final do artigo. Para armazenamento no Oracle 10g temos os tipos de dados BLOB (para objetos binários) e CLOB (para textos grandes).

O primeiro passo é criar a estrutura no Oracle para demonstrar nosso exemplo. Na Figura 1 você pode ver a criação da tablespace (e também do usuário que usaremos como exemplo) onde armazenaremos nossa tabela a qual conterá dados do tipo BLOB/CLOB. Após criar a estrutura, faça login como o usuário exemplo e crie a tabela conforme mostra a Listagem 1. Perceba que temos uma coluna CLOB (Descrição Completa do Produto) e uma coluna BLOB (Imagem do Produto).
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Paulo Sergio Pereira

Bacharel em Ciência da Computação pela Univap(Universidade do Vale do Paraíba). É desenvolvedor Java, Visual Basic, Visual C++.NET e ADVPL. É administrador de bancos de dados Progress, SQL Server e DB2.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03