O que é o EscargotsDB?
O EscargotsDB pode ser considerado um banco de dados noSQL, pois não possuem um schema para uma uniformização dos dados, diferentemente dos bancos convencionais que são representados, através de uma normalização de dados por meio de tabelas, colunas e linhas.
Pode se dizer que o EscargotsDB e um banco de dados do tipo chave-valor, onde o valor de uma chave pode ser retornado um conjunto de dados ou uma lista de conjunto de dados.
O que seria um mecanismo de armazenamento do tipo chave-valor?
Simples, é uma forma de armazenarmos um valor vinculado a uma chave, mas no caso do EscargotsDB você pode armazenar uma estrutura completa de dados que chamamos essas estruturas de collections.
Para iniciarmos, vou tentar exemplificar o que são as collections
Vamos imaginar o EscargotsDB sendo como um quarto vazio, e nesse quarto queremos guardar alguns objetos, então para não ficar algo desorganizado vamos colocar algumas estante no quarto, que seria equivalente as nossas collections, mas para uma organização ainda maior vamos determinar que cada estante (Collection) só poderá ser guardado uma categoria de objetos, na estante número um vamos atribuir os objetos teclado, para a estante número dois vamos atribuir os objetos mouse e para estante número três vamos atribuir os objetos headset, mais agora nos deparamos com outro problema, alguns amigos começaram a guardar os mesmo objetos em suas respectivas estantes no quarto, como saber qual objeto é de cada pessoa? bom para solucionar esse problema podemos atribuir o nome de cada pessoa a uma região (tábua) de cada estante, (que seria equivalente a chave do valor do conjunto de dados), então supomos que nossas estantes tenham 3 regiões (tábua), atribuiremos a região número 1 para o João, a número 2 para o José e a número 3 para o Pedro, para cada estante, (Observação a ordem dos nomes nas regiões da estante não necessariamente precisa ser as mesma para cada uma da estante).
Então agora ficou fácil e rápido para buscar um objeto, por exemplo para buscar o mouse do Pedro é só irmos na estante dos mouses, na região 3, e podemos ter acesso rápido ao objeto.
Este exemplo foi exatamente a estrutura mais simples de armazenamento do EscargotsDB, onde temos uma chave e um valor dentro de cada collection, podendo ser a chave uma letra, palavra, texto ou número.
Mas é claro que o EscargotsDB vai além disso, permitindo guardar uma lista de conjunto de dados de uma mesma collection, indexar valores na memória, e a possibilidade de executar query desses valores indexado em memória.
Como indexar um valor em memória para executar uma query?
O armazenamento de dados do EscargotsDB é na estrutura JSON, um exemplo simples: {"a":"b", "c","d"} onde o nome dessa collection seria teste é "a" seria a chave dentro agora da estrutura JSON e "b" seria o valor da chave "a", "c" a chave e "d" o valor, quando queremos colocar um valor em memoria podemos utilizar o "_" (Underline), antes da chave no JSON, ficando o exemplo assim: {"_a":"b", "c","d"} nesse casso o valor "b", ficara alocado na memória ram do computador, possibilitando ao usuário realizar uma query na collection teste, pelo valor "b", o EscargotsDB irá retorna todo o conjunto de dado, sem a necessidade de buscar pela chave do conjunto de dados da collection.
Sim eu seu que parece complicado a primeira vista esse monte de chave e valores, mais garanto para vocês que esse modelo de armazenagem traz um ganho de performance absurda.
falamos o que é o EscargotsDB, mostramos o conceito básico dele, e como ele armazena os dados, mas qual o seu uso no dia a dia do desenvolvedor?
Ele pode ser usado para quase todo tipo de projeto, mas tem um foco voltado para cloud, hoje atualmente eu tenho um projeto consideravelmente grade com várias collections, para avaliação de colaboradores de uma empresa, meu projeto e web escrito em php e com banco de dados EscargotsDB rodando na AWS.
Agora quero falar um pouquinho mais técnico, Como me conecto a esse banco de dados? pensando em uma maneira de facilitar a conexão com EscargotsDB, ele utiliza do protocolo HTTP com a arquitetura RESTful, então e só dar uma olhada em seus endpoints.
mas para facilitar a conexão, já tem várias class criadas para ajudar o dev, vou deixar alguns exemplos abaixo
Set metodo utilizado para gardar um conjunto de dados no EscargotsDB
eDb.payload_data = {
valor01:'1',
valor02:'2',
_valor03:'3',
}
if (eDb.set('collection_name','key_valor')) {
console.log('Sucesso!');
};
query metodo utilizado buscar conjunto de dados de uma collection
var retorno;
eDb.qryCollection = 'collection_name';
eDb.qryViews = 'all';
eDb.qryFields = '_valor03';
eDb.qryText = "_valor03 == '3'"
retorno = eDb.query();
console.log(retorno)
console.log(retorno.length);
for (i=0; i<retorno.length; i++){
console.log(retorno[i]._valor03);
}
É claro que o EscargotsDB tem muito mais funções do que as duas que apresentei, como exemplo.
Você pode conhecer mais sopre o projeto pode visitar o site escargotsdb.com
Link do grupo no Telegram
Link do grupo no Whatsapp