Consulta SQL++ / N1QL

Novo no NoSQL? Conheça o N1QL!

Há alguns anos, o NoSQL poderia parecer um monstro alienígena, mas, devido aos avanços na tecnologia e à forma como os aplicativos modernos da Web e de dispositivos móveis estão armazenando e acessando dados, ele é e se tornou uma parte essencial do desenvolvimento atual.

O Couchbase torna mais fácil do que nunca fazer a mudança (ou adição) de um banco de dados relacional para NoSQL com a adição de sua mais recente tecnologia de consulta.

O que você já sabe sobre SQL

Você provavelmente vem de um sistema de gerenciamento de banco de dados relacional (RDBMS), como MySQL, SQL Server, Oracle ou um dos muitos outros bancos de dados SQL populares. Todos esses bancos de dados têm algumas coisas em comum:

  • Usar tabelas que contenham dados em linhas e colunas
  • Restrito a tipos de dados específicos (em sua maior parte)

Os dados dessas tabelas podem estar relacionados.

Relacionamentos de dados entre tabelas

Se você já usa um RDBMS há tempo suficiente, sabe que muitas das suas tabelas estão relacionadas. Por exemplo, digamos que você tenha as duas tabelas a seguir:

Tabela de usuários

Nome Tipo
id int
nome de usuário varchar
senha varchar

Tabela de perfil

Nome Tipo
id int
nome varchar
user_id int

Uma relação é estabelecida entre essas duas tabelas no user_id da tabela de perfil e no id da tabela de usuário. Isso ocorre porque cada usuário terá um perfil. O relacionamento, obviamente, é baseado em chaves estrangeiras e primárias.

Unindo dados de tabela

Unir dados de duas tabelas é uma prática comum em um RDBMS. Continuando com o exemplo que listei acima, o seguinte provavelmente lhe parecerá familiar:

Você deve estar se perguntando onde quero chegar com isso, pois são coisas bem básicas. Você verá daqui a pouco.

O que você acha que sabe sobre NoSQL

Com o Couchbase e os bancos de dados NoSQL em geral, seus dados são armazenados como JSON. Todo o conceito de tabelas e linhas é jogado pela janela, o que pode parecer um pouco estranho no início. Por exemplo, o que acontece se você tiver os dois documentos JSON a seguir:

usuário_1

perfil_1

Os dados nesses documentos permanecem não estruturados, o que significa que você não está limitado ao esquema de uma tabela. Se você quiser adicionar ou remover conteúdo, poderá fazê-lo sem tocar em nenhum outro documento ou alterar a estrutura permitida.

A forma como você consultaria esses documentos variaria entre as plataformas NoSQL, mas uma coisa permaneceria consistente. Se você quisesse juntar esses dois documentos, teria que fazer duas chamadas para o banco de dados no lado do servidor e reconstruir os dados em um único documento. Por exemplo, veja este psuedocode:

Não é muito divertido ter que unir documentos dessa forma, e pode ficar bastante confuso se você tiver que unir mais de um documento.

Como o Couchbase une SQL e NoSQL

Com o Couchbase 4.0, não é mais necessário projetar uma lógica complicada do lado do servidor para realizar as consultas simples que você normalmente veria em um RDBMS.

O Couchbase 4.0 apresenta o N1QL, que pode ser melhor considerado como uma extensão do SQL. Isso significa que você pode usar a linguagem SQL que você já conhece e adora com dados NoSQL. Usando o N1QL, você pode criar a seguinte consulta para os documentos mencionados anteriormente:

Não é tão ruim, certo? É claro que há algumas diferenças em relação ao que você pode estar acostumado no MySQL ou similar, mas não o suficiente para complicar a compreensão ou o aprendizado.

Então, que outras vantagens o N1QL do Couchbase traz para o mundo do NoSQL? Muitas coisas, mas, por exemplo, aqui estão algumas delas:

  • Todo o trabalho pesado de obtenção e manipulação de dados acontece no Couchbase, e não no seu servidor de aplicativos.
  • Você tem todos os seus comandos SQL favoritos, além de outros.
  • É rápido

Então, ele pode ser incluído nas linguagens de programação que você já usa?

O SQL funciona em praticamente todas as linguagens de programação, mas será que o N1QL funciona?

Há um SDK do Couchbase para a maioria das linguagens de programação populares. Se estiver desenvolvendo em Java, Node.js ou .NET, você poderá usar o N1QL em seu aplicativo com a mesma facilidade com que usa o SQL.

Conclusão

Fazer a mudança de um banco de dados que usa SQL para NoSQL pode parecer uma mudança assustadora, mas com o Couchbase 4.0 e o N1QL, a transição entre as duas plataformas não é muito diferente do que você já conhece. Para ter uma ideia do que a transição implicaria, dê uma olhada neste guia completo e interativo Tutorial N1QL.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Nic Raboy

Nic Raboy é um defensor das modernas tecnologias de desenvolvimento móvel e da Web. Ele tem experiência em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experiências de desenvolvimento relacionadas a tornar o desenvolvimento móvel e da Web mais fácil de entender.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.