NoSQL: crescem os Bancos de Dados semiestruturados
Os Bancos de Dados apareceram como uma tecnologia associada a estrutura de armazenamento da informação no uso da computação eletr”onica, e esta teve sua primeira grande conferência na década de 60 chamada CODASYL (Conference on Data System Language) sendo o IMS (Information Management System) e depois interessado no crescimento da computação comercial é lançado um produto desenvolvido por Charles Bachman, chamado Integrated Data Store (IDS), estes banco eram chamados de transacional ou de procedimento Codasyl, devido a conferencia que abriu a computação comercial.
A década de 70 foi marcada pelo surgimento dos bancos de dados relacionais, feito por Edgar Codd que trabalhava na IBM em San Joe, California, que estava primeiramente envolvido em sistemas de hard disk na época caros e pouco confiáveis. Trabalhando junto com dois outros pesquisadores de Berkeley Eugene Wong e Michael Stonebraker iniciaram o projeto INGRES cujo projeto de bancos de dados previam dados armazenados em diferentes localizações geográficas e por diversas máquinas.
Versões subseqüentes deste desenvolvimento incluíram acessos multi-usuário e uma linguagem de consulta chamada SQL/DS, que aproveitava idéias de Codd, e mais tarde chamada DB2.
A década de 80 chegou com os bancos de Dados Orientados a objetos, mas precisamente num artigo trabalho de 1986 de N. Derrett, W. Kent, and P. Lyngbaek pesquisadores da HP E alguns projetos notáveis deste tipo de BD são Encore-Ob/Server (Brown University), EXODUS hoje projeto Shore (University of Wisconsin–Madison), IRIS (Hewlett-Packard) e ODE (Bell Labs).
Como aumento tanto nas velocidades como na conectividade à Internet, os usuários passam a ter exigencias quanto a disponibilidade de dados e de computação mais onipresentes, com isto os bancos de dados estão vivendo uma migração para serviços Web e linguagens de metadados para Web, como XML e Schemas (RDFS e XML Schema) agor são utilizadas para processar bancos de dados, esta tecnologia permite que bancos de dados vivam na “nuvem”.
Como rompe com a tecnologia de bancos de dados relacionais, na qual SQL é um marco, estes bancos de dados são chamados NoSQL e tem as tecnologias associadas a dados operacionais baseados em novas abordagens não-relacionais de gerenciamento e manipulação dos dados estão em alta em aplicativos da Web e estão começam lentamente a fazer o seu caminho em TI corporativa.
Este modelo não é novo 1995, grupos de pesquisadores como o UPenn Database Research Group (University of Pennsylvania, 2010) e a equipe do projeto Lore na Universidade Stanford (Infolab, 2010) formalizaram um modelo de dados semiestruturados, dos quais os modelos de dados dos padrões MARC, ISO-2709 e ISIS são apenas casos especiais.
Alguns produtos no mercado nesta tecnologia chamada “de dados semiestruturadas”, porque permitem aninhamentos e expansões das estruturas de dados, são o Amazon SimpleDB, escrito na linguagem Erlang e funciona com o sistema de cloud da Amazon chamado Amazon Elastic Compute Cloud (EC2) e outro famoso é o Google DataStore, escrito em Python e que também pode trabalhar na “nuvem” como mostra um artigo de Don Schlichting em julho de 2009, no DataBase Journal.
Para desenvolvedores open source e pouco preocupados com as modas e sucessos três softwares devem ser apontados o Apache Cassandra, Apache CouchDB (este também escrito em Erlang) e o MongoDB.
Ê só o começo de uma mudança que promete.
Luiz
Wednesday November 10th, 2010 at 09:32 AM
Uma coisa que eu acho interessante é o fato da hospedagem no ambiente de Cloud do Google nem oferecer banco relacional, nem nas contas pagas! Ele usa um tal de BigTable . O melhor é que para quem programa em Java vc nem precisa perder tempo aprendendo nada sobre o banco, embora seja muito interessante, pois a API do Google App Engine vc pode usar a JPA. Agora, será que é uma mera coincidência que os dois maiores Ambientes de Cloud (Amazon e Google) utilizem bancos não relacionais, eu acho que não, considero uma ingenuidade pensar que em computação as pessoas (a maior parte delas) deixem de usar uma tecnologia só pq existe outra melhor, exemplos não faltam… PC x MAC, Windows x Linux e por aí vai! O que faz as pessoas mudarem de uma tecnologia para outra são as funcionalidades/facilidades, quem já tentou usar um Oracle em cluster para um ambiente distribuído sabe do que estou falando….Em um exercício de futurologia, coisa que eu normalmente não gosto de fazer, arrisco, o futuro dos bancos relacionais está ligado ao sucesso do ambiente de cloud computing!
Luiz
Wednesday November 10th, 2010 at 09:32 AM
Uma coisa que eu acho interessante é o fato da hospedagem no ambiente de Cloud do Google nem oferecer banco relacional, nem nas contas pagas! Ele usa um tal de BigTable . O melhor é que para quem programa em Java vc nem precisa perder tempo aprendendo nada sobre o banco, embora seja muito interessante, pois a API do Google App Engine vc pode usar a JPA. Agora, será que é uma mera coincidência que os dois maiores Ambientes de Cloud (Amazon e Google) utilizem bancos não relacionais, eu acho que não, considero uma ingenuidade pensar que em computação as pessoas (a maior parte delas) deixem de usar uma tecnologia só pq existe outra melhor, exemplos não faltam… PC x MAC, Windows x Linux e por aí vai! O que faz as pessoas mudarem de uma tecnologia para outra são as funcionalidades/facilidades, quem já tentou usar um Oracle em cluster para um ambiente distribuído sabe do que estou falando….Em um exercício de futurologia, coisa que eu normalmente não gosto de fazer, arrisco, o futuro dos bancos relacionais está ligado ao sucesso do ambiente de cloud computing!