Existem dois tipos de bancos de dados: relacional e não relacional. Os dois bancos podem ser utilizados de formas distintas com diferentes frameworks, podendo-se utilizar o tipo de banco de dados e seu respectivo framework variando entre situações.

O banco de dados relacional trabalhará de forma que tabelas possam se relacionar e formar uma rede de tabelas com dados utilizando frameworks ORM. O banco de dados não relacional em conjunto com o framework ODM deverá ser utilizado para casos com informações menos complexas que exigem todas as informações em um único documento possibilitando uma grande massa de dados.

OBJECT RELATIONAL MAPPING

Existem frameworks conhecidos como ORM (object relational mapping) que relacionam propriedades de uma classe com colunas do banco de dados. Esse tipo de framework só pode ser utilizado com banco de dados relacional. Ele estabelece uma forte relação entre aplicativo e banco de dados.

Normalmente o banco de dados relacional é utilizado para informações mais complexas permitindo consultas segmentadas evitando gargalos quando há grandes quantidades de acesso. O uso da ORM é opcional, mas existem vantagens como facilitação joing entre as tabelas e aumento a produtividade do desenvolvimento.

OBJECT DOCUMENT MAPPING

Os frameworks ODM (object document mapping) são utilizados para criar relações entre propriedades de uma classe com campos de um documento salvo em uma collection que também podem ser gerenciadas pelo framework.

Da mesma forma que a ORM, o uso desse framework é opcional, entretanto há diversas vantagens como proporcionar forte tipagem para campos de documento de forma que o desenvolver não possa salvar um valor do tipo texto para um campo numérico, além de simplificar interpretação de códigos afim de agilizar o desenvolvimento do projeto.

Uma das maiores vantagens do uso de framework é a facilidade para a utilização de indexes (índices) que normalmente exigem certas habilidades de gerenciamento do desenvolvedor. Segue um exemplo de aplicação dessa vantagem:  

const Cat = mongoose.model('Cat', { name: String });

mongoose.index('Cat', ({'$**': 'text'})

O índice pode ser explorado a fim de facilitar o desenvolvimento de buscas, por exemplo. Ele tem função de agilizar o processo de encontro de informações específicas e segmentadas.

 O índice auxilia o desenvolvedor em diversos pontos como tratamentos complexos da informação antes de ser buscada com intuito de reduzir o tempo e a lógica escrita por ele.

O código no exemplo acima demonstra através do asterisco (wildcard) como o índice será construído. Nesse caso, será incluído tudo que é do tipo texto dentro do índice a ser criado.

A busca feita no banco de dados não relacional pelo índice pode ser feita pelo recurso de pontuação ou pela ordem padrão, ou seja, de encontro dos resultados. O esquema padrão de encontro dos resultados acarretará o aparecimento desordenado dos resultados.

Os frameworks possibilitam a indicação de ordenação por pontuação, por exemplo: se o usuário buscar as letras inicias de o nome de um médico no site de um plano de saúde, a busca entenderá e mostrará os nomes de médicos com as letras inicias exatamente iguais e após mostrará os resultados seguintes com a mesma letra inicial.

O desenvolvedor poderá distribuir diferentes pesos para cada campo do documento, como “nome” será pontuação de relevância 5, o campo “especialidade” será pontuação de relevância 4 e assim por diante. Dessa forma, a chance o usuário encontra o que procura em menos tempo é maior.

const Cat = mongoose.model('Cat', { name: String, phone: String }, { weights: { name: 4, phone: 3} });

O uso dos frameworks pode ser explorado de diversos formas e utilizados em diversas linguagens de programação. Segue um exemplo do uso de um framework ODM para a linguagem de programação Javascript:

Primeiramente há a conexão com o banco de dados MongoDB:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true});

Após há a criação de uma collection:

const Cat = mongoose.model('Cat', { name: String });

Então há a criação de um novo documento e o salvamento no banco de dados:

const kitty = new Cat({ name: 'Zildjian' });

kitty.save().then(() => console.log('meow'));

Dessa forma, nesse exemplo haverá a criação de um novo documento da collection cat com a propriedade name o valor Zildjian. Assim, teremos a criação e salvamento do novo documento.

CONCLUSÃO

Conclui-se que dentro das linguagens de programação os frameworks dos tipos ODM e ORM são bastante utilizados para facilitar e reduzir o tempo do desenvolvedor dentro dos projetos.

Essa redução e facilitação impactará no desempenho do projeto bem como ampliará as funções para o usuário. O destaque fica para os índices que podem auxiliar de forma significativa em possíveis buscas ou indexações apresentadas no desenvolvimento de um projeto.

Fontes:

https://mongoosejs.com/ – Exemplos de código do framework ODM Mongoose

http://www.toikos.com.br/ – Utilização da tecnologia integrado com IOT

Autor: Felipe Panassol Zaniol