Baixe o app para aproveitar ainda mais
Prévia do material em texto
05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 1/41 BANCO DE DADOS APLICADO ABANCO DE DADOS APLICADO A BIG DATABIG DATA INTRODUÇÃO AOSINTRODUÇÃO AOS BANCOS DE DADOS NÃOBANCOS DE DADOS NÃO RELACIONAIS (NOSQL)RELACIONAIS (NOSQL) Autor: Esp. Everton Gomede Revisor : Isabel Cr is t ina S iqueira da S i lva I N I C I A R 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 2/41 Introdução Se você desenvolveu aplicativos para web nos últimos anos, provavelmente, já utilizou um banco de dados relacional como armazenamento de dados primários. Se você está familiarizado com Structured Query Language (SQL), pode apreciar a utilidade de um modelo de dados bem normalizado, a necessidade de transações e as garantias fornecidas por um mecanismo de armazenamento durável. Simpli�cando, o banco de dados relacional é maduro e bem conhecido. Quando os desenvolvedores começam a defender alternativas para armazenamento de dados, questões sobre a viabilidade e a utilidade dessas novas tecnologias começam a surgir. Esses novos tipos de armazenamento são substituições de sistemas de banco de dados relacionais? Quem os está utilizando na produção, e por quê? Quais compensações estão envolvidas na mudança para um banco de dados não relacional? As respostas a essas perguntas dependem da resposta a esta: por que os desenvolvedores estão interessados nos bancos de dados não relacionais? Um banco de dados não relacional é um sistema de gerenciamento de banco de dados projetado para desenvolver, rapidamente, aplicativos da web e infraestrutura de internet. introdução 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 3/41 A história dos bancos de dados não relacionais é breve, mas vale a pena ser contada, principalmente do ponto de vista do seu mais ilustre representante: o MongoDB, pois ele nasceu de um projeto mais ambicioso (BANKER et al ., 2016). Em meados de 2007, uma startup da cidade de Nova York, chamada 10gen, começou a trabalhar em uma plataforma como serviço (PaaS), composta por um servidor de aplicativos e um banco de dados, que hospedaria aplicativos da web e os escalaria conforme necessário. Assim como o aplicativo do Google Engine, a plataforma da 10gen foi projetada para lidar com dimensionamento e gerenciamento de infraestrutura de hardware e software automaticamente, liberando os desenvolvedores para se concentrarem exclusivamente no código do aplicativo. A 10gen, �nalmente, descobriu que a maioria dos Bancos de DadosBancos de Dados não Relacionais enão Relacionais e sua Utilização emsua Utilização em Aplicações de Aplicações de BigBig DataData 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 4/41 desenvolvedores não se sente confortável abrindo mão de tanto controle sobre suas pilhas de tecnologia, mas os usuários desejam a nova tecnologia de banco de dados da 10gen. Isso levou a 10gen a concentrar seus esforços exclusivamente no banco de dados que se tornou o MongoDB (BANKER et al ., 2016). Desde então, a 10gen mudou seu nome para MongoDB, Inc. e continua a patrocinar o desenvolvimento do banco de dados como um projeto de código aberto. O código está disponível publicamente e é livre para ser modi�cado e usado (sujeito aos termos de sua licença), e a comunidade em geral é encorajada a arquivar relatórios de bugs e enviar correções. Ainda assim, a maior parte do núcleo do MongoDB foi feita pelos desenvolvedores, que são fundadores ou funcionários da empresa, e o código do projeto continua a ser determinado pelas necessidades de sua comunidade de usuários e pelo objetivo abrangente de criar um banco de dados que combina os melhores recursos dos bancos de dados relacionais e os armazenamentos dos pares distribuídos. Assim, o modelo de negócios da MongoDB, Inc. não é contrário ao de outras empresas de código aberto bem conhecidas: apoiar o desenvolvimento de um produto de código aberto e fornecer serviços de assinatura para usuários �nais (BANKER et al., 2016). A coisa mais importante a se lembrar é que o MongoDB pretendia ser uma parte extremamente simples, mas �exível, de uma pilha de aplicativos da web . Esses tipos de casos de uso direcionaram as escolhas feitas no desenvolvimento do MongoDB e ajudam a explicar suas características. Além disso, o MongoDB começou a ser usado para aplicações utilizando o conceito conhecido como big data . Big data é um termo genérico para qualquer coleção de conjuntos de dados tão grandes ou complexos que torna-se difícil processá- los usando técnicas tradicionais de gerenciamento de dados como, por exemplo, os RDBMS (sistemas de gerenciamento de banco de dados relacional) (CIELEN; MEYSMAN; ALI, 2016, p. 1). 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 5/41 A ciência de dados e o big data são usados em quase todos os lugares, tanto em contextos comerciais quanto não comerciais. O número de casos de uso é vasto e os exemplos que forneceremos, ao longo deste estudo, apenas arranham a superfície das possibilidades. Empresas comerciais de quase todos os setores usam ciência de dados e big data para obter insights sobre seus clientes, processos, equipes, conclusões e produtos. Muitas empresas usam ciência de dados para oferecer aos clientes uma melhor experiência de usuário, bem como para venda cruzada, venda incrementada e personalização de suas ofertas. Um bom exemplo disso é o Google AdSense, que coleta dados de usuários da internet para que mensagens comerciais relevantes possam ser direcionadas a eles. O MaxPoint é outro exemplo de publicidade personalizada em tempo real (CAMPELLO; CALDEIRA, 2014). Pro�ssionais de recursos humanos usam análises de pessoas e mineração de texto para selecionar candidatos, monitorar o humor de funcionários e estudar redes informais entre colegas de trabalho. A análise de pessoas é ponto central e tema do livro Moneyball: a arte de ganhar um jogo injusto . No livro (e �lme), vemos que o processo de seleção tradicional para o beisebol americano era aleatório, e substituí-lo, por sinais correlatos, mudou tudo. Baseando-se em estatísticas, foram contratados os jogadores certos, que foram colocados nas posições em que teriam maior vantagem. As instituições �nanceiras usam ciência de dados para prever mercados de ações, determinar o risco de emprestar dinheiro e aprender como atrair novos clientes para seus serviços. No momento em que esse estudo foi escrito, pelo menos 50% das negociações, em todo o mundo, estavam sendo executadas automaticamente por máquinas, com base em algoritmos desenvolvidos por cientistas de dados que trabalham em algoritmos de negociação (DOURADO, 2013). Organizações governamentais também estão cientes do valor dos dados. Muitas organizações governamentais não contam apenas com cientistas de dados internos para descobrir informações valiosas, mas também para compartilhar dados com o público. Além disso, esses dados podem ser 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 6/41 utilizados para obter insights ou construir aplicativos baseados em dados. Por exemplo, Data.gov é um dos conjuntos de dados abertos do governo dos EUA. Em uma organização governamental, um cientista de dados trabalha em diversos projetos, como detecção de fraude e outras atividades criminosas ou em otimização de �nanciamento do projeto. Um exemplo bem conhecido foi o caso revelado por Edward Snowden, que vazou documentos internos, da Agência de Segurança Nacional Americana e do Governo Britânico, que mostram claramente como eles usarama ciência de dados e o big data para monitorar milhões de indivíduos. Essas organizações de segurança arrecadaram 5 bilhões de registros de dados de aplicativos amplamente difundidos, como Google Maps, Angry Birds, e-mail e mensagens de texto, dentre muitas outras fontes de dados, e, em seguida, aplicam técnicas da ciência de dados para destilar informações (CIELEN; MEYSMAN; ALI, 2016). As Organizações Não Governamentais (ONGs) também conhecem o uso de dados e os utilizam para arrecadar dinheiro e defender suas causas. A The World Wildlife Fund (WWF), por exemplo, emprega cientistas de dados para aumentar a e�cácia de sua arrecadação de fundos. Muitos cientistas de dados dedicam parte de seu tempo ajudando ONGs, porque elas, muitas vezes, não têm recursos para coletar dados e empregar cientistas de dados. O DataKind, por exemplo, é um grupo de cientistas de dados que dedica seu tempo ao benefício da humanidade (BANKER et al., 2016). As universidades utilizam a ciência de dados em suas pesquisas e também para aprimorar a experiência de estudo de seus alunos. A ascensão de cursos on-line abertos e massivos (MOOC) produz muitos dados, o que permite que as universidades estudem como esse tipo de aprendizagem pode complementar as aulas tradicionais. MOOCs são um ativo inestimável, então, se você deseja se tornar um cientista de dados e pro�ssional de big data , de�nitivamente, dê uma olhada em alguns dos mais conhecidos: Coursera, Udacity e edX. O cenário do big data e da ciência de dados muda rapidamente, e os MOOCs permitem que você se mantenha atualizado, seguindo os cursos das melhores universidades. Se você ainda não os conhece, reserve um tempo para fazer isso. O quadro, a seguir, apresenta um resumo das aplicações do big data em diversos contextos. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 7/41 Contexto Aplicação Benefícios Exemplos Empresas comerciais Ciência de dados e big data Obter insights sobre seus clientes, processos, equipe, conclusão e produtos. Google AdSense Recursos humanos Big data e aprendizado de máquina Análises de pessoas e mineração de texto para selecionar candidatos, monitorar o humor de funcionários e estudar redes informais entre colegas de trabalho. Linkedin Organizações governamentais Big data e sensores Obter informações dos cidadãos e suas interações com câmeras etc. Data.gov Organizações não governamentais Big data Usam para arrecadar dinheiro e defender suas causas. WWF Universidades Big data e bancos não relacionais Usam ciência de dados em suas pesquisas e também para aprimorar a experiência de Coursera, Udacity e edX 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 8/41 Quadro 1.1 - Resumo das aplicações de big data e bancos não relacionais Fonte: Elaborado pelo autor. #PraCegoVer : o quadro apresenta um resumo dos cenários de utilização do banco de dados NoSQL no contexto de big data . Além disso, traz alguns exemplos de aplicações que podem ser encontradas na internet. Como podemos veri�car no Quadro 1.1, existem diversas aplicações para os bancos de dados não relacionais. Muito provavelmente você já utilizou alguns deles ao navegar em um site de comércio eletrônico ou fazer um curso em uma das plataformas citadas. Conhecimento Teste seus Conhecimentos (Atividade não pontuada) Big data é um termo genérico para qualquer coleção de conjuntos de dados tão grandes ou complexos que se torna difícil processá-los usando técnicas tradicionais de gerenciamento de dados. Algumas das dimensões que não podem ser facilmente processadas envolvem velocidade, volume e volatilidade. estudo de seus alunos. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 9/41 CIELEN, D.; MEYSMAN, A. D. B.; ALI, A. Introducing data science . Big data, machine learning, and more, using Python tools. New York: Manning Publications Co., 2016. Assinale a alternativa que apresenta uma tecnologia para armazenamento de dados que pode ter di�culdades ao lidar com o cenário de big data. a) MongoDB. b) Bancos de dados NoSQL. c) Apache Hadoop. d) RDBMS. e) MOOC. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 10/41 Um banco de dados não relacional (NoSQL), como o MongoDB, por exemplo, é um sistema de gerenciamento de banco de dados projetado para desenvolver, rapidamente, aplicativos web, big data e infraestrutura de internet. O modelo de dados e as estratégias de persistência são construídos para alta capacidade de leitura e gravação e têm a capacidade de escalar facilmente e com failover . Se um aplicativo requer apenas um nó de banco de dados ou dezenas deles, o MongoDB pode fornecer um desempenho surpreendentemente bom. Se você teve di�culdades dimensionando bancos de dados relacionais, isso pode ser uma ótima notícia. Mas nem todo mundo precisa operar em escala. Talvez você só precise de um único servidor de Casos de UsoCasos de Uso Visando DirecionarVisando Direcionar os Cenários deos Cenários de Utilização dosUtilização dos Bancos de DadosBancos de Dados não Relacionaisnão Relacionais 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 11/41 banco de dados (BANKER et al. , 2016). Talvez a maior razão para os desenvolvedores utilizarem o MongoDB não seja por causa de sua possibilidade de escalonamento, mas devido ao seu modelo de dados intuitivo. O MongoDB armazena suas informações em documentos, em vez de linhas. Mas o que é um documento? Segue um exemplo: { _id: 10, username: 'everton', email: 'evertongomede@gmail.com' } Esse é um documento bastante simples: armazenar alguns campos de informações sobre um usuário. Qual é a vantagem desse modelo? Imagine que você deseja armazenar vários e-mails para cada usuário. No mundo relacional, você pode criar uma tabela separada de endereços de e-mail e dos usuários aos quais eles estão associados. Já o MongoDB oferece outra maneira de armazená-los: { _id: 10, username: everton, email: [ 'evertongomede@gmail.com', 'gomede@gmail.com' ] 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 12/41 } E, assim, você criou uma variedade de endereços de e-mail e resolveu seu problema. Nesse caso, como desenvolvedor, você achará extremamente útil ser capaz de armazenar um documento estruturado dessa forma em seu banco de dados, sem se preocupar em ajustar um esquema ou adicionar mais tabelas quando seus dados mudarem (BANKER et al., 2016). O formato de documento do MongoDB é baseado em JSON, um esquema popular para armazenar estruturas de dados. JSON é um acrônimo para JavaScript Object Notation . Como você acabou de ver, a estrutura JSON consiste em chaves e valores que podem ser aninhados de forma arbitrária. Tais estruturas são análogas aos dicionários e mapas hash de outras linguagens de programação. Um modelo de dados baseado em documento pode representar estruturas de dados ricas e hierárquicas. Tais estruturas, em bancos relacionais, muitas vezes, só podem ser feitas com as junções de várias tabelas comuns aos bancos de dados relacionais (CIELEN; MEYSMAN; ALI, 2016). Por exemplo, suponha que você esteja modelando produtos para um site de comércio eletrônico. Com um modelo de dados relacional totalmente normalizado, as informações de qualquer produto podem ser divididas em dezenas de tabelas. Se você deseja obter uma representação de produto do banco de dados, você precisará escrever uma consulta SQL cheia de junções. Em contraste, com um modelo de documento, a maioria das informações de umproduto pode ser representada dentro de um único documento. Quando você abre o shell JavaScript do MongoDB, você pode, facilmente, obter uma representação compreensível de seu produto, com todas as suas informações organizadas hierarquicamente, em uma estrutura semelhante ao JSON. Além disso, depois de o produto estar armazenado, você também pode consultá-lo e manipulá-lo. Os recursos de consulta do MongoDB são projetados especi�camente para manipular documentos estruturados, para que os usuários que mudam de bancos de dados relacionais experimentem um nível semelhante de poder de consulta. Além disso, a maioria dos desenvolvedores, 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 13/41 atualmente, trabalha com orientação a objetos e quer um armazenamento de dados que mapeie melhor os objetos. Com o MongoDB, um objeto de�nido na linguagem de programação pode, muitas vezes, ser persistido como está, removendo parte da complexidade dos mapeadores de objetos. Se você tem experiência com bancos de dados relacionais, pode ser útil abordar o MongoDB na perspectiva da transição de suas habilidades existentes nesse novo banco de dados (CAMPELLO; CALDEIRA, 2014). O MongoDB foi criticado em várias frentes, às vezes, de forma justa e, às vezes, injustamente. Nossa visão é que ele é uma ferramenta na caixa de ferramentas do desenvolvedor, como qualquer outro banco de dados, e você deve conhecer suas limitações e pontos fortes. Algumas cargas de trabalho exigem junções e gerenciamento de memória diferentes do que o MongoDB fornece. Por outro lado, o modelo baseado em documento se encaixa particularmente bem com algumas cargas de trabalho, e a falta de um esquema signi�ca que o MongoDB pode ser uma das melhores ferramentas para desenvolver rapidamente e iterando em um aplicativo (CIELEN; MEYSMAN; ALI, 2016). Modelo de Dados do Documento O modelo de dados do MongoDB é orientado a documentos. Se você não está familiarizado com documentos no contexto de bancos de dados, o conceito pode ser demonstrado mais facilmente por um exemplo. Um documento JSON precisa de aspas duplas em todos os lugares, exceto para valores numéricos. A lista, a seguir, mostra a versão JavaScript de um documento JSON, em que as aspas duplas não são necessárias. { _id: ObjectID('5bd9e8e1acefdaa2212108aa961b'), title: 'MongoDB', url: 'http://mongodb.com/', 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 14/41 author: 'everton', vote_count: 20, (1) tags: ['databases', 'mongodb', 'indexing'], (2) image: { url: 'http://mongodb/db.jpg', caption: 'Um banco de dados.', type: 'jpg', size: 85181, data: 'Binary' }, (3) comments: [ { user: 'everton', text: 'Artigo' }, { user: 'everton', text: 'Artigo' } ] } 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 15/41 Essa lista mostra um documento JSON representando um artigo em um site de notícias sociais (por exemplo, Reddit ou Twitter). Como você pode ver, um documento é essencialmente um conjunto de nomes de propriedades e seus valores. Os valores podem ser tipos de dados simples, como strings , números e datas. Mas esses valores também podem ser matrizes e até mesmo outros documentos JSON, como na Linha (1). Essas últimas construções permitem que os documentos representem uma variedade de estruturas de dados ricas. Você verá que a amostra do documento tem uma propriedade, tags , como na Linha (2), que armazena as tags do artigo em uma matriz. Mas mais interessante é a propriedade de comentários, como na Linha (3), que é uma matriz de documentos de comentários. Internamente, o MongoDB armazena documentos em um formato chamado Binary JSON ou BSON. BSON tem uma estrutura semelhante, mas se destina ao armazenamento de muitos documentos. Quando você consulta o MongoDB e obtém os resultados de volta, eles serão traduzidos em uma estrutura de dados fácil de ler. O shell do MongoDB usa JavaScript e obtém documentos em JSON, que é o que usaremos para a maioria de nossos exemplos. Onde os bancos de dados relacionais têm tabelas, o MongoDB tem coleções. Em outras palavras, MySQL (um banco de dados relacional popular) mantém seus dados em tabelas de linhas, enquanto o MongoDB mantém seus dados em coleções de documentos, que você pode considerar como um grupo de documentos (BANKER et al ., 2016). Coleções são um conceito importante no MongoDB. Os dados em uma coleção são armazenados em disco, e a maioria das consultas exige que você especi�que qual coleção deseja segmentar. Vamos parar um pouco para comparar as coleções do MongoDB com a representação de um banco relacional padrão de banco de dados dos mesmos dados. A Figura 1.1 mostra um provável análogo relacional. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 16/41 Porque as tabelas são essencialmente planas, a representação dos vários relacionamentos “um-para-muitos”, em seu documento de postagem, requer várias tabelas. Você começa com uma tabela de posts contendo as informações essenciais para cada postagem. Então, você cria três outras tabelas, cada uma delas inclui um campo, post_id , referenciando a postagem original. A técnica de separar os dados do objeto em várias tabelas é conhecida como normalização. Um dado normalizado set , dentre outras coisas, garante que cada unidade de dados seja representada em um único lugar. Mas a normalização estrita tem seus custos. Notavelmente, alguma montagem é necessária. Para exibir a postagem que você acabou de fazer referência, você precisará realizar uma junção entre as postagens e as tabelas de comentários. Em última análise, a questão de saber se a normalização estrita é necessária depende do tipo de dado que você está modelando. O que é importante notar aqui é que um modelo de dados orientado a documento representa Figura 1.1 - Modelo relacional para o exemplo do JSON listado anteriormente Fonte: Adaptada de Banker et al. (2016, p. 8). #PraCegoVer : a imagem apresenta um exemplo de modelagem, utilizando um banco de dados relacional, de como o código escrito em JSON seria implementado. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 17/41 naturalmente os dados de uma forma agregada, permitindo que você trabalhe com um objeto holisticamente: todos os dados que representam uma postagem, de comentários a tags , podem ser encaixados em um único objeto de banco de dados (BANKER et al., 2016). Conhecimento Teste seus Conhecimentos (Atividade não pontuada) Os bancos de dados não relacionais permitem que um par de chaves e valores possa ser utilizado para o armazenamento de dados. O formato para o armazenamento é conhecido como JSON. Esse formato é transformado para o BSON, de maneira a facilitar o armazenamento interno do MongoDB. BANKER, K. et al . MongoDB in action . Second Edition. New York: Manning Publications Co., 2016. Assinale a alternativa que indica qual a principal vantagem, do ponto de vista da modelagem, para o desenvolvedor de software, ao utilizar o armazenamento chave- valor. a) Existe a necessidade de junções com chaves estrangeiras, para a recuperação dos dados do banco. b) Existe a necessidade de normalização utilizando várias formas normais, para evitar anomalias. c) Não existe a necessidade de implementação de um modelo de dados que seja �xo ou complexo. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 18/41 d) Não é necessária a alteração de um esquema, no caso de alteração da estrutura do modelo. e) Existe a necessidade do armazenamento em BSON, paraque os dados possam ser binários. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 19/41 Provavelmente, você já percebeu que, além de fornecerem uma estrutura rica, os documentos não precisam estar em conformidade com um esquema previamente especi�cado. Com um banco de dados relacional, você armazena linhas em uma tabela. Cada tabela tem um esquema estritamente de�nido, especi�cando quais colunas e tipos são permitidos. Se alguma linha em uma tabela precisar de um campo extra, você deve alterar a tabela explicitamente. O MongoDB agrupa documentos em coleções, contêineres, que não impõem nenhum tipo de esquema (BANKER et al., 2016). Em teoria, cada documento em uma coleção pode ter uma estrutura completamente diferente; na prática, o documento de uma coleção será relativamente uniforme. Por exemplo, cada documento na coleção de postagens terá campos para título, tags, comentários etc. Princípios dePrincípios de DesignDesign Comparando-osComparando-os com os Bancos decom os Bancos de Dados RelacionaisDados Relacionais 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 20/41 Vantagens do Modelo sem Esquema Essa falta de esquema imposto confere algumas vantagens. Primeiro, o código do seu aplicativo, e não o banco de dados, reforça a estrutura dos dados. Isso pode acelerar a aplicação inicial de desenvolvimento, quando o esquema muda com frequência. Em segundo lugar, e mais signi�cativamente, um modelo sem esquema permite que você represente dados com propriedades verdadeiramente variáveis. Por exemplo, imagine que você está construindo um catálogo de produtos de comércio eletrônico. Não há como saber, com antecedência, quais atributos um produto terá, então, o aplicativo precisará levar em conta essa variabilidade. A forma tradicional de lidar com isso em um banco de dados de esquema �xo é usar o valor padrão do atributo de entidade, mostrado na Figura 1.2. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 21/41 O que você viu foi uma parte de um modelo de dados para uma estrutura de comércio eletrônico. Observe a série de tabelas que são essencialmente iguais, exceto por um único atributo, valor (value) , que varia apenas por tipo de dados. Essa estrutura permite que um administrador de�na tipos de produtos adicionais e seus atributos, mas o resultado é uma complexidade signi�cativa. Pense em utilizar o shell do MySQL para examinar ou atualizar um produto modelado nesse caminho; as junções SQL necessárias para Figura 1.2 - Extrato de um esquema para um e-commerce Fonte: Adaptada de Banker et al. (2016, p. 9). #PraCegoVer : a imagem apresenta um extrato de um modelo de dados baseado em um banco de dados relacional. No caso da falta de um determinado valor, o padrão é assumido. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 22/41 montar o produto seriam enormemente complexas. Modelado como um documento, nenhuma junção é necessária, e novos atributos podem ser adicionados dinamicamente. Nem todos os modelos relacionais são tão complexos, mas o ponto é que, quando você está desenvolvendo um aplicativo MongoDB, não precisa se preocupar tanto sobre quais campos de dados você precisará no futuro (DOURADO, 2013). Consultas ad hoc Dizer que um sistema suporta consultas ad hoc é dizer que não é necessário de�nir, de forma antecipada, quais tipos de consultas o sistema aceitará. Bancos de dados relacionais têm essa propriedade; eles executarão �elmente qualquer consulta SQL bem formada, com qualquer número de condições. Consultas ad hoc são fáceis de utilizar se os únicos bancos de dados que você já tem usado são relacionais. Mas nem todos os bancos de dados oferecem suporte a consultas dinâmicas. Por exemplo, armazenamentos de valores- chave podem ser consultados em apenas um eixo: a chave do valor. Como muitos outros sistemas, armazenamentos de valores-chave sacri�cam o rico poder de consulta em troca de um simples modelo de escalabilidade. Um dos objetivos de design do MongoDB é preservar a maior parte da consulta; poder este que é tão fundamental para o mundo do banco de dados relacional. Para ver como a linguagem de consulta do MongoDB funciona, vamos apresentar um exemplo simples envolvendo postagens e comentários. Suponha que você queira encontrar todas as postagens marcadas com o termo “política” tendo mais de 10 votos. Uma consulta SQL seria assim: SELECT * FROM posts INNER JOIN posts_tags ON posts.id = posts_tags.post_id INNER JOIN tags ON posts_tags.tag_id == tags.id WHERE tags.text = 'politics' AND posts.vote_count > 10; 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 23/41 A consulta equivalente no MongoDB é especi�cada usando um documento como um matcher. A chave $gt especial indica a condição maior que: db.posts.find({'tags': 'politics', 'vote_count': {'$gt': 10}}); Observe que as duas consultas assumem um modelo de dados diferente. A consulta SQL depende de um modelo estritamente normalizado, em que os posts e as tags são armazenados em tabelas distintas, enquanto a consulta do MongoDB assume que as tags são armazenadas em cada documento de postagem. Mas ambas as consultas demonstram a capacidade de consultar combinações arbitrárias de atributos, que é a essência da capacidade de consulta ad hoc . Índices Um elemento crítico das consultas ad hoc é que elas procuram valores que você ainda não conhece quando cria o banco de dados. Conforme você adiciona mais e mais documentos ao seu banco de dados, a busca por um valor se torna cada vez mais cara; é uma agulha em um palheiro, em constante expansão. Portanto, você precisa de uma maneira e�ciente de pesquisar seus dados. A solução para isso é um índice. A melhor maneira de entender os índices de banco de dados é por analogia: muitos livros têm índices que combinam palavras-chaves com números de página (BANKER et al ., 2016). Suponha que você tem um livro de receitas e deseja encontrar todas as receitas que utilizam peras (talvez você tenha muitas peras e queira utilizá-las antes que estraguem). A abordagem demorada seria examinar cada receita e veri�car cada lista de ingredientes, para ver se há peras no preparo. A maioria das pessoas preferiria veri�car o índice para a entrada “peras”, que forneceria uma lista de todas as receitas que contêm peras. Os índices de banco de dados são estruturas de dados que fornecem esse mesmo serviço. Os índices, no MongoDB, são implementados 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 24/41 como uma estrutura de dados B-tree. Índices de árvore B, também usados em muitos bancos de dados relacionais, são otimizados para uma variedade de consultas, incluindo varreduras de intervalo e consultas com cláusulas de classi�cação. Mas o WiredTiger tem suporte para log estruturado merge-trees (LSM), que deve estar disponível na liberação para produção do MongoDB. A maioria dos bancos de dados dá, a cada documento ou linha, uma chave primária, um identi�cador único para esse dado. A chave primária é geralmente indexada automaticamente, para que cada dado possa ser acessado de forma e�ciente, usando sua chave exclusiva, e o MongoDB não é diferente. Mas cada banco de dados permite que você também indexe os dados dentro dessa linha ou desse documento. Tais índices são chamados de índices secundários. Muitos bancos de dados NoSQL, como HBase, são considerados armazenamento valores-chave, porque não permitem nenhum índice secundário (BANKER et al ., 2016). Esse é um recurso signi�cativo no MongoDB; ao propiciarvários índices secundários, o MongoDB permite que os usuários otimizem uma ampla variedade de consultas. Com o MongoDB, você pode criar até 64 índices por coleção. Os tipos de índices suportados saibamaisSaiba mais Indexação é um assunto relevante para qualquer tipo de tecnologia que recupere informações. Nesse caso, vale a pena saber mais sobre tais recursos e como utilizá-los para melhorar a velocidade de recuperação de dados. Uma das melhores referências para o MongoDB é sua documentação o�cial. Saiba mais, ao acessar o link a seguir. A C E S S A R https://docs.mongodb.com/manual/indexes/ 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 25/41 incluem todos aqueles que você encontraria em um RDBMS; ascendente, descendente, índices únicos, de chave composta, hash , de texto e até mesmo geoespaciais são suportados. Como o MongoDB e a maioria dos RDBMSs usam a mesma estrutura de dados para seus índices, o conselho para o gerenciamento de índices, em ambos os sistemas, é semelhante. praticar Vamos Praticar Vimos que a construção de junções e a complexidade de um código para recuperação de informações pode reduzir, drasticamente, ao se utilizar um banco de dados não relacional. Isso pode ser de grande importância no dia a dia e facilitar o desenvolvimento de aplicações para big data . A partir do que foi apresentado, elabore um código de programação para recuperar a seguinte informação, baseando-se no modelo não relacional: SELECT * FROM posts INNER JOIN posts_tags ON posts.id = posts_tags.post_id INNER JOIN tags ON posts_tags.tag_id == tags.id WHERE tags.text = 'economics' AND posts.vote_count > 5; 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 26/41 Existem mais pontos importantes que podemos destacar com relação ao modelo relacional. Por exemplo, a replicação de dados é comum para permitir o escalonamento horizontal. A durabilidade das transações também é outro ponto importante para o modelo de pares de chave-valor. Além disso, outro recurso muito útil é a estratégica de dimensionamento dos bancos, para suportar as cargas necessárias. Vamos ver alguns deles, com um pouco mais de detalhes, na sequência. Uma visão inicial dos bancos de dados NoSQL, em especial, o MongoDB, pode ser resumida, de maneira a destacar os elementos fundamentais desse tipo de tecnologia. O infográ�co a seguir apresenta tais informações. Pontos AdicionaisPontos Adicionais do Modelo nãodo Modelo não RelacionalRelacional NoSQL 1 2 3 4 5 6 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 27/41 #PraCegoVer : o infográ�co apresenta seis tópicos em linha horizontal que destacam os elementos fundamentais dos bancos de dados NoSQL. Ao clicar no primeiro tópico é apresentado o título “Big Data”, logo abaixo está o conceito “Conjunto de ferramentas, princípios e técnicas utilizadas para gerenciar um volume de dados muito grande”; ao lado do conceito há a imagem ilustrativa de um monitor que apresenta um grá�co em barras. Cada uma das barras apresenta uma cor: azul, vermelho, verde-água, amarelo, branco e roxo. No canto direito do monitor, há três engrenagens, uma de cada cor: verde-água, azul e amarelo. Ao clicar no segundo tópico é apresentado o título “Consultas ad hoc”, logo abaixo está o conceito “Consultas em bancos de dados feitas para recuperar linhas de acordo com os critérios de seleção”; ao lado do conceito há a imagem ilustrativa de três bancos de dados seguidos, nas cores: verde-água, amarelo e azul-escuro. Na parte superior dos bancos de dados há uma �echa vermelha, que inicia no banco de dados azul escuro e vai até o amarelo. Na parte inferior dos bancos de dados há uma �echa vermelha, que inicia no verde-água e vai até o azul-escuro. Ao clicar no terceiro tópico é apresentado o título “dimensionamento”, logo abaixo está o conceito “Estratégia para escalonar os recursos de software e hardware para atender a demanda de usuários”; ao lado do conceito há a imagem ilustrativa de um lápis azul claro, sobre uma folha com linhas. Na parte superior da folha há uma linha horizontal com três marcações. A marcação do canto Big data Conjunto de ferramentas, princípios e técnicas utilizadas para gerenciar um volume de dados muito grande. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 28/41 esquerdo apresenta um ícone de pessoa em cor verde-água. A marcação do meio apresenta um ícone de pessoa em cor amarela. A marcação do canto direito apresenta um ícone de pessoa em cor vermelha. Ao clicar no quarto tópico é apresentado o título “Reaplicação”, logo abaixo está o conceito “Estratégia para reduzir a indisponibilidade dos bancos de dados e aumentar seu poder de processamento”; ao lado do conceito há a imagem ilustrativa de um monitor que apresenta uma folha com linhas, na parte superior direita do monitor há três engrenagens, uma de cada cor: verde-água, amarelo e vermelho. Ao lado do monitor há um celular que apresenta uma folha com linhas. Entre as duas imagens há uma �echa, que sai do monitor em direção ao celular. Ao clicar no quinto tópico é apresentado o título “índices”, logo abaixo está o conceito “Recurso utilizado para acelerar a recuperação dos dados em um banco de dados”; ao lado do conceito há a imagem ilustrativa de mãos segurando um tablet. O tablet apresenta uma linha crescente de grá�co, na cor vermelha e um grá�co em barras, com quatro barras, nas cores: azul-claro, vermelho, verde-água e amarelo. Ao clicar no sexto tópico é apresentado o título “Chave-valor”, logo abaixo está o conceito “A forma básica de armazenamento de dados em um banco de dados NoSQL, ao lado do conceito há a imagem ilustrativa de três bancos de dados, nas cores: verde-água, amarelo e azul-escuro. Replicação O MongoDB fornece replicação de banco de dados por meio de uma topologia conhecida como conjunto de réplicas. Conjuntos de réplicas distribuem dados em duas ou mais máquinas, para redundância e para automatizar failover , em caso de falhas no servidor e na rede. Além disso, a replicação é usada para dimensionar leituras de banco de dados. Se você tiver um aplicativo de leitura intensiva, como costuma ser o caso da web, é possível espalhar leituras de bancos de dados entre máquinas no cluster (BANKER et al., 2016). 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 29/41 Conjuntos de Réplicas Os conjuntos de réplicas consistem em muitos servidores MongoDB, geralmente, com cada servidor em uma máquina física separada; vamos chamá-los de nós. A qualquer momento, um nó serve como o nó primário do conjunto de réplicas, e um ou mais nós servem como secundários. Assim como a replicação primary/secondary (primária/secundária), com a qual você já deve estar familiarizado em outros bancos de dados, o nó primário de um conjunto de réplicas pode aceitar ambos, leitura e escrita, mas os nós secundários são somente para leitura. O que torna os conjuntos de réplicas únicos é seu suporte para failover automatizado: se o nó primário falhar, o cluster irá escolher um nó secundário e, automaticamente, promovê-lo ao primário. Quando o antigo primário voltar on-line , fará isso como um secundário. Uma ilustração desse processo é apresentada na Figura 1.3. Figura 1.3 - Exemplo de funcionamento de um ambiente de replicação Fonte: Adaptada de Banker et al. (2016, p. 12). #PraCegoVer : a imagem apresenta um exemplo de funcionamento de replicação. Em (1), a replicação ocorre normalmente. Em (2), um dos nós falha. Por �m, em (3), os nós se recon�guram para recuperar a replicação. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K…30/41 Velocidade e Durabilidade Para entender a abordagem do MongoDB para durabilidade, deve-se, primeiramente, considerar algumas ideias. Nos sistemas de bancos de dados, existe uma relação inversa entre velocidade de gravação e durabilidade. A velocidade de gravação pode ser entendida como o volume de inserções, atualizações e exclusões que um banco de dados pode processar em um determinado momento (BANKER et al ., 2016). A durabilidade refere-se ao nível de garantia de que as operações de gravação tornaram-se permanentes. Por exemplo, suponha que você escreva 100 registros, de 50KB cada, para um banco de dados e, em seguida, desligue o servidor. Esses registros serão recuperáveis? Quando você coloca a máquina on-line novamente, ou seja, a liga? A resposta depende do seu sistema de banco de dados, sua con�guração e do hardware que o hospeda. A maioria dos bancos de dados permite durabilidade por padrão, então, você estará seguro se isso acontecer. Para algumas aplicações, como o armazenamento de linhas de registro, pode fazer mais sentido ter gravações mais rápidas, mesmo se houver risco de perda de dados. O problema é que gravar em um disco rígido magnético é muitas vezes mais lento do que gravar em RAM. Certos bancos de dados, como o Memcached, gravam exclusivamente na RAM, o que os torna extremamente rápidos, mas completamente voláteis. Por outro lado, poucos bancos de dados gravam exclusivamente para o disco, porque o baixo desempenho de tal operação é inaceitável. Portanto, os designers de banco de dados, muitas vezes, precisam fazer concessões para fornecer o melhor equilíbrio entre velocidade e durabilidade. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 31/41 reflitaRe�ita O mundo da tecnologia atual exige uma velocidade de resposta muito signi�cativa. Por exemplo, imagine que você esteja assistindo a um vídeo e lendo os comentários enquanto isso. Caso esses comentários sejam carregados de forma lenta, sua experiência será ruim. Os bancos NoSQL tentam resolver essa questão privilegiando muito mais as leituras do que as escritas, para que a experiência de usuário não seja prejudicada. Além disso, esses bancos permitem que o acesso aos dados seja mais veloz, utilizando técnicas de indexação e escalonamento, vertical ou horizontal. Tudo isso visando reduzir o consumo de rede e manter o �uxo de informação para uma melhor experiência de usuário. Nesse cenário, pense sobre como as tecnologias de NoSQL possibilitam a entrega de informação com a velocidade desejada (BANKER et al ., 2016). 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 32/41 Dimensionamento A maneira mais fácil de dimensionar a maioria dos bancos de dados é atualizar o hardware. Se seu aplicativo está sendo executado em um único nó, geralmente, é possível adicionar alguma combinação de discos, mais memória e uma CPU mais robusta, para aliviar quaisquer gargalos de banco de dados. A técnica de aumentar o hardware de um único nó para escala é conhecida como escala vertical ou scaling up (BANKER et al ., 2016). A escala vertical tem como vantagens ser simples, con�ável e econômica, até certo ponto, mas, eventualmente, você chega a um ponto em que não é mais viável mudar para uma máquina melhor. Então, faz sentido considerar o dimensionamento horizontal ou horizontal (consulte a Figura 1.4). Em vez de aumentar um único nó, escalar horizontalmente signi�ca distribuir o banco de dados em várias máquinas. Uma arquitetura em escala horizontal pode ser executada em muitas máquinas menores e mais baratas, geralmente, reduzindo seus custos de hospedagem. Além disso, a distribuição de dados pelas máquinas atenua as consequências da falha. Máquinas, inevitavelmente, vão falhar de vez em quando. Se você escalou verticalmente e a máquina falhou, então, você precisa lidar com a falha de uma máquina, da qual a maior parte do seu sistema depende. Isso pode não ser um problema se houver uma cópia dos dados em um secondary replicado, dessa forma, ocorre que, se apenas um único servidor falhar, isso irá desativar todo o sistema. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 33/41 Compare isso a uma falha dentro de uma arquitetura dimensionada horizontalmente. Isso pode ser menos catastró�co, porque uma única máquina representa uma porcentagem muito menor do sistema como um todo. O MongoDB foi projetado para tornar o dimensionamento horizontal gerenciável. Isso é feito por meio de um mecanismo de particionamento baseado em intervalo, conhecido como sharding , que gerencia automaticamente a distribuição de dados entre os nós. Também há uma fragmentação baseada em hash e tag mecanismo, mas é apenas outra forma de mecanismo de fragmentação baseado em alcance (BANKER et al., 2016). O sistema de fragmentação lida com a adição de nós de fragmentos e também facilita failover automático. Fragmentos individuais são constituídos por um conjunto de réplicas, que consiste em pelo menos dois nós, garantindo recuperação automática sem ponto único de falha. Tudo isso signi�ca que nenhum código de aplicativo precisa lidar com essa logística; o código do seu Figura 1.4 - Dimensionamento do banco de dados não relacional Fonte: Adaptada de Banker et al. (2016, p. 14). #PraCegoVer : a imagem apresenta um exemplo de escalonamento (dimensionamento) do banco de dados não relacional. Isso pode ser feito verticalmente, com o aumento da capacidade do hardware; ou horizontalmente, com o aumento de nós do banco de dados. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 34/41 aplicativo se comunica com um cluster fragmentado da mesma forma que se comunica com um único nó. praticar Vamos Praticar Escalonamento ou dimensionamento é uma tarefa comum em ambientes de big data. Para isso, há duas possibilidades para realizar tal operação. Nesse caso, o escalonamento vertical exige um aumento de hardware, em termos de capacidade. Por outro lado, o escalonamento horizontal pode ser feito com hardwares heterogêneos e de menor capacidade. A partir do que foi apresentado, explique, em um parágrafo de, no máximo, 4 (quatro) linhas, quando o escalonamento vertical deve ser utilizado e qual sua limitação. Como podemos observar em nosso estudo, existem alguns conceitos que estão presentes tanto no domínio dos bancos de dados relacionais como nos não relacionais. A diferença fundamental entre eles está na forma de armazenamento dos dados. Enquanto os bancos relacionais estão no formato de tuplas, nos bancos de dados não relacionais estão no formato de pares chave-valor. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 35/41 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 36/41 Material Complementar indicações FILME Moneyball Ano : 2011 Comentário : este �lme apresenta uma visão geral de como o big data pode auxiliar no desenvolvimento de soluções para o esporte. Nele, podemos ver como os dados são fundamentais para qualquer tipo de solução. Para isso, o motor que permite tal desenvolvimento são os bancos de dados NoSQL. Para conhecer mais sobre o �lme, acesse o trailler a seguir. T R A I L E R 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 37/41 LIVRO Big Data Editora : Elsevier Autores: Viktor Mayer-Schonberer e Kenneth Cukier ISBN : 8535270906, 9788535270907 Comentário : este livro trata de como extrair valor dos dados disponibilizados nocotidiano e que podem passar despercebidos. É uma grande fonte de insights que vai permitir que você entenda como os bancos NoSQL podem auxiliar em tais tarefas. 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 38/41 Conclusão Vimos como a demanda por dados tem crescido e como eles estão disponíveis diariamente, para que todos possam criar soluções úteis em diversos cenários. Uma dessas soluções refere-se ao conceito de NoSQL ou, em outras palavras, bancos de dados não relacionais. Um dos grandes representantes desse tipo de tecnologia é o banco de dados MongoDB. Ele permite criar soluções para cenários de big data de forma escalonável. Além disso, vimos como tais soluções exigem tecnologias complementares aos bancos de dados relacionais, como os bancos de dados não relacionais. Tais tecnologias devem ser encaradas não como uma melhoria dos bancos relacionais, mas, sim, como algo que deve ser utilizado em conjunto, para suprir a demanda por informações. conclusão Referências Bibliográ�cas BANKER, K. et al . MongoDB in action . 2. ed. New York: Manning Publications Co., 2016. referências 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 39/41 CAMPELLO, B.; CALDEIRA, P. D. T. Introdução às fontes de informação . 3. ed. Belo Horizonte: Autêntica Editora, 2014. CIELEN, D.; MEYSMAN, A. D. B.; ALI, A. Introducing data science . Big data, machine learning, and more, using Python tools. New York: Manning Publications Co., 2016. DOURADO, D. Big data . 1. ed. São Paulo. Editora Brasport, 2013. MONEYBALL (2011) Movie Trailer – HD – Brad Pitt. 2010. 1 vídeo (2 min 30s). Publicado pelo canal Movieclips Trailers. Disponível em: https://www.youtube.com/watch?v=-4QPVo0UIzc . Acesso em: 24 nov. 2020. MONGODB. Indexes . Disponível em: https://docs.mongodb.com/manual/indexes/ . Acesso em: 24 nov. 2020. https://www.youtube.com/watch?v=-4QPVo0UIzc https://docs.mongodb.com/manual/indexes/ 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 40/41 05/06/2022 14:31 Ead.br https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 41/41
Compartilhar