48
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE ENSINO SUPERIOR DO SERIDÓ DEPARTAMENTO DE COMPUTAÇÃO E TECNOLOGIA BACHARELADO EM SISTEMAS DE INFORMAÇÃO UMA ABORDAGEM PARA ESCOLHA ENTRE OS PARADIGMAS DE BANCO DE DADOS RELACIONAL E NOSQL EM PROJETOS DE SOFTWARE PAULO WAGNER SILVA DA COSTA Caicó/RN 2019

PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

CENTRO DE ENSINO SUPERIOR DO SERIDOacute

DEPARTAMENTO DE COMPUTACcedilAtildeO E TECNOLOGIA

BACHARELADO EM SISTEMAS DE INFORMACcedilAtildeO

UMA ABORDAGEM PARA ESCOLHA ENTRE OS PARADIGMAS DE

BANCO DE DADOS RELACIONAL E NOSQL EM PROJETOS DE

SOFTWARE

PAULO WAGNER SILVA DA COSTA

CaicoacuteRN

2019

PAULO WAGNER SILVA DA COSTA

UMA ABORDAGEM PARA ESCOLHA ENTRE OS PARADIGMAS DE

BANCO DE DADOS RELACIONAL E NoSQL EM PROJETOS DE

SOFTWARE

Trabalho de conclusatildeo de curso apresentado ao

curso de graduaccedilatildeo em Sistemas de Informaccedilatildeo

como parte dos requisitos para obtenccedilatildeo do

tiacutetulo de Bacharel em Sistemas de Informaccedilatildeo da

Universidade Federal do Rio Grande do Norte

Orientador Prof Dr Taciano de Morais Silva

CaicoacuteRN

2019

Costa Paulo Wagner Silva da Uma abordagem para escolha entre os paradigmas de banco dedados Relacional e NoSQL em projetos de software Paulo WagnerSilva da Costa - Caicoacute 2019 46f il

Monografia (Bacharelado em Sistemas de Informaccedilatildeo) -Universidade Federal do Rio Grande do Norte Centro de EnsinoSuperior do Seridoacute - Campus Caicoacute Departamento de Computaccedilatildeo eTecnologia Curso de Sistemas de Informaccedilatildeo Orientador Taciano de Morais Silva

1 Not only Structured Query Language 2 Bancos de dados 3Structured Query Language 4 Sistemas de Gerenciamento de Bancode Dados 5 Paradigmas de Banco de Dados I Silva Taciano deMorais II Tiacutetulo

RNUFBS-Caicoacute CDU 00442

Universidade Federal do Rio Grande do Norte - UFRNSistema de Bibliotecas - SISBI

Catalogaccedilatildeo de Publicaccedilatildeo na Fonte UFRN - Biblioteca Setorial Profordf Maria Luacutecia da Costa Bezerra - shy CERESshy-Caicoacute

Elaborado por MAYANE PAULINO DE BRITO E SILVA - CRB-15847

PAULO WAGNER SILVA DA COSTA

UMA ABORDAGEM PARA ESCOLHA ENTRE OSPARADIGMAS DE BANCO DE DADOS RELACIONAL E

NoSQL EM PROJETOS DE SOFTWARE

Trabalho de conclusatildeo de curso apresentado aocurso de graduaccedilatildeo em Sistemas de Informaccedilatildeocomo parte dos requisitos para obtenccedilatildeo do tiacute-tulo de Bacharel em Sistemas de Informaccedilatildeo daUniversidade Federal do Rio Grande do Norte

CaicoacuteRN 14 de Dezembro de 2019

Prof Dr Taciano de Morais SilvaOrientador

Prof Dr Flavius da Luz e GorgocircnioExaminador(a)

Prof Dr Humberto RabeloExaminador(a)

CaicoacuteRN2019

A minha famiacutelia e aos meus amigos Vocecircs satildeo a minha motivaccedilatildeo e determinaccedilatildeo das minhas

conquistas

Agradecimentos

Primeiramente agradeccedilo a Deus pela vida forccedila inteligecircncia Aos meus pais CacircndidoSantos da Costa e Maria Gorete Silva da Costa por serem minhas principais referecircncias emeducaccedilatildeo e integridade pessoal

Agrave minha companheira Andressa Ravanny Silva da Costa por sempre estar ao meulado durante esta longa jornada Obrigado por me apoiar e fortalecer com suas palavras amorcarinho e dedicaccedilatildeo

A todos os meus amigos que sempre me apoiaram e nunca me deixaram desistir bemcomo aos colegas do curso de Bacharelado em Sistemas de Informaccedilatildeo por cada momentovivenciado pelas amizades apoios e conhecimentos

Ao meu orientador Prof Me Taciano de Morais Silva por todas as oportunidades eensinamentos Obrigado pela confianccedila e por acreditar no meu potencial

Aos colegas do Laboratoacuterio de Inteligecircncia Computacional Aplicada aos Negoacuteciospelos momentos de convivecircncia pelas contribuiccedilotildees direta ou indiretamente prestadas a estetrabalho

Por fim a todos aqueles que durante meu processo de formaccedilatildeo deram-me forccedilasapoio e conselhos para seguir em frente e natildeo desistir a vocecircs minha mais sincera gratidatildeo

ldquoPrefiram a minha instruccedilatildeo agrave prata

e o conhecimento ao ouro puro pois a

sabedoria eacute mais preciosa do que rubis

nada do que vocecircs possam desejar

compara-se a elardquo

(Biacuteblia Sagrada Proveacuterbios 810-11)

Resumo

Desenvolver uma aplicaccedilatildeo nunca eacute tatildeo simples quanto parece principalmente na fase de anaacutelisede requisitos onde eacute feito um levantamento dos atributos e relacionamentos que o sistema teraacuteNeste momento o desenvolvedor deve reunir a maior quantidade de informaccedilatildeo possiacutevel paraobter sucesso na criaccedilatildeo do sistema almejado umas das informaccedilotildees cruciais para tal eacute o tipo e aquantidade de dados que o sistema iraacute armazenar Definido isto surge agrave necessidade de escolhade um BD (Banco de Dados) adequado agraves especificidades do sistema com o crescimento dovolume de dados gerados por aplicaccedilotildees web e principalmente pelos requisitos diferenciados queessas aplicaccedilotildees exigem como a escalabilidade sob demanda e elevado grau de disponibilidadefez surgir novos bancos de dados que implementam um paradigma diferente do Relacionalconhecidos como NoSQL (Not Only SQL) e desenvolvidos com a promessa de maior adequaccedilatildeoao grande volume de dados gerados por estas aplicaccedilotildees bem como ao tipo de dados geradospor elas dados estes semiestruturados ou em alguns casos sem nenhuma estrutura predefinidaLevando em consideraccedilatildeo a grande quantidade de banco de dados disponiacuteveis atualmenteprincipalmente os que satildeo desenvolvidos seguindo como modelo o paradigma NoSQL tornacada vez mais difiacutecil o processo de escolha de um paradigma especiacutefico para determinadaaplicaccedilatildeo bem como o que melhor se adeque aos dados que a mesma iraacute gerar seguindo essalinha de pensamento o presente trabalho propotildee um estudo comparativo entre os dois paradigmasde BDs citados e por meio da anaacutelise dos vaacuterios tipos de BDs que os implementam foi realizadoum levantamento dos principais requisitos levado em consideraccedilatildeo no momento da escolha deum banco de dados aliado a isto foi definido os pontos positivos e negativos de cada paradigmaao se reunir esta gama de informaccedilotildees foi desenvolvido um algoritmo de auxiacutelio agrave escolha deparadigmas de banco de dados que visa agilizar e aprimorar o processo de escolha do paradigmaadequado a sua aplicaccedilatildeo

Palavras-chave Not Only Structured Query Language Bancos de dados Structured QueryLanguage Sistema Gerenciador de Banco de Dados Paradigmas de Banco de Dados

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 2: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

PAULO WAGNER SILVA DA COSTA

UMA ABORDAGEM PARA ESCOLHA ENTRE OS PARADIGMAS DE

BANCO DE DADOS RELACIONAL E NoSQL EM PROJETOS DE

SOFTWARE

Trabalho de conclusatildeo de curso apresentado ao

curso de graduaccedilatildeo em Sistemas de Informaccedilatildeo

como parte dos requisitos para obtenccedilatildeo do

tiacutetulo de Bacharel em Sistemas de Informaccedilatildeo da

Universidade Federal do Rio Grande do Norte

Orientador Prof Dr Taciano de Morais Silva

CaicoacuteRN

2019

Costa Paulo Wagner Silva da Uma abordagem para escolha entre os paradigmas de banco dedados Relacional e NoSQL em projetos de software Paulo WagnerSilva da Costa - Caicoacute 2019 46f il

Monografia (Bacharelado em Sistemas de Informaccedilatildeo) -Universidade Federal do Rio Grande do Norte Centro de EnsinoSuperior do Seridoacute - Campus Caicoacute Departamento de Computaccedilatildeo eTecnologia Curso de Sistemas de Informaccedilatildeo Orientador Taciano de Morais Silva

1 Not only Structured Query Language 2 Bancos de dados 3Structured Query Language 4 Sistemas de Gerenciamento de Bancode Dados 5 Paradigmas de Banco de Dados I Silva Taciano deMorais II Tiacutetulo

RNUFBS-Caicoacute CDU 00442

Universidade Federal do Rio Grande do Norte - UFRNSistema de Bibliotecas - SISBI

Catalogaccedilatildeo de Publicaccedilatildeo na Fonte UFRN - Biblioteca Setorial Profordf Maria Luacutecia da Costa Bezerra - shy CERESshy-Caicoacute

Elaborado por MAYANE PAULINO DE BRITO E SILVA - CRB-15847

PAULO WAGNER SILVA DA COSTA

UMA ABORDAGEM PARA ESCOLHA ENTRE OSPARADIGMAS DE BANCO DE DADOS RELACIONAL E

NoSQL EM PROJETOS DE SOFTWARE

Trabalho de conclusatildeo de curso apresentado aocurso de graduaccedilatildeo em Sistemas de Informaccedilatildeocomo parte dos requisitos para obtenccedilatildeo do tiacute-tulo de Bacharel em Sistemas de Informaccedilatildeo daUniversidade Federal do Rio Grande do Norte

CaicoacuteRN 14 de Dezembro de 2019

Prof Dr Taciano de Morais SilvaOrientador

Prof Dr Flavius da Luz e GorgocircnioExaminador(a)

Prof Dr Humberto RabeloExaminador(a)

CaicoacuteRN2019

A minha famiacutelia e aos meus amigos Vocecircs satildeo a minha motivaccedilatildeo e determinaccedilatildeo das minhas

conquistas

Agradecimentos

Primeiramente agradeccedilo a Deus pela vida forccedila inteligecircncia Aos meus pais CacircndidoSantos da Costa e Maria Gorete Silva da Costa por serem minhas principais referecircncias emeducaccedilatildeo e integridade pessoal

Agrave minha companheira Andressa Ravanny Silva da Costa por sempre estar ao meulado durante esta longa jornada Obrigado por me apoiar e fortalecer com suas palavras amorcarinho e dedicaccedilatildeo

A todos os meus amigos que sempre me apoiaram e nunca me deixaram desistir bemcomo aos colegas do curso de Bacharelado em Sistemas de Informaccedilatildeo por cada momentovivenciado pelas amizades apoios e conhecimentos

Ao meu orientador Prof Me Taciano de Morais Silva por todas as oportunidades eensinamentos Obrigado pela confianccedila e por acreditar no meu potencial

Aos colegas do Laboratoacuterio de Inteligecircncia Computacional Aplicada aos Negoacuteciospelos momentos de convivecircncia pelas contribuiccedilotildees direta ou indiretamente prestadas a estetrabalho

Por fim a todos aqueles que durante meu processo de formaccedilatildeo deram-me forccedilasapoio e conselhos para seguir em frente e natildeo desistir a vocecircs minha mais sincera gratidatildeo

ldquoPrefiram a minha instruccedilatildeo agrave prata

e o conhecimento ao ouro puro pois a

sabedoria eacute mais preciosa do que rubis

nada do que vocecircs possam desejar

compara-se a elardquo

(Biacuteblia Sagrada Proveacuterbios 810-11)

Resumo

Desenvolver uma aplicaccedilatildeo nunca eacute tatildeo simples quanto parece principalmente na fase de anaacutelisede requisitos onde eacute feito um levantamento dos atributos e relacionamentos que o sistema teraacuteNeste momento o desenvolvedor deve reunir a maior quantidade de informaccedilatildeo possiacutevel paraobter sucesso na criaccedilatildeo do sistema almejado umas das informaccedilotildees cruciais para tal eacute o tipo e aquantidade de dados que o sistema iraacute armazenar Definido isto surge agrave necessidade de escolhade um BD (Banco de Dados) adequado agraves especificidades do sistema com o crescimento dovolume de dados gerados por aplicaccedilotildees web e principalmente pelos requisitos diferenciados queessas aplicaccedilotildees exigem como a escalabilidade sob demanda e elevado grau de disponibilidadefez surgir novos bancos de dados que implementam um paradigma diferente do Relacionalconhecidos como NoSQL (Not Only SQL) e desenvolvidos com a promessa de maior adequaccedilatildeoao grande volume de dados gerados por estas aplicaccedilotildees bem como ao tipo de dados geradospor elas dados estes semiestruturados ou em alguns casos sem nenhuma estrutura predefinidaLevando em consideraccedilatildeo a grande quantidade de banco de dados disponiacuteveis atualmenteprincipalmente os que satildeo desenvolvidos seguindo como modelo o paradigma NoSQL tornacada vez mais difiacutecil o processo de escolha de um paradigma especiacutefico para determinadaaplicaccedilatildeo bem como o que melhor se adeque aos dados que a mesma iraacute gerar seguindo essalinha de pensamento o presente trabalho propotildee um estudo comparativo entre os dois paradigmasde BDs citados e por meio da anaacutelise dos vaacuterios tipos de BDs que os implementam foi realizadoum levantamento dos principais requisitos levado em consideraccedilatildeo no momento da escolha deum banco de dados aliado a isto foi definido os pontos positivos e negativos de cada paradigmaao se reunir esta gama de informaccedilotildees foi desenvolvido um algoritmo de auxiacutelio agrave escolha deparadigmas de banco de dados que visa agilizar e aprimorar o processo de escolha do paradigmaadequado a sua aplicaccedilatildeo

Palavras-chave Not Only Structured Query Language Bancos de dados Structured QueryLanguage Sistema Gerenciador de Banco de Dados Paradigmas de Banco de Dados

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 3: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Costa Paulo Wagner Silva da Uma abordagem para escolha entre os paradigmas de banco dedados Relacional e NoSQL em projetos de software Paulo WagnerSilva da Costa - Caicoacute 2019 46f il

Monografia (Bacharelado em Sistemas de Informaccedilatildeo) -Universidade Federal do Rio Grande do Norte Centro de EnsinoSuperior do Seridoacute - Campus Caicoacute Departamento de Computaccedilatildeo eTecnologia Curso de Sistemas de Informaccedilatildeo Orientador Taciano de Morais Silva

1 Not only Structured Query Language 2 Bancos de dados 3Structured Query Language 4 Sistemas de Gerenciamento de Bancode Dados 5 Paradigmas de Banco de Dados I Silva Taciano deMorais II Tiacutetulo

RNUFBS-Caicoacute CDU 00442

Universidade Federal do Rio Grande do Norte - UFRNSistema de Bibliotecas - SISBI

Catalogaccedilatildeo de Publicaccedilatildeo na Fonte UFRN - Biblioteca Setorial Profordf Maria Luacutecia da Costa Bezerra - shy CERESshy-Caicoacute

Elaborado por MAYANE PAULINO DE BRITO E SILVA - CRB-15847

PAULO WAGNER SILVA DA COSTA

UMA ABORDAGEM PARA ESCOLHA ENTRE OSPARADIGMAS DE BANCO DE DADOS RELACIONAL E

NoSQL EM PROJETOS DE SOFTWARE

Trabalho de conclusatildeo de curso apresentado aocurso de graduaccedilatildeo em Sistemas de Informaccedilatildeocomo parte dos requisitos para obtenccedilatildeo do tiacute-tulo de Bacharel em Sistemas de Informaccedilatildeo daUniversidade Federal do Rio Grande do Norte

CaicoacuteRN 14 de Dezembro de 2019

Prof Dr Taciano de Morais SilvaOrientador

Prof Dr Flavius da Luz e GorgocircnioExaminador(a)

Prof Dr Humberto RabeloExaminador(a)

CaicoacuteRN2019

A minha famiacutelia e aos meus amigos Vocecircs satildeo a minha motivaccedilatildeo e determinaccedilatildeo das minhas

conquistas

Agradecimentos

Primeiramente agradeccedilo a Deus pela vida forccedila inteligecircncia Aos meus pais CacircndidoSantos da Costa e Maria Gorete Silva da Costa por serem minhas principais referecircncias emeducaccedilatildeo e integridade pessoal

Agrave minha companheira Andressa Ravanny Silva da Costa por sempre estar ao meulado durante esta longa jornada Obrigado por me apoiar e fortalecer com suas palavras amorcarinho e dedicaccedilatildeo

A todos os meus amigos que sempre me apoiaram e nunca me deixaram desistir bemcomo aos colegas do curso de Bacharelado em Sistemas de Informaccedilatildeo por cada momentovivenciado pelas amizades apoios e conhecimentos

Ao meu orientador Prof Me Taciano de Morais Silva por todas as oportunidades eensinamentos Obrigado pela confianccedila e por acreditar no meu potencial

Aos colegas do Laboratoacuterio de Inteligecircncia Computacional Aplicada aos Negoacuteciospelos momentos de convivecircncia pelas contribuiccedilotildees direta ou indiretamente prestadas a estetrabalho

Por fim a todos aqueles que durante meu processo de formaccedilatildeo deram-me forccedilasapoio e conselhos para seguir em frente e natildeo desistir a vocecircs minha mais sincera gratidatildeo

ldquoPrefiram a minha instruccedilatildeo agrave prata

e o conhecimento ao ouro puro pois a

sabedoria eacute mais preciosa do que rubis

nada do que vocecircs possam desejar

compara-se a elardquo

(Biacuteblia Sagrada Proveacuterbios 810-11)

Resumo

Desenvolver uma aplicaccedilatildeo nunca eacute tatildeo simples quanto parece principalmente na fase de anaacutelisede requisitos onde eacute feito um levantamento dos atributos e relacionamentos que o sistema teraacuteNeste momento o desenvolvedor deve reunir a maior quantidade de informaccedilatildeo possiacutevel paraobter sucesso na criaccedilatildeo do sistema almejado umas das informaccedilotildees cruciais para tal eacute o tipo e aquantidade de dados que o sistema iraacute armazenar Definido isto surge agrave necessidade de escolhade um BD (Banco de Dados) adequado agraves especificidades do sistema com o crescimento dovolume de dados gerados por aplicaccedilotildees web e principalmente pelos requisitos diferenciados queessas aplicaccedilotildees exigem como a escalabilidade sob demanda e elevado grau de disponibilidadefez surgir novos bancos de dados que implementam um paradigma diferente do Relacionalconhecidos como NoSQL (Not Only SQL) e desenvolvidos com a promessa de maior adequaccedilatildeoao grande volume de dados gerados por estas aplicaccedilotildees bem como ao tipo de dados geradospor elas dados estes semiestruturados ou em alguns casos sem nenhuma estrutura predefinidaLevando em consideraccedilatildeo a grande quantidade de banco de dados disponiacuteveis atualmenteprincipalmente os que satildeo desenvolvidos seguindo como modelo o paradigma NoSQL tornacada vez mais difiacutecil o processo de escolha de um paradigma especiacutefico para determinadaaplicaccedilatildeo bem como o que melhor se adeque aos dados que a mesma iraacute gerar seguindo essalinha de pensamento o presente trabalho propotildee um estudo comparativo entre os dois paradigmasde BDs citados e por meio da anaacutelise dos vaacuterios tipos de BDs que os implementam foi realizadoum levantamento dos principais requisitos levado em consideraccedilatildeo no momento da escolha deum banco de dados aliado a isto foi definido os pontos positivos e negativos de cada paradigmaao se reunir esta gama de informaccedilotildees foi desenvolvido um algoritmo de auxiacutelio agrave escolha deparadigmas de banco de dados que visa agilizar e aprimorar o processo de escolha do paradigmaadequado a sua aplicaccedilatildeo

Palavras-chave Not Only Structured Query Language Bancos de dados Structured QueryLanguage Sistema Gerenciador de Banco de Dados Paradigmas de Banco de Dados

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 4: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

PAULO WAGNER SILVA DA COSTA

UMA ABORDAGEM PARA ESCOLHA ENTRE OSPARADIGMAS DE BANCO DE DADOS RELACIONAL E

NoSQL EM PROJETOS DE SOFTWARE

Trabalho de conclusatildeo de curso apresentado aocurso de graduaccedilatildeo em Sistemas de Informaccedilatildeocomo parte dos requisitos para obtenccedilatildeo do tiacute-tulo de Bacharel em Sistemas de Informaccedilatildeo daUniversidade Federal do Rio Grande do Norte

CaicoacuteRN 14 de Dezembro de 2019

Prof Dr Taciano de Morais SilvaOrientador

Prof Dr Flavius da Luz e GorgocircnioExaminador(a)

Prof Dr Humberto RabeloExaminador(a)

CaicoacuteRN2019

A minha famiacutelia e aos meus amigos Vocecircs satildeo a minha motivaccedilatildeo e determinaccedilatildeo das minhas

conquistas

Agradecimentos

Primeiramente agradeccedilo a Deus pela vida forccedila inteligecircncia Aos meus pais CacircndidoSantos da Costa e Maria Gorete Silva da Costa por serem minhas principais referecircncias emeducaccedilatildeo e integridade pessoal

Agrave minha companheira Andressa Ravanny Silva da Costa por sempre estar ao meulado durante esta longa jornada Obrigado por me apoiar e fortalecer com suas palavras amorcarinho e dedicaccedilatildeo

A todos os meus amigos que sempre me apoiaram e nunca me deixaram desistir bemcomo aos colegas do curso de Bacharelado em Sistemas de Informaccedilatildeo por cada momentovivenciado pelas amizades apoios e conhecimentos

Ao meu orientador Prof Me Taciano de Morais Silva por todas as oportunidades eensinamentos Obrigado pela confianccedila e por acreditar no meu potencial

Aos colegas do Laboratoacuterio de Inteligecircncia Computacional Aplicada aos Negoacuteciospelos momentos de convivecircncia pelas contribuiccedilotildees direta ou indiretamente prestadas a estetrabalho

Por fim a todos aqueles que durante meu processo de formaccedilatildeo deram-me forccedilasapoio e conselhos para seguir em frente e natildeo desistir a vocecircs minha mais sincera gratidatildeo

ldquoPrefiram a minha instruccedilatildeo agrave prata

e o conhecimento ao ouro puro pois a

sabedoria eacute mais preciosa do que rubis

nada do que vocecircs possam desejar

compara-se a elardquo

(Biacuteblia Sagrada Proveacuterbios 810-11)

Resumo

Desenvolver uma aplicaccedilatildeo nunca eacute tatildeo simples quanto parece principalmente na fase de anaacutelisede requisitos onde eacute feito um levantamento dos atributos e relacionamentos que o sistema teraacuteNeste momento o desenvolvedor deve reunir a maior quantidade de informaccedilatildeo possiacutevel paraobter sucesso na criaccedilatildeo do sistema almejado umas das informaccedilotildees cruciais para tal eacute o tipo e aquantidade de dados que o sistema iraacute armazenar Definido isto surge agrave necessidade de escolhade um BD (Banco de Dados) adequado agraves especificidades do sistema com o crescimento dovolume de dados gerados por aplicaccedilotildees web e principalmente pelos requisitos diferenciados queessas aplicaccedilotildees exigem como a escalabilidade sob demanda e elevado grau de disponibilidadefez surgir novos bancos de dados que implementam um paradigma diferente do Relacionalconhecidos como NoSQL (Not Only SQL) e desenvolvidos com a promessa de maior adequaccedilatildeoao grande volume de dados gerados por estas aplicaccedilotildees bem como ao tipo de dados geradospor elas dados estes semiestruturados ou em alguns casos sem nenhuma estrutura predefinidaLevando em consideraccedilatildeo a grande quantidade de banco de dados disponiacuteveis atualmenteprincipalmente os que satildeo desenvolvidos seguindo como modelo o paradigma NoSQL tornacada vez mais difiacutecil o processo de escolha de um paradigma especiacutefico para determinadaaplicaccedilatildeo bem como o que melhor se adeque aos dados que a mesma iraacute gerar seguindo essalinha de pensamento o presente trabalho propotildee um estudo comparativo entre os dois paradigmasde BDs citados e por meio da anaacutelise dos vaacuterios tipos de BDs que os implementam foi realizadoum levantamento dos principais requisitos levado em consideraccedilatildeo no momento da escolha deum banco de dados aliado a isto foi definido os pontos positivos e negativos de cada paradigmaao se reunir esta gama de informaccedilotildees foi desenvolvido um algoritmo de auxiacutelio agrave escolha deparadigmas de banco de dados que visa agilizar e aprimorar o processo de escolha do paradigmaadequado a sua aplicaccedilatildeo

Palavras-chave Not Only Structured Query Language Bancos de dados Structured QueryLanguage Sistema Gerenciador de Banco de Dados Paradigmas de Banco de Dados

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 5: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

A minha famiacutelia e aos meus amigos Vocecircs satildeo a minha motivaccedilatildeo e determinaccedilatildeo das minhas

conquistas

Agradecimentos

Primeiramente agradeccedilo a Deus pela vida forccedila inteligecircncia Aos meus pais CacircndidoSantos da Costa e Maria Gorete Silva da Costa por serem minhas principais referecircncias emeducaccedilatildeo e integridade pessoal

Agrave minha companheira Andressa Ravanny Silva da Costa por sempre estar ao meulado durante esta longa jornada Obrigado por me apoiar e fortalecer com suas palavras amorcarinho e dedicaccedilatildeo

A todos os meus amigos que sempre me apoiaram e nunca me deixaram desistir bemcomo aos colegas do curso de Bacharelado em Sistemas de Informaccedilatildeo por cada momentovivenciado pelas amizades apoios e conhecimentos

Ao meu orientador Prof Me Taciano de Morais Silva por todas as oportunidades eensinamentos Obrigado pela confianccedila e por acreditar no meu potencial

Aos colegas do Laboratoacuterio de Inteligecircncia Computacional Aplicada aos Negoacuteciospelos momentos de convivecircncia pelas contribuiccedilotildees direta ou indiretamente prestadas a estetrabalho

Por fim a todos aqueles que durante meu processo de formaccedilatildeo deram-me forccedilasapoio e conselhos para seguir em frente e natildeo desistir a vocecircs minha mais sincera gratidatildeo

ldquoPrefiram a minha instruccedilatildeo agrave prata

e o conhecimento ao ouro puro pois a

sabedoria eacute mais preciosa do que rubis

nada do que vocecircs possam desejar

compara-se a elardquo

(Biacuteblia Sagrada Proveacuterbios 810-11)

Resumo

Desenvolver uma aplicaccedilatildeo nunca eacute tatildeo simples quanto parece principalmente na fase de anaacutelisede requisitos onde eacute feito um levantamento dos atributos e relacionamentos que o sistema teraacuteNeste momento o desenvolvedor deve reunir a maior quantidade de informaccedilatildeo possiacutevel paraobter sucesso na criaccedilatildeo do sistema almejado umas das informaccedilotildees cruciais para tal eacute o tipo e aquantidade de dados que o sistema iraacute armazenar Definido isto surge agrave necessidade de escolhade um BD (Banco de Dados) adequado agraves especificidades do sistema com o crescimento dovolume de dados gerados por aplicaccedilotildees web e principalmente pelos requisitos diferenciados queessas aplicaccedilotildees exigem como a escalabilidade sob demanda e elevado grau de disponibilidadefez surgir novos bancos de dados que implementam um paradigma diferente do Relacionalconhecidos como NoSQL (Not Only SQL) e desenvolvidos com a promessa de maior adequaccedilatildeoao grande volume de dados gerados por estas aplicaccedilotildees bem como ao tipo de dados geradospor elas dados estes semiestruturados ou em alguns casos sem nenhuma estrutura predefinidaLevando em consideraccedilatildeo a grande quantidade de banco de dados disponiacuteveis atualmenteprincipalmente os que satildeo desenvolvidos seguindo como modelo o paradigma NoSQL tornacada vez mais difiacutecil o processo de escolha de um paradigma especiacutefico para determinadaaplicaccedilatildeo bem como o que melhor se adeque aos dados que a mesma iraacute gerar seguindo essalinha de pensamento o presente trabalho propotildee um estudo comparativo entre os dois paradigmasde BDs citados e por meio da anaacutelise dos vaacuterios tipos de BDs que os implementam foi realizadoum levantamento dos principais requisitos levado em consideraccedilatildeo no momento da escolha deum banco de dados aliado a isto foi definido os pontos positivos e negativos de cada paradigmaao se reunir esta gama de informaccedilotildees foi desenvolvido um algoritmo de auxiacutelio agrave escolha deparadigmas de banco de dados que visa agilizar e aprimorar o processo de escolha do paradigmaadequado a sua aplicaccedilatildeo

Palavras-chave Not Only Structured Query Language Bancos de dados Structured QueryLanguage Sistema Gerenciador de Banco de Dados Paradigmas de Banco de Dados

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 6: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Agradecimentos

Primeiramente agradeccedilo a Deus pela vida forccedila inteligecircncia Aos meus pais CacircndidoSantos da Costa e Maria Gorete Silva da Costa por serem minhas principais referecircncias emeducaccedilatildeo e integridade pessoal

Agrave minha companheira Andressa Ravanny Silva da Costa por sempre estar ao meulado durante esta longa jornada Obrigado por me apoiar e fortalecer com suas palavras amorcarinho e dedicaccedilatildeo

A todos os meus amigos que sempre me apoiaram e nunca me deixaram desistir bemcomo aos colegas do curso de Bacharelado em Sistemas de Informaccedilatildeo por cada momentovivenciado pelas amizades apoios e conhecimentos

Ao meu orientador Prof Me Taciano de Morais Silva por todas as oportunidades eensinamentos Obrigado pela confianccedila e por acreditar no meu potencial

Aos colegas do Laboratoacuterio de Inteligecircncia Computacional Aplicada aos Negoacuteciospelos momentos de convivecircncia pelas contribuiccedilotildees direta ou indiretamente prestadas a estetrabalho

Por fim a todos aqueles que durante meu processo de formaccedilatildeo deram-me forccedilasapoio e conselhos para seguir em frente e natildeo desistir a vocecircs minha mais sincera gratidatildeo

ldquoPrefiram a minha instruccedilatildeo agrave prata

e o conhecimento ao ouro puro pois a

sabedoria eacute mais preciosa do que rubis

nada do que vocecircs possam desejar

compara-se a elardquo

(Biacuteblia Sagrada Proveacuterbios 810-11)

Resumo

Desenvolver uma aplicaccedilatildeo nunca eacute tatildeo simples quanto parece principalmente na fase de anaacutelisede requisitos onde eacute feito um levantamento dos atributos e relacionamentos que o sistema teraacuteNeste momento o desenvolvedor deve reunir a maior quantidade de informaccedilatildeo possiacutevel paraobter sucesso na criaccedilatildeo do sistema almejado umas das informaccedilotildees cruciais para tal eacute o tipo e aquantidade de dados que o sistema iraacute armazenar Definido isto surge agrave necessidade de escolhade um BD (Banco de Dados) adequado agraves especificidades do sistema com o crescimento dovolume de dados gerados por aplicaccedilotildees web e principalmente pelos requisitos diferenciados queessas aplicaccedilotildees exigem como a escalabilidade sob demanda e elevado grau de disponibilidadefez surgir novos bancos de dados que implementam um paradigma diferente do Relacionalconhecidos como NoSQL (Not Only SQL) e desenvolvidos com a promessa de maior adequaccedilatildeoao grande volume de dados gerados por estas aplicaccedilotildees bem como ao tipo de dados geradospor elas dados estes semiestruturados ou em alguns casos sem nenhuma estrutura predefinidaLevando em consideraccedilatildeo a grande quantidade de banco de dados disponiacuteveis atualmenteprincipalmente os que satildeo desenvolvidos seguindo como modelo o paradigma NoSQL tornacada vez mais difiacutecil o processo de escolha de um paradigma especiacutefico para determinadaaplicaccedilatildeo bem como o que melhor se adeque aos dados que a mesma iraacute gerar seguindo essalinha de pensamento o presente trabalho propotildee um estudo comparativo entre os dois paradigmasde BDs citados e por meio da anaacutelise dos vaacuterios tipos de BDs que os implementam foi realizadoum levantamento dos principais requisitos levado em consideraccedilatildeo no momento da escolha deum banco de dados aliado a isto foi definido os pontos positivos e negativos de cada paradigmaao se reunir esta gama de informaccedilotildees foi desenvolvido um algoritmo de auxiacutelio agrave escolha deparadigmas de banco de dados que visa agilizar e aprimorar o processo de escolha do paradigmaadequado a sua aplicaccedilatildeo

Palavras-chave Not Only Structured Query Language Bancos de dados Structured QueryLanguage Sistema Gerenciador de Banco de Dados Paradigmas de Banco de Dados

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 7: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

ldquoPrefiram a minha instruccedilatildeo agrave prata

e o conhecimento ao ouro puro pois a

sabedoria eacute mais preciosa do que rubis

nada do que vocecircs possam desejar

compara-se a elardquo

(Biacuteblia Sagrada Proveacuterbios 810-11)

Resumo

Desenvolver uma aplicaccedilatildeo nunca eacute tatildeo simples quanto parece principalmente na fase de anaacutelisede requisitos onde eacute feito um levantamento dos atributos e relacionamentos que o sistema teraacuteNeste momento o desenvolvedor deve reunir a maior quantidade de informaccedilatildeo possiacutevel paraobter sucesso na criaccedilatildeo do sistema almejado umas das informaccedilotildees cruciais para tal eacute o tipo e aquantidade de dados que o sistema iraacute armazenar Definido isto surge agrave necessidade de escolhade um BD (Banco de Dados) adequado agraves especificidades do sistema com o crescimento dovolume de dados gerados por aplicaccedilotildees web e principalmente pelos requisitos diferenciados queessas aplicaccedilotildees exigem como a escalabilidade sob demanda e elevado grau de disponibilidadefez surgir novos bancos de dados que implementam um paradigma diferente do Relacionalconhecidos como NoSQL (Not Only SQL) e desenvolvidos com a promessa de maior adequaccedilatildeoao grande volume de dados gerados por estas aplicaccedilotildees bem como ao tipo de dados geradospor elas dados estes semiestruturados ou em alguns casos sem nenhuma estrutura predefinidaLevando em consideraccedilatildeo a grande quantidade de banco de dados disponiacuteveis atualmenteprincipalmente os que satildeo desenvolvidos seguindo como modelo o paradigma NoSQL tornacada vez mais difiacutecil o processo de escolha de um paradigma especiacutefico para determinadaaplicaccedilatildeo bem como o que melhor se adeque aos dados que a mesma iraacute gerar seguindo essalinha de pensamento o presente trabalho propotildee um estudo comparativo entre os dois paradigmasde BDs citados e por meio da anaacutelise dos vaacuterios tipos de BDs que os implementam foi realizadoum levantamento dos principais requisitos levado em consideraccedilatildeo no momento da escolha deum banco de dados aliado a isto foi definido os pontos positivos e negativos de cada paradigmaao se reunir esta gama de informaccedilotildees foi desenvolvido um algoritmo de auxiacutelio agrave escolha deparadigmas de banco de dados que visa agilizar e aprimorar o processo de escolha do paradigmaadequado a sua aplicaccedilatildeo

Palavras-chave Not Only Structured Query Language Bancos de dados Structured QueryLanguage Sistema Gerenciador de Banco de Dados Paradigmas de Banco de Dados

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 8: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Resumo

Desenvolver uma aplicaccedilatildeo nunca eacute tatildeo simples quanto parece principalmente na fase de anaacutelisede requisitos onde eacute feito um levantamento dos atributos e relacionamentos que o sistema teraacuteNeste momento o desenvolvedor deve reunir a maior quantidade de informaccedilatildeo possiacutevel paraobter sucesso na criaccedilatildeo do sistema almejado umas das informaccedilotildees cruciais para tal eacute o tipo e aquantidade de dados que o sistema iraacute armazenar Definido isto surge agrave necessidade de escolhade um BD (Banco de Dados) adequado agraves especificidades do sistema com o crescimento dovolume de dados gerados por aplicaccedilotildees web e principalmente pelos requisitos diferenciados queessas aplicaccedilotildees exigem como a escalabilidade sob demanda e elevado grau de disponibilidadefez surgir novos bancos de dados que implementam um paradigma diferente do Relacionalconhecidos como NoSQL (Not Only SQL) e desenvolvidos com a promessa de maior adequaccedilatildeoao grande volume de dados gerados por estas aplicaccedilotildees bem como ao tipo de dados geradospor elas dados estes semiestruturados ou em alguns casos sem nenhuma estrutura predefinidaLevando em consideraccedilatildeo a grande quantidade de banco de dados disponiacuteveis atualmenteprincipalmente os que satildeo desenvolvidos seguindo como modelo o paradigma NoSQL tornacada vez mais difiacutecil o processo de escolha de um paradigma especiacutefico para determinadaaplicaccedilatildeo bem como o que melhor se adeque aos dados que a mesma iraacute gerar seguindo essalinha de pensamento o presente trabalho propotildee um estudo comparativo entre os dois paradigmasde BDs citados e por meio da anaacutelise dos vaacuterios tipos de BDs que os implementam foi realizadoum levantamento dos principais requisitos levado em consideraccedilatildeo no momento da escolha deum banco de dados aliado a isto foi definido os pontos positivos e negativos de cada paradigmaao se reunir esta gama de informaccedilotildees foi desenvolvido um algoritmo de auxiacutelio agrave escolha deparadigmas de banco de dados que visa agilizar e aprimorar o processo de escolha do paradigmaadequado a sua aplicaccedilatildeo

Palavras-chave Not Only Structured Query Language Bancos de dados Structured QueryLanguage Sistema Gerenciador de Banco de Dados Paradigmas de Banco de Dados

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 9: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Abstract

Developing an application is never as simple as it sounds especially in the requirements analysisphase where a survey of the attributes and relationships that the system will have is done At thistime the developer must gather as much information as possible to succeed in creating the desiredsystem one of the information crucial to this is the type and amount of data that the system willstore Defined this arises the need to choose a BD (Database) appropriate to the specificities ofthe system with the growth of the volume of data generated by web applications and mainly bythe differentiated requirements that these applications require such as on-demand scalability anda high degree of availability new databases that implement a different relational paradigm hasbeen emerging known as NoSQL (Not Only SQL) and developed with the promise of greatersuitability to the large volume of data generated by these applications as well as the type of datagenerated by them given these semi-structured or in some cases without any predefined structureTaking into account the large amount of databases currently available especially those that aredeveloped following as a model the NoSQL paradigm makes it increasingly difficult for theprocess of choosing a specific paradigm for a given application as well as what best adheres tothe data it will generate following this line of thought the present work proposes a comparativestudy between the two paradigms of BDs cited and through the analysis of the various types ofBDs that implement them a survey of the main requirements taken into account at the momentwas carried out From the choice of a database allied to this the positive and negative points ofeach paradigm were defined By gathering this range of information an algorithm was developedto help the choice of database paradigms which aims to speed and improve the process ofchoosing the appropriate paradigm for your application

Keywords Not Only Structured Query Language Databases Structured Query LanguageDBMS Database Paradigms

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 10: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

LISTA DE FIGURAS

Figura 1 ndash Exemplo de banco de dados chave-valor 22Figura 2 ndash Exemplo de banco de dados orientado a colunas 23Figura 3 ndash Exemplo de banco de dados orientado a documentos 24Figura 4 ndash Exemplo de banco de dados baseado em grafos 25Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo 31Figura 6 ndash Niacutevel de Escolaridade 38Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL 39Figura 8 ndash SGBDs Implementados 39Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado 40Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes 41

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 11: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

LISTA DE TABELAS

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados 27Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL 29Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e

NoSQL 30Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1 32Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2 33Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3 33Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4 34Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5 35Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6 35Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7 36Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees 42

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 12: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

LISTA DE ABREVIATURAS E SIGLAS

ACID Atomicity Consistency Isolation Durability

BD Banco de dados

CAP Consistency Availability and Partition Tolerance

DW Data Warehouse

ER Entidade Relacionamento

FK Foreign Key

IBM International Business Machines

JSON JavaScript Object Notation

NoSQL Not Only Structured Query Language

OLAP On-Line Analytical Processing

PHP Hypertext Preprocessor

PK Primary Key

SGBD Sistemas de Gerenciamento de Banco de Dados

SI Sistemas de Informaccedilatildeo

SQL Structured Query Language

TI Tecnologia da Informaccedilatildeo

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 13: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Sumaacuterio

1 INTRODUCcedilAtildeO 1411 Contextualizaccedilatildeo e Problema 1412 Objetivos 15121 Objetivo Geral 15122 Objetivos Especiacuteficos 1513 Delimitaccedilatildeo do Estudo 1514 Justificativa 1615 Apresentaccedilatildeo do Trabalho 16

2 FUNDAMENTACcedilAtildeO TEOacuteRICA 1821 Banco de Dados 1822 Banco de Dados Relacional 1823 Banco de Dados NoSQL 19231 Escalabilidade 202311 Escalabilidade Horizontal 21

2312 Escalabilidade Vertical 21

232 Esquema Flexiacutevel ou Ausecircncia de Esquema 21233 Consistecircncia Eventual 2224 Tipos de NoSQL 22241 Chave Valor 22242 Orientado a Colunas 23243 Orientado a Documentos 24244 Orientado a Grafos 2425 Trabalhos Relacionados 25

3 METODOLOGIA 2831 Proposta Metodoloacutegica 2832 Questotildees de Pesquisa 28

4 DESENVOLVIMENTO DA PESQUISA 2941 SQL vs NoSQL 2942 Algoritmo de Recomendaccedilatildeo 3143 Aplicaccedilatildeo do Formulaacuterio 3744 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo 40

5 CONCLUSAtildeO 43

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 14: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

51 Discussatildeo 4352 Contribuiccedilotildees 4353 Trabalhos Futuros 43

REFEREcircNCIAS 45

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 15: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

14

1 Introduccedilatildeo

11 Contextualizaccedilatildeo e Problema

Segundo Diana e Gerosa (2010b) a utilizaccedilatildeo de banco de dados surge com a criaccedilatildeode sistemas computacionais e com a necessidade de se armazenar os dados gerados por essasaplicaccedilotildees Inicialmente estes bacos de dados eram simples e natildeo existia um grande volume dedados Silberschatz Sundarshan e Korth (2016) diz que o inicio da utilizaccedilatildeo de banco de dadosse deu em meados dos anos 60 implementados em computadores grandes e caros conhecidoscomo mainframes mantendo seu uso e desenvolvimento em alta ateacute as deacutecadas de 70 e 80os principais modelos ou tipos de banco de dados utilizados eram o Hieraacuterquico e o de Redesendo o banco de dados baseado em rede uma evoluccedilatildeo do banco de dados hieraacuterquico Em1970 E F Codd um dos pesquisadores da International Business Machines (IBM) publicou oprimeiro artigo sobre banco de dados relacionais em Codd (1970) Cood discutiu o uso de caacutelculoe aacutelgebra relacional para permitir que usuaacuterios natildeo teacutecnicos armazenassem e recuperassemgrandes quantidades de informaccedilatildeo Com a evoluccedilatildeo de pesquisas na aacuterea empresas comoa Honeywell Information Systems Inc e a Oracle criaram seus proacuteprios bancos de dadosbaseados em muitos princiacutepios do sistema que a IBM desenvolveu em meio a estas revoluccedilotildeestecnoloacutegicas a IBM desenvolve o DB2 uma evoluccedilatildeo de um banco de dados antigo chamadoSistema R criando o precursor dos bancos de dados atuais Segundo Galassi (2009) o bancode dados relacional foi e ainda eacute bastante utilizado devido a vaacuterias vantagens como densidadevelocidade atualidade e proteccedilatildeo O banco de dados Relacional passou a ser usados em todosos tipos de aplicaccedilotildees natildeo importando se eram ou natildeo adequados ao modelo relacional odesenvolvedor tinha que adequar sua aplicaccedilatildeo ao banco de dados relacional Com o avanccedilotecnoloacutegico a ideia de se armazenar todo tipo de dado no banco de dados relacional fez comque diversos profissionais da aacuterea enfrentassem vaacuterios problemas principalmente quando setrava de armazenamento de dados complexos e de grande volume

Nos uacuteltimos anos ocorreu um crescimento exponencial no nuacutemero de dados coletados earmazenados pelos mais variados dispositivos e sistemas de informaccedilatildeo Segundo Loacutescio Oli-veira e Pontes (2011) o advento da internet tem revolucionado a forma como criamos conteuacutedose trocamos informaccedilotildees aleacutem de criar um ambiente favoraacutevel para o surgimento de uma seacuterie deaplicaccedilotildees com demanda de requisitos diferenciados como um alto grau de disponibilidade eescalabilidade sobre demanda contribuiu para o surgimento de novos paradigmas de banco dedados e novas tecnologias de Sistemas de Gerenciamento de Banco de Dados (SGBD) O termoBig Data eacute utilizado para definir este grande volume de dados de alta velocidade complexos evariaacuteveis que requerem teacutecnicas e tecnologias avanccediladas para permitir a captura armazenamentodistribuiccedilatildeo gerenciamento e anaacutelise da informaccedilatildeo (COLVIN 2019) A explosatildeo no uso de

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 16: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 1 Introduccedilatildeo 15

Big Data fez com que grandes empresas demandassem por SGBDs capazes de gerenciar grandesvolumes de dados de forma eficaz e com um alto desempenho Nesse contexto os tradicionaisSGBDs relacionais apresentam algumas limitaccedilotildees quanto a alta concorrecircncia em operaccedilotildeesde leitura e escrita armazenamento de forma eficiente suporte a escalabilidade horizontalaleacutem da garantia de um serviccedilo raacutepido e uma alta disponibilidade Levando em consideraccedilatildeoessas necessidades uma variedade de novos SGBDs surgiram focados principalmente no baixocusto de operaccedilatildeo e manutenccedilatildeo Esses tipos de bancos de dados satildeo popularmente conhecidospor NoSQL que eacute um acrocircnimo para ldquoNot Only SQLrdquo Os SGBDs NoSQL geralmente satildeoclassificados de acordo com o modelo de dados adotado como chave-valor documentos colunare orientado a grafos sendo os trecircs primeiros tambeacutem chamados de modelos baseados em chave(FROZZA et al 2018) com a expansatildeo da criaccedilatildeo e uso de novos paradigmas de BDs emespecial os tidos como NoSQL surge a necessidade de um estudo comparativos que indiquemem que cenaacuterios melhor se encaixam cada paradigma (NOSQL 2010)

12 Objetivos

121 Objetivo Geral

Criar um algoritmo de recomendaccedilatildeo de paradigmas de banco de dados que auxilie odesenvolvedor no processo de tomada de decisotildees possibilitando assim uma escolha do paradigmade banco de dados ideal ou mais adequado a sua aplicaccedilatildeo ainda na fase de seu desenvolvimento

122 Objetivos Especiacuteficos

1 Definir os principais SGBDs que implementam o paradigma Relacional e NoSQLbem como suas caracteriacutesticas

2 Desenvolver um algoritmo de recomendaccedilatildeo de paradigma de banco de dados

3 Elaborar e aplicar uma pesquisa em desenvolvedores de softwares para coletarinformaccedilotildees sobre as caracteriacutesticas de uma aplicaccedilatildeo que os mesmos desenvolveram emseguida aplicar estas informaccedilotildees no algoritmo de recomendaccedilatildeo

4 Analisar e validar os resultados obtidos

13 Delimitaccedilatildeo do Estudo

Cada projeto tem suas peculiaridades e pouco foi escrito ateacute hoje a respeito da seleccedilatildeode paradigmas de banco de dados (SADALAGE FOWLER 2013) Segundo Souza et al (2014)existe pouco estudo sobre o processo de seleccedilatildeo de um paradigma de banco de dados ou ateacutemesmo de um banco de dados que realmente contenha as caracteriacutesticas necessaacuterias para a

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 17: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 1 Introduccedilatildeo 16

aplicaccedilatildeo desejada Aliado a este fato segundo Rockenbach et al (2018) existe um enormecrescimento no nuacutemero de banco de dados disponiacuteveis em especial quando nos referimos abanco de dados que implementam o paradigma NoSQL o que dificulta a tomada de decisatildeoquanto a melhor escolha na hora do desenvolvimento de uma aplicaccedilatildeo Oliveira et al (2018)nos mostra que em meio a tantas possibilidades de se definir qual SGBD utilizar mesmo como forte conceito de que os SGBDs Relacionais satildeo adequados a todas as situaccedilotildees muitosdesenvolvedores natildeo sabem ao certo em quais situaccedilotildees eacute vantajoso aplicar as alternativas doparadigma Relacional ou NoSQL Com poucas recomendaccedilotildees indicando em que contexto usardeterminado paradigma surgiu a seguinte questatildeo Em qual situaccedilatildeo usar o paradigma de bancode dados Relacional ou o NoSQL

Delimitaremos os esforccedilos em busca dos principais fatores que levam o desenvolvedora escolher um paradigma de banco de dados em consequente o SGBD para a sua aplicaccedilatildeoconsiderando os dois principais paradigmas de bancos de dados o paradigma Relacional e oparadigma NoSQL para tal delimitaremos o grupo de desenvolvedores que iremos estudarfocaremos apenas nos desenvolvedores em formaccedilatildeo que estatildeo cursando Sistemas de Informaccedilatildeona UFRN em Caicoacute-RN e alguns desenvolvedores que se formaram no referido curso e que jaacuteatuam no mercado de trabalho

14 Justificativa

A justificativa para este trabalho eacute fundamentada na pouca quantidade de estudosrelacionados com o processo de seleccedilatildeo de paradigmas de banco de dados no momento de desen-volvimento de um aplicaccedilatildeo Segundo Diana e Gerosa (2010b) existem poucas recomendaccedilotildeesque indiquem em que contexto usar determinado paradigma ressalta tambeacutem que existem poucosestudos comparativos que mostrem onde se utilizar cada um destes aliado a este fato existeuma enorme quantidade de banco de dados principalmente os que implementam o paradigmaNoSQL criando com isso um grande desafio para desenvolvedor que desejam migrar com ecircxitode sistema de gerenciamento de dados atuais para sistemas de larga escala (DAVOUDIANCHEN LIU 2018)

Esta pesquisa tem como finalidade ajudar a preencher essa lacuna por meio de umlevantamento bibliograacutefico sobre os principais criteacuterios usados no momento da escolha de umparadigma dentro desse contexto visa agrave elaboraccedilatildeo de um algoritmo de recomendaccedilatildeo deescolha de paradigmas que auxilie com uma maior precisatildeo a escolha do paradigma maisadequado ou que melhor se adapte a aplicaccedilatildeo almejada

15 Apresentaccedilatildeo do Trabalho

Este trabalho estaacute organizado da seguinte maneira

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 18: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 1 Introduccedilatildeo 17

O Capiacutetulo 1 definido como introduccedilatildeo apresenta uma visatildeo geral da pesquisa optamospor dividir o mesmo em 5 seccedilotildees que abordam os seguintes temas na Seccedilatildeo 11 apresentaa contextualizaccedilatildeo do problema na Seccedilatildeo 12 aborda os objetivos da pesquisa que devido aespecificidades existentes o mesmo foi dividido em dois sub toacutepicos o Objetivo Geral 121 e osObjetivos Especiacuteficos 122 em seguida abordamos os toacutepicos delimitaccedilatildeo e estudo na Seccedilatildeo 13a justificativa na Seccedilatildeo 14 e por fim a apresentaccedilatildeo do trabalho Seccedilatildeo 15

O Capiacutetulo 2 trata da fundamentaccedilatildeo teoacuterica onde eacute observado o conceito geral debanco de dados na Seccedilatildeo 21 o conceito do paradigma de banco de dados relacional na Seccedilatildeo 22o conceito do paradigma de banco de dados NoSQL na Seccedilatildeo 23 na Seccedilatildeo 24 apresentamosos principais tipos de bancos de dados que implementam o paradigma NoSQL e por fim ostrabalhos relacionados Seccedilatildeo 25

O Capiacutetulo 3 aborda a proposta e a elaboraccedilatildeo da metodologia na Seccedilatildeo 31 bem comoas questotildees de pesquisa Seccedilatildeo 32 que norteiam por onde o trabalho deve seguir

O Capiacutetulo 4 foi dividido em 4 seccedilotildees na Seccedilatildeo 41 foi apresentado as principaisdiferenccedilas encontradas entre os dois paradigmas de banco de dados aqui estudados bem comoas principais caracteriacutesticas encontradas em ambos os paradigmas a Seccedilatildeo 42 apresentao algoritmo de recomendaccedilatildeo proposto pelo presente trabalho nesta seccedilatildeo esta descrito opseudocoacutedigo do algoritmo bem como a pontuaccedilatildeo atribuiacuteda a cada caracteriacutestica na Seccedilatildeo 43apresenta todos os dados importantes obtidos com a aplicaccedilatildeo do survey na quarta e ultima seccedilatildeo44 apresentamos todos os resultados obtidos com a aplicaccedilatildeo do algoritmo de recomendaccedilatildeo

No Capiacutetulo 5 estatildeo os Toacutepicos Discussatildeo 51 Contribuiccedilotildees 52 e Trabalhos Futuros 53Por fim satildeo apresentadas as referecircncias bibliograacuteficas dos trabalhos lidos que forneceram oconhecimento necessaacuterio para a elaboraccedilatildeo deste trabalho

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 19: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

18

2 Fundamentaccedilatildeo Teoacuterica

21 Banco de Dados

Um banco de dados eacute uma coleccedilatildeo de dados relacionado (ELMASRI et al 2005) Otermo banco de dados eacute bastante geneacuterico cada autor o define de uma maneira proacutepria De umaforma geral pode-se afirmar que um banco de dados eacute no computador a parte onde se podeguardar e recuperar informaccedilotildees de forma relacionada aliado a isto um banco de dados podeter diferentes tamanhos e complexidades ficando a cargo do desenvolvedor analisar e escolhero banco de dados que forneccedila os recursos necessaacuterios para os dados que deseja armazenarSegundo Campos et al (2008) projetar e implementar a base de dados eacute uma das tarefas maisimportantes na criaccedilatildeo de um sistema de informaccedilatildeo e cada projeto de banco de dados demandadiferentes especificaccedilotildees Estas especificaccedilotildees variam de acordo com a complexidade dos dadosatualmente ateacute mesmo tarefas simples estatildeo sendo automatizadas e o nuacutemero de sistemas comgrandes volumes de dados natildeo para de crescer (OLIVEIRA et al 2018) conforme jaacute apresentadona Seccedilatildeo 13 o presente trabalho foca em dois paradigmas de bancos de dados o paradigmaRelacional e o paradigma NoSQL sendo assim a seguir apresentaremos ambos os conceitosdos bancos de dados que compotildeem estes paradigmas na Seccedilatildeo 22 apresentamos o conceito debancos de dados relacionais e na Seccedilatildeo 23 o conceito de banco de dados NoSQL

22 Banco de Dados Relacional

Segundo Elmasri et al (2005) os SGBDs relacionais foram criados com o objetivode separar o armazenamento fiacutesico dos dados de sua representaccedilatildeo conceitual o uso destarepresentaccedilatildeo possibilitou a reduccedilatildeo de enormes pilhas de papeacuteis existentes nas empresasO paradigma de banco de dados relacional surgiu com a ideia de Ted Codd (CODD 1970)em sua conceituaccedilatildeo definiu que por meio do uso de caacutelculo e aacutelgebra relacional o usuaacuteriopoderia armazenar e recuperar os dados de uma determinada aplicaccedilatildeo posteriormente SegundoRyberg Frozza e Varela (2014) o SGBD relacional eacute representado por um conjunto de tabelasrelacionadas cada tabela e formada por colunas e linhas e cada registro na tabela eacute identificadopor um campo chave que conteacutem um valor uacutenico Segundo (OLIVEIRA et al 2018) a relaccedilatildeoentre duas tabelas eacute estabelecida atraveacutes de valores correspondentes de um campo compartilhadoestas tabelas relacionam-se umas agraves outras atraveacutes de chaves Uma chave eacute um conjunto de umou mais atributos que tornam um registro uacutenico Existem dois tipos de chaves

1 Chave Primaacuteria (PK - Primary Key) eacute a chave que identifica cada registro A chaveprimaacuteria nunca se repetiraacute

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 20: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 19

2 Chave Estrangeira (FK - Foreign Key) eacute a chave formada atraveacutes de um relaciona-mento com a chave primaacuteria de outra tabela Define um relacionamento entre as tabelas e podeocorrer repetidas vezes Caso a chave primaacuteria seja composta na origem a chave estrangeiratambeacutem o seraacute

Com o uso de relacionamentos loacutegicos entre as informaccedilotildees referentes evita-se a neces-sidade de repeticcedilatildeo de informaccedilotildees acelerando o processo de consulta (KAUFELD LUDERMIR1996) Segundo Loacutescio Oliveira e Pontes (2011) uma importante funccedilatildeo de um SGBD relacionaleacute o conjunto de operaccedilotildees de leitura e escrita dentro de uma banco de dados e para que se possagarantir o funcionamento correto destas transaccedilotildees o SGBD deve seguir algumas propriedadesconhecidas como propriedade ACID (Atomicity Consistency Isolation Durability) conformedefinidas a seguir

1 Atomicity (Atomicidade) ndash Todas as execuccedilotildees satildeo realizadas por completo se atransaccedilatildeo realizada envolver duas ou mais partes ou eacute executada por completo ou natildeo seraacuteexecutada

2 Consistency (Consistecircncia) ndash Apoacutes a conclusatildeo da transaccedilatildeo eacute criado um novoestado vaacutelido caso contraacuterio os dados voltam para o estado inicial satisfazendo as condiccedilotildees deconsistecircncia e restriccedilotildees de integridade

3 Isolation (Isolamento) ndash transaccedilotildees concorrentes devem permanecer isoladas para segarantir que um natildeo interfira na transaccedilatildeo da outra

4 Durability (Durabilidade) ndash Garantia que os dados permaneccedilam em um estado vaacutelidomesmo apoacutes uma falha ou reiniciado o sistema

Existe alguns tipos de SGBD que natildeo seguem exatamente estas propriedades pois nabusca por outras caracteriacutesticas demandadas pela enorme quantidade de aplicaccedilotildees e dadosgerados por estas aplicaccedilotildees abrem matildeo de algumas regras encontradas no paradigma relacionaleacute o caso dos SGBDs que implementam o paradigma NoSQL descritos na seccedilatildeo 23

23 Banco de Dados NoSQL

Segundo Oliveira e Cura (2017) o termo NoSQL vem sendo bastante utilizado comoum termo geral para agrupar uma seacuterie de projetos de implementaccedilotildees de modelos de banco dedados com diferenccedilas significativas quando comparamos ao paradigma relacional O termo foiutilizado pela primeira vez em 2009 por Carlo Strozzi descrevendo um banco de dados criadopor ele e que natildeo utilizava a linguagem SQL para realizar consultas nem implementava o modelorelacional (FOWLER 2015) Cada banco de dados NoSQL segue um padratildeo especiacutefico voltadopara uma situaccedilatildeo trazendo assim novas perspectivas tais como flexibilidade no modelo dedados alta escalabilidade permitindo estruturas de dados dinacircmicas e adaptaacuteveis e agilidade emsua implementaccedilatildeo aleacutem de novas linguagens de consulta apropriadas aos modelos de dados e

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 21: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 20

diversas interfaces para acesso aos dados

Segundo Carniel et al (2012) os banco de dados NoSQL satildeo adequados para aplicaccedilotildeescom necessidades especificas como necessidade de alto desempenho em uma operaccedilatildeo especificade processamento de dados natildeo volaacuteteis Vaacuterios trabalhos que abordam o tema NoSQL destacam4 tipos de implementaccedilotildees de base de dados que seguem as premissas do paradigma NoSQlporeacutem armazenam diferentes tipos de dados Segundo Santos e Silva (2013) Sadalage e Fowler(2013) Carniel et al (2012) Corbellini et al (2017) estes 4 tipos de base de dados citados satildeo 1 Modelo orientado a Chave-Valor

2 Modelo orientado a Colunas

3 Modelo orientado a Documentos

4 Modelo orientado a Grafos

Segundo Sadalage e Fowler (2013) os principais motivos pelos quais os pesquisadoresconsideram os bancos de dados NoSQL interessantes satildeo a produtividade no desenvolvimentode aplicativos pois em muitos casos se gasta muito tempo mapeando e adequando seus dadosa base de dados relacional e a capacidade de se adequar a grandes volumes de dados Comonatildeo existe um limite de crescimento para um BD NoSQL este tipo de banco de dados se tornaessencial para a grande demanda de espaccedilo imposta por aplicaccedilotildees atuais Rys (2011) afirmaque um dos principais motivadores para o grande crescimento no uso e evoluccedilatildeo do paradigmaNoSQL eacute o desejo de se alcanccedilar uma alta escalabilidade para lidar com a enorme carga de dadosgerados pelos mais diversos sistemas e aplicativos da internet O paradigma de banco de dadosNoSQL conta com vaacuterias caracteriacutesticas que o diferencia do Relacional caracteriacutesticas estascomo a escalabilidade esquema flexiacutevel ou livre de esquema e consistecircncia eventual podem serencontradas em vaacuterios trabalhos a seguir descreveremos estas trecircs principais caracteriacutesticas doparadigma NoSQL

231 Escalabilidade

Segundo Loacutescio Loacutescio Oliveira e Pontes (2011) a escalabilidade se daacute a medida quea quantidade de dados gerado pela aplicaccedilatildeo cresce criado assim um aumento da necessidadede desempenho por parte da aplicaccedilatildeo Os bancos de dados relacionais utilizam caracteriacutesticastransacionais conhecidas como ACID onde atraveacutes destas propriedades eacute garantido a integridadedos dados poreacutem em um ambiente onde requisitos como alta disponibilidade e o uso de sistemasdistribuiacutedos torna estas caracteriacutesticas impraticaacuteveis e favorecem o surgimento de novas formasde se garantir a integridade dos dados Segundo Santos e Silva (2013) para atender este problemase aplica a bancos de dados NoSQL o teorema CAP (Consistency Availability and Partition

Tolerance) este teorema exige que dois dos seus trecircs aspectos sejam garantidos

1 Consistency (Forte consistecircncia) ndash Manteacutem a integridade dos dados apos a realizaccedilatildeo

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 22: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 21

de uma transaccedilatildeo

2 Availability(Alta disponibilidade) ndash Garante que o sistema sempre mantenha o acessodo cliente a suas funcionalidades

3 Partition Tolerance (Toleracircncia ao particionamento) ndash Manteacutem todas as caracteriacutesticasdo sistema mesmo que instalado em diferentes servidores

A escalabilidade eacute dividida em dois tipos escalabilidade horizontal e vertical definire-mos ambas em 2311 e 2312

2311 Escalabilidade Horizontal

Segundo Loacutescio Oliveira e Pontes (2011) na escalabilidade horizontal ocorre umaumento no nuacutemero de maacutequinas disponiacuteveis para o armazenamento e processamento de dadosSegundo Bonfim e Liang (2014) a escalabilidade horizontal acontece quando aumentamos aquantidade de maquinas gerando assim um aumento no poder de processamento geralmente satildeoadicionados mais servidores permitindo a criaccedilatildeo de um cluster O uso de bancos de dados queimplementam o paradigma relacional eacute impraticaacutevel quando falamos de escalabilidade horizontaldevido ao alto gral de concorrecircncia dos processos

2312 Escalabilidade Vertical

Segundo Bonfim e Liang (2014) a escalabilidade vertical acontece quando a umamelhoria de hardware de um uacutenico servidor ou seja quando eacute adicionada mais memoacuteria ouo processador eacute trocado por outro mais potente entre outros aspectos Sadalage e Fowler(2013) diz que a escalabilidade vertical consiste em aumentar o poder de processamento earmazenamento das maacutequinas esta pratica de escalabilidade eacute tida como inviaacutevel pois os custoselevados a cada substituiccedilatildeo de maquina ou aumento de poder de processamento impossibilitaeste tipo de escalabilidade

232 Esquema Flexiacutevel ou Ausecircncia de Esquema

Segundo Loacutescio Oliveira e Pontes (2011) o esquema flexiacutevel ou ausecircncia de esquemaeacute uma caracteriacutestica bem evidente nos bancos de dados que implementam o paradigma NoSQLSegundo Saccol (2001) com o crescimento exponencial de dados semi estruturados criadospelas mais diversas plataformas existentes propiciou o surgimento de uma nova categoria deBanco de dados desenvolvido para dar suporte a consultas em um ambiente onde natildeo se sabeo esquema ou de que forma o dado se encontra armazenado Esta caracteriacutestica eacute fundamentalpara se garantir uma alta escalabilidade tambeacutem contribui para o aumento na disponibilidade dabase de dados um ponto negativo eacute a natildeo garantia da integridade dos dados

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 23: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 22

233 Consistecircncia Eventual

Tendo como princiacutepio o teorema CAP nem sempre eacute possiacutevel se manter a consistecircnciadevido ao grande nuacutemero de de pontos de distribuiccedilatildeo de dados Dentre os diferentes tipos debanco de dados NoSQL Loacutescio Oliveira e Pontes (2011) afirma que natildeo existe um melhor queo outro e sim uma melhor adequaccedilatildeo para cada tipo de problema pois cada tipo de banco dedados NoSQL tem seu contexto especiacutefico de uso

24 Tipos de NoSQL

Loacutescio Oliveira e Pontes (2011) classificam os principais tipos de modelos de dadosNoSQL em chave-valor orientado a colunas orientado a documentos e orientado a grafos Paraos autores ateacute agora estudados um determinado modelo natildeo deve ser considerado melhor queo outro pois cada modelo de base de dados eacute mais adequado para determinados contextos Osprincipais tipos de banco de dados citados anteriormente bem como as caracteriacutesticas de cadaum destes satildeo apresentados a seguir

241 Chave Valor

Este tipo de banco de dados eacute composto de uma tabela hash estrutura especial de dadosque associa chaves de pesquisa a valores como podemos ver na figura 1 uma estrutura bastantepopular pois gera uma grande eficiecircncia devido a sua facilidade de implementaccedilatildeo e rapidez nabusca de dados seu acesso aos dados ganha agilidade pois a busca eacute feita atraveacutes das chavesgarantindo assim maior rapidez e possibilidade de aumento de capacidade sendo um tipo debanco de dados favoraacutevel para sistemas em que a escalabilidade eacute um ponto forte Um parchave-valor eacute um valor uacutenico que pode ser facilmente utilizado para acessar os dados (TIWARI2011)

Figura 1 ndash Exemplo de banco de dados chave-valor

Fonte O autor (2019)

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 24: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 23

242 Orientado a Colunas

Segundo Pereira et al (2013) este tipo de banco de dados armazena as informaccedilotildeesem famiacutelias de colunas as linhas satildeo ordenadas e agrupadas conforme seu contexto o que tornaeste tipo de banco de dados um pouco mais complexo que o modelo chave-valor Diferentedo modelo relacional que tem seu paradigma de orientaccedilatildeo a registros ou tuplas ele utilizaorientaccedilatildeo a atributos ou colunas suas operaccedilotildees de leitura e escrita satildeo atocircmicas onde todos osvalores associados a uma linha satildeo considerados na execuccedilatildeo destas operaccedilotildees Pokorny (2013)diz que a composiccedilatildeo deste banco de dados e formada por uma tripla entre linha coluna e cadalinha e coluna e identificada por chaves

Apesar de natildeo conter o conceito de tabelas do modelo Entidade Relacionamento (ER)este modelo de BD armazena as informaccedilotildees em famiacutelias de colunas Neste conceito as linhassatildeo ordenadas e agrupadas conforme seu contexto daiacute a semelhanccedila com tabelas do ER Eacute omodelo mais propiacutecio e com melhor desempenho a ambientes com grandes processamentos dedados distribuiacutedos

Figura 2 ndash Exemplo de banco de dados orientado a colunas

Fonte O autor (2019)

A Figura 2 mostra que o modelo baseado em colunas segue um conceito conhecidocomo famiacutelia de colunas usado para agrupar colunas que contecircm o mesmo tipo de dadoSegundo Carniel et al (2012) o modelo orientado a colunas mesmo utilizando colunas em umatabela se diferencia do modelo relacional pois suas tabelas natildeo possuem relacionamentos e satildeoarmazenadas separadamente podendo ser possiacutevel representar um DW (Data Warehouse) parase usar procedimentos em consultas OLAP (On-Line Analytical Processing) o LucidDB eacute umexemplo de banco de dados que implementa o tipo orientado a colunas este banco de dadosfoi criado voltado para o ambiente de DW existem outros banco de dados que utilizam o tipoorientado a colunas como o Cassandra Hbase e BigTable sendo este o primeiro banco de dados aimplementar o tipo orientado a colunas entre as caracteriacutesticas principais deste tipo de BD temosa permissatildeo de particionamento de dados aleacutem de oferecer forte consistecircncia uma desvantagemencontrada neste tipo de banco de dados eacute a natildeo garantia de alta disponibilidade

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 25: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 24

243 Orientado a Documentos

Segundo Cattell (2011) os bancos de dados orientado a documentos satildeo mais robustosque o BDs chave valor ou seja suportam dados mais complexos No modelo orientado adocumentos o sistema armazena documentos que geralmente satildeo do tipo JavaScript Object

Notation (JSON) (GU SHEN ZHENG 2011) Sadalage e Fowler (2013) define que o bancode dados orientado a documento eacute um banco de dados que armazena e recupera documentosque podem ser dos tipos XML JSON BSON entre outros estes documentos satildeo estruturas dedados na forma de aacutervores hieraacuterquicas e que se auto descrevem constituiacutedas de mapas coleccedilotildeese valores escalares como apresentamos na figura 3 Segundo Nayak Poriya e Poojary (2013) osbancos de dados orientados a documentos apresentam um oacutetimo desempenho e escalabilidadehorizontal os dados armazenados neste tipo de base de dados satildeo semelhantes aos registros embancos de dados relacionais porem satildeo mais flexiacuteveis jaacute que estaacute estrutura de base de dadospossui menos esquemas e regras de armazenamento

Figura 3 ndash Exemplo de banco de dados orientado a documentos

Fonte O autor(2019)

244 Orientado a Grafos

Segundo Higa (2016) bancos de dados orientados a grafos satildeo uma de muitas categoriasde bancos de dados NoSQL a grande diferenccedila para o modelo relacional estaacute na representaccedilatildeoexpliacutecita de relacionamentos entre os dados atraveacutes de um modelo com veacutertices chamados denoacutes e linhas chamadas de relaccedilotildees conforme estaacute apresentado na Figura 4 Segundo Santos eSilva (2013) o surgimento do banco de dados orientado a grafo estaacute diretamente relacionadocom o surgimento do paradigma NoSQL este tipo de banco de dados foi desenvolvido para umambiente que demande uma capacidade de se armazenar um grande volume de dados complexos

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 26: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 25

aleacutem de estruturas que exijam baixo acoplamento e que tendem a sofrer constantes modificaccedilotildeesno que diz respeito a criaccedilatildeo remoccedilatildeo atualizaccedilatildeo e leitura de dados no banco O paradigmaorientado a grafos veio para ajudar a solucionar o problema de performance existente no modelode entidades e relacionamentos isto por conta de sua representaccedilatildeo de dados feita a partir degrafos ou seja noacutes e arestas com esta uacuteltima sendo responsaacutevel pela forma de navegaccedilatildeo Essemodelo se destaca pela velocidade constante de consulta independentemente da quantidade denoacutes que constituam o grafo

Figura 4 ndash Exemplo de banco de dados baseado em grafos

Fonte O autor(2019)

25 Trabalhos Relacionados

Em Pereira (2014) eacute realizado um estudo sobre a viabilidade e implicaccedilatildeo em seadotar o paradigma de banco de dados NoSQL para tal o autor faz a comparaccedilatildeo entre esteparadigma e o paradigma relacional por meio da implementaccedilatildeo de trecircs SGBDs diferentes oMongoDB Cassandra e SQL Server o autor efetuou vaacuterias pesquisas sobre os paradigmasestudados bem como um estudo especiacutefico sobre cada SGBD implementado deixando bem claromuitas caracteriacutesticas dos dois paradigmas mencionados correlacionando assim o trabalho aquiproposto ao trabalho citado pois muitas das caracteriacutesticas encontradas foram utilizadas nestetrabalho seguindo o mesmo princiacutepio Davoudian Chen e Liu (2018) apresenta as 5 principaiscaracteriacutesticas que devem ser levadas em consideraccedilatildeo no momento da escolha de um paradigmade banco de dados

Em Davidson (1982) eacute feito um estudo abordando os principais pontos que o desenvol-vedor deve focar no momento da escolha de uma base de dados comeccedilando do hardware a ser

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 27: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 26

usado ateacute o tipo de sistema operacional para realizar sua pesquisa o autor utilizou um questio-naacuterio com vaacuterias perguntas relevantes nossa proposta segue o mesmo princiacutepio de auxilio nomomento de escolha de um banco de dados poreacutem de uma forma mais didaacutetica e automatizadao questionaacuterio de papel seraacute substituindo por um algoritmo

Foram encontrados vaacuterios estudos sobre o tema NoSQL muitos como Diana e Gerosa(2010a) Loacutescio Oliveira e Pontes (2011) apresentam as principais diferenccedilas entre o bancode dados que implementam o paradigma Relacional e os bancos de dados que implementamo paradigma NoSQL outros como Li e Manoharan (2013) Oliveira et al (2018) comparambancos de dados que implementam os paradigmas Relacional e NoSQL medindo o desempenhode ambos em funccedilotildees baacutesicas como velocidade de leitura e escrita

Em Souza et al (2014) Observamos uma maior proximidade com o trabalho aquiproposto neste artigo eacute feito um amplo estudo sobre os principais criteacuterios para a seleccedilatildeo de umbanco de dados NoSQL a grande diferenccedila encontrada eacute a busca do autor apenas por criteacuterios deseleccedilatildeo de banco de dados que fazem parte do paradigma NoSQL o trabalho aqui proposto tempor finalidade o desenvolvimento e validaccedilatildeo de um algoritmo de recomendaccedilatildeo de ambos osparadigmas de bancos de dados aqui estudados o paradigma Relacional e NoSQL

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 28: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 2 Fundamentaccedilatildeo Teoacuterica 27

Tabela 1 ndash Comparaccedilatildeo entre os trabalhos relacionados

Trabalho Realizado Trabalho Proposto(PEREIRA 2014) Comparaccedilatildeo ente os pa-

radigmas Relacional eNoSQL definindo as prin-cipais caracteriacutesticas dosSGBDs implementados

Realiza uma pesquisa dasprincipais caracteriacutesticasdos principais bancos de da-dos que que implementamos paradigmas estudados

(DAVOUDIAN CHEN LIU 2018) Apresenta as 5 principaiscaracteriacutesticas que devemser levadas em considera-ccedilatildeo no momento da escolhade um paradigma de bancode dados

Segue o mesmo princiacutepioporeacutem eacute realizado umabusca mais aprofundadacom isso identificamos 7caracteriacutesticas principais

(DAVIDSON 1982) Realiza um estudo abor-dando os principais pontosque o desenvolvedor devefocar no momento da esco-lha de uma base de dados

Nosso trabalho segue amesma linha de pensa-mento

(SOUZA et al 2014) Observamos uma maior pro-ximidade com o trabalhoaqui proposto neste artigoeacute feito um amplo estudo so-bre os principais criteacuteriospara a seleccedilatildeo de um bancode dados NoSQL bem comoa indicaccedilatildeo em que cenaacuterioutiliza-lo

A principal diferenccedila se en-contra no fato que o traba-lho proposto indica o para-digma de banco de dadosideal e natildeo o banco de da-dos

Fonte O Autor (2019)

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 29: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

28

3 Metodologia

31 Proposta Metodoloacutegica

A primeira etapa do trabalho consistiu em um levantamento do estado da arte sobre adefiniccedilatildeo dos principais requisitos que satildeo levados em consideraccedilatildeo no momento da escolhade um paradigma de BD Para tal foi realizada uma pesquisa bibliograacutefica para se coletarinformaccedilotildees a partir da leitura de livros artigos pesquisas e publicaccedilotildees pertinentes ao assuntoA partir desta pesquisa foi feito um estudo teoacuterico sobre as teacutecnicas e tecnologias envolvidas noprocesso de escolha de um paradigma de banco de dados levando assim a dados relevantes parase definir um algoritmo de recomendaccedilatildeo que auxilie nesta escolha

A segunda etapa focou em uma pesquisa quantitativa realizada por meio de um for-mulaacuterio que garantisse respostas objetivas e claras enviadas atraveacutes de e-mail para algunsdesenvolvedores que atuam no mercado de trabalho e alunos do curso de Sistemas de Informaccedilatildeoda UFRN o que nos forneceu os dados necessaacuterios para o desenvolvimento do trabalho

A terceira etapa reuniu o desenvolvimento e a validaccedilatildeo do algoritmo de recomendaccedilatildeoproposto no presente trabalho validaccedilatildeo foi dada por meio da comparaccedilatildeo das escolhas feitaspor desenvolvedores e as recomendaccedilotildees de banco de dados ideais feitas pelo algoritmo

32 Questotildees de Pesquisa

A grande falta de manuais ou documentaccedilatildeo que auxilie o desenvolvedor na escolha deum paradigma de banco de dados foi o principal motivador desta pesquisa para se chegar aoresultado final almejado por este trabalho fez se necessaacuterio a resoluccedilatildeo das seguintes perguntas

1- Quais satildeo os principais requisitos levados em consideraccedilatildeo no momento daescolha de um banco de dados e consequentemente de seu paradigma no desenvolvimentode uma aplicaccedilatildeo levando em consideraccedilatildeo aplicaccedilotildees que implementam um dos doisparadigmas estudados

2- Em que momento utilizar cada paradigma e quais as principais vantagens edesvantagens entre o paradigma relacional e NoSQL

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 30: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

29

4 Desenvolvimento da Pesquisa

As seccedilotildees seguintes apresentam desenvolvimento da pesquisa bem como os experimen-tos realizados para se garantir um niacutevel de confianccedila satisfatoacuterio para o presente trabalho

41 SQL vs NoSQL

Com a leitura de diversos trabalhos relacionados a banco de dados e paradigma debanco de dados podemos notar que em sua grande maioria os mesmos comparam caracteriacutesticascomo velocidade de leitura e escrita tipos de dados suportados e capacidade de escalabilidadeem (FLORENCIO et al 2017 SOUZA et al 2014 ROCKENBACH et al 2018 DIANAGEROSA 2010b) estas comparaccedilotildees satildeo realizadas com SGBDs que implementam o mesmoparadigma jaacute em (LIMA DIoacuteGENES PEREIRA 2018 LI MANOHARAN 2013 OLIVEIRAet al 2018) as comparaccedilotildees satildeo realizadas em SGBDs que implementam diferentes paradigmasA Tabela 2 descreve as principais diferenccedilas encontradas entre o paradigma Relacional e NoSQLencontradas na pesquisa realizada

Tabela 2 ndash Principais diferenccedilas entre o paradigma Relacional e NoSQL

Relacional NoSQLEscalonamento Agrave medida que cresce a demanda

por mais espaccedilo e capacidade deprocessamento cresce proporci-onalmente os custos de implanta-ccedilatildeo

Com seu desenvolvimento vol-tado para caracteriacutesticas comouma maior escalabilidade algunsbancos de dados NoSQL permi-tem inclusive a inserccedilatildeo de novosservidores em tempo de execu-ccedilatildeo

Consistecircncia Devido a regras rigorosas con-tidas no paradigma Relacionaleste eacute um ponto forte neste pa-radigma

A depender do SGBD a consis-tecircncia eacute garantida eventualmentepor meio de teacutecnicas especiacuteficascomo mapreduce e consistenthashing

Disponibilidade Sua acessibilidade eacute limitada aadiccedilatildeo de uma grande quantidadede servidores

Por permitir particionamento ofe-rece uma excelente disponibili-dade

Esquema de Dados Utiliza um esquema fixo de da-dos

Esquema totalmente flexiacutevel

Fonte O Autor (2019)

Com a continuidade da pesquisa identificamos alguns pontos cruciais no momento daescolha de um paradigma de banco de dados sendo possiacutevel descrever um breve resumo sobre

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 31: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 30

cada um

1 Facilidade de Implementaccedilatildeo ndash Geralmente o desenvolvedor busca por um SGBDque natildeo demande um grande tempo de estudo para sua implementaccedilatildeo em muitos dos casos suaescolha eacute feita levando em consideraccedilatildeo apenas o preacutevio conhecimento sobre este SGBD

2 Tipo de Licenccedila de Uso ndash Em muitos cenaacuterios a empresa ou o desenvolvedor natildeodemanda de tantos recursos e uma licenccedila livre pode ser o diferencial no momento da escolha

3 Confiabilidade do SGBD ndash Um ponto importante eacute o niacutevel de confianccedila que odesenvolvedor tem com o SGBD

4 Suporte ndash Um SGBD que tenha uma comunidade que auxilie o desenvolvedor nomomento da implementaccedilatildeo e manutenccedilatildeo de seu banco de dados

5 Continuidade ndash Nem sempre SGBDs inovadores tem continuidade e ficam estagnadascomo tempo por falta de novas versotildees

A Tabela 3 realiza uma comparaccedilatildeo entre as principais caracteriacutesticas encontradas nosSGBDs Redis MongoDB e o Cassandra que implementam o paradigma NoSQL e o SGBDMySQL que implementa o paradigma Relacional

Tabela 3 ndash Comparaccedilatildeo entre as principais caracteriacutesticas do paradigma Relacional e NoSQL

MySQL MariaDB MongoDB Redis CassandraRelacional Sim Sim Natildeo Natildeo Natildeo

NoSQL Natildeo Natildeo Sim Sim SimCoacutedigo Aberto Sim Sim Sim Sim Sim

Toleracircncia a Particcedilatildeo Natildeo Natildeo Sim Sim SimFlexibilidade de Esquema Natildeo Natildeo Sim Sim SimEstrutura Fixa de Dados Sim Sim Natildeo Natildeo NatildeoConsistecircncia de Dados Alta Alta Eventual Eventual Eventual

Disponibilidade Baixa Moderada Alta Alta AltaEscalabilidade Limitada Limitada Alta Alta Alta

Fonte O Autor (2019)

Conforme jaacute apresentado cada paradigma de banco de dados possui caracteriacutesticasproacuteprias tais como o tipo de dado que a base de dados suporta ou regra de modelagem dedado que implementa satildeo caracteriacutesticas como estas que utilizamos como base para levantarquestotildees e definir o quatildeo apropriado o paradigma eacute a cada situaccedilatildeo e por meio de um algoritmode recomendaccedilatildeo apresentamos para o desenvolvedor um paradigma que melhor se adeque a suaaplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 32: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 31

42 Algoritmo de Recomendaccedilatildeo

O algoritmo foi implementado na forma de uma aplicaccedilatildeo web usando a linguagemde programaccedilatildeo Hypertext Preprocessor (PHP) uma linguagem de script open source de usogeral muito utilizada em projetos web a paacutegina inicial onde o visitante tem acesso as primeirasinformaccedilotildees pode ser observada na figura 5 esta paacutegina conteacutem trecircs abas iniacutecio formulaacuterio einformaccedilotildees na aba formulaacuterio o desenvolvedor tem acesso a um formulaacuterio com sete perguntasao responde-las o algoritmo retorna para o desenvolvedor a recomendaccedilatildeo de paradigma ideal

Figura 5 ndash Paacutegina inicial do Algoritmo de Recomendaccedilatildeo

Fonte O autor(2019)

Desenvolvido com base em todas as caracteriacutesticas de paradigmas de bancos de dadosencontradas em nossas pesquisas o formulaacuterio que o mesmo implementa conteacutem 7 questotildees quecontemplam todas estas caracteriacutesticas essenciais para ambos os paradigmas estudados agrave medidaque o desenvolvedor escolhe a alternativa com a caracteriacutestica que mais se aproxima da realidadede sua aplicaccedilatildeo a cadeia de decisatildeo vai adicionando ldquopontosrdquo para cada paradigma a dependerda caracteriacutestica contida na alternativa por fim o algoritmo compara que paradigma recebeu amaior pontuaccedilatildeo e retorna para o desenvolvedor o paradigma ideal bem como os motivos quelevaram a escolha

O pseudocoacutedigo 41 descreve a forma de pontuaccedilatildeo da questatildeo 1 esta questatildeo foidesenvolvida com o intuito de testar o niacutevel de interaccedilatildeo entre os usuaacuterios da aplicaccedilatildeo e o bancode dados este tipo de interaccedilatildeo interfere diretamente no processo de escolha de um paradigmade banco de dados em aplicaccedilotildees que os usuaacuterios estatildeo constantemente realizando interaccedilotildeescom o banco de dados esta alta interaccedilatildeo gera uma demanda por uma disponibilidade elevadabem como uma maior velocidade na leitura e escrita deste banco de dados devido a estes fatos

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 33: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 32

no momento que o desenvolvedor marca a opccedilatildeo ldquoSimrdquo no questionaacuterio ele estaraacute adicionando2 ponto para o paradigma NoSQL pois a alta disponibilidade e maior velocidade na leitura eescrita eacute uma caracteriacutestica de SGBDs que implementam o paradigma NoSQL (POLITOWSKIMARAN 2014) do contraacuterio se o desenvolvedor marcar a opccedilatildeo ldquoNatildeordquo cada paradigma recebe1 ponto como mostra a tabela 4

1 SE ( RESPOSTA_1 == SIM ) SE ( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

3 NOSQL = NOSQL + 2 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO( RESPOSTA_1 == NAO)

9 NOSQL = NOSQL + 1 SQL = SQL + 1

11

Listing 41 ndash Pseudocoacutedigo da questatildeo 1

Tabela 4 ndash Pontuaccedilatildeo para questatildeo 1

Respostas RELACIONAL NoSQLSim 0 2Natildeo 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_2 == IRRELEVANTE OU RESPOSTA_2 == PEQUENA OU RESPOSTA_2 ==MEDIA) SQL = SQL + 1

3 NOSQL = NOSQL + 1 SE SENAO( RESPOSTA_2 == GRANDE OU RESPOSTA_2 == MUITO GRANDE)

5 NOSQL = NOSQL + 1

Listing 42 ndash Pseudocoacutedigo da questatildeo 2

A segunda questatildeo foi desenvolvida sobre a mesma caracteriacutestica da primeira a esca-labilidade sendo assim o pseudocoacutedigo 42 apresenta a pontuaccedilatildeo que foi pensada a partir daquantidade de usuaacuterios que a aplicaccedilatildeo poderaacute alcanccedilar como mostra a tabela 5 a medida que aquantidade de usuaacuterios da aplicaccedilatildeo cresce segue proporcionalmente a demanda por uma maiorescalabilidade em cenaacuterios onde a quantidade de usuaacuterios eacute considerada de irrelevante a meacutediaambos os paradigmas recebem 1 ponto em aplicaccedilotildees com quantidade de usuaacuterios tidas comogrande e muito grande o paradigma NoSQL recebe 1 ponto e o paradigma Relacional natildeo pontuapois SGBDs que implementam o paradigma Relacional enfrentam problemas com relaccedilatildeo aescalabilidade e velocidade de leitura e escrita em ambientes com grande quantidade de usuaacuterios

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 34: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 33

Tabela 5 ndash Pontuaccedilatildeo para questatildeo 2

Respostas RELACIONAL NoSQLIrrelevante 1 1Pequena 1 1Media 1 1Grande 0 1

Muito Grande 0 1Fonte O Autor (2019)

SE ( RESPOSTA_3 == SIM ) 2 NOSQL = NOSQL minus 1

SQL = SQL + 1 4 SE SENAO( RESPOSTA_3 == NAO)

NOSQL = NOSQL + 1 6

Listing 43 ndash Pseudocoacutedigo da questatildeo 3

A terceira questatildeo estaacute focada em duas caracteriacutesticas que agem paralelamente a consis-tecircncia de dados e a toleracircncia a falhas Segundo Diana e Gerosa (2010b) para se atingir niacuteveismaiores de escalabilidade os SGBDs que implementam o paradigma NoSQL optam por umaconsistecircncia de dados mais maleaacutevel denominadas consistecircncia de dados em tempo determinadocomo mostra o pseudocoacutedigo 43 ao optar pela opccedilatildeo ldquoSimrdquo o desenvolvedor estaraacute adicionando1 ponto para o paradigma relacional e -1 para o paradigma NoSQL pois se a aplicaccedilatildeo natildeotolera falhas em sua base de dados natildeo eacute recomendado o uso de um SGBD NoSQL levando emconsideraccedilatildeo apenas os dados obtido ateacute aqui se o desenvolvedor optar pelo quesito ldquoNatildeordquo eleadiciona 1 ponto para o paradigma NoSQL estas pontuaccedilotildees estatildeo descritas na tabela 6

Tabela 6 ndash Pontuaccedilatildeo para questatildeo 3

Respostas RELACIONAL NoSQLSim 1 -1Natildeo 0 1

Fonte O Autor (2019)

A quarta questatildeo foi aplicada para se mensurar o quatildeo importante eacute para o desenvolvedora consistecircncias dos dados de sua aplicaccedilatildeo se em algum momento o desenvolvedor ficou emduacutevida sobre o que responder na questatildeo anterior esta questatildeo foi desenvolvida com o intuitode se resolver este problema pontuando de ldquoirrelevanterdquo a ldquobaixa relevacircnciardquo 2 pontos para oparadigma NoSQL 1 ponto para cada paradigma no quesito ldquoindiferenterdquo e 2 pontos para oparadigma relacional nos quesitos ldquorelevanterdquo e ldquomuito relevanterdquo conforme descrito na tabela 7e pseudocoacutedigo 44

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 35: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 34

SE ( RESPOSTA_4 == IRRELEVANTE OU RESPOSTA_4 == BAIXA RELEVANCIA) 2 NOSQL = NOSQL + 2

SE SENAO ( RESPOSTA_4 == INDIFERENTE ) 4 NOSQL = NOSQL + 1

SQL = SQL + 1 6 SE SENAO ( RESPOSTA_4 == RELEVANTE OU RESPOSTA_4 == MUITO RELEVANTE)

SQL = SQL + 2 8

Listing 44 ndash Pseudocoacutedigo da questatildeo 4

Tabela 7 ndash Pontuaccedilatildeo para questatildeo 4

Respostas RELACIONAL NoSQLIrrelevante 0 2

Baixa Relevacircncia 0 2Indiferente 1 1Relevante 2 0

Muito Relevante 2 0Fonte O Autor (2019)

SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO) 2 SQL = SQL + 2

NOSQL = NOSQL minus 1 4 SE SENAO ( REPOSTA_5 == PUBLICO GERAL)

NOSQL = NOSQL + 1 6 SQL = SQL + 1

Listing 45 ndash Pseudocoacutedigo da questatildeo 5

A quinta questatildeo leva o desenvolvedor a analisar que tipo de puacuteblico sua aplicaccedilatildeoatenderaacute ou atende em aplicaccedilotildees denominadas de aplicaccedilotildees de alto risco como aplicaccedilotildeeshospitalares e controladores de trafego aeacutereo demandam uma maior integridade de dados pornatildeo seguir a propriedade ACID o paradigma NoSQL deixa de lado a garantia de integridadede seus dados para priorizar outras propriedades devido a estas propriedades encontradas nosSGBDs que implementam o paradigma Relacional ao marcando a ldquoopccedilatildeo 1rdquo denominada deAmbiente Corporativo e Aplicaccedilotildees de Alto Risco o desenvolvedor adiciona 1 ponto para oparadigma Relacional e -1 ponto para o paradigma NoSQL do contraacuterio marcando a opccedilatildeo2 denominada Puacuteblico Geral o desenvolvedor estaraacute adicionando um ponto para ambos osparadigmas pois para aplicaccedilotildees de baixo risco a integridade de dados natildeo eacute um fator limitantePodemos observar como eacute realizado esta distribuiccedilatildeo de pontos na tabela 8 bem como eacute realizadoesta tomada de decisatildeo no pseudocoacutedigo 45

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 36: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 35

Tabela 8 ndash Pontuaccedilatildeo para questatildeo 5

Respostas RELACIONAL NoSQL1 2 -12 1 1

Fonte O Autor (2019)

1 SE ( RESPOSTA_6 == MUITO BAIXO OU RESPOSTA_6 == BAIXO OU RESPOSTA_6 ==MEDIO OU REPOSTA_6 == ALTO) SE ( RESPOSTA_5 == AMBIENTE CORPORATIVO)

3 SQL = SQL + 1 SENAO

5 NOSQL = NOSQL + 1 SQL = SQL + 1

7 SE SENAO ( RESPOSTA_6 == MUITO ALTO)

9 NOSQL = NOSQL + 1

Listing 46 ndash Pseudocoacutedigo da questatildeo 6

A sexta questatildeo foi desenvolvida para medir o grau de disponibilidade que o desenvol-vedor considera ideal para a sua aplicaccedilatildeo por ser desenvolvido justamente com a promessa dealta disponibilidade alta escalabilidade entre outras vantagens os SGBDs que implementam oparadigma NoSQL levam grande vantagem sobre o paradigma Relacional quando se trata dacaracteriacutestica disponibilidade ao optar por uma dessas caracteriacutesticas ldquomuito baixordquo ldquobaixordquoldquomeacutediordquo e ldquoaltordquo o algoritmo testa se a resposta da questatildeo 5 estaacute definida como ambiente corpo-rativo para este senaacuterio o paradigma relacional ganha 1 ponto do contraacuterio ambos os paradigmasrecebem 1 ponto poreacutem se a resposta for ldquomuito altordquo apenas o paradigma NoSQL pontuapois para se atingir disponibilidades tidas como muito altas os SGBDs tem que abrir matildeo decaracteriacutesticas como a integridade de dados o que eacute quase impossiacutevel no paradigma Relacionaldevido a regras de implementaccedilotildees muito riacutegidas estas pontuaccedilotildees podem ser observadas natabela 9 bem como no pseudocoacutedigo 46

Tabela 9 ndash Pontuaccedilatildeo para questatildeo 6

Respostas RELACIONAL NoSQLMuito Baixo 1 0

Baixo 1 0Meacutedio 1 1Alto 1 1

Muito Alto 0 1Fonte O Autor (2019)

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 37: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 36

SE ( RESPOSTA_7 == IRRELEVANTE OU RESPOSTA_7 == BAIXA RELEVANCIA OURESPOSTA_7 == INDIFERENTE OU RESPOSTA_7 == RELEVANTE)

2 SE ( RESPOSTA_1 == NAO OU RESPOSTA_5 == AMBIENTE CORPORATIVO) SQL = SQL + 1

4 SENAOSQL = SQL + 1

6 NOSQL = NOSQL + 1

8 SE SENAO ( RESPOSTA_7 == MUITO RELEVANTE) NOSQL = NOSQL + 1

10

Listing 47 ndash Pseudocoacutedigo da questatildeo 7

A seacutetima e uacuteltima questatildeo avalia a demanda por velocidade de leitura e escrita daaplicaccedilatildeo para gerar a pontuaccedilatildeo o algoritmo leva em consideraccedilatildeo natildeo soacute a alternativa esco-lhida mas tambeacutem algumas respostas anteriores das questotildees 1-Os usuaacuterios de sua aplicaccedilatildeoiratildeo sempre armazenam e consultar dados em seu banco de dados e 5-Que descriccedilatildeo depuacuteblico melhor define sua aplicaccedilatildeo conforme mostra a tabela 10 e o Pseudocoacutedigo 47podemos observar que a pontuaccedilatildeo eacute anaacuteloga a questatildeo anterior ou seja para os quesitos ldquoIrrele-vanterdquo e ldquoBaixa Relevacircnciardquo apenas o paradigma relacional recebe 1 ponto para as alternativasldquoIndiferenterdquo e ldquoRelevanterdquo ambos os paradigma pontuam e para a alternativa ldquoMuito Relevanterdquoo paradigma NoSQL recebe 1 ponto

Tabela 10 ndash Pontuaccedilatildeo para questatildeo 7

Respostas RELACIONAL NoSQLIrrelevante 1 0

Baixa Relevacircncia 1 0Indiferente 1 1Relevante 1 1

Muito Relevante 0 1Fonte O Autor (2019)

Para avaliar qual paradigma o algoritmo deve indicar eacute realizado uma comparaccedilatildeoentre as pontuaccedilotildees que cada paradigma obteve ao longo das 7 perguntas contidas no formulaacuteriocomo podemos observar no pseudocoacutedigo 48 o algoritmo testa que paradigma de banco dedados terminou com maior pontuaccedilatildeo a partir desta definiccedilatildeo o algoritmo apresenta para odesenvolvedor que paradigma eacute o ideal em conjunto com a recomendaccedilatildeo apresenta todos os 7motivos pelos quais o levaram a definir o tipo de paradigma escolhido em algumas situaccedilotildeespode ser apresentado motivos que natildeo condizem com o paradigma indicado poreacutem isso nadainfluecircncia no resultado final pois somente o paradigma que obtecircm a maior pontuaccedilatildeo eacute oparadigma ideal para a aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 38: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 37

SE (SQL gt NOSQL) 2 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma

R e l a c i o n a l )

4 SE SENAO (SQL == NOSQL) ESCREVA ( Sua a p l i c a c a o pode i m p l e m e n t a r ambos os p a r a d i g m a s de

banco de dados p a r a e s c o l h e r um SGBD l e v e em c o n s i d e r a c a o osmot ivos que foram r e t o r n a d o s p e l o a l g o r i t m o )

6 SENAO

8 ESCREVA ( Sua a p l i c a c a o d e v e r a i m p l e m e n t a r um SGBD de parad igma NoSQL )

Listing 48 ndash Pseudocoacutedigo da verificaccedilatildeo de pontuaccedilatildeo

43 Aplicaccedilatildeo do Formulaacuterio

Para coletarmos informaccedilotildees necessaacuterias para se validar o algoritmo de recomendaccedilatildeobem como para que realmente tiveacutessemos informaccedilotildees coesas sobre os principais aspectos queos usuaacuterios levam em consideraccedilatildeo no momento de escolha de um Paradigma de banco de dadosem consequente o SGBD aplicamos um formulaacuterio em desenvolvedores de software de diferenteniacuteveis de escolaridade a pesquisa abrangeu de colegas do curso de graduaccedilatildeo em Sistemas deInformaccedilatildeo (BSI) a desenvolvedores experientes que trabalham em grandes multinacionais daaacuterea de Tecnologia da Informaccedilatildeo (TI) ambos cientes do uso das informaccedilotildees ali captadas Aoiniciar o formulaacuterio cada desenvolvedor declarou estar ciente que as informaccedilotildees ali obtidasseriam usadas no presente trabalho

As perguntas descritas a seguir compotildeem o formulaacuterio da pesquisa para facilitar oentendimento das perguntas por parte dos desenvolvedores separamos o formulaacuterio por seccedilotildees ecada seccedilatildeo abrange uma caracteriacutestica encontrada nos paradigmas de bancos de dados estudados

Perguntas sobre Escalabilidade

1 Os usuaacuterios de sua aplicaccedilatildeo iratildeo sempre armazenam e consultar dados em seu bancode dados

2 Considerando a quantidade maacutexima de usuaacuterios que sua aplicaccedilatildeo poderaacute alcanccedilarsendo irrelevante menor que 100 e muito grande maior que 100000 marque a opccedilatildeo que maisse aproxima de sua realidade

Perguntas sobre Consistecircncia de dados e toleracircncia a falhas

1 Sua aplicaccedilatildeo foi desenvolvida levando em consideraccedilatildeo a toleracircncia a falhas e ainconsistecircncia de dados

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 39: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 38

2 Quatildeo relevante eacute para a sua aplicaccedilatildeo a garantia de uma alta consistecircncia nos dados

Pergunta sobre Esquema de Dados

1 Que descriccedilatildeo a seguir de puacuteblico melhor define sua aplicaccedilatildeo

Pergunta sobre Disponibilidade

1 Qual o niacutevel de disponibilidade ideal para sua aplicaccedilatildeo

Pergunta sobre Gerenciamento de transaccedilotildees e controle de concorrecircncia

1 Quatildeo relevante eacute para a sua aplicaccedilatildeo uma alta performance na leitura e escrita nobanco de dados

Dentre os vaacuterios quesitos avaliados no Formulaacuterio o niacutevel de escolaridade nos mostrauma quase igualdade entre as escolaridades sendo o niacutevel superior completo com a maiorquantidade de participantes como podemos ver na Figura 6

Figura 6 ndash Niacutevel de Escolaridade

Fonte O autor(2019)

Alguns autores afirmam que um dos motivos pelos quais o desenvolvedor eacute levado aimplementar um certo paradigma eacute o natildeo conhecimento de outros paradigmas para medirmos ograu de conhecimento dos participantes com relaccedilatildeo ao paradigma NoSQL questionamos se osmesmos conheciam o paradigma como podemos observar na Figura 7 apenas 8 afirmou quenatildeo conhece o paradigma de banco de dados NoSQL e dentre todos os resultados que apresenta-ram divergecircncia entre o paradigma recomendado e o implementado todos os desenvolvedoresafirmaram que conheciam o paradigma NoSQL tendo ciecircncia desta informaccedilatildeo podemos afirmarque muitas vezes natildeo eacute por natildeo conhecer o paradigma que o desenvolvedor acaba natildeo escolhendoo paradigma mais adequado a sua aplicaccedilatildeo

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 40: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 39

Figura 7 ndash Porcentagem de desenvolvedores que conhecem o paradigma NoSQL

Fonte O autor(2019)

Questionamos ao desenvolvedor no formulaacuterio sobre qual banco de dados o mesmojaacute utilizou em uma de suas aplicaccedilotildees com isso observamos uma grande variedade de SGBDsimplementados como mostra a figura 8 em conjunto com esta questatildeo informamos ao desenvol-vedor que as demais perguntas deveriam ser respondidas levando em consideraccedilatildeo apenas umaaplicaccedilatildeo desenvolvida de preferecircncia a que seu SGBD foi informado na pergunta anterior

Figura 8 ndash SGBDs Implementados

Fonte O autor(2019)

Como podemos ver o paradigma Relacional ainda domina o mercado poreacutem gra-

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 41: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 40

dativamente SGBDs que implementam o paradigma NoSQL vem tomando focirclego o SGBDMySQL dominou a pesquisa com 36 seguido de outros SGBDs relacionais os SGBDs queimplementam o paradigma NoSQl somam cerca de 19 dos SGBDs implementados na pesquisa

44 Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo

Para validarmos o algoritmo de recomendaccedilatildeo utilizamos os dados coletados no for-mulaacuterio e aplicamos no mesmo ao analisarmos os dados retornados por parte do algoritmopodemos identificar algumas divergecircncias entre o paradigma de banco de dados implementadopelo desenvolvedor e o paradigma recomendado pelo algoritmo como mostra a figura 9

Figura 9 ndash Divergecircncia entre paradigma implementado e paradigma recomendado

Fonte O autor(2019)

Para 25 dos SGBDs informados o algoritmo apresentou divergecircncia ou seja o para-digma implementado foi diferente do paradigma que o algoritmo recomendou em alguns casos oparadigma utilizado era o Relacional e o algoritmo recomendou o NoSQL em outros casos foi aocontraacuterio sendo recomendado um banco de dados de paradigma Relacional para uma aplicaccedilatildeoque havia sido implementado um SGBD de paradigma NoSQL a figura 10 nos apresenta quantodos 25 de divergecircncia foram de Relacional para NoSQL e NoSQL para Relacional podemosobservar que 56 das aplicaccedilotildees onde ocorreu divergecircncia foram implementadas com SGBDsde paradigma Relacional e o algoritmo recomendou um SGBD com o paradigma NoSQL e 44ocorreu o inverso

Estatildeo expostos na tabela 11 todos os casos aqui estudados bem como a pontuaccedilatildeoque cada paradigma atingiu esta pontuaccedilatildeo exposta eacute a pontuaccedilatildeo que o algoritmo utilizapara recomendar o algoritmo ideal destacamos de negrito todos os casos que apresentaram

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 42: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 41

Figura 10 ndash Recomendaccedilatildeo de Paradigma Divergentes

Fonte O autor(2019)

divergecircncia onde o algoritmo recomendado foi diferente do escolhido por parte do desenvolvedorobtivemos apenas um caso em que o algoritmo recomendou ambos os paradigmas destacado devermelho onde o desenvolvedor poderia optar por ambos os paradigmas

Podemos destacar como exemplo o caso do desenvolvedor 1 onde a pontuaccedilatildeo doparadigma Relacional chegou a 8 pontos e o paradigma NoSQL recebeu apenas 1 ponto oalgoritmo recomendou a implementaccedilatildeo do paradigma Relacional paradigma este que jaacute erautilizado na aplicaccedilatildeo para chegar a esta pontuaccedilatildeo o algoritmo levou em consideraccedilatildeo fatorescomo a baixa quantidade de usuaacuterios que a aplicaccedilatildeo iraacute alcanccedilar o fato que os usuaacuterios natildeo iratildeosempre salvar e armazenar dados em sua aplicaccedilatildeo e por ter um puacuteblico de utilizaccedilatildeo da aplicaccedilatildeodenominado de ambientes corporativos ou aplicaccedilotildees de alto risco Sempre seguindo este mesmoprinciacutepio o algoritmo recomenda o paradigma levando em consideraccedilatildeo cada caracteriacutesticainformada

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 43: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 4 Desenvolvimento da Pesquisa 42

Tabela 11 ndash Pontuaccedilatildeo e Recomendaccedilotildees

Dev ParadigmaImplemen-tado

ParadigmaRecomen-dado

PontuaccedilatildeoRelacional

PontuaccedilatildeoNoSQL

Dev 1 Relacional Relacional 8 1Dev 2 Relacional Relacional 7 1Dev 3 Relacional Relacional 8 4Dev 4 NoSQL NoSQL 5 7Dev 5 Relacional Relacional 6 5Dev 6 Relacional Relacional 6 4Dev 7 Relacional Relacional 6 5Dev 8 Relacional Relacional 8 4Dev 9 NoSQL Relacional

NoSQL5 5

Dev 10 Relacional NoSQL 4 5Dev 11 Relacional Relacional 8 2Dev 12 Relacional Relacional 6 5Dev 13 Relacional Relacional 6 2Dev 14 Relacional Relacional 6 3Dev 15 Relacional Relacional 6 5Dev 16 NoSQL Relacional 7 2Dev 17 Relacional NoSQL 5 7Dev 18 Relacional Relacional 6 2Dev 19 Relacional NoSQL 5 7Dev 20 NoSQL Relacional 8 4Dev 21 Relacional Relacional 8 4Dev 22 Relacional Relacional 8 4Dev 23 Relacional Relacional 7 3Dev 24 Relacional Relacional 7 4Dev 25 Relacional Relacional 7 1Dev 26 NoSQL Relacional 8 1Dev 27 NoSQL NoSQL 4 5Dev 28 NoSQL Relacional 8 2Dev 29 Relacional Relacional 7 3Dev 30 Relacional Relacional 6 2Dev 31 Relacional Relacional 6 3Dev 32 Relacional Relacional 6 5Dev 33 Relacional Relacional 6 3Dev 34 Relacional NosQL 5 7Dev 35 Relacional Relacional 7 1Dev 36 Relacional NoSQL 5 7

Fonte O Autor (2019)

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 44: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

43

5 Conclusatildeo

51 Discussatildeo

Este trabalho foi realizado com a finalidade de se desenvolver um algoritmo de reco-mendaccedilatildeo de paradigmas Seu propoacutesito teve como palco o processos de desenvolvimento deuma aplicaccedilatildeo onde o desenvolvedor tem que definir vaacuterias tecnologias que seratildeo utilizadas noprocesso de criaccedilatildeo de sua aplicaccedilatildeo e uma destas tecnologias eacute o banco de dados onde seratildeoarmazenados todas as informaccedilotildees da aplicaccedilatildeo para simplificar este processo de escolha eevitar atrasos e ateacute altos custos neste processo foi desenvolvido um algoriacutetimo de recomendaccedilatildeoque indica ao desenvolvedor um paradigma que melhor se adeque a aplicaccedilatildeo desejada

Pode-se constatar que antes da criaccedilatildeo do presente algoriacutetimo natildeo existia estudosque definissem que tipo de paradigma aplicar para cada situaccedilatildeo a partir do momento que odesenvolvedor passa a utilizar a ferramenta deixam de definir que paradigma de banco de dadosiraacute utilizar apenas por afinidade e passa a pensar realmente em criteacuterios e caracteriacutesticas querealmente iratildeo favorecer o crescimento de sua aplicaccedilatildeo a longo prazo tornando diminuindo orisco de se amargar um prejuiacutezo futuro com uma possiacutevel migraccedilatildeo de base de dados trabalhoeste nem sempre barata tatildeo pouco faacutecil de se realizar

52 Contribuiccedilotildees

Decorridas as etapas anteriores constata-se o cumprimento dos objetivos previstosneste estudo ao verificar-se que quando utilizado nas fases iniciais do desenvolvimento de umaaplicaccedilatildeo o algoritmo de recomendaccedilatildeo traacutes inuacutemeras vantagens como o desenvolvedor parade escolher um paradigma de banco dados levando em consideraccedilatildeo apenas um conhecimentopreacutevio do paradigma e passa a receber recomendaccedilotildees de paradigmas levando em consideraccedilatildeoas vantagens e desvantagens de cada paradigma Identificaccedilatildeo de caracteriacutesticas contidas naaplicaccedilatildeo que muitas vezes natildeo satildeo levadas em consideraccedilatildeo por parte do desenvolvedor ouprojetista Reduccedilatildeo de possiacuteveis custos com um processo de migraccedilatildeo de base de dados porpossiacuteveis falhas no momento da escolha

53 Trabalhos Futuros

Este trabalho busca satisfazer uma necessidade visualizada no momento do planeja-mento de desenvolvimento de uma aplicaccedilatildeo ao mesmo tempo levantar questotildees adicionais aserem estudadas posteriormente Com isto o presente estudo pode ser aprimorado e estendido

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 45: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Capiacutetulo 5 Conclusatildeo 44

para diversas outras fases do desenvolvimento podemos destacar alguns pontos como o aprimo-ramento do algoritmo trabalhado levando a indicar natildeo apenas o paradigma mas o SGBD maisadequado a cada aplicaccedilatildeo O aumento da abrangecircncia da pesquisa para uma parcela maior dedesenvolvedores Investigaccedilatildeo quanto a aplicaccedilatildeo do algoritmo realizando testes para se validara eficiecircncia e eficaacutecia ao se aplicar a empresas de pequeno meacutedio e grande porte

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 46: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

45

Referecircncias

BONFIM F L LIANG M Aplicaccedilotildees escalaacuteveis com mean stack Monografia (Graduaccedilatildeo2014 Citado 1 vez(es) na(s) paacutegina(s) 21

CAMPOS S R de S CARVALHO L M T de SCOLFORO J R OLIVEIRA A D deMARTINHAGO A Z VEIGA R D LIMA R R de Banco de dados 2008 Citado 1vez(es) na(s) paacutegina(s) 18

CARNIEL A C Saacute A de A BRISIGHELLO V H P RIBEIRO M X BUENO RCIFERRI R R CIFERRI C D de A Query processing over data warehouse using relationaldatabases and nosql In IEEE Informatica (CLEI) 2012 XXXVIII Conferencia LatinoamericanaEn [Sl] 2012 p 1ndash9 Citado 2 vez(es) na(s) paacutegina(s) 20 e 23

CATTELL R Scalable sql and nosql data stores Acm Sigmod Record ACM v 39 n 4 p12ndash27 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

CODD E F A relational model of data for large shared data banks Communications of theACM ACM v 13 n 6 p 377ndash387 1970 Citado 2 vez(es) na(s) paacutegina(s) 14 e 18

COLVIN A C Editorial commentary Big data big questions Insulin dependence complicatesarthroscopy outcomes Arthroscopy Elsevier v 35 n 5 p 1322ndash1323 2019 Citado 1 vez(es)na(s) paacutegina(s) 14

CORBELLINI A MATEOS C ZUNINO A GODOY D SCHIAFFINO S Persistingbig-data The nosql landscape Information Systems Elsevier v 63 p 1ndash23 2017 Citado 1vez(es) na(s) paacutegina(s) 20

DAVIDSON E Evaluating database management systems In ACM Proceedings of the June7-10 1982 national computer conference [Sl] 1982 p 639ndash648 Citado 2 vez(es) na(s)paacutegina(s) 25 e 27

DAVOUDIAN A CHEN L LIU M A survey on nosql stores ACM Computing Surveys(CSUR) ACM v 51 n 2 p 40 2018 Citado 3 vez(es) na(s) paacutegina(s) 16 25 e 27

DIANA M D GEROSA M Um estudo comparativo de bancos natildeo-relacionais para armazena-mento de dados na web 20 In Proceeding of the WTDBD IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados Belo Horizonte Brazil WTDBD [Sl sn] 2010 Citado 1 vez(es) na(s)paacutegina(s) 26

DIANA M D GEROSA M A Nosql na web 20 Um estudo comparativo de bancos natildeo-relacionais para armazenamento de dados na web 20 In IX Workshop de Teses e Dissertaccedilotildeesem Banco de Dados [Sl sn] 2010 v 9 Citado 4 vez(es) na(s) paacutegina(s) 14 16 29 e 33

ELMASRI R NAVATHE S B PINHEIRO M G et al Sistemas de banco de dados PearsonAddison Wesley Satildeo Paulo 2005 Citado 1 vez(es) na(s) paacutegina(s) 18

FLORENCIO D A OLIVEIRA D R F de FREITAS E L S X SOUZA F d F deWhich fits better a comparative analysis about nosql key-value databases IEEE Latin AmericaTransactions IEEE v 15 n 11 p 2251ndash2256 2017 Citado 1 vez(es) na(s) paacutegina(s) 29

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 47: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Referecircncias 46

FOWLER A NoSQL for dummies [Sl] John Wiley amp Sons 2015 Citado 1 vez(es) na(s)paacutegina(s) 19

FROZZA A A SCHREINER G BRUGGEMANN R MELLO R dos S Dino umaferramenta para importaccedilatildeo de dados em bancos de dados nosql In SBC Anais da XIV EscolaRegional de Banco de Dados (ERBD 2018) [Sl] 2018 Citado 1 vez(es) na(s) paacutegina(s) 15

GALASSI C R Modelagem De Banco De Dados [Sl] Clube de Autores 2009 Citado 1vez(es) na(s) paacutegina(s) 14

GU Y SHEN S ZHENG G Application of nosql database in web crawling InternationalJournal of Digital Content Technology and its Applications Advanced Institute of ConvergenceIT v 5 n 6 2011 Citado 1 vez(es) na(s) paacutegina(s) 24

HIGA G T A Bancos de dados orientados a grafos 2016 Citado 1 vez(es) na(s) paacutegina(s) 24

KAUFELD J LUDERMIR J Access 95 para Windows para leigos [Sl] Berkeley 1996Citado 1 vez(es) na(s) paacutegina(s) 19

LI Y MANOHARAN S A performance comparison of sql and nosql databases In IEEECommunications computers and signal processing (PACRIM) 2013 IEEE pacific rim conferenceon [Sl] 2013 p 15ndash19 Citado 2 vez(es) na(s) paacutegina(s) 26 e 29

LIMA A T C DIoacuteGENES V F PEREIRA J Q Estudo comparativo entre postgresql (sgbd) eapache cassandra (nosql) Anais do Encontro de Computaccedilatildeo do Oeste Potiguar ECOPUFERSA(ISSN 2526-7574) v 2 n 1 2018 Citado 1 vez(es) na(s) paacutegina(s) 29

LoacuteSCIO B F OLIVEIRA H R d PONTES J C d S Nosql no desenvolvimento deaplicaccedilotildees web colaborativas VIII Simpoacutesio Brasileiro de Sistemas Colaborativos v 10 n 1p 11 2011 Citado 6 vez(es) na(s) paacutegina(s) 14 19 20 21 22 e 26

NAYAK A PORIYA A POOJARY D Type of nosql databases and its comparison withrelational databases International Journal of Applied Information Systems v 5 n 4 p 16ndash192013 Citado 1 vez(es) na(s) paacutegina(s) 24

NOSQL NOSQL Databases 2010 Disponiacutevel em lthttpnosql-databaseorggt Acesso em15 de janeiro de 2020 Citado 1 vez(es) na(s) paacutegina(s) 15

OLIVEIRA F R CURA L M del V Avaliaccedilatildeo do desempenho de gerenciadores de bancosde dados multi modelo em aplicaccedilotildees com persistecircncia poliglota 2017 Citado 1 vez(es) na(s)paacutegina(s) 19

OLIVEIRA M de S MELO N de F SANTOS L C dos OLIVEIRA W P de Banco dedados no-sql x banco de dados sql South American Development Society Journal v 4 n 11p 298 2018 Citado 4 vez(es) na(s) paacutegina(s) 16 18 26 e 29

PEREIRA D J P Armazens de dados em bases de dados NoSQL Dissertaccedilatildeo (Mestrado) mdashISEP - Instituto Superior de Engenharia do Porto 2014 Disponiacutevel em lthttphdlhandlenet10400225681gt Citado 2 vez(es) na(s) paacutegina(s) 25 e 27

PEREIRA F S BORGES H P SOARES H R SANTANA S A Utilizaccedilatildeo de banco dedados nosql em ambientes corporativos e-RAC v 3 n 1 2013 Citado 1 vez(es) na(s) paacutegina(s)23

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias
Page 48: PAULO WAGNER SILVA DA COSTA · Uma abordagem para escolha entre os paradigmas de banco de dados Relacional e NoSQL em projetos de software / Paulo Wagner Silva da Costa. - Caicó,

Referecircncias 47

POKORNY J Nosql databases a step to database scalability in web environment InternationalJournal of Web Information Systems Emerald Group Publishing Limited v 9 n 1 p 69ndash822013 Citado 1 vez(es) na(s) paacutegina(s) 23

POLITOWSKI C MARAN V Comparaccedilatildeo de performance entre postgresql e mongodb XEscola Regional de Banco de Dados SBC p 1ndash10 2014 Citado 1 vez(es) na(s) paacutegina(s) 32

ROCKENBACH D A ANDERLE N GRIEBLER D SOUZA S Estudo comparativo debancos de dados nosql Revista Eletrocircnica Argentina-Brasil de Tecnologias da Informaccedilatildeo e daComunicaccedilatildeo v 1 n 8 2018 Citado 2 vez(es) na(s) paacutegina(s) 16 e 29

RYBERG N I FROZZA A A VARELA D de A Diferenccedilas no desenvolvimento deaplicaccedilotildees web com bd tradicional e bd nosql mongodb 2014 Citado 1 vez(es) na(s) paacutegina(s)18

RYS M scalable sql Queue ACM v 9 n 4 p 30 2011 Citado 1 vez(es) na(s) paacutegina(s) 20

SACCOL D d B Materializaccedilatildeo de visotildees xml 2001 Citado 1 vez(es) na(s) paacutegina(s) 21

SADALAGE P J FOWLER M NoSQL distilled a brief guide to the emerging world ofpolyglot persistence [Sl] Pearson Education 2013 Citado 4 vez(es) na(s) paacutegina(s) 15 2021 e 24

SANTOS E U SILVA M A L da Abordagem ao banco de dados orientado a grafos neo4jem um niacutevel empresarial 2013 Citado 2 vez(es) na(s) paacutegina(s) 20 e 24

SILBERSCHATZ A SUNDARSHAN S KORTH H F Sistema de banco de dados [Sl]Elsevier Brasil 2016 Citado 1 vez(es) na(s) paacutegina(s) 14

SOUZA A M de PRADO E P SUN V FANTINATO M Criteacuterios para seleccedilatildeo de sgbdnosql o ponto de vista de especialistas com base na literatura Anais doX Simpoacutesio Brasileiro deSistemas de Informaccedilatildeo (LondrinandashPR Brasil 27 a 30052014 2014 Citado 4 vez(es) na(s)paacutegina(s) 15 26 27 e 29

TIWARI S Professional NoSQL [Sl] John Wiley amp Sons 2011 Citado 1 vez(es) na(s)paacutegina(s) 22

  • Folha de aprovaccedilatildeo
  • Dedicatoacuteria
  • Agradecimentos
  • Epiacutegrafe
  • Resumo
  • Abstract
  • Introduccedilatildeo
    • Contextualizaccedilatildeo e Problema
    • Objetivos
      • Objetivo Geral
      • Objetivos Especiacuteficos
        • Delimitaccedilatildeo do Estudo
        • Justificativa
        • Apresentaccedilatildeo do Trabalho
          • Fundamentaccedilatildeo Teoacuterica
            • Banco de Dados
            • Banco de Dados Relacional
            • Banco de Dados NoSQL
              • Escalabilidade
                • Escalabilidade Horizontal
                • Escalabilidade Vertical
                  • Esquema Flexiacutevel ou Ausecircncia de Esquema
                  • Consistecircncia Eventual
                    • Tipos de NoSQL
                      • Chave Valor
                      • Orientado a Colunas
                      • Orientado a Documentos
                      • Orientado a Grafos
                        • Trabalhos Relacionados
                          • Metodologia
                            • Proposta Metodoloacutegica
                            • Questotildees de Pesquisa
                              • Desenvolvimento da Pesquisa
                                • SQL vs NoSQL
                                • Algoritmo de Recomendaccedilatildeo
                                • Aplicaccedilatildeo do Formulaacuterio
                                • Validaccedilatildeo do Algoritmo de Recomendaccedilatildeo
                                  • Conclusatildeo
                                    • Discussatildeo
                                    • Contribuiccedilotildees
                                    • Trabalhos Futuros
                                      • Referecircncias