Seções iMasters
iMasters InterCon

Principal evento de WordPress da América Latina, dia 29/06 em SP

Inscreva-se
Banco de Dados

Chega de NoSQL: vamos dobrar a aposta com MoreSQL

Por muito tempo, eu me sentei de braços cruzados enquanto o movimento NoSQL se espalhou por nossa indústria. Um após outro, os chamados “bancos de dados” com nomes esquisitos foram atacando a santidade dos meus amados bancos de dados relacionais.

Falando nisso, o que são esses nomes? Mongo, Couch, Raven, Cassandra? O que é isso, OccupyDataStores? O que aconteceu com SQL Server, Oracle g, DB 2, e mesmo MySQL?

Mas eu faço uma digressão. Chegou a hora de enfrentar o flagelo do NoSQL. Hoje, eu estou chamando os desenvolvedores de todo o mundo para participar de um novo movimento dedicado a trazer de volta a era de ouro de bancos de dados relacionais: MoreSQL (confira o logotipo abaixo):

O que somos

Nós da MoreSQL acreditamsos nos seguintes axiomas:

  1. Aplicabilidade universal: não problemas que não podem ser resolvidos com bancos de dados relacionais. Não importa o que você está armazenando ou como você precisa usá-lo. Estruturas organizadas em tabelas (que podem ou não estar ligadas por meio de chaves estrangeiras) são o único caminho a percorrer. Fim da discussão.
  2. Os fins justificam os meios: como resultado do axioma 1, faremos o que for preciso para fazer o SQL funcionar para nós. Views, stored procedures e chamadas cross-database: você pede, nós fazemos. Ah, e por falar nisso, utilizar ORMs não significa que você está tentando enfiar um prego redondo em um buraco quadrado. Elas são bonitas e encantadoras, ok?
  3. Bancos de dados relacionais podem escalar bem o suficiente. Quero dizer, o Facebook está em execução no MySQL, pelo amor de Deus! Você é melhor do que o Facebook e os seus 10 trilhões de usuários ativos? Eu acho que não.

O que podemos fazer

Meus companheiros MoreSQLites, permita-me apresentar algumas técnicas para ajudar você na sua nobre missão.

“SQL Everywhere”

A maneira mais eficaz para promover bancos de dados relacionais é colocá-los em qualquer lugar em que você pode pensar.

Primeiro, se você estiver começando um novo aplicativo, deve utilizar SQL (sem IFs, ANDs, ou WHERES). Agora, se alguém em sua equipe começa a falar sobre o uso de documento ou bancos de dados gráficos, eu recomendo uma estratégia de três frentes de “ignorar, ironizar, e fazer cara feia” (nessa ordem).

Segundo, se já tiver um aplicativo em execução, você pode precisar ser criativo. Faça a si mesmo esta simples pergunta: “Estou realmente usando bancos de dados relacionais em todos os lugares em que posso? Estou? Sério?”.

Por exemplo, algumas pessoas desaprovam o uso de bancos de dados relacionais para armazenar em cache objetos de aplicação. “Você não precisa de SQL para esse tipo de coisa, é uma sobrecarga desnecessária”, dizem. Bem, isso tudo pode ser bom, mas desde quando um movimento foi impedido por bons argumentos? Não seria um movimento se deixarmos isso acontecer! Além disso, basta lembrar o primeiro axioma, e você vai ficar bem.

Pensamento final

Essa luta não será fácil, mas deve ser travada e conquistada. Apenas lembre-se: eles podem tirar nossas dúvidas, mas eles nunca vão tirar a nossa liberdade (para guardar coisas em tabelas). Lute!

?

Texto original disponível em http://tatiyants.com/nosql-no-more-lets-double-down-with-moresql/

Comente também

15 Comentários

Rodrigo

Facebook usa nosql :)

Marcelo Mesquita

Cada movimento tem suas vantagens e desvantages, não dá pra afirmar que um é melhor que o outro, isso vai variar de acordo com as necessidades do projeto.

O Facebook é uma prova disso, ele usa vários bancos de dados, cada um para atender uma necessidade especifica. Para saber mais é só conferir o Facebook Developers: http://developers.facebook.com/opensource/

    Weudes Silva Marquez

    Isso msm Marcelo, o facebook nao usa somente um tipo de BD, ele utiliza alguns dependendo da necessidade como no caso dos dados massivos em que utiliza o Hadoop e também o Hive, criado pelo Facebook, que é uma camada de data warehouse que roda em cima do Hadoop

Scott Hanselman

Acho que o Marcelo esta certo, cada ambiente requer um cuidado especifico. Nas minhas applicacoes que recebem MUITOS dados com frequencia, estou usando RavenDB(nosql) e depois de alguns minutos passo para o sql server (relacional). O ganho disso eh nao checar integridade e simplesmente salvar o que o cidadao passou pro sistema, o ruim disso eh nao checar integridade :P mas depois que passa pro sqlserver ficar tudo tranquilo.. pra mim ta sendo bom na hora que a aplicacao ta “levando porrada”, dai evita deadlock..

Rafael J. R. Novello

Já dizia o velho Maslow:
“Para quem só sabe usar martelo, todo problema é um prego”.

Sem mais.

Scott Hanselman

O que me da “medo” eh que vc nunca sabe quando esse cara (autor original do texto Alex Tatiyants) esta falando serio ou nao (existem diversos posts dele na internet falando nada sobre coisa nenhuma ou fazendo piada e esperando a primeira pessoa descobrir que eh piada ate ele falar alguma coisa), e nao da nem pra saber se esse texto aqui no imasters eh serio ou se eh de brincadeira (listar JS.js??? serio?? alguem por favor me explica por que..)… acho que a pior parte (na minha humilde opiniao) eh a seguinte afirmacao do autor:

“Estruturas organizadas em tabelas (que podem ou não estar ligadas por meio de chaves estrangeiras) são o único caminho a percorrer. Fim da discussão.”

Pelo fato dele dizer que (a) “sao o unico caminho a percorrer” e (b) “fim da discussao”..

Daniel Libanori

Isso só pode ser zueira.

Ademir Cristiano Gabardo

Quando criaram a fita K7 disseram que ela não iria sobreviver porque não tinha a mesma qualidade de um disco de vinil, quando surgiu o CD disseram que ele não vingaria porque era caro, o CD suplantou a fita K7 e o vinil, e hoje não temos nem mais o CD como mídia forte para distribuição de música. O que uma coisa tem a ver com a outra? Tudo, a evolução é inevitável, não importa o quanto você ame bancos de dados relacionais (E acredite eu também os amo) isso não impedirá que novas tecnologias apareçam.

Não acho que bancos de dados relacionais vão desaparecer, muita coisa ainda está fora deles, simplesmente não organizada.

Se a intenção foi escrever um artigo sério, falhou.
Em TI, só existe um caminho, a inovação, sempre. A experimentação, a evolução contínua.

Scott Hanselman

Comedia.. no site oficial do autor desse texto, esse artigo tem a tag “geekHumor”.. sabia que era alguma brincadeira.. acho que foi uma bola fora postar isso aqui no iMasters sem ao menos mencionado que era piada.. sera que foi por nao ter lido o artigo original atentamente ou simplesmente pra acumular hits de comentarios dizendo que ESSE ARTIGO EH UMA PIADA?

Alex Tatiyants

Hi, I apologize for writing in English, I don’t speak Portuguese. Just to clarify, this article was a joke (as are many other ones I write). Sorry for the confusion.

Thiago Santos

Concordo que deveria ter algo aqui no iMasters dizendo que este “artigo” é de fato uma piada, mas bastava ver que na descricao do autor esta escrito que ele “gosta de escrever coisas engraças sobre tecnologia”.

    Marcelo Rodrigues

    O problema é que ninguém começa lendo a descrição do autor, que fica…no fim do texto.

    Thiago Santos

    Concordo, acho que a iMasters tinha que ter tags para que fique explicito que o artigo é uma piada.

Mayko

Ainda bem que isso é uma piada!
Reproduzo um velho jargão, muito conhecido na área de desenvolvimento: “Não existe bala de prata”. O Engenheiro de Software, o Arquiteto ou seja quem for que estiver projetando o software deve encontrar a melhor solução para o seu problema. Bancos de dados relacionais resolvem grande parte dos problemas, mas os NoSQL (que significa Not Only SQL(que por sua vez não significa “Não use SQL” mas sim “Não use SOMENTE SQL”)(parênteses são uma dádiva)) foram projetados para resolver problemas que os relacionais não são a melhor opção.

Qual a sua opinião?