Prévia do material em texto
Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 Autor: Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI 15 de Maio de 2023 https://t.me/kakashi_copiador Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Índice ..............................................................................................................................................................................................1) Análise de Informações - Big Data 3 ..............................................................................................................................................................................................2) Questões Comentadas - Análise de Informações - Big Data - Multibancas 48 ..............................................................................................................................................................................................3) Lista de Questões - Análise de Informações - Big Data - Multibancas 64 Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 2 74 APRESENTAÇÃO DA AULA Fala, galera! O assunto da nossa aula de hoje é Big Data! Sim... as bancas começaram a cobrar esse tema recentemente de forma até bastante frequente. Nós vamos estudar seu conceito, suas premissas e algumas particularidades. Galera, considerando tudo que nós já estudamos anteriormente, esse é um tema bem tranquilo e pequeno. Além disso, essa aula possui quase todos os exercícios que já caíram sobre o tema, então tá sussa... PROFESSOR DIEGO CARVALHO - www.instagram.com/professordiegocarvalho Galera, todos os tópicos da aula possuem Faixas de Incidência, que indicam se o assunto cai muito ou pouco em prova. Diego, se cai pouco para que colocar em aula? Cair pouco não significa que não cairá justamente na sua prova! A ideia aqui é: se você está com pouco tempo e precisa ver somente aquilo que cai mais, você pode filtrar pelas incidências média, alta e altíssima; se você tem tempo sobrando e quer ver tudo, vejam também as incidências baixas e baixíssimas. Fechado? INCIDÊNCIA EM PROVA: baixíssima INCIDÊNCIA EM PROVA: baixa INCIDÊNCIA EM PROVA: média INCIDÊNCIA EM PROVA: ALTA INCIDÊNCIA EM PROVA: Altíssima Além disso, essas faixas não são por banca – é baseado tanto na quantidade de vezes que caiu em prova independentemente da banca e também em minhas avaliações sobre cada assunto... Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 3 74 Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 4 74 Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 5 74 BIG DATA Conceitos Básicos INCIDÊNCIA EM PROVA: ALTA Sabe aquele vídeo insuportável com um anúncio de visualizar um vídeo no Youtube? Ou quando você está navegando pelo Facebook e aparece uma propaganda nos eu feed? Esses anúncios são ótimos exemplos de como é utilizado o Big Data. Por diversas vezes, ele é escolhido especificamente para você com base nos sites que você frequenta, sua idade aproximada, seu sexo, onde você mora, além de um monte de outras variáveis. Deixa eu contar uma historinha para vocês: vocês sabem qual é a maior e melhor banda de rock de todos os tempos? Ora... para o bem da nossa relação, eu espero que vocês tenham respondido Pink Floyd! Acertei??? Ela é a minha banda favorita, eu já ouvi todas as músicas, já li todos os livros, possuo todos os discos e... tenho várias camisetas! Certo dia, estava eu fuçando em meu Instagram quando apareceu o seguinte anúncio: Galera, essa camisa diz: “Nunca subestime um fã de Pink Floyd que tenha nascido em outubro”. Eu pensei ingenuamente: “Meu pai do céu, não é possível que eu esteja com tanta sorte hoje!” Apareceu justamente no meu feed do Instagram uma camiseta à venda da minha banda favorita falando de pessoas que nasceram em outubro e... vocês não vão acreditar, mas... sabe em qual mês eu nasci? EM OUTUBRO!!! Eu sou retardado, não é? É claro que não havia coincidência alguma! O Instagram sabe meus dados pessoais e conhece todos os meus interesses. Dessa forma, ele consegue direcionar melhor os anúncios. Fim da história: eu quaaaase comprei a camiseta e depois passei dias me achando um completo trouxa por pensar que era coincidência. Mané, né? Prosseguindo... os dados são parte de um conjunto gigantesco de dados sobre você e outras pessoas. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 6 74 Quase todas as vezes você clica (ou não clica) em um anúncio, dados são armazenados em algum lugar. Toda vez que você assiste a um vídeo do Youtube – como as aulas do Estratégia Concursos – são mantidos registros. Existem registros de todos os cliques de todas as pessoas que já acessaram o Twitter, todos os likes e comentários de todas as fotos do Instagram, todas as compras que você fez com seu cartão de crédito, todo filme assistido no Netflix e quanto tempo! Com 7,5 bilhões de pessoas no planeta, muitos (mas muitos meeeeeesmo) dados são criados a cada segundo. Basicamente, apenas de existir, você já estará criando dados – é tanto dado, mas tanto dado que nós chamamos isso de Big Data. Galera, antes do surgimento de smartphones, notebooks e computadores, era muito trabalhoso e demorado registrar medições e armazenar dados. Aliás, nem existia uma preocupação de se armazenar dados sobre essas coisas. Só existem dados climatológicos sobre a cidade de São Paulo a partir de 1961. Antes disso, não havia nenhum registro oficial. Dados sobre o censo dos Estados Unidos – que ocorre a cada dez anos – frequentemente demoravam justamente dez anos para ficar pronto. Dessa forma, se ele começasse a ser medido em 1950, ele demoraria dez anos para terminar. Assim, as pessoas só descobririam qual era o tamanho da população de 1950 em 19601! O termo Big Data – na forma como o utilizamos hoje – surgiu na década de 1990! O autor, John Mashey, usou o termo para descrever dados que são tão grandes e complexos que ferramentas para trabalhar e interpretar dados simplesmente não davam conta do recado. Galera, seu telefone registra a sua localização, registra os aplicativos que você usa e registra quanto tempo você os usa, então todos os aplicativos que você usa coletam dados sobre você. Eu vou me casar em breve e já estou olhando alguns eletrodomésticos! Por conta disso,eu não paro de receber ofertas de geladeira, fogão e televisores em meu e-mail. Galera, a sociedade está criando um mundo interconectado – às vezes chamado de Internet of Things (IoT) ou Internet das Coisas. Considerem a rede de dispositivos inteligentes que coletam dados e podem potencialmente se comunicar entre si, desde sua geladeira até seu carro, relógio, luzes, etc. Vocês acreditam que já há cientistas que equipam algumas mudas de espinafre para poderem enviar e- mails via wireless em determinados eventos? O grande lance do Big Data é que há muita coisa para se discutir ainda, então vamos analisar um pequeno aspecto dele: Likes no Facebook! Por anos, esses likes pareciam bem inúteis. Ninguém entra nas redes sociais para ver no que o amigo tem dado like. Vocês concordam? No entanto, essas informações são mais reveladoras do que você imagina! Em 2013, a PNAS (Proceedings of National Academy of Sciences) publicou um estudo da Universidade de Cambridge em que 58.000 usuários do Facebook participaram de uma pesquisa de personalidade em um 1 Computadores ajudaram a reduzir o tempo necessário para coletar, resumir e armazenar dados. No entanto, quanto mais aumenta o poder dos computadores de coletar e analisar dados, mais aumentam também... os próprios dados! Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 7 74 aplicativo. Em seguida, eles pediram permissão para ver os likes dos usuários. Eles descobriram que traços e atributos individuais podem ser previstos com um alto grau de precisão! Como, professor? Com base apenas em registros de likes! Olha que coisa interessante: likes em fotos de raios e tempestades ou em postagens sobre ciência apontam para pessoas altamente inteligentes; likes em postagens sobre rap e Lionel Messi apontam para homens heterossexuais. Esta é uma minúscula peça do quebra-cabeça que pode lhe dar uma pequena noção sobre o que é, na prática, o Big Data. Se um pouquinho de informação sobre uma pessoa pode revelar muito, podemos imaginar o que toneladas e toneladas de outros dados produzidos diariamente a cada dia podem fornecer. Galera, vocês compreendem o poder disso? Durante as últimas eleições presidenciais americanas, a campanha de Donald Trump escolheu grupos particulares de apoiadores de Hillary Clinton para ver anúncios contra ela em mídias sociais, tentando torná-los menos propensos a votar nela. Por outro lado, há uma boa chance de o Big Data impactar positivamente a sua vida . Ele pode ser usado para criar um remédio personalizado, para prever quais jogadores de futebol uma equipe deve contratar, e para criar carros sem motorista. Sabe quando você está perdido e precisa utilizar o Google Maps? Pois é, você está consumindo e servido ao Big Data! Se você habilitar sua localização, informações sobre local e velocidade são continuamente transferidas ao Google. Essa informação por si só não é útil para alguém, mas inúmeras pessoas ao seu redor também estão usando o Google Maps. Então, o Google possui uma tonelada de dados sobre onde as pessoas estão e quão rápido elas estão se movendo. Como eles vêm trabalhando com esses dados a algum tempo, eles conseguem prever como estará o trânsito de uma cidade com base em coisas como: dia da semana, horários, feriados, entre outros dados. Com essa quantidade massiva de dados, eles conseguem te dizer se há muito trânsito em uma rota específica. Em 2013, o Google adquiriu o aplicativo Waze, que deu eles ainda mais dados para trabalhar. Usuários do Waze informam o aplicativo sobre trânsito e acidentes e o Google Maps é capaz de acessar essas informações também. Ademais, ele é capaz de manter o registro sobre o seu histórico e te auxiliar de diversas maneiras. Hoje em dia, eu acho normal, mas eu me lembro da primeira vez que eu recebi uma notificação do Google me informando sobre o tempo até o meu trabalho. Eu acordei, tomei banho, escovei os dentes, desci para a garagem e assim que eu entrei no carro... o Google me enviou uma notificação informando que eu chegaria no trabalho em 15 minutos! Eu fiquei igual a esse bebê do meme ao lado... achando que havia um drone me vigiando! Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 8 74 Por fim, vamos falar sobre como a Netflix utiliza o Big Data para melhorar a sua experiência de entretenimento. Quando você acessa a Netflix, ela te dá uma lista de recomendações2 em sua página inicial. Para dar essas recomendações, o algoritmo da Netflix aprende – a partir de infinitas fontes de dados – se você gosta de filmes estrelados, por exemplo, por Matt Damon. Enfim, há diversas informações que ela pode cruzar para te recomendar o filme ideal. Uma das revelações mais interessantes trata do poster. Sabe aquelas imagens que aparecem na hora que você vai escolher o filme? Pois é, muitas pessoas escolhem um filme simplesmente baseado nessa imagem. Uma vez que o título e a imagem são a primeira exposição ao conteúdo, escolher as imagens mais atrativas para pessoas específicas pode afetar na sua decisão de assistir um filme ou não. Observem a imagem abaixo: Há um filme chamado Good Will Hunting (em português, Gênio Indomável). Ele é interpretado por Matt Damon e Robin Williams. Observem que há duas imagens diferentes para o mesmo filme! No entanto, se você gosta mais de assistir filmes românticos, ele mostrará uma imagem do filme com o Matt Damon beijando uma mulher; se você gosta mais de assistir filmes de comédia, ele mostrará uma imagem do mesmo filme, porém com Robin Williams. De ambas as formas, ele consegue atrair a pessoa certa a assistir ao filme! Possuir uma quantidade absurda de dados à disposição permite que a Netflix torne sua experiência melhor. Por meio do Big Data, seria possível personalizar remédios com base no genoma de um paciente e prever qual remédio terá menos efeitos colaterais ou até mesmo qual tratamento possui a menor probabilidade de causar um ataque cardíaco. Em suma: Big Data chegou para ficar e você está ajudando a criá-lo nesse instante ao ler essa aula! Não existe uma definição singular sobre a terminologia Big Data. Vejamos algumas: 2 O Sistema de Recomendações combina várias técnicas computacionais para selecionar itens personalizados com base nos interesses dos usuários conforme o contexto em que estão inseridos, com o intuito de obter vantagem competitiva. As recomendações são cada vez mais otimizadas por meio de técnicas de Inteligência Artificial, como Machine Learning. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 9 74 Por Oxford English Dictionary Big Data é um dado de grande tamanho, tipicamente ao nível que sua manipulação e gerenciamento apresenta desafios significativos a logística. Por Dumbill e Edd Big Data é o dado que excede a capacidade de processamento convencional dos sistemas de bancos de dados. Por Mayer-Schönberger e Cukier’s Big Data é a habilidade da sociedade de aproveitar a informação por novas maneiras para produzir introspecção úteis ou bens e serviços de valor significante. Por InternationalData Corporation Big Data é uma nova geração de tecnologias e arquiteturas, projetadas economicamente para extrair valor de volumes muito grandes e vastos de dados, permitindo alta velocidade de captura, descoberta e análise. Trata-se de um termo amplo para conjuntos de dados muito grandes ou complexos que aplicativos de processamento de dados tradicionais são insuficientes. Os desafios incluem análise, captura, curadoria de dados, pesquisa, compartilhamento, armazenamento, transferência, visualização e informações sobre privacidade. Esse termo – por vezes – se refere ao uso de análise preditiva e outros métodos avançados para extrair valor de dados. Por fim, minha definição favorita o define como a captura, gerenciamento e a análise de um grande volume de dados estruturados ou não estruturados que não podem ser consultados e pesquisados através de bancos de dados relacionais. Frequentemente são dados obtidos de arquivos não estruturados como vídeo digital, imagens, dados de sensores, arquivos de logs e de qualquer tipo de dados não contidos em registros típicos com campos que podem ser pesquisados. TIPOS DE DADOS DESCRIÇÃO DADOS ESTRUTURADOS São dados que podem ser armazenados, acessados e processados em formato fixo e padronizado de acordo com alguma regra específica. Esta organização é geralmente feita por colunas e linhas (semelhante a planilhas do Excel), mas pode variar de acordo com a fonte de dados. Exemplo: Planilhas Eletrônicas, Bancos de Dados Relacionais e CSV. DADOS SEMI- ESTRUTURADOS São dados estruturados que não estão de acordo com a estrutura formal dos modelos de dados como em tabelas, mas que possuem marcadores para separar elementos semânticos e impor hierarquias de registros e campos dentro dos dados Exemplo: Dados de E-mail, Arquivos XML, Arquivos JSON e Banco de Dados NoSQL. DADOS NÃO- ESTRUTURADOS São dados que apresentam formato ou estrutura desconhecidos, em que não se sabe extrair de forma simples os valores desses dados em forma bruta. Exemplo: Documentos, Imagens, Vídeos, Arquivos de Texto, Posts em Redes Sociais. Professor, onde esses dados são armazenados? Podem ser armazenados em um Data Warehouse ou em um Data Lake (Lago de Dados). O Data Lake é um grande repositório capaz de armazenar dados estruturados, semi-estruturados e não-estruturados, assim como um método para Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 10 74 organizar grandes volumes de dados de diversos formatos e de diversas fontes diferentes. Professor, qual seria a diferença entre Data Warehouse e Data Lake? DATA WAREHOUSE DATA LAKE Dados geralmente são tratados (limpos, combinados, organizados, etc) antes de serem armazenados. Dados geralmente são armazenados da maneira que foram capturados – brutos, sem nenhum tratamento. Podem armazenar todos os tipos de dados, mas o foco é nos dados estruturados. Armazenam dados estruturados, semi-estruturados e não-estruturados. Ideal para usuários operacionais visto que as ferramentas analíticas são mais fáceis de usar. Ideal para cientistas de dados visto que as ferramentas analíticas são mais difíceis de usar. Armazenamento de dados custam geralmente mais caro e consome mais tempo. Armazenamento de dados custam geralmente mais barato e consome menos tempo. Um esquema é definido antes dos dados serem armazenados. Um esquema é definido após os dados serem armazenados. Armazenam um grande volume de dados. Armazenam um gigantesco volume de dados. Antes de ver algumas curiosidades, eu acho bacana falar um pouco sobre a infraestrutura para suportar Big Data! Sim, pessoal... eu falei que se trata de uma quantidade absurda de dados. Isso implica a necessidade de uma infraestrutura também absurda. Professor, o que você quer dizer com infraestrutura? Galera, eu me refiro ao conjunto de hardware, software e outras tecnologias capazes de suportar serviços de TI (Ex: Servidor, Firewall, Rede, etc). Hoje em dia, você pode utilizar serviços fornecidos pela computação em nuvem ou ter uma infraestrutura própria. Para o primeiro caso, existem inúmeras possibilidades de negócio para quem confia na combinação de Computação em Nuvem e Big Data! De forma geral, as empresas utilizam o Big Data para se tornarem mais competitivas. Além disso, espera-se com esse uso algo essencial para o sucesso: errar menos. E, quando inevitável, aprender com o erro. Ter um sistema de computação em nuvem é condição para se trabalhar bem com um grande volume de dados, uma vez que isso envolve coleta, armazenamento e compartilhamento de um número gigantesco de informações. Além disso, a constante necessidade de conhecer o resultado das ações de um negócio, muitas vezes, imediatamente, torna essa relação entre Cloud Computing e Big Data extremamente harmoniosa. Entendido? Premissas INCIDÊNCIA EM PROVA: ALTA Podemos afirmar que a definição de Big Data pode ser quebrada em cinco dimensões, quais sejam: Volume, Velocidade, Variedade, Veracidade e Valor3. 3 O Big Data foi inicialmente conceituado a partir de três premissas básicas: Volume, Velocidade e Variedade (3 V’s). Atualmente, já há autores que tratam de 10V’s (+Variabilidade, Validade, Vulnerabilidade, Volatilidade e Visualização), apesar de não cair em prova. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 11 74 Volume Big Data trata de uma grande quantidade de dados gerada a cada segundo. Pense em todos os e-mails, mensagens de Twitter, fotos e vídeos que circulam na rede a cada instante. Não são terabytes e, sim, zetabytes ou brontobytes. A tecnologia do Big Data serve exatamente para lidar com esse volume massivo de dados, guardando-os em diferentes localidades e juntando-os através de software. Em outras palavras, nós podemos dizer que o volume de dados atualmente já é grande, mas a tendência é que continue a crescer ainda mais nas próximas décadas. Dessa forma, é preciso buscar ferramentas e formas de tratar esses dados de maneira que possam se converter – de fato – em informação que seja útil para o crescimento e desenvolvimentos das organizações e, não apenas, um grande volume de dados. Velocidade Refere-se à velocidade com que os dados são criados. São mensagens de redes sociais se viralizando em segundos, transações de cartão de crédito sendo verificadas a cada instante ou os milissegundos necessários para calcular o valor de compra e venda de ações. Quem tem Twitter aí? Hoje em dia, informações surgem primeiro no Twitter! O Big Data serve para analisar os dados no instante em que são criados, em tempo real, sem ter de armazená-los. Não apenas o volume de dados é gigantesco, mas a velocidade em que esses dados são produzidos (e se tornam desatualizados é vertiginosa). Justamente por isso o segundo desafio do Big Data é o timing do processamento desses dados: para que possuam valor real e aplicabilidade no mercado, é preciso utilizar os dados antes que se tornem desatualizados. O objetivo, portanto, é alcançar formas de trabalhar o processamento dessas informações em tempo real. Variedade No passado, a maior parte dos dados utilizados por organizações era estruturado e podia ser facilmente armazenado em tabelas de bancos de dados relacionais. No entanto, a maioria dos dados do mundo não se comporta dessa forma. Com o Big Data, mensagens, fotos,mídia social, e- mail, vídeos e sons – que são dados não-estruturados – podem ser administrados juntamente com dados tradicionais. Os dados de que dispomos atualmente são provenientes das mais diversas fontes: redes sociais, aplicativos, cookies, IoT, e-mails, etc. Isso significa que não seguem um único padrão e nem fornecem todos o mesmo tipo de informações, tornando a tarefa de compilar esses dados em um banco de dados tradicional inviável. É preciso desenvolver novas ferramentas de análise que respondam à heterogeneidade dos dados. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 12 74 Veracidade Um dos pontos mais importantes de qualquer informação é que ela seja verdadeira. Com o Big Data, não é possível controlar cada hashtag do Twitter ou notícia falsa na internet, mas com análises e estatísticas de grandes volumes de dados é possível compensar as informações incorretas. Dentre a massa de dados que circula, é preciso estabelecer quais os dados que são verídicos e que ainda correspondem ao momento atual. Dados desatualizados podem ser considerados inverídicos, mas não porque tenham sido gerados com segundas intenções, mas porque não correspondem mais à realidade e podem guiar uma empresa a decisões equivocadas. O desafio posto pelo Big Data é, então, determinar a relevância dos dados disponíveis para uma empresa, de forma que essas informações possam servir de guia para o seu planejamento com maior segurança. Valor O último V é o que torna Big Data relevante: tudo bem ter acesso a uma quantidade massiva de informação a cada segundo, mas isso não adianta nada se não puder gerar valor algum para um órgão ou uma empresa. É importante que organizações entrem no negócio do Big Data, mas é sempre importante lembrar dos custos e benefícios, além de tentar agregar valor ao que se está fazendo. Bacana? O quinto desafio posto pelo Big Data pelas empresas é o de definir a abordagem que será feita dessa massa de dados que está circulando. Afinal, para que um dado se converta em informação útil e utilizável é preciso o olho do analisador, é preciso colocar uma pergunta a esse dado que permita orientar a análise de dados para o objetivo de uma empresa. Não é toda a informação que está circulando que é relevante ou útil para os objetivos específicos de uma empresa. Big Data Analytics INCIDÊNCIA EM PROVA: baixa Nós já sabemos que a imensa parte dos dados disponíveis no mundo hoje foram criados apenas nos últimos dois anos. Estes dados são caracterizados por sua velocidade, volume, variedade, veracidade e valor – conforme vimos anteriormente. Mais de 2.5 trilhões de bytes são gerados todos os dias por meio de nossos smartphones, tablets, sensores, redes sociais e cartões de crédito, mas o que pode ser feito com todos esses dados é que é a pergunta relevante. É aí que entra o conceito de Big Data Analytics: o estudo e interpretação de grandes quantidades de dados armazenados com a finalidade de extrair padrões de comportamento. Em outras palavras, utiliza-se uma combinação de sistemas de softwares matemáticos de alta tecnologia que juntos são capazes de tratar dados estruturados e não-estruturados, analisá-los e extrair um significado de alto valor para organizações. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 13 74 Dessa forma, o Big Data Analytics poderá auxiliar empresas privadas ou administradores de órgãos públicos a entender seus usuários, encontrar oportunidades não percebidas anteriormente, fornecer um serviço melhor e mitigar possíveis fraudes – são bastante utilizados em órgãos fazendários – como a Receita Federal – para evitar sonegação de tributos. Ué, professor... isso não seria Business Intelligence? Não, vamos ver a diferença... O objetivo de ambos é ajudar uma organização a tomar boas decisões por meio da análise de dados. No entanto, o Business Intelligence ajuda a encontrar as respostas para as perguntas de negócios que já conhecemos, enquanto o Big Data Analytics nos ajuda a encontrar as perguntas e respostas que nem sequer sabíamos que existiam – tudo isso por meio de padrões, correlações desconhecidas, tendências de mercado e preferências de consumidores. Em outras palavras, o Business Intelligence trata de encontrar respostas que explicam o passado, já o Big Data Analytics trata de encontrar as perguntas que explicam o futuro. Ambos possuem grande importância, complementam-se e devem ser bem entendidos para que as empresas possam aproveitá-los da melhor forma, agregando e alcançando os valores e resultados desejados aos negócios. Professor, como eu vou encontrar perguntas que explicam o futuro? Prever o futuro é um desejo comum entre as pessoas! Se você fosse capaz de saber com seis meses de antecedência que uma grande crise econômica iria assolar o seu país, o que faria? Será que você conseguiria criar um plano para prevenir ou diminuir o impacto daquele grande problema? Poderia mudar o rumo da história? Com a ajuda de estratégias de Análise Preditiva, você pode conseguir (sim, é sério!). A Análise Preditiva não é bola de cristal, nem obra da Mãe Dináh! Trata-se, na verdade, do trabalho de analisar um cenário específico e traçar possíveis tendências e mudanças capazes de afetar seu planejamento estratégico. É óbvio que, muitas das vezes, esse tipo de trabalho lida com volumes gigantescos de dados e, por isso, exige o uso de ferramentas de inteligência artificial para analisar a correlação entre os dados. Viram como tudo se encaixa? A Análise Preditiva é capaz de identificar o relacionamento existente entre os componentes de um conjunto de dados, utilizando algoritmos sofisticados, com o intuito de identificar padrões de comportamento ao examinar automaticamente grandes quantidades de dados. Dessa forma, permite-se que estatísticas e dados armazenados sejam agrupados, fornecendo previsões e indicando padrões e tendências comportamentais. Galera, esse tema não é novo, mas só recentemente tem ganhado notoriedade como uma ferramenta de negócio. Com o avanço de tecnologias que possibilitam a mineração de dados, a Análise Preditiva conta com cada vez mais segurança e precisão para descobrir padrões e avaliar a probabilidade de um resultado ou acontecimento futuro, diferentemente da simples análise descritiva de dados, que apenas mede e apresenta resultados passados. TIPO DE ANÁLISE DESCRIÇÃO Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 14 74 ANÁLISE DESCRITIVA Em vez de se focar no futuro, busca fazer uma fotografia do presente, para que decisões de cunho imediato possam ser tomadas com segurança. Ela trabalha com histórico de dados, cruzando informações com o objetivo de gerar um panorama claro e preciso dos temas relevantes para a empresa no presente momento. Exemplo: por meio do cruzamento de dados, conclui-se que determinada pessoa atualmente é identificada como má pagadora. ANÁLISE DIAGNÓSTICA O foco está na relação de causas e consequências percebidas ao longo do tempo, dentro de um determinado tema. Assim, a análise diagnósticafunciona baseada na coleta de dados relacionados a um determinado assunto, cruzando informações com o objetivo de entender quais fatores influenciaram o resultado atual. Exemplo: determinada pessoa nunca havia sido identificada como má pagadora – somente é agora porque ficou viúva recentemente. ANÁLISE PREDITIVA Este tipo de análise é o mais indicado para quem precisa prever algum tipo de comportamento ou resultado. Esta técnica busca analisar dados relevantes ao longo do tempo, buscando padrões comportamentais e suas variações de acordo com cada contexto, a fim de prever como será o comportamento de seu público ou mercado no futuro, dadas as condições atuais. Exemplo: quanto estará o valor do dólar no ano que vem? ANÁLISE PRESCRITIVA Segue um modelo similar à Análise Preditiva, no entanto com objetivos ligeiramente diferentes. Em vez de tentar prever um determinado acontecimento, esta análise busca prever as consequências deste acontecimento. Exemplo: dado um aumento do valor do dólar no ano que vem, como isso poderá afetar as importações de matéria prima, consequentemente, o faturamento das vendas de determinada empresa. Uma dúvida comum é sobre a diferença entre Business Intelligence, Big Data Analytics e Data Mining! Alguns autores consideram um é a evolução do anterior, abrangendo mais dados e ferramentas matemáticas/estatísticas; outros afirmam que – na verdade – é tudo a mesma coisa e que possuem nomes diferentes apenas por uma questão de marketing: vende mais dizer que uma ferramenta de software é uma solução de Big Data Analytics do que uma solução de Data Mining. Big data analytics é: Big data analytics não é: Uma estratégia baseada em tecnologia que permite coletar insights mais profundos e relevantes de clientes, parceiros e negócio, ganhando assim uma vantagem competitiva. Somente tecnologia – no nível empresarial, refere-se a explorar fontes amplamente melhoradas de dados para adquirir insights. Trabalhar com conjuntos de dados cujo porte e variedade estão além da habilidade de captura, armazenamento e análise de softwares de banco de dados típicos. Somente volume – também se refere à variedade e à velocidade, mas – talvez mais importante – refere-se ao valor derivado dos dados. Processamento de um fluxo contínuo de dados em tempo real, possibilitando a tomada de decisões sensíveis ao tempo mais rápido do que em qualquer outra época. Mais gerada ou mais utilizada somente por grandes empresas online como Google ou Amazon. Embora as empresas de internet possam ter sido pioneiras no Big Data na escala web, aplicativos chegam a todas as indústrias. Distribuído na natureza, isto é, o processamento de análise vai aonde estão os dados para maior velocidade e eficiência. Uso de bancos de dados relacionais tradicionais de “tamanho único” criados com base em disco compartilhado e arquitetura de memória. Análise de Big Data usa uma rede de recursos de computação para processamento massivamente paralelo e escalável. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 15 74 ==5617c== Um novo paradigma no qual a tecnologia da informação colabora com usuários empresariais e “cientistas de dados” para identificar e implementar análises que ampliam a eficiência operacional e resolvem novos problemas empresariais. Um substituto de bancos de dados relacionais – dados estruturados continuam a ser de importância crítica para as empresas. No entanto, sistemas tradicionais podem não ter capacidade de manipular as novas fontes e contextos do Big Data. Transferir a tomada de decisão dentro da empresa e permitir que pessoas tomem decisões melhores, mais rápidas e em tempo real. - Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 16 74 CONCEITOS AVANÇADOS NoSQL (Not Only SQL) INCIDÊNCIA EM PROVA: baixa Antes de falar sobre NoSQL, precisamos falar o que é SQL (Structured Query Language). O SQL é uma linguagem de consulta estruturada utilizada para manipular bancos de dados relacionais (tabelas). Por meio dela, um usuário pode executar comandos para inserir, pesquisar, atualizar ou deletar registros em um banco de dados relacionais, criar ou excluir tabelas, conceder ou revogar permissões para acessar o banco de dados, entre outros recursos. É interessante, mas notem que agora estamos falando em um contexto de Big Data! E nós já sabemos que grande parte dos dados armazenados e processados dentro desse conceito são não- estruturados e/ou semi-estruturados, logo não se adequam bem a bases de dados relacionais. Foi então que surgiu o NoSQL (Not Only SQL)! Observe que a sigla significa Não Apenas SQL – logo ela suporta outras linguagens de recuperação de dados e não apenas SQL. Bancos de Dados NoSQL são cada vez mais utilizados em aplicações web de tempo real (online) com a finalidade de atender aos requisitos de gerenciamento de grandes volumes de dados que necessitam de alta disponibilidade e escalabilidade. Aliás, eles geralmente são orientados a documentos, isto é, são capazes de manipular dados semiestruturados (Ex: XML e JSON). Ora, mas por que não continuar utilizando bancos de dados relacionais? Vejamos... Nos dias de hoje, o volume de dados de certas organizações (Ex: Facebook, que atingiu o nível de 300 petabytes ou 300 mil terabytes) atingiu valores nunca antes imaginados. No caso destes tipos de organizações, a utilização de bancos de dados relacionais tem se mostrado muito problemática e até ineficiente. Os principais problemas estão relacionados à dificuldade de conciliar o tipo de modelo com a demanda da escalabilidade que está cada vez mais frequente. Vamos tomar como exemplo o próprio Facebook! Caso o sistema esteja rodando sobre um banco de dados relacional e haja um crescimento do número de usuários, haverá consequentemente uma queda de performance. Para superar este problema, seria necessário fazer um upgrade na potência do servidor atual (também chamado de escalabilidade vertical) ou aumentar o número de servidores (também chamado de escalabilidade horizontal). No entanto, em organizações que tratam de uma quantidade massiva de dados que nunca param de crescer, chega um momento em que o banco de dados não consegue mais atender todas as requisições em um tempo hábil. A escalabilidade vertical é mais fácil, mas é mais limitada; a escalabilidade horizontal é ilimitada, mas é mais complexa – é necessário realizar uma série de configurações e alterações nas aplicações para que tudo funcione em uma arquitetura distribuída. Galera, bancos de dados relacionais estão mais focados nos relacionamentos entre as entidades. Como vantagem, isso mantém a integridade dos dados; como desvantagem, torna mais Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 17 74 burocráticas alterações e implementações de novas funcionalidades. Como esse intenso volume de dados vem aumentando e pela sua natureza não-estruturada ou semiestruturada, desenvolvedores perceberam a dificuldade ao se organizar dados no modelo relacional. Pensandoem solucionar diversos problemas relacionados à escalabilidade, performance e disponibilidade, projetistas de bancos de dados não-relacionais promoveram uma alternativa de alto armazenamento com alta velocidade e alta disponibilidade, procurando se livrar de certas regras e estruturas inflexíveis que norteiam o modelo relacional de armazenamento de dados. Que legaaaaaaal, professor... A proposta dos bancos de dados não-relacionais não é substituir os bancos de dados relacionais, mas serem utilizados nos casos em que é necessária uma maior flexibilidade na estrutura do banco de dados. Dito isso, eu gostaria de apresentar para vocês uma tabela que contém uma comparação com as diferenças fundamentais entre NoSQL e SQL quanto ao modelo, armazenamento, flexibilidade, adequação, escalabilidade e exemplos de aplicações. CRITÉRIO NOSQL SQL Modelo Não-Relacional Relacional ARMAZENAMENTO Variados (Grafos, Documentos, etc) Tabelas Flexibilidade Alta flexibilidade (Esquema indefinido) Baixa flexibilidade (Esquema definido) ADEQUAÇÃO Mais adequado a dados não-estruturados Mais adequado a dados estruturados ESCALABILIDADE Em geral, escalabilidade horizontal Em geral, escalabilidade vertical Sgbd MongoDB, Cassandra, HBase, Neo4J, etc Oracle, MySQL, DB2, SQL Server, etc Dentro desse contexto, eu gostaria de enfatizar alguns pontos! Primeiro: NoSQL é um termo que funciona como um guarda-chuva para bancos de dados não-relacionais. Isso significa que todos esses bancos de dados não-relacionais terão características semelhantes? Não, esse é um termo genérico para absolutamente todas as variedades de bancos de dados que não sejam relacionais, abarcando bancos de dados com algumas características completamente díspares entre si. Segundo: apesar do nome sugerir o contrário, bancos de dados não-relacionais podem – sim – armazenar relacionamentos entre dados, no entanto eles o farão de maneira diferente de bancos de dados relacionais. Lembrando que bancos de dados relacionais, em geral, utilizam chaves (primárias e estrangeiras) para armazenar o relacionamento entre dados, já os bancos de dados não-relacionais utilizam cada um o seu modelo/forma de armazená-los. Terceiro: bancos de dados relacionais e não-relacionais possuem uma grande diferença em relação ao esquema de dados. Vocês ainda se lembram o que é esquema ou já esqueceram? Esquema é uma descrição do banco de dados, que informa qual estrutura/organização será utilizada para suportar os dados que serão manipulados. Ora, bancos de dados relacionais possuem esquema inflexíveis enquanto bancos de dados não-relacionais possuem esquemas flexíveis. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 18 74 Diego, não saquei essa parte! Galera, quando eu era criança um número de telefone possuía apenas sete números (eu até me lembro do primeiro número da minha casa: 354-8915). Um desenvolvedor de sistemas daquela época, ao criar o esquema de banco de dados que descreveria os dados que seriam armazenados, especificou que a coluna TELEFONE de uma determinada tabela receberia um número com exatos sete algarismos. No entanto, o tempo passou e os números de telefone brasileiros ganharam mais um número. Esse tipo de alteração é bastante problemático e trabalhoso para o desenvolvedor de sistemas porque ele tem que alterar todo o esquema que havia sido estabelecido inicialmente. Alguns anos atrás, os números de telefone ganharam mais um número, fazendo com que desenvolvedores xingassem até a última geração de quem teve essa ideia, porque novamente tiveram que alterar o esquema. Em outras palavras, bancos de dados tradicionais possuem esquemas extremamente inflexíveis. Eu mencionei um caso bastante simples, mas há alterações que podem realmente ser extremamente complexas, ainda mais em bancos de dados antigos. Pois bem, os bancos de dados não-relacionais são diferentes: eles se caracterizam pela ausência parcial ou total de esquemas que definem uma estrutura de dados – também chamado de esquema flexível ou ausência de esquema. Dessa forma, dados armazenados em um banco de dados não-relacional podem ter características, tipos, estruturas e organizações completamente diferentes até mesmo entre um mesmo conjunto de dados. É justamente essa ausência de esquema que facilita uma alta escalabilidade e alta disponibilidade, mas em contrapartida não há a garantia de integridade dos dados, fato que não ocorre em bancos de dados relacionais. Professor, se bancos de dados não-relacionais não armazenam dados em tabelas, como eles armazenam seus dados? Bancos de dados não-relacionais utilizam modelos diferentes de armazenamento de dados, os quais podem ser divididos em quatro categorias principais: Chave-Valor, Orientado a Documentos, Orientado a Grafos e Orientado a Colunas (Colunar). Alguns bancos de dados podem implementar mais de um desses modelos. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 19 74 CARACTERÍSTICAS DE BANCOS DE DADOS NÃO RELACIONAIS Bancos de dados não relacionais não usam a estrutura tradicional baseada em tabela de bancos de dados relacionais como tabela, chave e valor. Bancos de dados não relacionais geralmente são mais escaláveis horizontalmente do que os bancos de dados relacionais – é possível adicionar uma nova máquina ao cluster para aumentar a capacidade do sistema distribuído. Bancos de dados não relacionais geralmente usam modelos de dados mais simples, como pares chave-valor ou documentos, para lidar melhor com dados complexos não estruturados. Bancos de dados não relacionais geralmente usam arquiteturas distribuídas, que permitem processamento de consultas mais rápido e maior disponibilidade. Bancos de dados não relacionais geralmente usam estruturas de dados mais flexíveis, como JSON, que permite uma integração de dados mais dinâmica. Bancos de dados não relacionais geralmente fornecem melhor desempenho e escalabilidade do que os bancos de dados relacionais tradicionais para diversas atividades. Bancos de dados não relacionais geralmente fornecem mais flexibilidade na modelagem de dados, permitindo que os desenvolvedores modifiquem sua estrutura de dados com mais rapidez e facilidade. Bancos de dados não relacionais geralmente usam linguagens de consulta NoSQL, que – em regra – são mais fáceis de aprender do que SQL. Bancos de dados não relacionais geralmente requerem menos manutenção do que os bancos de dados relacionais tradicionais. Bancos de dados não relacionais geralmente usam diferentes tecnologias de armazenamento, como armazenamento baseado em nuvem, para lidar melhor com grandes conjuntos de dados. Bancos de dados não relacionais geralmente fornecem diferentes recursos de pesquisa do que os bancos de dados relacionais tradicionais, mas eventualmente podem ser mais ineficientes. Bancos de dados não relacionais geralmente oferecem melhor suporte para processamento e streaming de dados em tempo real. Bancos de dados não relacionais podem frequentemente ser usados em conjunto com bancos de dados relacionais tradicionais para lidar melhor com dados complexos. Bancos de dados não relacionais permitem a inserção de dados a qualquer momento sem a necessidade de definir previamente um esquema ou por meio de um esquema flexível. Bancos de dados não relacionais normalmente não impõem regras de integridadede dados, o que pode levar a erros e inconsistência de dados – o que geralmente não ocorre com bancos de dados relacionais. A tabela apresentada a seguir exibe diversas técnicas ou recursos existentes na maioria dos bancos de dados não relacionais: TÉCNICAS DESCRIÇÃO REPLICAÇÃO Os dados são copiados e armazenados em vários nós para redundância e melhor desempenho. Particionamento Os dados são divididos em partes menores e distribuídos em vários nós. Sharding Os dados são organizados em unidades lógicas (shards) e distribuídos por vários nós. Hashing consistente Os dados são mapeados para um identificador exclusivo (hash) e distribuídos por vários nós. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 20 74 Views materializadas Os dados são pré-agregados e armazenados em um formato de consulta amigável. Indexação Os dados são indexados para permitir pesquisas rápidas e recuperação de dados. cache Os dados são armazenados na memória para melhorar o desempenho de leitura. Orientado a Chave-Valor Dentre os sistemas de bancos de dados conhecidos como NoSQL, o modelo chave-valor (Key- Value) é o mais simples. Sua estrutura constitui-se basicamente de uma lista de pares de valores compostos por uma chave e um valor. Esse modelo pode ser comparado com a estrutura de dados chamada Tabela Hash, onde valores são associados às chaves de busca que permitem um rápido acesso ao seu conteúdo. Esse modelo de banco de dados não costuma permitir que consultas sejam realizadas sobre os seus dados, mas apenas sobre as chaves de busca. Assim, todo o acesso é feito por meio das chaves de busca e, apenas com a chave, é possível se ter acesso ao valor. Ele também não agrupa os dados por entidades como pode ser visto no modelo relacional. Todo o conteúdo está em apenas uma única cadeia. Em relação ao modelo relacional o modelo chave-valor pode ser comparado da seguinte maneira: em ambos os casos eles funcionam em estrutura tabular (forma de tabela) sendo que este último é formado por uma única tabela composta por duas colunas: uma correspondente à chave e a outra ao valor associado. O campo de chave corresponderia à chave primária no modelo relacional, também apresentando a propriedade de unicidade. Diferentemente do que acontece no modelo relacional, os valores no modelo chave-valor não são agrupados por tipos de dados. Neste modelo, os dados estão armazenados em uma única coluna de uma mesma tabela. Essas características dos sistemas de dados chave-valor impossibilitam a definição de esquemas de dados, apenas os metadados que podem ser incorporados por meio das chaves. Logo, guardem essa informação: ele não requer um esquema! Também não existe a possibilidade ou mesmo necessidade de uso de junções (joins). Essa perspectiva torna esse modelo de dados mais simples e com menores tempos de resposta permitindo que a capacidade de armazenamento de suas bases de dados seja uma das maiores dos sistemas enquadrados no conceito NoSQL. Para ficar mais claro, vamos ver um exemplo de uma possível tabela de chave-valor: CHAVE VALOR CPF1 111.222.333-44 NOME1 Diego Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 21 74 TELEFONE1 99999-8888 LIVRO Irmãos Karamázov ISBN 9788573264098 QTD_PGS 1040 CPF2 555.666.777-88 NOME2 Renato TELEFONE2 99999-7777 Note que temos dados sobre duas pessoas e dados sobre um livro – e não há distinção explícita entre as pessoas ou livros. Além disso, não existe referência de chaves e, consequentemente, também não há integridade referencial. Assim, o modelo não dá suporte a relacionamentos entre os itens de dados como, por exemplo, o relacionamento de compra de um livro. Somando-se a isso, não existe uma linguagem de consulta, ocasionando algumas limitações na capacidade de busca. Esse modelo também não oferece as propriedades ACID e exigem que os implementadores pensem no posicionamento, replicação e tolerância a falhas dos dados, pois não são expressamente controlados pela própria tecnologia. Em suma: é um sistema que funciona de forma semelhante a um dicionário de palavras, onde os dados são endereçados por uma chave (palavra). Os valores são isolados e independentes, e o relacionamento é tratado pela lógica da aplicação. Este tipo de banco de dados é considerado útil para aplicações em que o processamento das transações é baseado em chaves e para aplicações que realizam constantes leituras nos dados. Trata-se de uma solução adequada para aplicações simples que funcionam com um único tipo de objeto, e esses objetos são baseados em um único atributo. Esse modelo oferece grande flexibilidade e escalabilidade e seus principais exemplos são: Redis, Voldemort e BerkeleyDB. características DESCRIÇÃO de modelos de bancos de dados orientados a chave-valor Sem esquema Modelos de chave-valor não necessitam definir uma estrutura de tabela ou colunas antes que os dados sejam armazenados. Fácil de usar Devido à simplicidade do banco de dados, os dados podem aceitar qualquer tipo de dados, até mesmo tipos diferentes, quando necessário. rápido tempo de resposta Seu tempo de resposta é rápido devido à sua simplicidade, visto que o restante ambiente próximo a ele é muito construído e aprimorado. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 22 74 Escalabilidade e disponibilidade Os dados são distribuídos em vários nós, o que fornece escalabilidade e melhor disponibilidade. Orientado a Colunas Conceitualmente esse modelo é o que mais se assemelha ao modelo relacional, dado que também é organizado em linhas e colunas. Por outro lado, essa abordagem é projetada para tratar os dados de maneira não normalizada, normalmente não privilegiando a consistência das informações. Ainda em oposição ao modelo relacional, o modelo orientado a colunas, como o próprio nome sugere, faz uma inversão na organização de seus dados. Nessa abordagem, os atributos que compõem uma instância são organizados em colunas e as linhas passam a conter as ocorrências de determinado atributo para cada instância de dados. Dessa forma, as linhas não mais armazenam uma tupla, mas – sim – um conjunto de atributos de mesmo tipo, enquanto o conjunto de atributos de uma coluna contém a informação de uma instância por completo. Como assim, Diego? Vejam um exemplo... ARMAZENAMENTO ORIENTADO à LINHA 111.222.333-44, Diego, 99999-8888; 555.666.777-88, Renato, 99999-7777 ARMAZENAMENTO ORIENTADO à coluna 111.222.333-44, 555.666.777-88; Diego, Renato; 99999-8888, 99999-7777 Note que existe uma inversão na orientação de armazenamento dos dados do modelo relacional para o modelo em colunas. Enquanto no modelo relacional os atributos referentes a uma tupla de dados são organizados juntos (CPF, Nome, Telefone), no modelo orientado a colunas os atributos de uma mesma categoria são priorizados – vejam que temos dois CPFs, depois dois nomes e depois dois números de telefone. Na prática isso permite que consultas que façam análises em subconjuntosde dados possam ser mais eficientes, porém a obtenção de itens inteiros passa a ser mais custosa. Essa diferença ocorre pelo esforço necessário para se percorrer as informações necessárias. Para analisar os valores de determinado atributo, o banco de dados efetua uma consulta semelhante à obtenção dos atributos de uma linha no modelo relacional. Já para resgatar uma instância de dados seria equivalente a consultar no modelo relacional se em cada linha de dados existe uma coluna com determinado valor. Além da inversão na orientação dos dados, o modelo em colunas também apresenta nomenclaturas diferentes para alguns conceitos. Nesse modelo, as instâncias de uma entidade fazem parte da mesma família de colunas e não de tabelas como é conhecido no relacional. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 23 74 Em uma família de colunas, é possível a existência de atributos não atômicos, quando são possíveis mais de um valor por meio de listas. Além disso, nas famílias de colunas, as instâncias podem apresentar quantidades de atributos diferentes, não sendo necessário reservar espaços de armazenamento para valores nulos. Apesar do modelo em colunas facilitar a execução de consultas em um subconjunto de dados, os sistemas dessa abordagem não permitem consultas com a junção de famílias de colunas. Nesses casos, é preferível que informações que necessitem ser resgatadas unidas estejam na mesma família de coluna. Isso se deve ao fato desse modelo de dados não dar suporte ao uso de chaves estrangeiras, não sendo possível fazer referências de uma instância para outra. Em suma: cada linha de dados não necessita possuir o mesmo grau, ou seja, pode ter um número variável de colunas, e devido a esta característica, esse modelo tem dados espaçados. As colunas de uma tabela estão divididas sobre os nós usando o conceito de grupos de colunas. Grupos de colunas são uma maneira simples dos usuários indicarem quais colunas devem ser armazenadas juntas. Este modelo é adequado para aplicações que tratam com grandes volumes de dados, de modo que o modelo de dados pode ser eficientemente particionado. Trata-se de um modelo adequado quando se deseja otimizar a leitura de dados estruturados, pois mantém dados de forma contígua por coluna. Ademais, são apropriados para propósitos analíticos porque eles podem tratar com colunas específicas. Os principais exemplos desse modelo são: Cassandra, HBase e BigTable. características DESCRIÇÃO de modelos de bancos de dados orientados a colunas Otimizado para legibilidade Modelos orientados a colunas são otimizados para legibilidade, permitindo leituras mais rápidas e eficientes. Altamente escalável Modelos orientados a colunas são altamente escaláveis e podem acomodar grandes conjuntos de dados de forma rápida e fácil. Modelo de dados flexível A flexibilidade do modelo de dados de um modelo orientado a colunas permite alterações de esquema mais rápidas e fáceis. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 24 74 Baixa latência Os modelos orientados a colunas oferecem baixa latência ao consultar dados, pois os dados podem ser armazenados em várias colunas em vez de uma longa linha. Alta disponibilidade Os modelos orientados a colunas geralmente são projetados para alta disponibilidade e podem ser replicados em vários nós. Orientado a Documentos Assim como o modelo em chave-valor, o modelo em documentos também faz uso de associações entre pares chaves e valores, porém, nesse último, os dados não são dispostos em uma única estrutura de dados. Neste modelo, os dados de uma entidade são agrupados em documentos que podem seguir, por exemplo, a codificação XML (Extensible Markup Language) ou JSON (JavaScript Object Notation). Podemos afirmar que um documento é uma coleção de chaves e valores que está relacionado a uma instância de dados. As chaves dentro dos documentos são únicas e cada documento contém um identificador, que é único dentro do conjunto. Em geral, o banco de dados orientado a documentos não possui esquema: o documento não precisa ter uma estrutura comum. Esse modelo permite que documentos de uma mesma coleção de dados possam apresentar campos distintos uns dos outros. Vamos ver um exemplo: temos um arquivo em formato JSON. Note que temos um campo e seu valor correspondente separados por dois-pontos. Perceba também que esse modelo permite representar campos multivalorados (com mais de um valor), como o campo Telefones. O modelo orientado a documentos geralmente suporta índices e diversos tipos de documentos (objetos) por banco de dados, além de documentos aninhados ou listas. Ele é de fácil manutenção, sendo adequado para aplicações web que precisam executar consultas dinâmicas, tais como aplicações de análise em tempo real e blogs. O que seria uma consulta dinâmica, Diego? Um exemplo é quando se tem diferentes tipos de objetos e é necessário pesquisar objetos com base em múltiplos campos. Os principais bancos de dados orientados a documentos são: MongoDB, CouchDB e Riak. { cpf: “11122233344”, nome: “Diego”, telefone: “999998888” } { cpf: “55566677788”, nome: “Renato”, Telefones: [ {telefone: “999997777”}, {telefone: “999996666”} ] } Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 25 74 características DESCRIÇÃO de modelos de bancos de dados orientados a documentos Modelo de dados flexível Modelos orientados a documentos são mais flexíveis do que os bancos de dados relacionais tradicionais, pois não têm esquemas e podem acomodar dados com estruturas variadas. Alta escalabilidade Modelos orientados a documentos são altamente escaláveis e podem acomodar conjuntos de dados maiores com facilidade. Alto desempenho Modelos orientados a documentos são muito eficientes em termos de recuperação de dados e fornecem alto desempenho. Alta disponibilidade Modelos orientados a documentos são altamente disponíveis e podem lidar com várias solicitações simultâneas. Fácil de usar Modelos orientados a documentos são relativamente fáceis de usar, pois usam uma linguagem de consulta simples para manipulação de dados. Orientado a Grafos Dentre os modelos classificados como NoSQL, o orientado a grafo é o que mais se distancia dos demais. Enquanto as outras abordagens têm seu foco no armazenamento dos dados, esse modelo tem como destaque principal os relacionamentos que ocorrem entre as entidades de sua base. Os bancos de dados que seguem essa abordagem possuem três tipos de informações: os nós, arestas (também chamadas de arcos) e propriedades. Os nós correspondem às instâncias de dados (como as tuplas para o modelo relacional), as arestas se referem aos relacionamentos mantidos entre as instâncias dos nós, enquanto as propriedades dizem respeito aos valores de dados contidos nas instâncias, podendo assumir valores como: booleanos, inteiros, caracteres e conjunto de valores. O uso desses conceitos se deve ao fato dessa abordagem estar baseada na teoria dos grafos.Com isso, o banco de dados permite que as instâncias de dados (nós) possam estabelecer relacionamentos uns com os outros por meio das arestas que assim como os nós também podem Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 26 74 conter propriedades que o descrevem. Além das propriedades, os nós e arestas podem conter rótulos que os classificam em grupos mais específicos. Esses rótulos poderiam funcionar como um metadado. Como assim, Diego? Imagine que temos dados de um vendedor e de um cliente. Como saber se os dados se referem a um ou a outro? Os rótulos podem ser usados para diferenciarem as instâncias em vendedor ou cliente e, nas arestas, eles servem para determinar o tipo de relacionamento que está ocorrendo como, por exemplo, a venda ou o aluguel de um livro. Vejam na imagem seguinte um exemplo de um grafo com seus nós, arestas e propriedades: Diferentemente dos demais modelos, o modelo em grafo, além de dar suporte a referências, também garante a integridade referencial, assegurando que o nó de entrada sempre faça referência ao nó de saída. As chaves de acesso aos nós são definidas automaticamente pelo sistema de banco de dados. No entanto, é possível estabelecer restrições de unicidade para demais propriedades do nó. Os principais exemplos desse modelo são: Neo4j, AllegroGraph e Virtuoso. características DESCRIÇÃO de modelos de bancos de dados orientados a grafos Sem esquema São projetados para armazenar dados sem esquema predefinido, permitindo modelos de dados flexíveis e evolução do esquema. Altamente conectado Seguindo as relações entre os dados, os bancos de dados orientados a grafos podem facilmente percorrer e consultar dados conectados de maneiras complexas. Altamente escalável Permitem o dimensionamento de dados com facilidade e a capacidade de adicionar rapidamente mais nós e relacionamentos. Desempenho de consulta rápida Projetados para consultar rapidamente dados com relacionamentos complexos e acessar os dados em uma fração do tempo dos bancos de dados tradicionais. Baixa latência Podem acessar dados rapidamente e responder em um ambiente de baixa latência, permitindo aplicações em tempo real. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 27 74 Propriedades ACID/BASE INCIDÊNCIA EM PROVA: baixíssima Edgar Codd introduziu o modelo relacional na década de 70 com o objetivo principal de superar questões relativas ao suporte, à independência e integridade dos dados nos Sistemas Gerenciadores de Banco de Dados (SGBD). Naquela época, devido aos problemas de falta de integridade dos dados era necessário desenvolver programas complexos para responder a uma simples consulta. Assim, houve uma boa aceitação dos usuários e da comunidade acadêmica, devido a simplicidade e praticidade do modelo relacional e o seu embasamento teórico, que engloba conceitos como as propriedades de atomicidade, consistência, isolamento e durabilidade das transações. Por outro lado, há um trade-off: se todas as transações precisarem ser confirmadas e verificadas quanto à consistência, bancos de dados serão lentos na leitura e gravação de dados. Além disso, eles exigem mais esforço para armazenar novos dados em novos formatos. Na química, a base (BASE) é o oposto do ácido (ACID). Aqui é semelhante: o BASE oferece vários benefícios em relação aos bancos de dados compatíveis com ACID, pois eles se concentram mais intensamente na disponibilidade de dados de sistemas de banco de dados sem garantia de segurança contra falhas ou inconsistências de rede. Vamos ver um pouco melhor os dois: ACID (Atomicity, Consistency, Isolation, Durability) é um conjunto de propriedades que as transações do banco de dados devem seguir para garantir a integridade/confiabilidade dos dados. Propriedades acid descrição Atomicidade Requer que todas as operações de banco de dados que formam uma transação sejam todas bem-sucedidas ou todas falhem. Consistência Requer que qualquer transação leve o banco de dados de um estado válido para outro. Isolamento Garante que a execução simultânea de transações não afete os resultados de nenhuma das transações. durabilidade Afirma que os resultados de uma transação devem persistir mesmo se o sistema falhar. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 28 74 De acordo com o livro Geomar André Schreiner (Banco de Dados para Big Data), as propriedades de transações ACID tornam o trabalho do desenvolvedor de aplicações muito mais simples. No entanto, apesar de muito desejáveis, essas propriedades criam dificuldades ao se distribuir o banco de dados. Quando um banco de dados relacional cresce além da capacidade de um único nó, é preciso se optar por escalabilidade vertical ou horizontal. A escalabilidade vertical não é uma opção para sistemas que lidam com grandes volumes de dados. Assim, a opção é escalar horizontalmente, e nesse caso há duas formas de se particionar os dados. A primeira é o particionamento funcional, que consiste em distribuir as tabelas pelos nós de acordo com as funcionalidades do sistema que elas atendem, por exemplo, um nó pode conter as tabelas relacionadas a usuários e outro pode conter as tabelas relacionadas à cobrança. O segundo tipo, chamado sharding, ocorre quando uma tabela está dividida em mais de um nó. Quando essa técnica é utilizada, os dados são espalhados por nós de acordo com um critério arbitrário qualquer, como a inicial do nome do usuário em uma tabela de usuários, por exemplo. Ao se aplicar sharding em um banco de dados, mesmo com a falha de um nó, o sistema continua funcionando para todas as operações que não dependam dos dados contidos naquele nó. A desvantagem dessa estratégia é que o banco de dados perde parte da sua capacidade de lidar com restrições dos dados, além de não serem mais capazes de realizar joins transparentemente. Com isso, os bancos de dados relacionais deixam de oferecer algumas de suas principais funcionalidades para o desenvolvedor de aplicações, que passa a ter que fazer esses tratamentos no nível da aplicação. Partições de rede são raras, mas ocorrem de tempos em tempos em sistemas largamente distribuídos (sistemas distribuídos por vários datacenters, por exemplo). A partir dessa constatação, para essa categoria de sistemas, é necessário escolher entre disponibilidade e consistência. Dada a natureza das aplicações Web 2.0, elas costumam optar por disponibilidade quando for possível tolerar alguma inconsistência temporária. Aí é que entra o BASE! BASE (Basically Available, Soft State, Eventually Consistent): trata-se de um conjunto de propriedades utilizadas em bancos de dados não relacionais de sistemas distribuídos. Ele significa Basicamente Disponível, Estado Suave e Eventualmente Consistente, mas o termo não descreve exatamente as propriedades como as definidas pelo ACID – ele apenas indica que se deve planejar sistemas de forma a tolerar inconsistências temporárias quando se quer priorizar disponibilidade. Propriedades base descrição Basicamentedisponível Significa que o sistema sempre aceitará solicitações, mesmo que não seja capaz de processá- las imediatamente. Estado suave Significa que o sistema não precisa manter um estado constante e pode eventualmente convergir para um estado consistente. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 29 74 Eventualmente consistente Significa que o sistema pode não responder a uma solicitação imediatamente, mas eventualmente convergirá para um estado consistente. Teorema CAP INCIDÊNCIA EM PROVA: baixíssima Uma vez introduzidos os modelos de dados NoSQL, muitos são induzidos a pensar que a proposta desses novos sistemas de bancos de dados vem em substituição aos baseados no Modelo Relacional. Porém, é de extrema importância mencionar que os bancos de dados NoSQL vêm para solucionar uma nova e diferente demanda de necessidades de manipulação de dados. Cada modelo NoSQL trata os dados de maneira pontual e não devem ser usados indistintamente. Baseado nesses estudos foi desenvolvida uma teoria conhecida como Teorema CAP (sigla em inglês para Consistency, Availability, Partition Tolerance). Nesse teorema, é admitida a inviabilidade de que um sistema de computação possa oferecer a consistência, disponibilidade e tolerância de partição ao mesmo tempo em um dado momento, sendo apenas possível a garantia de duas das propriedades por vez. Atenção a esse ponto... As estratégias de manipulação de dados dos bancos de dados tentam englobar três conceitos fundamentais. Vejamos... CARACTERÍSTICA descrição Consistência Significa que todos os clientes veem os mesmos dados ao mesmo tempo, não importa em qual nó eles se conectem. Para que isso aconteça, sempre que os dados forem gravados em um nó, ele deve ser instantaneamente encaminhado ou replicado para todos os outros nós do sistema antes que a gravação seja considerada "bem-sucedida". Disponibilidade Significa que qualquer cliente que fizer uma solicitação de dados obterá uma resposta, mesmo que um ou mais nós estejam desativados. Ou seja, todos os nós em funcionamento no sistema distribuído retornam uma resposta válida para qualquer solicitação, sem exceção. Tolerância de partição (falha) A partição é uma quebra de comunicações dentro de um sistema distribuído, uma conexão perdida ou temporariamente lenta entre dois nós. Tolerância de partição significa que o cluster deve continuar a funcionar mesmo de ocorrer uma ou mais falhas de comunicação entre os nós no sistema. Ao longo dos anos, os sistemas computacionais funcionavam em sua maioria em ambientes únicos (ou distribuídos em poucos servidores). Além disso, esses sistemas tratavam de dados quantitativos dos quais situações como dois usuários obterem valores diferentes para a mesma informação não poderia ser admitida em hipótese alguma. A garantia de que as informações não sofreriam mutações era mais relevante do que o prejuízo da queda do sistema por uma eventual falha. Os sistemas de bancos de dados NoSQL que vêm como soluções para as novas demandas de problemas, assumem posturas diferentes para resolverem os problemas propostos. Enquanto os sistemas de bancos de dados relacionais seguem os padrões do modelo relacional, no domínio Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 30 74 NoSQL é possível perceber que mesmo ferramentas pertencentes a modelos de dados semelhantes podem oferecer princípios diferentes. Algumas soluções de sistemas gerenciadores de banco de dados orientados a chave valor aplicam um maior esforço para garantir a disponibilidade (CAP) sobre as requisições recebidas e a tolerância de partição (CAP) em casos de problemas. Um exemplo de implementação dessa abordagem seria o SGBD DynamoDB – ele é geralmente utilizado com aplicações que precisam estar disponíveis em tempo oportuno. Em muitos casos, bancos de dados distribuídos sacrificam a consistência, permitindo que as transações ocorram e que a sincronização dos dados venha a ser estabelecida em um momento posterior. Outra vertente do modelo chave-valor (Ex: Redis) está focada em oferecer alta consistência (CAP) e tolerância de partição (CAP). Essa perspectiva faz com que um sistema particionado possa suspender a escrita em um de seus nós caso haja um conflito. Isso garante o funcionamento da aplicação e evita inconsistências. Se dentro do mesmo modelo de dados os sistemas NoSQL podem divergir de tal forma, pondo em perspectiva modelos diferentes, essas mudanças são ainda maiores. Atualmente, os sistemas de bancos de dados NoSQL são classificados com base nas duas características do CAP que oferecem. Vejamos abaixo a descrição desses tipos junto com o diagrama que representa o Teorema CAP: Bancos de dados descrição Banco de dados cp Entrega consistência e tolerância de partição em detrimento da disponibilidade. Quando uma partição ocorre entre dois nós quaisquer, o sistema deverá desativar o nó não consistente (ou seja, torná-lo indisponível) até que a partição seja resolvida. Banco de dados ap Entrega disponibilidade e tolerância de partição em detrimento da consistência. Quando ocorre uma partição, todos os nós permanecem disponíveis, exceto aqueles na extremidade errada de uma partição podem retornar uma versão mais antiga de dados do que outros. Quando a partição é resolvida, os bancos de dados AP geralmente ressincronizam os nós para corrigir todas as inconsistências no sistema. Fernando Pedrosa Lopes , Thiago Rodrigues Cavalcanti, Erick Muzart Fonseca dos Santos, Paolla Ramos e Silva , Diego Carvalho, Renato da Costa, Equipe Informática e TI Aula 28 (Profs Diego Carvalho e Raphael Lacerda) Concursos da Área Fiscal - Curso Básico de Tecnologia da Informação - 2023 www.estrategiaconcursos.com.br https://t.me/kakashi_copiador 31 74 Banco de dados ca Entrega consistência e disponibilidade em todos os nós. Porém, isso não é possível se houver uma partição entre dois nós quaisquer no sistema, no entanto, e, portanto, não poderá entregar tolerância a falhas. Atenção: em um sistema distribuído, partições não podem ser evitadas. Por isso, enquanto podemos discutir um banco de dados distribuído CA em teoria, para todos os efeitos práticos, um banco de dados distribuído CA não pode existir. No entanto, isso não significa que você não pode ter um banco de dados CA para a sua aplicação distribuída se você precisar de um. Muitos bancos de dados relacionais, como o PostgreSQL, entregam consistência e disponibilidade e podem ser implementados em múltiplos nós usando replicação. Arquitetura de Big Data INCIDÊNCIA EM PROVA: baixíssima Uma arquitetura de Big Data é projetada para lidar com a ingestão (consumo), processamento e análise de dados que são muito grandes ou complexos para sistemas de banco de dados tradicionais. O limite no qual as organizações entram no domínio do Big Data é diferente, dependendo dos recursos dos usuários e de suas ferramentas. Para alguns, pode significar centenas de gigabytes de dados, enquanto para outros significa centenas de terabytes. À medida que as ferramentas para trabalhar com grandes conjuntos de dados avançam, o mesmo acontece com o significado de Big Data. Cada vez mais, esse termo se relaciona com o valor que você pode extrair de seus conjuntos de dados por meio de análises avançadas, em vez de estritamente