Você está na página 1de 79

1

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

2
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS
Núcleo de Educação a Distância

PRESIDENTE: Valdir Valério, Diretor Executivo: Dr. Willian Ferreira.

O Grupo Educacional Prominas é uma referência no cenário educacional e com ações voltadas para
a formação de profissionais capazes de se destacar no mercado de trabalho.
O Grupo Prominas investe em tecnologia, inovação e conhecimento. Tudo isso é responsável por
fomentar a expansão e consolidar a responsabilidade de promover a aprendizagem.

GRUPO PROMINAS DE EDUCAÇÃO


Diagramação: Gildenor Silva Fonseca

3
Prezado(a) Pós-Graduando(a),

Seja muito bem-vindo(a) ao nosso Grupo Educacional!


Inicialmente, gostaríamos de agradecê-lo(a) pela confiança
em nós depositada. Temos a convicção absoluta que você não irá se
decepcionar pela sua escolha, pois nos comprometemos a superar as
suas expectativas.
A educação deve ser sempre o pilar para consolidação de uma
nação soberana, democrática, crítica, reflexiva, acolhedora e integra-
dora. Além disso, a educação é a maneira mais nobre de promover a
ascensão social e econômica da população de um país.
Durante o seu curso de graduação você teve a oportunida-
de de conhecer e estudar uma grande diversidade de conteúdos.
Foi um momento de consolidação e amadurecimento de suas escolhas
pessoais e profissionais.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Agora, na Pós-Graduação, as expectativas e objetivos são


outros. É o momento de você complementar a sua formação acadêmi-
ca, se atualizar, incorporar novas competências e técnicas, desenvolver
um novo perfil profissional, objetivando o aprimoramento para sua atua-
ção no concorrido mercado do trabalho. E, certamente, será um passo
importante para quem deseja ingressar como docente no ensino supe-
rior e se qualificar ainda mais para o magistério nos demais níveis de
ensino.
E o propósito do nosso Grupo Educacional é ajudá-lo(a)
nessa jornada! Conte conosco, pois nós acreditamos em seu potencial.
Vamos juntos nessa maravilhosa viagem que é a construção de novos
conhecimentos.

Um abraço,

Grupo Prominas - Educação e Tecnologia

4
5
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS
Olá, acadêmico(a) do ensino a distância do Grupo Prominas!..

É um prazer tê-lo em nossa instituição! Saiba que sua escolha


é sinal de prestígio e consideração. Quero lhe parabenizar pela dispo-
sição ao aprendizado e autodesenvolvimento. No ensino a distância é
você quem administra o tempo de estudo. Por isso, ele exige perseve-
rança, disciplina e organização.
Este material, bem como as outras ferramentas do curso (como
as aulas em vídeo, atividades, fóruns, etc.), foi projetado visando a sua
preparação nessa jornada rumo ao sucesso profissional. Todo conteúdo
foi elaborado para auxiliá-lo nessa tarefa, proporcionado um estudo de
qualidade e com foco nas exigências do mercado de trabalho.

Estude bastante e um grande abraço!

Professor: Paulo Nunes


COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

6
O texto abaixo das tags são informações de apoio para você ao
longo dos seus estudos. Cada conteúdo é preprarado focando em téc-
nicas de aprendizagem que contribuem no seu processo de busca pela
conhecimento.
Cada uma dessas tags, é focada especificadamente em partes
importantes dos materiais aqui apresentados. Lembre-se que, cada in-
formação obtida atráves do seu curso, será o ponto de partida rumo ao
seu sucesso profissional.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

7
Nesta unidade, você verá os principais conceitos que definem a
Mineração de Dados, Data Mining e seus componentes. Verá do que real-
mente trata a mineração de dados e como utilizá-la em sua área aplicando
esses mesmos conceitos e técnicas na prática, aprendendo a coletar e
analisar os mais diferentes conjuntos de dados utilizando as ferramentas
mais conhecidas do mercado. Será apresentado aqui também como repre-
sentamos o conhecimento, de que forma utilizar as informações que estão,
muitas vezes, dispersas, organizando-as de maneira a ajudar na tomada
de decisões críticas dentro da sua empresa, transformando dados brutos
em informações preciosas.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Mineração. Conhecimento. Dados.

8
Apresentação do Módulo ______________________________________ 11

CAPÍTULO 01
SOLUÇÕES EM MINERAÇÃO DE DADOS

Introdução a Mineração de Dados ________________________________ 12

Representação do Conhecimento ________________________________ 18

Algoritmos _______________________________________________________ 20

Recapitulando ___________________________________________________ 29

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


CAPÍTULO 02
BANCOS DE DADOS NÃO CONVENCIONAIS

Bancos de Dados Distribuídos __________________________________ 34

Bancos de Dados Orientados a Objetos __________________________ 38

Bancos de Dados Objeto-Relacional ____________________________ 40

Recapitulando _________________________________________________ 49

9
CAPÍTULO 03
ANÁLISE EXPLORATÓRIA DE DADOS

Análise Bidimensional _________________________________________ 52

Séries Temporais _______________________________________________ 54

Números Índices _______________________________________________ 58

Recapitulando _________________________________________________ 70

Considerações Finais ___________________________________________ 74

Fechando a Unidade ___________________________________________ 75

Referências ____________________________________________________ 78
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

10
O campo da Mineração de Dados teve avanços rápidos nas
últimas duas décadas, especialmente da perspectiva da comunidade de
ciência da computação. Embora a análise de dados tenha sido ampla-
mente estudada no campo convencional de probabilidade e estatística,
a mineração de dados é um termo cunhado pela comunidade orientada
para a ciência da computação. Para cientistas da computação, ques-
tões como escalabilidade, usabilidade e implementação computacional
são extremamente importantes.
Neste módulo, você verá os conceitos básicos necessários para
entender o que é e como funciona a Mineração de Dados, aprendendo
como realiza a coleta, seleção e tratamento adequado de diferentes
tipos de dados, podendo, assim, utilizá-los para tomadas de decisões
muito mais acertadas e precisas. Veremos alguns dos bancos de dados
e suas representações, visto que são elementos de suma importância
no processo da Mineração de Dados, pois são eles que vão armazenar
e gerenciar todas as informações coletadas, além de serem utilizados
na organização dessas informações.
Cada um dos tópicos ligados à Mineração de Dados será abor-
dado aqui de maneira clara e didática, levando-se em consideração as
aplicações mais atuais nessa área. Veremos quais os métodos e ferra-
mentas adequados ao trabalho de coleta de dados, como e quais dados
são importantes para uma análise concisa, quais os bancos de dados
e gerenciadores de banco dados são mais indicados para o trabalho
de armazenamento de dados, e como se dá a filtragem e classificação

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


desses dados, de maneira que possam ser utilizados nas tomadas de
decisões em uma empresa, sempre levando em conta o tipo de negócio
e o que se pretende atingir com ele.

11
SOLUÇÕES EM
MINERAÇÃO DE DADOS
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

INTRODUÇÃO À MINERAÇÃO DE DADOS

Você pode até pensar que, para organizar e transformar da-


dos em informações importantes, tudo o que você precisa é um bom
gerenciador de planilhas e um banco de dados poderoso, mas não é
assim que as coisas funcionam. A Mineração de Dados requer, além de
ferramentas poderosas e precisas, de pessoal preparado para “pensar”
em como deve ser extraída a melhor informação para você e o seu ne-
gócio, pessoas que precisam conhecer também, assim como você, o
seu negócio.
A Mineração de Dados permite que pessoas comuns como
você e eu, possam, utilizando as técnicas de análise de dados corretas,
extrair uma massa de dados diversos, transformá-los em informações
úteis e colocá-las em prática, fazendo com que você possa então guiar
o seu negócio através dessas informações agora mais claras.
Não se trata apenas de “criar relatórios” e, sim, de agregar va-
12
lor a informações que antes só mostravam o que, na maioria das vezes,
havia acontecido antes. Com a Mineração de Dados, é possível enten-
der “como aconteceu” e como determinar o que poderá acontecer no
futuro.
E como funciona a Mineração de Dados? Vejamos esses dois
exemplos:
• Exemplo 01: Uma rede de lojas, que possui vendas on-line,
cria um sistema de fidelização de seus clientes, identificando através
desse sistema aqueles que passam mais tempo on-line e que possuem
maior probabilidade de comprar mais, isso com informações coletadas
durante a primeira visita do cliente ao site da rede de lojas. De posse
dessas informações, foi realizado um maior investimento em marketing
direcionado especificamente a esses clientes, maximizando a receita e
reduzindo custos com campanhas generalistas de marketing.
• Exemplo 02: Uma empresa de planos de saúde identifica que
certos procedimentos demandam menos tempo de internação que ou-
tros, mesmo que possuam a mesma complexidade médica. Sabendo
disso, a empresa implementou uma série de procedimentos e métodos
que seriam implantados em todos os hospitais e clínicas conveniadas,
visando à redução de custos e à melhoria no atendimento aos clientes.

Pelos exemplos demonstrados, é possível perceber que com


a Mineração de Dados podemos entender o relacionamento entre os
diferentes elementos de um mesmo negócio, pois ela dá direcionamen-
tos sobre quais ações devem ser realizadas, identificando onde devem

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


ser realizados cortes de custos, por exemplo, e onde devem ser feitos
investimentos com maior garantia de retorno.
É fácil entender que a quantidade exorbitante de dados ge-
rados atualmente é consequência direta dos avanços tecnológicos e
da informatização de praticamente todas as áreas. Esse é o principal
objetivo da Mineração de Dados, transformar dados arbitrários e bru-
tos, sem a devida estruturação para uso automatizado, precisam ser
processados por programas específicos de computador para obter re-
sultados objetivos.
Os desafios para a Mineração de Dados são muitos, isso devi-
do à enorme disparidade entre os problemas e tipos de dados coletados.
A recomendação de um produto difere de uma aplicação para detecção
de intrusão, mesmo no nível do formato dos dados de entrada ou na de-
finição dos problemas. Até quando há relação entre os problemas, exis-
tem diferenças muito significativas. Porém, mesmo com todas essas
diferenças, as aplicações para mineração de dados são conectadas a
pelo menos um dos quatro problemas básicos da mineração de dados:
13
• Mineração por padrões de associação.
• Clustering.
• Classificação e detecção de outlier1.
Esses são tópicos importantes por serem utilizados como “blo-
cos de construção” na maioria dos aplicativos, criando uma abstração
necessária para conceituar e estruturar os campos de Mineração de Da-
dos mais eficientemente. Podemos trabalhar com diferentes tipos e for-
matos de dados: quantitativos (peso, por exemplo), categóricos (raça,
por exemplo), texto, espacial temporal ou orientado a gráfico. Mesmo
sendo a forma multidimensional a mais comum, um número crescente
tende a ser de tipos mais complexos.

O processo de Mineração de Dados


O processo de Mineração de Dados é constituído por muitas
fases que incluem: a “limpeza” dos dados, extração de recursos e dese-
nho algorítmico. Uma aplicação típica para mineração de dados apre-
senta as seguintes fases:
• Coleta de dados: a coleta de dados pode exigir o uso de har-
dware especializado, como uma rede de sensores, trabalho manual,
como a coleta de pesquisas com usuários ou ferramentas de software,
como um mecanismo de rastreamento de documentos da Web para
coletar documentos. Embora esse estágio seja altamente específico do
aplicativo e, geralmente, esteja fora do domínio do analista de minera-
ção de dados, é extremamente importante porque boas escolhas nesse
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

estágio podem afetar significativamente o processo de mineração de


dados. Após a fase de coleta, os dados, geralmente, são armazenados
em um banco de dados ou, mais geralmente, em um data warehouse
para processamento.
• Extração de recursos e limpeza de dados: quando os dados
são coletados, eles, geralmente, não estão em um formato adequado
para processamento. Por exemplo, os dados podem ser codificados
em logs complexos ou documentos de formato livre. Em muitos casos,
diferentes tipos de dados podem ser arbitrariamente misturados em
um documento de formato livre. Para tornar os dados adequados para
processamento, é essencial transformá-los em um formato amigável
aos algoritmos de mineração de dados, como formato multidimensional,
de série temporal ou semiestruturado. O formato multidimensional é
o mais comum, no qual diferentes campos dos dados correspondem
às diferentes propriedades medidas que são chamadas de recursos,
atributos ou dimensões. É crucial extrair recursos relevantes para o
1 Ponto fora da curva

14
processo de mineração. A fase de extração de recursos, geralmente, é
realizada em paralelo com a limpeza de dados, onde partes ausentes e
incorretas dos dados são estimadas ou corrigidas. Em muitos casos, os
dados podem ser extraídos de várias fontes e precisam ser integrados
em um formato unificado para processamento. O resultado final desse
procedimento é um conjunto de dados bem estruturado, que pode ser
efetivamente usado por um programa de computador. Após a fase de
extração do recurso, os dados podem ser armazenados novamente em
um banco de dados para processamento.
• Processamento analítico e algoritmos: A parte final do pro-
cesso de mineração é projetar métodos analíticos eficazes a partir dos
dados processados.
Em muitos casos, pode não ser possível usar diretamente um
problema padrão de mineração de dados, como os quatro “superproble-
mas” para o aplicativo em questão. No entanto, esses quatro problemas
têm uma cobertura tão ampla que muitos aplicativos podem ser dividi-
dos em componentes que usam esses diferentes blocos de construção.

O pré-processamento de dados
O pré-processamento de dados é, provavelmente, a parte mais
importante no processo de mineração de dados. Contudo, quase nunca
é explorado na profundidade que merece, porque muitos dão impor-
tância maior nos aspectos analíticos da mineração de dados. Inicia-se
após a coleta dos dados e segue as seguintes etapas:

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


1. Extração de recursos: Um analista, geralmente, utiliza-se
de um grande volume de documentos brutos, logs do sistema ou tran-
sações comerciais, sem muitas informações sobre como esses dados
brutos devem ser convertidos em recursos consistentes para o banco
de dados de processamento. Nesta fase, há presença do analista, pois
nem sempre é possível para uma aplicação de data mining a abstra-
ção correta dos dados. Por exemplo, em um aplicativo de detecção de
fraude com cartão de crédito, o valor de uma cobrança, a frequência
de repetição e o local, geralmente, são bons indicadores de fraude. No
entanto, muitos outros recursos podem ser indicadores mais fracos de
fraude. Portanto, extrair os recursos certos, geralmente, é uma habili-
dade que requer uma compreensão do domínio de aplicação específico
em questão.
2. Limpeza de dados: Fase que visa à correção dos dados
brutos, eliminando entradas incorretas ou ausentes, muitas vezes, re-
mover totalmente um registro inconsistente, ou realizar estimativas de
entradas ausentes.
15
3. Seleção e transformação de recursos: para dados de alta
dimensão, muitos algoritmos de mineração de dados não funcionam
eficazmente. E também, muitos dos recursos de alta dimensão podem
gerar “ruído”, adicionando erros ao processo de mineração de dados.
Assim sendo, uma vasta gama de métodos pode ser utilizada para re-
mover recursos irrelevantes ou transformar o conjunto atual de recursos
em um novo espaço de dados mais acessível para análise.

Os tipos básicos de dados


Na mineração de dados, é grande a variedade de tipos de da-
dos disponíveis para análise. São dois os tipos de dados de complexi-
dade variável para o processo de mineração de dados:
• Dados orientados à não-dependência: normalmente, são os
tipos de dados simples, como dados multidimensionais ou dados de
texto. São os mais simples e mais comuns. Em casos como esses, os
registros de dados não possuem dependências especificadas entre os
itens de dados ou os atributos. Um exemplo é um conjunto de registros
demográficos sobre indivíduos que contêm idade, sexo e código postal.
• Dados orientados a dependências: para esses, podem exis-
tir relacionamentos implícitos ou explícitos entre os itens de dados. Por
exemplo, um conjunto de dados de redes sociais contém um conjunto
de vértices (itens de dados) que são conectados juntos por um conjunto
de arestas (relacionamentos). Por outro lado, as séries temporais con-
têm dependências implícitas. Por exemplo, é provável que dois valores
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

sucessivos coletados de um sensor estejam relacionados um ao outro.


Portanto, o atributo “tempo” especifica implicitamente uma dependência
entre leituras sucessivas.

Quadro 1- Conjunto de dados multidimensional


Nome Idade Sexo Nacionalidade
Ana Maria 35 F Brasileira
Pedro Augusto 27 M Paraguaio
Marina Marques 18 F Brasileira
Yasmin Marques 15 F Árabe
Júlio Cintra 58 M Macedônio
Fonte: Elaborada pelo autor, 2020.

• Dados orientados a não dependência: Possuem, normal-


mente, um conjunto de REGISTROS, onde cada registro contém um
conjunto de CAMPOS, que descrevem as PROPRIEDADES do regis-
16
tro. Bancos de dados relacionais são projetados para manipular esse
tipo de dado. No quadro 1 acima, temos um conjunto de dados sobre
um indivíduo.
• Dados multidimensionais quantitativos: No quadro 1 apre-
sentado acima, no campo “idade”, os valores são numéricos, também
referenciados como contínuos, numéricos ou quantitativos. Para o pro-
cessamento analítico, esse tipo é o mais fácil para trabalhar sob a pers-
pectiva estatística, pois podemos, por exemplo, utilizar uma média sim-
ples desses valores.
• Dados de atributos categóricos e mistos: Conjuntos de da-
dos que podem conter atributos que assumem valores não ordenados.
No quadro 1 acima, por exemplo, os atributos sexo e idade possuem
valores discretos, sem uma ordem natural entre eles. Denominamos
de “dados de atributos mistos” a combinação de atributos categóricos
e numéricos, como os do quadro 1. O atributo “sexo” é categórico, com
apenas dois valores possíveis, possibilitando, assim, impor uma ordem
“artificial”, transformando esses atributos em binários, por exemplo.
• Dados binários: São um conjunto especial de dados multi-
dimensionais ou quantitativos multidimensionais, pois cada atributo só
pode assumir no máximo dois valores discretos. É também um caso
especial de dado quantitativo multidimensional, pois existe uma ordem
entre esses dois possíveis valores.
• Dados de texto: Podem ser visualizados como uma sequên-
cia ou como dados multidimensionais, de acordo com a sua represen-
tação. Como texto bruto, são uma sequência, onde cada “string” é uma

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


sequência de caracteres dentro do documento. Para representar esse
tipo de dado, é utilizada uma representação do espaço vetorial, anali-
sando as frequências das palavras no documento. As frequências são
normalizadas estatisticamente, usando bases como comprimento do
documento ou frequência de palavras individuais do conjunto analisado.

Dados orientados a dependências


Falamos até agora no cenário multidimensional, onde os regis-
tros de dados podem ser tratados independentemente uns dos outros.
Porém, na prática, os diferentes valores podem estar relacionados entre
si de forma temporal, espacial ou através de links de relacionamento en-
tre os itens de dados. Com a mineração de dados trabalha encontrando
relacionamentos entre itens de dados, as dependências preexistentes
alteram os relacionamentos esperados nos dados. Assim sendo, veja-
mos os tipos de dependências:
• Dependências implícitas: dependências entre os itens de
17
dados não são especificadas explicitamente, mas sabe-se que “tipica-
mente” existem nesse domínio. Um exemplo podem ser os valores con-
secutivos de temperatura coletados por um sensor que, provavelmente,
podem ser muito semelhantes entre si. Então, se um valor da tempera-
tura registrado por um sensor em um tempo determinado é significati-
vamente diferente daquele registrado no instante seguinte, isso é muito
incomum e pode ser interessante para o processo de mineração de
dados. Isso é diferente dos conjuntos de dados multidimensionais em
que cada registro de dados é tratado como uma entidade independente.
• Dependências explícitas: Referem-se a dados de gráficos
ou de redes nos quais as arestas são usadas para especificar relacio-
namentos explícitos. Os gráficos são uma abstração muito poderosa
que, geralmente, é usada como uma representação intermediária para
resolver problemas de mineração de dados no contexto de outros tipos
de dados.

Dados de séries temporais


São aqueles gerados por medição contínua ao longo do tem-
po, por exemplo, temperatura e batimentos cardíacos. Normalmente,
possuem dependências implícitas nos valores recebidos durante esse
tempo, no caso da medição de temperaturas, por exemplo, elas, geral-
mente, variam, mesmo que discretamente, sendo esse um fator a ser
utilizado de forma explícita no processo de mineração de dados. Para
formalizar a questão das dependências causadas pela correlação tem-
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

poral, os atributos são classificados em dois tipos:


• Atributos contextuais: definem o contexto com base no qual
as dependências implícitas ocorrem nos dados.
• Atributos comportamentais: representam os valores que
são medidos em um contexto específico.
Como podemos ver até aqui, a mineração de dados é compos-
ta por vários estágios, onde a coleta de dados é apenas o primeiro de-
les. É importante que se entenda que os diferentes formatos de dados
podem exigir diferentes algoritmos e o analista deve saber mapear o
aplicativo correto para os diferentes cenários ou mesmo construir novos
algoritmos.

REPRESENTAÇÃO DO CONHECIMENTO

Quando falamos em representação do conhecimento, imedia-


tamente remetemos aos estudos e conceitos de Inteligência Artificial
18
(IA), pois tem toda uma relevância para como os sistemas de IA “pen-
sam” e realizam seu “comportamento inteligente”. A representação do
conhecimento é um campo de estudos da inteligência artificial cujo prin-
cipal objetivo é apresentar informações do mundo real de uma maneira
que os computadores (cérebros eletrônicos) possam “entender” e utili-
zar para resolver problemas e tarefas da vida real.
Fazer as máquinas raciocinarem, compreenderem e interpre-
tarem e agirem como os seres humanos faz parte da representação do
conhecimento, sendo tudo isso relacionado com a capacidade de pro-
jetar e criar “agentes” que possam realizar essas tarefas. Resumindo, a
representação do conhecimento deve permitir que as máquinas se com-
portem como os seres humanos, coletando informações, interpretando
essas informações e aprendendo com as informações.

Tipos fundamentais de representação do conhecimento


O conhecimento em IA pode ser representado de maneiras
diferentes, dependendo de sua estrutura, perspectiva do projetista ou
ainda da estrutura interna utilizada. Para que essa representação do
conhecimento seja eficaz, deve-se incluir de forma completa o conheci-
mento necessário para a resolução do problema.
1. Representação lógica
Tanto o conhecimento quanto o raciocínio lógico são de grande
importância para a IA. Porém, na maioria das vezes, é necessário mais
do que métodos gerais para garantir um comportamento inteligente.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Nesse caso, a ferramenta mais útil é a lógica formal, por ser uma lingua-
gem com representação inequívoca e que utiliza regras concretas. Para
a representação do conhecimento, é muito mais importante o método
de lógica utilizado para entender e decodificar o conhecimento do que
a própria lógica.
Através da representação lógica é possível estabelecer certas
regras de comunicação importantes para fornecer e adquiri informações
de agentes, com o mínimo de erros. As diferentes regras de lógica per-
mitem que sejam representadas coisas diferentes, obtendo como resul-
ta em uma inferência mais eficiente. Esse conhecimento adquirido por
agentes lógicos é definido como verdadeiro ou falso. Mesmo com todos
os desafios de se trabalhar com a representação lógica, ela é a base
para as linguagens de programação e construção do raciocínio lógico.
2. Redes semânticas
Nesse tipo de representação, o conhecimento é armazena-
do em forma de uma rede gráfica, com nós (nodes) e arcos (arcs) re-
presentando os objetos e seus relacionamentos, podendo representar
19
objetos físicos, conceito ou situações. A implementação desse tipo de
representação é muito mais fácil de se implementar e também entender
por ser mais natural do que a representação lógica, por exemplo.
3. Representação por frame
Um frame (quadro) é constituído por uma coleção de atributos
com seus valores associados descrevendo uma entidade real. Asseme-
lha-se a um registro consistindo em slots e seus valores, onde os slots
podem ser de tamanhos e tipos variados, possuindo nomes e valores. É
possível também que os slots possuam subcampos denominados como
“facetas”, permitindo que sejam colocadas restrições nos frames.
Não existe limite ou restrição nos valores das facetas de um
slot, ou mesmo no número de facetas pertencentes a um slot, e tam-
bém no número de slots que um quadro pode possuir. Para uma maior
eficiência é recomendada a construção de um sistema de quadros, que
coletam quadros conectados uns aos outros, podendo ser utilizado em
várias aplicações de IA.

ALGORITMOS

Para a mineração de dados, um algoritmo é constituído por


um conjunto de cálculos e heurística que formam um modelo baseado
nos dados pesquisados. Para a criação desse modelo, os dados são
analisados em busca de padrões e tendências específicas, onde o re-
sultado dessas análises define os parâmetros para criação do modelo
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

de mineração.

Modelos de regressão linear e não linear


Os modelos de regressão capturam como uma ou mais variá-
veis de destino variam com uma ou mais variáveis de atributo. Eles po-
dem ser usados para prever os valores das variáveis de destino usando
os valores das variáveis de atributo.

Modelos de regressão linear


Um modelo de regressão linear simples, como mostrado a se-
guir, tem uma variável de destino y e uma variável de atributo x:
yi = β0 + β1xi + εi
Onde
(xi, yi) denota a i-ésima observação de x e y εi representa ruído
aleatório (por exemplo, erro de medição) contribuindo para a i-ésima
observação de y.
20
Para um determinado valor de xi, tanto yi quanto εi são variáveis
aleatórias onde, para o mesmo valor de x, diferentes valores de y e ε
podem ser observados em momentos diferentes. Existem três suposi-
ções sobre εi:
1. E(εi) = 0, ou seja, a média de εi é zero
2. var(εi) = σ2, ou seja, a variância de εi é σ2
3. cov(εi, εj) = 0 para i≠j, ou seja, a covariância de εi e εj para
quaisquer duas observações de dados diferentes, a iésima observação
e a j-ésima observação, é zero.

Modelos de regressão não linear e estimativa de parâmetros


Os modelos de regressão não lineares são não lineares nos
parâmetros do modelo e assumem a seguinte forma geral:
𝑦𝑦𝑖𝑖 = 𝑓𝑓(𝑥𝑥𝑖𝑖 , 𝛽𝛽) + 𝜀𝜀𝑖𝑖

Onde
1 𝛽𝛽0
𝑥𝑥
𝑥𝑥𝑖𝑖 = � …𝑖𝑖,1 � 𝛽𝛽 = � 𝛽𝛽1 �

𝑥𝑥𝑖𝑖,𝑝𝑝 𝛽𝛽𝑝𝑝

E f é não linear em β. O modelo de regressão exponencial for-


necido a seguir é um exemplo de modelos de regressão não linear:

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


𝑦𝑦𝑖𝑖 = 𝛽𝛽0 + 𝛽𝛽 𝛽𝛽 2𝑥𝑥 + 𝜀𝜀𝑖𝑖
1𝑒𝑒 𝑖𝑖

O modelo de regressão logística dado a seguir é outro exemplo


de modelos de regressão não linear:
𝛽𝛽0
𝑦𝑦𝑖𝑖 = + 𝜀𝜀𝑖𝑖 .
1 + 𝛽𝛽1𝑒𝑒 𝛽𝛽 2𝑥𝑥 𝑖𝑖

O método dos mínimos quadrados e o método da máxima ve-


rossimilhança são usados para estimar os parâmetros de um modelo
de regressão não linear. Ao contrário das equações para um modelo de
regressão linear, as equações para um modelo de regressão não linear,
geralmente, não têm soluções analíticas, porque um modelo de regres-
são não linear é não linear nos parâmetros. Métodos de pesquisa numé-
rica usando um procedimento de pesquisa iterativa, como o método de
Gauss-Newton e o método de pesquisa decrescente de gradiente, são
21
usados para determinar a solução para os valores dos parâmetros es-
timados. Os programas de computador em muitos pacotes de software
estatístico são, geralmente, usados para estimar os parâmetros de um
modelo de regressão não linear, porque a computação intensiva está
envolvida em um procedimento de pesquisa numérica.

Classificação Naïve Bayes


Teorema de Bayes
Dados dois eventos A e B, a conjunção (^) dos dois eventos
representa a ocorrência de A e B. A probabilidade, P (A ^ B) é calculada
usando a probabilidade de A e B, P (A) e P (B), e a probabilidade condi-
cional de A dado B, P (A | B), ou B dado A, P (B | A):

𝑃𝑃(𝐴𝐴 ∧ 𝐵𝐵) = 𝑃𝑃(𝐴𝐴|𝐵𝐵)𝑃𝑃(𝐵𝐵) = 𝑃𝑃(𝐵𝐵|𝐴𝐴)𝑃𝑃(𝐴𝐴).

O Teorema de Bayes deriva da equação:


𝑃𝑃(𝐵𝐵|𝐴𝐴)𝑃𝑃(𝐴𝐴)
𝑃𝑃(𝐴𝐴|𝐵𝐵) =
𝑃𝑃(𝐵𝐵)

Classificação baseada no Teorema de Bayes e na Classificação


Naïve Bayes
Para um vetor de dados x cuja classe alvo y precisa ser deter-
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

minada, a classificação a posterior (MAP) máxima y de x é:


𝑚𝑚𝑚𝑚𝑚𝑚 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) 𝑚𝑚𝑚𝑚𝑚𝑚
𝑦𝑦𝑦𝑦𝑦𝑦𝑦𝑦 = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑦𝑦𝑦𝑦𝑦𝑦 𝑃𝑃(𝑦𝑦|𝑥𝑥) = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑦𝑦𝑦𝑦𝑦𝑦 ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑦𝑦𝑦𝑦𝑦𝑦 𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦),
𝑃𝑃(𝑥𝑥)

Onde Y é o conjunto de todas as classes de destino. O sinal ≈


não é usado porque P(x) é o mesmo para todos os valores y e, portanto,
pode ser ignorado quando comparamos p(y) P(x | y) P(x) para todos os
valores y. P (x) é a probabilidade anterior de observarmos x sem nenhum
conhecimento sobre qual é a classe-alvo de x. P(y) é a probabilidade
anterior de que esperamos y, refletindo nosso conhecimento prévio so-
bre o conjunto de dados de x é a probabilidade da classe de destino y
no conjunto de dados sem referência a nenhum x específico. P(y | x) é a
probabilidade posterior de y dada a observação de x. 𝑎𝑎𝑎𝑎𝑎𝑎𝑚𝑚𝑚𝑚𝑚𝑚𝑃𝑃(𝑦𝑦|𝑥𝑥) x)
𝑦𝑦𝑦𝑦𝑦𝑦
compara as probabilidades posteriores de todas as classes-alvo dadas
x e escolhe a classe-alvo y com a probabilidade posterior máxima.
22
P(x|y) é a probabilidade de observarmos x se a classe de des-
tino for y. Uma classificação y que maximiza P(x|y) entre todas as clas-
ses-alvo é a classificação de máxima verossimilhança (MV):
𝑚𝑚𝑚𝑚𝑚𝑚
𝑦𝑦𝑦𝑦𝑦𝑦 = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑦𝑦𝑦𝑦𝑦𝑦 𝑃𝑃(𝑥𝑥|𝑦𝑦).
Se 𝑃𝑃(𝑦𝑦) = 𝑃𝑃(𝑦𝑦 ′ )𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑞𝑞𝑞𝑞𝑞𝑞𝑞𝑞𝑞𝑞𝑞𝑞𝑞𝑞 𝑦𝑦 ≠ 𝑦𝑦 ′ , 𝑦𝑦 ∈ 𝑌𝑌, 𝑦𝑦 ′ ∈ 𝑌𝑌, 𝑒𝑒𝑒𝑒𝑒𝑒ã𝑜𝑜
𝑚𝑚𝑚𝑚𝑚𝑚 𝑚𝑚𝑚𝑚𝑚𝑚
𝑦𝑦𝑦𝑦𝑦𝑦𝑦𝑦 ≈ 𝑎𝑎𝑎𝑎𝑎𝑎𝑦𝑦 ∈ 𝑦𝑦𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) ≈ 𝑎𝑎𝑎𝑎𝑎𝑎𝑦𝑦 ∈ 𝑌𝑌𝑃𝑃(𝑥𝑥|𝑦𝑦)

Assim sendo: 𝑦𝑦𝑦𝑦𝑦𝑦𝑃𝑃 = 𝑦𝑦𝑦𝑦𝑦𝑦


Um classificador Naïve Bayes é baseado em uma classificação
MAP com a suposição adicional sobre as variáveis de atributo x = (x1,
…, xp) de que essas variáveis de atributo xis são independentes umas
das outras. Com essa suposição, temos
𝑝𝑝
𝑚𝑚𝑚𝑚𝑚𝑚 𝑚𝑚𝑚𝑚𝑚𝑚
𝑦𝑦𝑦𝑦𝑦𝑦𝑦𝑦 ≈ 𝑎𝑎𝑎𝑎𝑎𝑎𝑦𝑦 ∈ 𝑌𝑌𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) = 𝑎𝑎𝑎𝑎𝑎𝑎𝑦𝑦 ∈ 𝑌𝑌𝑝𝑝(𝑦𝑦) � 𝑃𝑃(𝑥𝑥𝑖𝑖 |𝑦𝑦).
𝑖𝑖=1

O classificador Naïve Bayes estima os termos de probabilidade


na equação anterior da seguinte maneira:
𝑛𝑛𝑦𝑦
𝑃𝑃(𝑦𝑦) =
𝑛𝑛
𝑛𝑛𝑦𝑦&𝑥𝑥𝑥𝑥
𝑃𝑃(𝑥𝑥𝑖𝑖 |𝑦𝑦) =
𝑛𝑛𝑦𝑦

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Onde:
n é o número total de pontos de dados no conjunto de dados
de treinamento
ny é o número de pontos de dados com a classe de destino
yny&xi é o número de pontos de dados com a classe de destino y a i-é-
sima variável de atributo tomando o valor de xi.

Árvores de decisão e regressão


Árvores de decisão são uma metodologia de classificação,
em que o processo de classificação é modelado com a utilização de
um conjunto de decisões hierárquicas sobre as variáveis de recursos,
dispostas em uma estrutura em árvore. A decisão em um nó específico
da árvore, que é referido como o critério de divisão, é, normalmente,
uma condição em uma ou mais variáveis de recurso nos dados de trei-
namento. O critério de divisão divide os dados de treinamento em duas
ou mais partes.
23
As árvores de decisão e regressão são usadas para aprender
os padrões de classificação e predição dos dados e expressar a rela-
ção e atributo das variáveis x com uma variável de destino y, y = F(x),
na forma de uma árvore. Uma árvore de decisão classifica o valor de
destino categórico de um registro de dados usando seus valores de
atributo. Uma árvore de regressão prevê o valor de destino numérico de
um registro de dados usando seus valores de atributo.

Métodos de seleção de divisão


Com o objetivo de buscar uma árvore de decisão com o com-
primento mínimo de descrição, precisamos saber como dividir um nó
para que possamos atingir o objetivo de obter a árvore de decisão com
o comprimento mínimo de descrição.
Uma abordagem comum de seleção de divisão é selecionar a
divisão que produz os subconjuntos mais homogêneos. Um conjunto
de dados homogêneo é um conjunto de dados cujos registros de dados
têm o mesmo valor de destino. Existem várias medidas de homogenei-
dade de dados: entropia da informação, índice de gini, etc. A entropia da
informação é originalmente introduzida para medir o número de bits de
informação necessário para codificar os dados.
O objetivo do critério de divisão é maximizar a separação das
diferentes classes entre os nós filhos. A seguir, apenas critérios uni-
variados serão discutidos. Suponha que um critério de qualidade para
avaliar uma divisão esteja disponível. O design do critério de divisão
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

depende da natureza do atributo subjacente:


1. Atributo binário: Apenas um tipo de divisão é possível e
a árvore é sempre binária. Cada ramo corresponde a um dos valores
binários.
2. Atributo categórico: Se um atributo categórico tiver r valo-
res diferentes, há várias maneiras de dividi-lo. Uma possibilidade é usar
uma divisão r-way, na qual cada ramificação da divisão corresponde a
um valor de atributo específico. A outra possibilidade é usar uma divisão
binária testando cada uma das 2r-1 combinações (ou agrupamentos) de
atributos categóricos e selecionando o melhor. Obviamente, essa não é
uma opção viável quando o valor de r é grande.
3. Atributo numérico: Se o atributo numérico contém um pe-
queno número r de valores ordenados (por exemplo, inteiros em um
pequeno intervalo [1, r]), é possível criar uma divisão de r way para
cada valor distinto. No entanto, para atributos numéricos contínuos, a
divisão é normalmente realizada usando uma condição binária, como
x ≤ a, para valor de atributo x e constante a. Considere o caso em que
24
um nó contém m pontos de dados. Portanto, há m possíveis pontos de
divisão para o atributo e os valores correspondentes de a podem ser de-
terminados classificando os dados no nó ao longo desse atributo. Uma
possibilidade é testar todos os valores possíveis de a para uma divisão
e selecionar o melhor. Uma alternativa mais rápida é testar apenas um
conjunto menor de possibilidades para a, com base na divisão de pro-
fundidade igual do intervalo.
Muitos dos métodos mencionados requerem a determinação
da “melhor” divisão de um conjunto de escolhas. Especificamente, é
necessário escolher entre vários atributos e entre as várias alternativas
disponíveis para dividir cada atributo. Portanto, as quantificações de
qualidade dividida são necessárias.

• Taxa de erro: Seja p a fração das instâncias em um conjunto


de pontos de dados S pertencentes à classe dominante. Então, a taxa
de erro é simplesmente 1 − p. Para uma divisão r-way do conjunto S em
conjuntos S1. . . Sr, a taxa de erro geral da divisão pode ser quantificada
como a média ponderada das taxas de erro dos conjuntos individuais Si,
onde o peso de Si é | Si |. A divisão com a menor taxa de erro é selecio-
nada entre as alternativas.
• Índice de Gini: O índice de Gini G(S) para um conjunto S de
pontos de dados pode ser calculado de acordo com a equação a abaixo
na distribuição de classe p1. . . pk dos pontos de dados de treinamento
em S. 𝑘𝑘

𝐺𝐺(𝑣𝑣𝑖𝑖 ) = 1 − � 𝑝𝑝𝑗𝑗2 .

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


𝑗𝑗 =𝑖𝑖

O índice Gini geral para uma divisão r-way do conjunto S em


conjuntos S1. . . Sr pode ser quantificado como a média ponderada dos
valores do índice Gini G (Si) de cada Si, onde o peso de Si corresponde
a |Si|. 𝑟𝑟
|𝑆𝑆𝑖𝑖 |
𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 − 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆(𝑆𝑆 ⇒ 𝑆𝑆𝑖𝑖 … 𝑆𝑆𝑟𝑟 ) = � 𝐺𝐺(𝑆𝑆𝑖𝑖 )
|𝑆𝑆|
𝑖𝑖=1
A divisão com o índice Gini mais baixo é selecionada entre as
alternativas. O algoritmo CART usa o índice de Gini como critério de
divisão.
1. Entropia: A medida de entropia é usada em um dos algo-
ritmos de classificação mais antigos, conhecido como ID3. A entropia
E(S) para um conjunto S pode ser calculada de acordo com a equação
a seguir na distribuição de classe p1. . . pk dos pontos de dados de trei-
namento no nó.
25
𝑘𝑘

𝐸𝐸(𝑆𝑆) = − � 𝑝𝑝𝑗𝑗 𝑙𝑙𝑙𝑙𝑙𝑙2 (𝑝𝑝𝑗𝑗 )


𝑗𝑗 =1

Classificadores baseados em regras


Classificadores baseados em regras usam um conjunto de re-
gras “se – então” R = {R1. . . Rm} para combinar antecedentes com con-
sequentes. Uma regra é normalmente expressa da seguinte forma:
SE Condição ENTÃO Conclusão.
A condição no lado esquerdo da regra, também chamada de
antecedente, pode conter uma variedade de operadores lógicos, como
<, ≤,>, =, ⊆ ou ∈, que são aplicados às variáveis de recurso. O lado
direito da regra é conhecido como consequente e contém a variável
de classe. Portanto, uma regra Ri é da forma Qi ⇒ c, onde Qi é o ante-
cedente e c é a variável de classe. O símbolo “⇒” denota a condição
“ENTÃO”.
A notação Qi representa uma pré-condição no conjunto de re-
cursos. Em alguns classificadores, como os classificadores de padrão
de associação, o recondicionamento pode corresponder a um padrão
no espaço de recursos, embora nem sempre seja o caso.
Em geral, a pré-condição pode ser qualquer condição arbitrária
nas variáveis de recurso. Essas regras são então usadas para classifi-
car uma instância de teste. Diz-se que uma regra cobre uma instância
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

de treinamento quando a condição em seu antecedente corresponde à


instância de treinamento.
A fase de treinamento de um algoritmo baseado em regras cria
um conjunto de regras. A fase de classificação para uma instância de
teste descobre todas as regras que são acionadas pela instância de
teste. Diz-se que uma regra é disparada pela instância de teste quando
a condição lógica no antecedente é satisfeita pela instância de teste.
Em alguns casos, regras com valores consequentes conflitantes são
acionadas pela instância de teste. Nesses casos, os métodos são ne-
cessários para resolver os conflitos na previsão do rótulo da classe.
Os conjuntos de regras podem satisfazer uma ou mais das seguintes
propriedades:
1. Regras mutuamente exclusivas: Cada regra cobre uma
partição separada dos dados. Portanto, no máximo uma regra pode ser
disparada por uma instância de teste. As regras geradas a partir de
uma árvore de decisão satisfazem essa propriedade. No entanto, se as
regras extraídas forem subsequentemente modificadas para reduzir o
26
sobre ajuste, as regras resultantes podem não mais permanecer mu-
tuamente exclusivas.
2. Regras exaustivas: Todo o espaço de dados é coberto por
pelo menos uma regra. Portanto, cada instância de teste aciona pelo
menos uma regra. As regras geradas a partir de uma árvore de decisão
também satisfazem esta propriedade. Geralmente, é fácil construir um
conjunto de regras exaustivo criando uma única regra pega-tudo cujo
consequente contém a classe dominante na parte dos dados de treina-
mento não coberta por outras regras.

Datawarehouse é como denominamos os “depósitos de dados”


que utilizamos para armazenar enormes quantidades de dados.

Big Data é a expressão em inglês que designa uma quantidade


exorbitante de dados, não estruturados, produzidos no mundo atual.
Extrair informações relevantes desses dados é o papel do Cientista de

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Dados, utilizando-se de técnicas de mineração de dados.

Filme sobre o assunto: O Homem que Mudou o Jogo. “O Ho-


mem que Mudou o Jogo”, longa de Bennett Miller estrelado por Brad
Pitt. Lançado em 2011. Esse filme conta a história de um gerente de
time de baseball que, com a ajuda de economista, utilizou a análise de
dados para escalar e adquirir jogadores, sempre baseado no desempe-
nho de cada um durante as partidas da temporada.

Observação: Sobre a temática, é importante que o aluno note


a relevância do assunto dentro do seu campo de atuação.

27
Alguns softwares que valem a pena ser estudados quando
se trata de trabalhar com Big Data e Data Mining:
- Weka
Disponível em: <https://www.cs.waikato.ac.nz/ml/weka/>.

- IBM SPSS Estatistics:


Disponível em: <https://www.ibm.com/products/spss-statistics>.

- Intelligent Miner Visualizer:


Disponível em: <https://www.ibm.com/support/knowledgecen-
ter/en/SSEPGG_10.5.0/com.ibm.im.overview.doc/c_ibm_db2_intelli-
gent_miner_visualization.html>.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

28
QUESTÕES DE CONCURSOS
QUESTÃO 1
Ano: 2020 Banca: IBADE Órgão: Pref Vila Velha Prova: Analista
O processo de explorar grandes quantidades de dados à procura
de padrões consistentes, para detectar relacionamentos sistemáti-
cos entre variáveis, detectando assim novos subconjuntos de da-
dos é chamado de:
a) Data Lake.
b) Big Data.
c) Data Query.
d) Data Warehouse.
e) Data Mining.

QUESTÃO 2
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr
Castro e Ferrari (2016) ilustram na figura abaixo o processo de des-
coberta de conhecimento em base de dados, conforme segue:

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Sobre essas etapas, considere as seguintes tarefas:
1. Limpeza: para padronização dos dados.
2. Integração: para inserção de valores ausentes.
3. Transformação: para correção de inconsistências.
4. Redução: para reduzir a dimensão da base de dados.
É/São tarefa(s) de pré-processamento:
a) 3 apenas.
b) 4 apenas.
c) 1 e 3 apenas.
d) 2 e 4 apenas.
e) 1, 2 e 4 apenas.

29
QUESTÃO 3
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr
Castro e Ferrari (2016) mencionam que as funcionalidades da mi-
neração de dados são utilizadas para especificar os tipos de in-
formação a serem obtidos nas tarefas de mineração. Sobre esse
tema, considere as seguintes funcionalidades:
1. Análise de grupos: tarefa supervisionada que separa um conjun-
to de objetos em grupos.
2. Classificação: tarefa supervisionada para predição de valores
discretos.
3. Regressão (ou estimação): tarefa supervisionada para predição
de valores contínuos.
4. Associação: tarefa que descobre relações entre atributos por
meio da detecção de anomalias nos conjuntos de dados.
É/São funcionalidade(s) da etapa de mineração:
a) 1 apenas.
b) 2 apenas.
c) 1 e 4 apenas.
d) 2 e 3 apenas.
e) 3 e 4 apenas.

QUESTÃO 4
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Os algoritmos de Mineração de Dados podem ser classificados


quanto a seus objetivos, sendo alguns a classificação, o agrupa-
mento e a identificação de regras de associação. A respeito dessas
classificações e seus algoritmos, assinale a alternativa correta.
a) Algoritmos de agrupamento podem ser utilizados para classificação
não supervisionada.
b) Algoritmos de agrupamento são também chamados de algoritmos
supervisionados.
c) Algoritmos de classificação têm como resultado um modelo descritivo
dos dados de entrada.
d) Algoritmos de identificação de regras são também conhecidos como
algoritmos preditivos.
e) Algoritmos de agrupamento são equivalentes a algoritmos de identi-
ficação de anomalias.

30
QUESTÃO 5
Ano: 2019 Banca: NC-UFPR Órgão: ITAIPU Prova: Profissional Ní-
vel Universitário Jr
Em sistemas de Recuperação de Informação, quando a busca in-
clui documentos irrelevantes e exclui documentos relevantes, res-
pectivamente, esses fenômenos são chamados de:
a) Falso-positivo e verdadeiro-positivo.
b) Falso-positivo e falso-negativo.
c) Falso-negativo e falso-positivo.
d) Verdadeiro-negativo e falso-positivo.
e) Falso-negativo e verdadeiro-negativo.

QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE

O que é mineração de dados? Na sua resposta, aborde os seguintes


tópicos:
a) É uma simples transformação de tecnologia desenvolvida a partir de
bancos de dados, estatísticas e aprendizado de máquina?
b) Explique como a evolução da tecnologia de banco de dados levou à
mineração de dados.
c) Descreva as etapas envolvidas na mineração de dados quando vistas
como um processo de descoberta de conhecimento.

TREINO INÉDITO

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Atualmente, é grande a necessidade de disponibilizar aos gestores e
responsáveis por tomadas de decisão, aqueles que são responsáveis
em diferentes níveis organizacionais pelas ações dentro de uma empre-
sa, informações detalhadas de forma precisa para que sejam tomadas
as decisões corretas. Em se tratando do uso de Datawarehouse, arma-
zéns de dados, essa funcionalidade é garantida utilizando-se de:
a) Um banco de dados otimizado.
b) OLAP e data mining.
c) Data marts.
d) Esquema snowflake.
e) Apresentação drill-down.

NA MÍDIA

Data mining: conheça 14 aplicações muito úteis para você!


A data mining é usada, principalmente, hoje, por empresas com um forte
foco no consumidor – organizações de varejo, financeiras, comunicação
31
e marketing, para “detalhar” seus dados transacionais e determinar pre-
ços, preferências do cliente e posicionamento do produto, impacto nas
vendas, satisfação do cliente e lucros corporativos. Com a data mining,
um varejista pode usar registros de pontos de vendas de compras de
clientes para desenvolver produtos e promoções para atrair segmentos
específicos de clientes. Vejamos aqui outras 14 áreas importantes onde
a Data Mining é amplamente utilizada.

Fonte: FM2S - Educação e Consultoria


Data: 24 de outubro de 2018
Leia a notícia na íntegra: https://www.fm2s.com.br/data-mining/

NA PRÁTICA

Análise de Tipos de Questões em Avaliações para Cursos Superiores


(Graduação)
No Brasil, as universidades e cursos superiores em geral seguem pa-
drões estabelecidos pelo MEC para elaboração de questões de provas.
Algumas dessas questões são classificadas como: resposta única, des-
critiva, cálculo, foco negativo lacuna, associação, entre outras mais. Es-
ses modelos são utilizados nas avaliações de final de curso, o chamado
ENADE, onde os alunos que estão concluindo seu curso executam uma
prova elaborada pelo próprio MEC. Assim sendo, os responsáveis pela
elaboração e execução das provas em uma universidade precisam de
saber exatamente que tipos de questões estão sendo mais utilizadas
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

na elaboração por seus professores, quais os menos utilizados e os


que não são utilizados nunca. Para tal, é importante que se analise as
avaliações feitas ao longo dos anos, desde que os padrões de questões
foram criados, para que se possa ter esse tipo de informação, de forma
que seja possível equalizar os modelos de questões em uma mesma
prova. Nesse caso, os responsáveis pela TI ou alguém que seja en-
carregado poderia aplicar as técnicas e ferramentas necessárias para
coletar e analisar esses dados, utilizando-se da mineração de dados
aplicada as avaliações.
Fonte: Do próprio autor.

PARA SABER MAIS

Título: What is Data Mining


Data de publicação: 23/10/2010
Fonte: https://www.youtube.com/watch?v=R-sGvh6tI04 Acesso em: 17
de set. 2020.
32
Título: WEKA. O ambiente de trabalho para aprendizado de máquina
Data de publicação: N/A
Fonte: https://www.cs.waikato.ac.nz/ml/weka/ Acesso em: 17 de set. 2020.

Título: Gestão do conhecimento usando data mining: estudo de caso na


Universidade Federal de Lavras
Data de publicação: jun/2008
Fonte: https://www.scielo.br/scielo.php?script=sci_arttext&pid=S0034-
76122008000300004&lng=pt&tlng=pt Acesso em: 17 de set. 2020.

Título: A tendência é integrar a mineração de dados com as redes sociais


Data de publicação: 10/11/2010
Fonte: http://epocanegocios.globo.com/Revista/Common/0,,EMI185
111-1638200-A+TENDENCIA+E+INTEGRAR+A+MINERACAO+DE+-
DADOS+COM+AS+REDES+SOCIAIS.html Acesso em: 17 de set. 2020

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

33
BANCO DE DADOS
NÃO CONVENCIONAIS
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

BANCOS DE DADOS DISTRIBUÍDOS

Quando nos referimos a Banco de Dados Distribuído, estamos


falando de denominados “dados de atributos mistos” à combinação de
atributos categóricos e numéricos. Esse tipo de banco de dados não
necessita estar no mesmo local, mas em vários, daí ser denominado de
“distribuído”, e nem compartilhar os mesmos componentes. Esse tipo
de sistema é utilizado para permitir o acesso por vários usuários ao
mesmo tempo e em lugares geograficamente diferentes. Seu funciona-
mento para o usuário é transparente, ou seja, para o usuário é como se
o sistema fosse único e local.
Dessa forma, podemos afirmar que um banco de dados distri-
buído é, na realidade, um conjunto de vários outros bancos de dados
conectados entre si, geograficamente distribuídos, e que se comunicam
através de um sistema de redes de computadores.
34
Tipos de bancos de dados distribuídos
• Banco de dados homogêneo: tem essa denominação por
armazenarem os dados em diferentes ambientes de forma homogênea.
Todos os ambientes vão utilizar de maneira igual o sistema operacional,
o sistema de gerenciamento de banco de dados e as estruturas de da-
dos usadas, tornando assim muito mais fácil seu gerenciamento. São
dois os modelos para esse tipo de banco de dados:
- Autônomo: onde cada banco funciona independente, sen-
do integrado a outros através de aplicativos específicos para esse fim,
atualizando seus dados através da passagem de mensagens.
- Não autônomo: que se utiliza de um Sistema de Gerencia-
mento de Banco de Dados, SGBD, central coordenando as atualizações
entre os nós homogêneos.

• Banco de dados heterogêneo: nesse tipo de ambiente, os


sistemas podem utilizar diferentes esquemas e aplicações o que pode
incorrer em problemas na execução de consultas e transações. Esse
modelo exige bastante do ambiente, pois as informações devem ser
traduzidas para cada sistema diferente que necessitem se comunicar.

Vantagens de bancos de dados distribuídos


Muitos são os motivos para a utilização desse tipo de sistema.
Vejamos alguns deles a seguir:
• Desenvolvimento de aplicativos é flexibilizado por causa da

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


transparência na distribuição e controle de dados.
• Confiabilidade e disponibilidade. Com a distribuição em vá-
rios locais, o isolamento das falhas em um local evita que os outros se-
jam afetados, continuando, assim, a funcionar normalmente, pois ape-
nas no local de origem da falha os dados não poderiam ser acessados.
• Desempenho. Como um DBMS distribuído fragmenta o ban-
co de dados, mantendo os dados mais próximos de onde são mais ne-
cessários, isso reduz a contenção para serviços de CPU e dispositivos
de E/S e, reduzindo, assim, os atrasos de acesso envolvidos em redes
de longa distância. São mantidos bancos de dados menores em cada
local através da distribuição do banco de dados maior e central, re-
sultando em consultas e transações locais, melhorando o desempenho
substancialmente.
• Expansão Para um ambiente distribuído aumentar o sistema
em termos de receber uma maior quantidade de dados, aumentando o
banco ou incorporando uma maior quantidade de processadores fica
muito mais fácil.
35
Arquiteturas de banco de dados distribuídos
Cliente-servidor (duas camadas)
Arquitetura onde dois lados, cliente e servidor, são distintos.
Componentes do sistema que compõem o lado do cliente são a inter-
face do usuário e os programas aplicativos, sendo o SQL a linguagem
padrão para esse tipo de arquitetura. A funcionalidade de consulta e
transação relacionada ao processamento de SQL permaneceu no lado
do servidor. Aplicações em geral são executadas no lado do cliente,
que, para se comunicar com o sistema de gerenciamento de banco de
dados, no lado do servidor, utilizam uma conexão através do padrão
Open Database Connectivity, OBC, que fornece uma interface de pro-
gramação de aplicativos (API), permitindo, assim, essa chamada.

Cliente-servidor (três camadas)


Utilizada principalmente para atuação em sistemas desenvolvi-
dos para a Web, possui as seguintes definições:
• Camada de apresentação (cliente): Fornece a interface do
usuário e interage com o usuário. Os programas nessa camada apre-
sentam interfaces da Web ou formulários para o cliente a fim de interagir
com o aplicativo. Os navegadores da Web são utilizados como interface
base para as aplicações nesse ambiente. Essa camada trata da entra-
da, saída e navegação do usuário, aceitando comandos do usuário e
exibindo as informações necessárias, geralmente na forma de páginas
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

da Web estáticas ou dinâmicas. As interfaces Web realizam a comuni-


cação com os aplicativos através do protocolo HTTP.
• Camada de aplicativo (regras de negócio): Esta camada
programa a lógica do aplicativo. Por exemplo, as consultas podem ser
formuladas com base na entrada do usuário do cliente, ou os resultados
da consulta podem ser formatados e enviados ao cliente para apre-
sentação. Funcionalidades adicionais do aplicativo podem ser tratadas
nesta camada, como verificações de segurança, verificação de identida-
de e outras funções. A camada de aplicativo pode interagir com um ou
mais bancos de dados ou fontes de dados conforme necessário, conec-
tando-se ao banco de dados usando diferentes técnicas como ODBC,
JDBC, SQL / CLI, por exemplo, ou outras técnicas de acesso ao banco
de dados.
• Camada de servidor (banco de dados):. Lida com solicita-
ções de consulta e atualização da camada de aplicativo, processa as
solicitações e envia os resultados. Geralmente, a linguagem de banco
de dados SQL é usada para acessar o banco de dados se ele for rela-
36
cional ou objeto relacional.
• Arquitetura de banco de dados federado (FDBS): Nessa
arquitetura, o esquema local é o esquema conceitual (definição de ban-
co de dados completo) de um banco de dados de componente, e o es-
quema de componente é derivado da tradução do esquema local em um
modelo de dados canônico ou modelo de dados comum (CDM) para o
FDBS. A tradução do esquema local para o esquema do componente é
acompanhada pela geração de mapeamentos para transformar coman-
dos em um esquema de componente em comandos no esquema local
correspondente. O esquema de exportação representa o subconjunto
de um esquema de componente que está disponível para o FDBS. O
esquema federado é o esquema ou visualização global, que é o resulta-
do da integração de todos os esquemas de exportação compartilháveis.
Os esquemas externos definem o esquema para um grupo de usuários
ou um aplicativo, como na arquitetura de esquema de três níveis.

Técnicas de fragmentação, replicação e alocação de dados para


design de banco de dados distribuídos
Fragmentação de Dados: Diz respeito a qual local deve ser
usado para armazenar quais partes do banco de dados.
1. Fragmentação horizontal. Um fragmento horizontal tra-
ta, na verdade, de um subconjunto das tuplas de uma relação. Sendo
que as tuplas pertencentes ao fragmento horizontal são determinados
condicionalmente por um ou mais atributos da relação. Frequentemen-

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


te, apenas um único atributo está envolvido. A fragmentação horizontal
divide uma relação horizontalmente agrupando linhas para criar sub-
conjuntos de tuplas, onde cada subconjunto tem um certo significado
lógico. Esses fragmentos podem então ser atribuídos a diferentes locais
no sistema distribuído. A fragmentação horizontal derivada aplica o par-
ticionamento de uma relação primária a outras relações secundárias,
que estão relacionadas à primária por meio de uma chave estrangeira.
Dessa forma, dados relacionados entre as relações primárias e secun-
dárias são fragmentados da mesma forma.
2. Fragmentação vertical. Cada local pode não necessitar de
todos os atributos de uma relação, indicando assim a necessidade de
uma fragmentação diferente. Esse tipo de fragmentação divide uma re-
lação “verticalmente” em colunas, mantendo apenas alguns atributos da
relação, sendo necessário que seja incluída a chave primária ou algum
atributo de chave candidato em cada um dos fragmentos verticais de
modo que a relação possa ser reconstruída por completa partindo des-
ses fragmentos.
37
3. Fragmentação mista (híbrida). Podemos misturar os dois
tipos de fragmentação, produzindo uma fragmentação mista.

Replicação e alocação de dados


Utilizada para melhorar a disponibilidade de dados. Em um ce-
nário mais extremo, temos a replicação de todo o banco de dados em
todos os locais do sistema distribuído, criando, assim, um banco de
dados distribuído totalmente replicado. Isso pode melhorar a disponibili-
dade notavelmente, porque o sistema pode continuar a operar enquanto
pelo menos um local estiver ativo. Ele também melhora o desempenho
de recuperação para consultas globais, porque os resultados de tais
consultas podem ser obtidos localmente de qualquer site, portanto uma
consulta de recuperação pode ser processada no site local onde é en-
viada, se esse site incluir um módulo de servidor.
A desvantagem da replicação completa é que ela pode desa-
celerar drasticamente as operações de atualização, uma vez que uma
única atualização lógica deve ser executada em cada cópia do banco de
dados para manter as cópias consistentes. Isso é especialmente verda-
deiro se houver muitas cópias do banco de dados.
Um outro cenário da replicação seria não ter replicação - ou
seja, cada fragmento é armazenado em exatamente um local. Nesse
caso, todos os fragmentos devem ser disjuntos, exceto para a repetição
de chaves primárias entre fragmentos verticais (ou mistos). Isso tam-
bém é chamado de alocação não redundante. Entre esses dois pontos,
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

existe uma grande área de replicação parcial dos dados, onde algumas
porções do banco de dados podem ser replicadas e outras não.

BANCOS DE DADOS ORIENTADOS A OBJETOS

Conceitos de bancos de dados orientados a objetos


Orientação a objetos é um termo que designa um novo mo-
delo de desenvolvimento de softwares que tenta aproximar conceitos
virtuais com os reais na criação das entidades. Linguagens diversas
como Java, Python, PHP e Ruby, utilizam essa metodologia. Como con-
sequência natural dessa evolução, os bancos de dados estão seguindo
esse mesmo conceito.
O ODBMS, que é uma abreviatura de sistema de gerenciamen-
to de banco de dados orientado a objetos, é o modelo de dados no qual
os dados são armazenados em forma de objetos, que são instâncias de
classes. Essas classes e objetos juntos formam um modelo de dados
38
orientado a objetos.

Componentes do modelo de dados orientado a objetos


O OODBMS é baseado em três componentes principais, a sa-
ber: estrutura do objeto, classes do objeto e identidade do objeto. São
eles:
Estrutura do objeto: A estrutura de um objeto refere-se às
propriedades das quais um objeto é composto. Essas propriedades de
um objeto são chamadas de atributo. Assim, um objeto é uma entidade
do mundo real com certos atributos que compõem a estrutura do obje-
to. Além disso, um objeto encapsula o código de dados em uma única
unidade que, por sua vez, fornece abstração de dados ocultando os
detalhes de implementação do usuário.
A estrutura do objeto é ainda composta por três tipos de com-
ponentes: mensagens, métodos e variáveis. São eles:
1. Mensagens: Uma mensagem fornece uma interface ou atua
como um meio de comunicação entre um objeto e o mundo exterior.
Uma mensagem pode ser de dois tipos:
• Mensagem somente leitura: se o método invocado não alterar
o valor de uma variável, a mensagem de chamada é considerada uma
mensagem somente leitura.
• Mensagem de atualização: se o método invocado alterar o
valor de uma variável, a mensagem de chamada é considerada uma
mensagem de atualização.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


2. Métodos: quando uma mensagem é passada, o corpo do
código executado é conhecido como método. Sempre que um método
é executado, ele retorna um valor como saída. Um método pode ser de
dois tipos:
• Método somente leitura: quando o valor de uma variável não é
afetado por um método, ele é conhecido como método somente leitura.
• Método de atualização: quando o valor de uma variável muda
por um método, é conhecido como método de atualização.
3. Variáveis: ele armazena os dados de um objeto. Os dados
armazenados nas variáveis tornam o objeto distinguível um do outro.
Classes de objetos: Um objeto que é uma entidade do mun-
do real é uma instância de uma classe. Portanto, primeiro precisamos
definir uma classe e, em seguida, são feitos os objetos que diferem
nos valores que armazenam, mas compartilham a mesma definição de
classe. Os objetos, por sua vez, correspondem a várias mensagens e
variáveis armazenadas nele.
Um OODBMS oferece suporte à herança de forma ampla, pois,
39
em um banco de dados, podem existir muitas classes com métodos,
variáveis e mensagens semelhantes. Assim, o conceito de hierarquia
de classes é mantido para representar as semelhanças entre as várias
classes.
O conceito de encapsulamento que é o ocultamento de dados
ou informações também é suportado pelo modelo de dados orientado a
objetos. E este modelo de dados também fornece a facilidade de tipos
de dados abstratos além dos tipos de dados embutidos como char, int,
float. ADTs são os tipos de dados definidos pelo usuário que contêm os
valores dentro deles e também podem ter métodos anexados a eles.
Assim, OODBMS fornece inúmeras facilidades para seus
usuários, tanto internas quanto definidas pelo usuário. Ele incorpora
as propriedades de um modelo de dados orientado a objetos com um
sistema de gerenciamento de banco de dados e suporta o conceito de
paradigmas de programação como classes e objetos, juntamente com
o suporte para outros conceitos como encapsulamento, herança e os
ADTs definidos pelo usuário (tipos de dados abstratos).

BANCOS DE DADOS OBJETO-RELACIONAL


Características objeto-relacionais
Extensões de banco de dados de objetos para SQL
O SQL foi especificado pela primeira vez por Chamberlin e
Boyce (1974) e passou por aprimoramentos e padronização em 1989
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

e 1992. A linguagem continuou sua evolução com um novo padrão, ini-


cialmente chamado de SQL3 enquanto estava sendo desenvolvido, e
mais tarde conhecido como SQL: 99 para as partes do SQL3 que foram
aprovadas no padrão.
A partir da versão do SQL conhecida como SQL3, recursos
de bancos de dados de objetos foram incorporados ao padrão SQL.
No início, essas extensões eram conhecidas como SQL / Object, mas,
depois, foram incorporadas na parte principal do SQL, conhecido como
SQL / Foundation.
A seguir estão alguns dos recursos do banco de dados de ob-
jetos que foram incluídos no SQL:
• Alguns construtores de tipo foram adicionados para especifi-
car objetos complexos. Isso inclui o tipo de linha, que corresponde ao
construtor de tupla (ou estrutura). Um tipo de array para especificar cole-
ções também é fornecido. Outros construtores de tipo de coleção, como
os construtores set, list e bag, não faziam parte das especificações SQL
/ Object originais, mas foram posteriormente incluídos no padrão.
40
• Um mecanismo para especificar a identidade do objeto por
meio do uso do tipo de referência está incluído.
• As UDTS, tipos que são definidos pelos usuários, podem ser
utilizadas para fornecer o encapsulamento de operações, incluindo es-
sas operações como parte de sua declaração. Eles possuem seme-
lhança com o conceito de tipos de dados abstratos desenvolvidos para
linguagens de programação, além do conceito de rotinas definidas pelo
usuário (UDRs) permitir a definição de métodos gerais (operações).
• Utiliza-se a palavra-chave UNDER para fornecer mecanismos
de herança.

Tipos definidos pelo usuário e estruturas complexas para objetos


De modo a permitir a criação de objetos de estrutura complexa
e para separar a declaração de um tipo da criação de uma tabela, são
fornecidos pelo SQL tipos definidos pelo usuário (UDTs). Objetos de
estrutura mais complexa contam com outros quatro tipos de coleção, in-
cluídas para permitir tipos e atributos com vários valores. A criação dos
UDTs é mais simples, utilizando-se apenas do comando abaixo:

CREATE TYPE TYPE_NAME AS (<declarações de componen-


tes>);

Identificadores de objeto usando tipos de referência

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Versões mais recentes do SQL criam através de referências
identificadores exclusivos de objetos. Pode-se utilizar as chaves do mo-
delo relacional básico em lugar de um identificador de objeto.
Em geral, o usuário pode especificar que identificadores de
objeto gerados pelo sistema para as linhas individuais em uma tabela
devem ser criados. Usando a sintaxe:

REF IS <OID_ATTRIBUTE> <VALUE_GENERATION_ME-


THOD>;

O usuário declara que o atributo denominado <OID_ATTRIBU-


TE> será usado para identificar tuplas individuais na tabela. As opções
para <VALUE_GENERATION_METHOD> são SYSTEM GENERATED
ou DERIVED. No primeiro caso, o sistema irá gerar automaticamente
um identificador único para cada tupla. No último caso, o método tra-
dicional de usar o valor da chave primária fornecida pelo usuário para
identificar tuplas é aplicado.
41
Criação de tabelas com base nos UDTs
Para cada UDT que é especificado para ser instanciado por
meio da frase INSTANTIABLE, uma ou mais tabelas podem ser criadas.

Encapsulamento de Operações
No SQL, um tipo definido pelo usuário pode ter sua própria
especificação comportamental, especificando métodos (ou operações)
além dos atributos. A forma geral de uma especificação UDT com mé-
todos é a seguinte:

CREATE TYPE <TYPE-NAME> (<LISTA DE ATRIBUTOS DE


COMPONENTES E SEUS TIPOS> <DECLARAÇÃO DE FUNÇÕES
(MÉTODOS)>);

O SQL fornece certas funções integradas para tipos definidos


pelo usuário. Para um UDT denominado TYPE_T, a função construtora
TYPE_T () retorna um novo objeto desse tipo. No novo objeto UDT, cada
atributo é inicializado com seu valor padrão. Uma função de observador
A é implicitamente criada para cada atributo A para ler seu valor. Portan-
to, A (X) ou X.A retorna o valor do atributo A de TYPE_T se X for do tipo
TYPE_T. Uma função modificadora para atualizar um atributo define o
valor do atributo para um novo valor. O bloqueio dessas funções pode
ser realizado pelo SQL, impedindo seu uso público, sendo então neces-
sário um privilégio EXECUTE para ter acesso a essas funções.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Em geral, um UDT pode ter várias funções definidas pelo usuá-


rio associadas a ele.
A sintaxe é:

INSTANCE METHOD <NOME> (<ARGUMENT_LIST>) RE-


TURNS
<RETURN_TYPE>;

SQL interno e externo são os dois tipos de funções. A lingua-


gem PSM é utilizada para escrever as funções internas. Para as funções
externas é utilizada uma linguagem host, com apenas uma assinatura
na definição UDT. A declaração de uma função externa pode ser feita
da seguinte forma:
• Herança de todos os atributos.
• A hierarquia é determinada pela ordem dos supertipos na
cláusula UNDER.
• Quando uma instância de supertipo é usada, é possível utili-
42
zar também uma instância de um subtipo.
• Quando um subtipo tem a mesma assinatura de seu superti-
po, pode redefinir qualquer função definida em seu supertipo, dede que
a assinatura de ambos seja a mesma.
• Na chamada de uma função, a seleção da melhor correspon-
dência é realizada com base nos tipos de todos os argumentos.
• Para vinculação dinâmica, os tipos de parâmetros de tempo
de execução são considerados.

Especificando relacionamentos por meio de referência


Um atributo de componente de uma tupla pode ser uma refe-
rência (especificada usando a palavra-chave REF) a uma tupla de outra
(ou possivelmente a mesma) tabela.
Especificamos uma tabela em que as tuplas podem ser refe-
renciadas através da palavra-chave SCOPE. Isso funciona como uma
chave estrangeira, só que o valor gerado pelo sistema é utilizado ao
invés do valor da chave primária.

Herança no Modelo de Objeto do ODMG


Herança de comportamento e herança de estado mais compor-
tamento são os dois tipos de relacionamentos de herança encontrados
no modelo de objeto ODMG. Usa-se a notação de dois pontos (:) para
especificar a herança de comportamento também é conhecida como

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


ISA ou herança de interface. No modelo ODMG, o supertipo deve ser
uma interface, podendo o subtipo ser uma classe ou interface.

Modelos de armazenamento
Um modelo de armazenamento é o núcleo de qualquer siste-
ma relacionado a big data. Isso afeta a escalabilidade, as estruturas de
dados, a programação e os modelos computacionais dos sistemas que
são construídos sobre qualquer sistema relacionado a big data. São três
modelos principais de armazenamento desenvolvidos: armazenamento
baseado em bloco, armazenamento baseado em arquivo e armazena-
mento baseado em objeto.

Armazenamento baseado em bloco


O armazenamento em nível de bloco é um dos modelos de
armazenamento mais clássicos da ciência da computação.
Esse sistema faz uso das tecnologias “Fibre Channel” e “iSC-
43
SI”, podendo assim ser considerado como um disco rígido instalado em
um servidor, podendo ser acessado remotamente. Nesse caso, os da-
dos são armazenados em blocos de tamanho fixo, sem os metadados,
usando um identificador único para acessar cada bloco.
Tem como características principais o desempenho e a escala-
bilidade no armazenamento e acesso a dados em grande escala, sendo
utilizado como um modelo de armazenamento de baixo nível muito utili-
zado para armazenamento de nível superior, como sistemas baseados
em arquivos, sistemas baseados em objetos e bancos de dados tran-
sacionais.
Com o advento da computação distribuída e Big Data, esse
modelo também suporta ambientes distribuídos e baseados em nuvem.
A sua arquitetura é composta por um servidor de bloco e um grupo de
nós de bloco, onde o servidor de bloco é o responsável pela manuten-
ção do mapeamento ou indexação dos IDs de bloco para os dados reais
nos nós de bloco, responsáveis pelo armazenamento dos dados reais
em partições de tamanho fixo, cada uma representando um bloco.

Armazenamento baseado em arquivo


Herdeiro da arquitetura tradicional do sistema de arquivos,
esse sistema considera os dados como arquivos mantidos em uma es-
trutura hierárquica. É o modelo mais comum e mais fácil de implementar
e utilizar. Com o Big Data, um sistema de armazenamento baseado em
arquivo pode ser construído em abstração de baixo nível visando à me-
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

lhora de seu desempenho e escalabilidade.


Nesse modelo, os caminhos dos arquivos são organizados de
forma hierárquica, sendo utilizados como entradas para acesso aos da-
dos no dispositivo físico. Em um ambiente de Big Data, os sistemas de
arquivos distribuídos são utilizados como sistemas de armazenamento
básicos.
Nesse tipo de sistema, os usuários necessitam conhecer os
nomes e caminhos para acessar os arquivos armazenados e, para com-
partilhamento entre sistemas, os nomes e caminhos são formados por
três partes: o protocolo, o domínio e o caminho do arquivo.

Armazenamento baseado em objeto


Esse modelo foi utilizado pela primeira vez para fornecer obje-
tos de contêineres de dados mais flexíveis. Fornecedores de sistemas
como EMC, HP, IBM, Redhat, Amazon, Microsoft e Google tem investi-
do pesado nessa tecnologia.
44
Nesse modelo, os dados são manipulados como objetos, onde
cada objeto inclui seus próprios dados, metadados, atributos e um iden-
tificador de objeto (OID). Esse modelo abstrai as camadas inferiores
de armazenamento de administradores e aplicativos. Ele também pode
ser implementado em níveis de dispositivos, sistema e interface. Os
dados são visualizados e gerenciado como objetos que possuem me-
tadados descritivos adicionais usados para melhorar a indexação ou
gerenciamento.
O sistema de armazenamento baseado em objeto normalmen-
te usa um nome simples, no qual o identificador de dados e suas lo-
calizações são geralmente mantidos como pares de valores-chave no
servidor de objetos. Em princípio, o servidor de objetos fornece ende-
reçamento independentemente da localização e latência de pesquisa
constante para ler todos os objetos. Além disso, os metadados dos da-
dos são separados dos dados e são mantidos como objetos em um
servidor de metadados. Como resultado, ele fornece uma maneira pa-
drão e mais fácil de processar, analisar e manipular os metadados sem
afetar os próprios dados.
Devido à arquitetura simples, é muito fácil dimensionar sis-
temas de armazenamento baseados em objetos adicionando nós de
armazenamento adicionais ao sistema. Além disso, o armazenamento
adicionado pode ser expandido automaticamente conforme a capacida-
de que está disponível para todos os usuários. Com base no contêiner
de objeto e metadados mantidos, ele também é capaz de fornecer po-

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


líticas de dados muito mais flexíveis e refinadas em diferentes níveis.

Comparação de modelos de armazenamento


Não existe um modelo que seja adaptável a todos os cenários,
por isso, desenvolvedores e usuários devem escolher os modelos de
acordo com os requisitos e contexto de suas aplicações levando em
consideração suas vantagens e desvantagens.

Modelo baseado em bloco - características


• Flexível, versátil e simples. Pode ser utilizado em quase todos
os tipos de aplicativos, incluindo armazenamento de arquivos, armaze-
namento de banco de dados, volumes do sistema de arquivos da má-
quina virtual (VMFS) e muito mais.
• Também pode ser usado para cenários de compartilhamento
de dados.
• Tem alto rendimento e desempenho e, geralmente, é configu-
45
rável para capacidade e desempenho.
• É complexo de gerenciar e não é fácil de usar devido à fal-
ta de informações (como metadados, semântica lógica e relação entre
blocos de dados) quando comparado a outros modelos de armazena-
mento, como baseado em arquivo armazenamento e armazenamento
baseado em objeto.

Modelo baseado em arquivo


• Fácil de gerenciar e implementar. Também é mais barato de
usar do que o armazenado em bloco. Ele é usado com mais frequência
em computadores e domésticos em pequenas empresas, enquanto o
armazenamento em nível de bloco é usado por empresas maiores, com
cada bloco sendo controlado por seu próprio disco rígido e gerenciado
por meio de um sistema operacional baseado em servidor.
• Geralmente acessível usando protocolos de nível de arqui-
vo comuns, como SMB / CIFS (Windows) e NFS (Linux, VMware). Ao
mesmo tempo, os arquivos atribuídos mais informações para fins de ge-
renciamento, como autenticação, acesso, controle de acesso e backup.
Portanto, é mais amigável e de fácil manutenção.
• Atribuído à estrutura hierárquica, o armazenamento baseado
em arquivo é menos escalonável, pois o número de arquivos torna-se
extremamente grande. É complicado manter a baixa latência e a escala-
bilidade para sistemas de arquivos distribuídos em grande escala, como
NFS e HDFS.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Modelo baseado em objeto


• Resolve os problemas de gerenciamento de provisionamen-
to apresentados pela expansão do armazenamento em escala muito
grande. As arquiteturas de armazenamento baseadas em objeto podem
ser dimensionadas e gerenciadas simplesmente adicionando nós adi-
cionais. A organização de espaço de nomes simples dos dados, em
combinação com a funcionalidade de metadados expansíveis, facilitam
esse tipo uso.
• É comumente usado para o armazenamento de dados não
estruturados em grande escala, como fotos no Facebook, músicas no
Spotify e até mesmo arquivos no Dropbox.
• Facilita o armazenamento de conjuntos de dados não estrutu-
rados, onde os dados geralmente são lidos, mas não gravados.
• Não fornece a capacidade de editar incrementalmente
uma parte de um arquivo (como o armazenamento em bloco e o
46
armazenamento de arquivo). Os objetos devem ser manipulados como
uma unidade inteira, exigindo que todo o objeto seja acessado, atuali-
zado e reescrito no armazenamento físico. Isso pode causar algumas
implicações de desempenho.

Big Data diz respeito principalmente à quantidade de dados


gerados atualmente no mundo, dados que, na maioria das vezes, preci-
sam ser organizados, e é aí onde entra o Data Mining, a Mineração de
Dados, que se utiliza de ferramentas específicas para análise de gran-
des volumes de dados visando obter informações relevantes.

R e Hadoop são ferramentas bastante utilizadas em Mineração


de Dados, sendo ambas Open Source, podendo ser utilizadas sem ne-
nhum tipo de restrição.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Filme sobre o assunto: The Great Hack (Privacidade Hackea-
da). Documentário do Netflix que aborda os escândalos protagonizados
pelo Facebook em março do ano de 2018, em que a Cambridge Analyti-
ca coletou os dados de 87 milhões de usuários sem que fosse permitido.
Observação: Sobre a temática, é importante que o aluno note
a relevância do assunto dentro do seu campo de atuação.

Utilize o data warehouse quando precisar organizar seus da-


dos importantes e armazená-los onde possam ser encontrados com fa-
47
cilidade. Porém, lembre-se que ele não trabalha muito bem com proces-
samento analítico e outros tipos de transformação, sendo também lento.
Para essas tarefas, utilize o Hadoop, que é especialista em
processamento de dados brutos, não estruturados e complexos.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

48
QUESTÕES DE CONCURSOS
QUESTÃO 1
Ano: 2019 Banca: ACEP Órgão: Pref. Aracati Prova: Analista
Sobre bancos de dados distribuídos, é correto afirmar que:
a) Só é possível criar um banco de dados distribuído quando todos os
servidores rodam o mesmo SGBD.
b) Há a necessidade de um controle centralizado para coordenar a
formação de um banco de dados distribuído.
c) Em bancos de dados distribuídos, os problemas de deadlock são
mais facilmente tratáveis.
d) Um sistema de replicação síncrona ajuda a manter os dados replica-
dos consistentes.

QUESTÃO 2
Ano: 2019 Banca: VUNESP Órgão: CM Piracicaba Prova: Adminis-
trador de Rede
Considerando os bancos de dados distribuídos, é correto afirmar
que:
a) Seus nós devem ser interligados por meio de uma rede de comunicação.
b) Seus nós devem se localizar em um mesmo edifício.
c) O hardware de todos os nós deve ser idêntico entre si.
d) Não há a operação simultânea de dois ou mais de seus nós.
e) O sistema gerenciador de bancos de dados de cada nó deve ser
idêntico em todos os seus nós.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


QUESTÃO 3
Ano: 2018 Banca: CEBRASPE (CESPE) Órgão: CGM João Pessoa
Prova: Auditor Municipal de Controle Interno
Com relação ao banco de dados distribuído e à programação orien-
tada a aspectos (POA.), julgue o item subsequente.
Em um banco de dados distribuído com esquema federado, as ta-
belas do banco original são horizontalmente particionadas em ta-
belas-membro, sendo uma tabela-membro para cada banco de da-
dos membro, de modo que as exibições particionadas distribuídas
são usadas para que pareça haver uma cópia completa da tabela
original em cada servidor-membro.
( ) Certo
( ) Errado

49
QUESTÃO 4
Ano: 2018 Banca: CEBRASPE (CESPE) Órgão: EBSERH Prova:
Técnico
Julgue o item seguinte, a respeito de banco de dados distribuído e
orientado a objetos.
Em um banco de dados distribuído, os servidores de banco envol-
vidos não precisam, necessariamente, possuir a mesma configu-
ração de hardware.
( ) Certo
( ) Errado

QUESTÃO 5
Ano: 2018 Banca: CEBRASPE (CESPE) Órgão: EBSERH Prova:
Técnico
Julgue o item seguinte, a respeito de banco de dados distribuído e
orientado a objetos.
Em um ambiente distribuído, as diferentes topologias de redes
utilizadas para a comunicação entre os bancos de dados não in-
terferem no desempenho dos bancos de dados quanto ao proces-
samento de consultas, uma vez que as consultas são executadas
diretamente nos servidores.
( ) Certo
( ) Errado

QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE


COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

No modelo Orientado a Objetos, vários novos conceitos foram criados e


fazem parte ativa da construção desse modelo. Após o estudo realizado
nesse módulo, explique o que os seguintes termos significam na ter-
minologia de banco de dados orientado a objetos: método, assinatura,
mensagem, coleção, extensão.

TREINO INÉDITO

Quando se trata de orientação a objetos e mais precisamente a bancos


de dados que se utilizam desse modelo, vários conceitos são utilizados.
Observando a definição na qual se afirma: “Este conceito permite que
o mesmo nome de operador ou símbolo seja associado a duas ou mais
implementações diferentes do operador, dependendo do tipo de objetos
aos quais o operador é aplicado. ”, diz respeito a qual das opções indi-
cadas nos itens abaixo:
a) Polimorfismo.
50
b) Herança múltipla.
c) Herança seletiva.
d) Encapsulamento.
e) Sobrecarga.

NA MÍDIA

Governo interliga bases e permite cruzamento de dados biométricos. A


intenção do governo com essa iniciativa é criar uma base integradora
com os dados de todos os cidadãos brasileiros, objetivando a regula-
mentação do compartilhamento de dados entre as diversas esferas do
governo.
Fonte: Folha UOL.
Data: 10 de outubro de 2019.
Leia a notícia na íntegra: https://www1.folha.uol.com.br/merca-
do/2019/10/governo-cria-base-de-dados-unificada-de-todos-os-brasi-
leiros.shtml

NA PRÁTICA

Projetando bancos de dados


A área de banco de dados é bastante fértil no que diz respeito às inú-
meras profissões e funções que podem ser exercidas por você. Uma
delas é a do analista de banco de dados, profissional responsável por
administrar o banco de dados em relação à manutenção da estrutura e

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


implantação de processos e métodos de acesso, mantendo também a
segurança de acordo com as políticas da empresa.
Imagine que, como analista de banco de dados em uma instituição de
ensino, você tem que desenhar um novo banco de dados para a biblio-
teca que está sendo montada. Como você faria isso, que tecnologias
iria utilizar?

Fonte: http://cesta2.cinted.ufrgs.br/xmlui/handle/123456789/603?show
=full

PARA SABER MAIS

Título: A importância de Data Mining na tomada de decisões


Data de publicação: 30/06/2010
Fonte: https://administradores.com.br/noticias/a-importancia-de-data-m
ining-na-tomada-de-decisoes Acesso em: 17 de set. 2020.

51
ANÁLISE EXPLORATÓRIA
DE DADOS
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

ANÁLISE BIDIMENSIONAL

Escala multidimensional
O escalonamento multidimensional (MDS) visa representar da-
dos de alta dimensão em um espaço de baixa dimensão para que os
dados possam ser visualizados, analisados e interpretados no espaço
de baixa dimensão para descobrir padrões de dados úteis.

Algoritmo de MDS
Recebemos n itens de dados no espaço p-dimensional, xi = (xi1,
..., xip), i = 1, ..., n, junto com a dissimilaridade δij de cada par de n itens
de dados, xi e xj, e o ordem de classificação dessas dissimilaridades do
par menos semelhante para o par mais semelhante:
52
𝛿𝛿𝑖𝑖1𝑗𝑗 1 ≤ 𝛿𝛿𝑖𝑖2𝑗𝑗 2 ≤ ⋯ ≤ 𝛿𝛿𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖

Onde M denota o número total de pares de dados diferentes e


M = n (n - 1) / 2 para n itens de dados. MDS é encontrar coordenadas
dos n itens de dados em um espaço q-dimensional, zi = (zi1, ..., xiq), i = 1,
..., n, com q sendo muito menor que p, ao mesmo tempo que preserva
as dissimilaridades de n itens de dados na equação. MDS é não-métrico
se apenas a ordem de classificação das dissimilaridades na equação for
preservada. O Metric MDS vai além para preservar as magnitudes das
diferenças.
A tabela fornece as etapas do algoritmo MDS para encontrar as
coordenadas dos n itens de dados no espaço q-dimensional, enquanto
preserva as dissimilaridades de n pontos de dados fornecidas na equa-
ção anterior acima. Na etapa 1 do algoritmo MDS, a configuração inicial
para coordenadas de n pontos de dados no espaço q-dimensional é ge-
rada usando valores aleatórios de modo que dois pontos de dados não
sejam iguais. Na etapa 2 do algoritmo MDS, o seguinte é usado para
normalizar xi = (xi1,…, xiq), i = 1,…, n:

Tabela 1 - Utilização dos algoritmos MDS.


Algoritmo MDS
Passo Descrição da etapa
Gera uma configuração inicial para as coordenadas de n dados.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


1 pontos no espaço q-dimensional, (x11, ..., x1q, ...., xn1, ..., xnq), de
modo que não haja dois pontos iguais.
Normalize xi = (xi1,…, xiq), i = 1,…, n, de modo que o vetor para
2
cada ponto de dados tem o comprimento da unidade.
3 Calcule S como o estresse da configuração.
REPETIR ATÉ que um critério de parada baseado em S seja sa-
4
tisfeito.
5 Atualize a configuração usando o método gradiente decente.
6 Normalize xi = (xi1,…, xiq), i = 1,…, n.
7 Calcule S da configuração atualizada.
Fonte: Autoral adaptado de Aggarwal, 2012.

Na etapa 3 do algoritmo MDS, o seguinte é usado para calcular


o estresse da configuração que mede o quão bem a configuração pre-
serva as dissimilaridades de n pontos de dados dados:
53
∑𝑖𝑖𝑖𝑖 (𝑑𝑑𝑖𝑖𝑖𝑖 − 𝑑𝑑𝑖𝑖𝑖𝑖 )2
𝑆𝑆 = �
∑𝑖𝑖𝑖𝑖 𝑑𝑑𝑖𝑖𝑖𝑖2
Onde dij mede a dissimilaridade de xi e xj usando suas coorde-
nadas q-dimensionais, e dij dá a dissimilaridade desejada de xi e xj que
preserva a ordem de dissimilaridade de δijs de modo que:
𝑑𝑑𝑖𝑖𝑖𝑖 < 𝑑𝑑𝑖𝑖𝑖𝑖 𝑠𝑠𝑠𝑠𝛿𝛿𝑖𝑖𝑖𝑖 < 𝛿𝛿𝑖𝑖′ 𝑗𝑗 ′ .
Observe que há n(n - 1)/2 pares diferentes de iej nas equações.
A distância euclidiana mostrada, a distância métrica r de Minkowski
mais geral mostrada ou alguma outra medida de dissimilaridade pode
ser usada para calcular dij:

𝑞𝑞
2
𝑑𝑑𝑖𝑖𝑖𝑖 = � ��𝑑𝑑𝑖𝑖𝑖𝑖 − 𝑑𝑑𝑗𝑗𝑗𝑗 �
𝑘𝑘=1

1
𝑞𝑞 𝑟𝑟
𝑟𝑟
𝑑𝑑𝑖𝑖𝑖𝑖 = ���𝑑𝑑𝑖𝑖𝑖𝑖 − 𝑑𝑑𝑗𝑗 𝑘𝑘 � � .
𝑘𝑘=1

SÉRIES TEMPORAIS
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Análise de autocorrelação e série temporal


Esses dados são coletados através de observações ao longo
do tempo e, se houver correlação entre as observações desses dados,
eles autocorrelacionados. Esse tipo de análise de série temporal foi
introduzido por Box e Jenkins (2015, p. 129) para modelar e analisar
dados de séries temporais com autocorrelação. Esse tipo de análise é
aplicado a dados do mundo real em diversas áreas, incluindo cotação
de ações, tarifas aéreas, tamanho da força de trabalho e informações
sobre emprego e desemprego e preço de produtos como o barril de
petróleo, por exemplo, dados que requerem diferentes procedimentos
de inferência estatística. Existem séries temporais estacionárias e não
estacionárias.

54
Autocorrelação
A equação abaixo dá o coeficiente de correlação de duas va-
riáveis xi e xj:
𝜎𝜎𝑖𝑖𝑖𝑖
𝜌𝜌𝑖𝑖𝑖𝑖 =
�𝜎𝜎𝑖𝑖𝑖𝑖 �𝜎𝜎𝑗𝑗𝑗𝑗

𝜎𝜎𝑖𝑖2 = � (𝑥𝑥𝑖𝑖 − 𝑢𝑢𝑖𝑖 )2 𝑝𝑝𝑖𝑖 (𝑥𝑥𝑖𝑖 )


𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 𝑜𝑜𝑜𝑜 𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 𝑑𝑑𝑑𝑑 𝑥𝑥𝑥𝑥

Onde as equações abaixo fornecem:

𝜎𝜎𝑖𝑖𝑖𝑖 = � � (𝑥𝑥𝑖𝑖 − 𝜇𝜇𝑖𝑖 )�𝑥𝑥𝑗𝑗 − 𝜇𝜇𝑗𝑗 �𝑝𝑝�𝑥𝑥𝑖𝑖 , 𝑥𝑥𝑗𝑗 �.


𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 𝑜𝑜𝑜𝑜 𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 𝑑𝑑𝑑𝑑 𝑥𝑥𝑥𝑥 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 𝑜𝑜𝑜𝑜 𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 𝑑𝑑𝑑𝑑 𝑥𝑥𝑥𝑥

Dada uma variável x e uma amostra de seus dados de séries


temporais xt, t = 1, ..., n, obtemos o coeficiente da função de autocorre-
lação lag-k (ACF) substituindo as variáveis xi e xj nas equações acima
mencionadas por xt e xt− k, que são duas observações de dados com
defasagens de tempo de k:
∑𝑛𝑛𝑡𝑡=𝑘𝑘+1�𝑥𝑥𝑡𝑡 − 𝑥𝑥̅ (𝑥𝑥𝑡𝑡−𝑘𝑘 − 𝑥𝑥̅ )/(𝑛𝑛 − 𝑘𝑘)�
𝐴𝐴𝐶𝐶𝐹𝐹(𝑘𝑘) = 𝜌𝜌𝑘𝑘 =
∑𝑛𝑛𝑡𝑡=1(𝑥𝑥𝑡𝑡 − 𝑥𝑥̅ )2 /𝑛𝑛

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Onde x– é a média da amostra. Se os dados da série temporal
forem estatisticamente independentes em lag-k, ρk será zero. Se xt e xt
− k mudam de x– da mesma maneira (por exemplo, ambos aumentando
de x–), ρk é positivo. Se xt e xt − k mudam de x– no sentido oposto (por
exemplo, um aumentando e outro diminuindo de x–), ρk é negativo.
O coeficiente da função de autocorrelação parcial lag-k (PACF)
mede a autocorrelação de lag-k, que não é explicada pela autocorre-
lação das defasagens 1 a k − 1. PACF para lag-1 e lag-2 são dados a
seguir:
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(1) = 𝜌𝜌1

𝜌𝜌2 − 𝜌𝜌12
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃(2) = .
1 − 𝜌𝜌12

55
Estacionariedade e não estacionariedade
A estacionariedade geralmente se refere à estacionariedade
fraca que requer que a média e a variância dos dados da série temporal
não mudem ao longo do tempo. Uma série temporal é estritamente es-
tacionária se a autocovariância σt, t − k não muda ao longo do tempo t,
mas depende apenas do número de defasagens k além da média fixa e
da variância constante. Por exemplo, uma série temporal gaussiana que
tem uma distribuição normal multivariada é uma série estacionária es-
trita, porque a média, a variância e a autocovariância da série não mu-
dam com o tempo. Os modelos ARMA são usados para modelar séries
temporais estacionárias.
Fatores que podem causar estacionariedade:
• Outliers (dados fora da curva).
• Caminhada aleatória em que cada observação desvia aleato-
riamente da observação anterior sem reversão para a média.
• Tendência determinística (por exemplo, uma tendência linear
que tem valores que mudam ao longo do tempo a uma taxa constante).
• Mudança de variância.
• Ciclos com um padrão de dados que se repete periodicamen-
te, incluindo ciclos sazonais com periodicidade anual.
• Outros que fazem a média ou variação de uma série temporal
mudar ao longo do tempo.
Uma série não estacionária deve ser transformada em uma sé-
rie estacionária para construir um modelo ARMA.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Modelos ARMA de dados de séries estacionários


Os modelos ARMA se aplicam a dados de séries temporais
com fraca estacionariedade. Um modelo autoregressivo (AR) de ordem
p, AR(p), descreve uma série temporal em que a observação atual de
uma variável x é uma função de suas p observações anteriores e um
erro aleatório:
𝑥𝑥𝑡𝑡 = Φ1 𝑥𝑥𝑡𝑡−1 + ⋯ + Φ𝑝𝑝 𝑥𝑥𝑡𝑡−𝑝𝑝 + 𝑒𝑒𝑡𝑡 .

Características ACF e PACF dos modelos ARMA


ACF e PACF fornecem ferramentas analíticas para revelar e
identificar a ordem autoregressiva ou a ordem de média móvel em um
modelo ARMA para uma série temporal. As características de ACF e
PACF para dados de séries temporais gerados por modelos AR, MA e
ARMA são descritas a seguir. Para uma série temporal AR(1):
56
𝑥𝑥𝑡𝑡 = Φ1 𝑥𝑥𝑡𝑡−1 + 𝑒𝑒𝑡𝑡 ,
ACF (k) é:
𝐴𝐴𝐴𝐴𝐴𝐴(𝑘𝑘) = 𝜙𝜙1𝑘𝑘 .

Se ϕ1<1, AR(1) é estacionário com o declínio exponencial no


valor absoluto de ACF ao longo do tempo, uma vez que ACF(k) diminui
com ke eventualmente diminui. Se ϕ1>0, ACF(k) é positivo. Se ϕ1<0,
ACF(k) está oscilando porque é negativo para k = 1, positivo para k = 2,
negativo para k = 3, positivo para k = 4 e assim por diante. Se ϕ1 ≥ 1,
AR(1) é não estacionário. Para uma série temporal AR(2) estacionária:
𝑥𝑥𝑡𝑡 = 𝜙𝜙1 𝑥𝑥𝑡𝑡−1 + 𝜙𝜙2 𝑥𝑥𝑡𝑡−1 + 𝑒𝑒𝑡𝑡 ,

ACF (k) é positivo com o declínio exponencial no valor absoluto


de ACF ao longo do tempo se ϕ1> 0 e ϕ2> 0, e ACF (k) está oscilando
com o declínio exponencial no valor absoluto de ACF ao longo do tempo
se ϕ1 <0 e ϕ2> 0.
PACF (k) para uma série autoregressiva AR (p) realiza lag p e
torna-se zero após o lag p. Para AR(1), PACF(1) é positivo se ϕ1> 0 ou
negativo se ϕ1 <0, e PACF(k) para k ≥ 2 é zero. Para AR(2), PACF(1) e
PACF(2) são positivos se ϕ1> 0 e ϕ2> 0, PACF(1) é negativo e PACF(2)
é positivo se ϕ1<0 e ϕ2> 0, e PACF(k) para k≥3 é zero. Portanto, PACF
identifica a ordem de uma série temporal autorregressiva.
Para uma série temporal MA(1):

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


𝑥𝑥𝑡𝑡 = 𝑒𝑒𝑡𝑡 − 𝜙𝜙1 𝑒𝑒𝑡𝑡 − 1,

ACF(1) não zero:


−𝜙𝜙1
𝐴𝐴𝐴𝐴𝐴𝐴(1) = ,
1 + 𝜙𝜙12

ACF(k) é zero para k>1. Da mesma forma, para uma série tem-
poral MA (2), ACF(1) e ACF(2) são negativos, e ACF(q) é zero para q>2.
Para um MA(q), temos:
𝐴𝐴𝐴𝐴𝐴𝐴(𝑘𝑘) ≠ 0 𝑠𝑠𝑠𝑠 𝑘𝑘 ≤ 𝑞𝑞

𝐴𝐴𝐴𝐴𝐴𝐴(𝑘𝑘) = 0 𝑠𝑠𝑠𝑠 𝑘𝑘 > 𝑞𝑞

Ao contrário de uma série temporal autoregressiva cujo ACF


declina exponencialmente ao longo do tempo, uma série temporal de
média móvel tem uma memória finita, pois a autocorrelação de MA(q)
ocorre apenas através do lag q. Consequentemente, ACF identifica a
57
ordem de uma série temporal de média móvel. Uma série temporal de
média móvel possui PACF cuja magnitude diminui exponencialmente
com o tempo. Para MA(1), PACF(k) é negativo se θ1> 0, e PACF(k) está
oscilando entre valores positivos e negativos com o declínio exponen-
cial na magnitude de PACF(k) ao longo do tempo. Para MA(2), PACF(k)
é negativo com o declínio exponencial na magnitude do PACF ao longo
do tempo se θ1>0 e θ2>0, e ACF(k) está oscilando com o declínio expo-
nencial no valor absoluto de ACF ao longo tempo se θ1<0 e θ2<0.
As características acima mencionadas de séries temporais au-
torregressivas e médias móveis são combinadas em séries temporais
mistas com modelos ARMA(p, q) onde p> 0 e q>0. Por exemplo, para
um ARMA(1,1) com ϕ1> 0 e θ1 <0, ACF diminui exponencialmente com
o tempo e PACF está oscilando com o declínio exponencial ao longo do
tempo.

NÚMEROS ÍNDICES

Um número de índice é a medida de mudança em uma variá-


vel (ou grupo de variáveis) ao longo do tempo. São normalmente usa-
dos em economia para medir tendências em uma ampla variedade de
áreas, incluindo: preços do mercado de ações, custo de vida, produção
industrial ou agrícola e importações. Os números de índice são uma das
ferramentas estatísticas mais usadas na economia.
Os números do índice não são mensuráveis diretamente, mas
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

representam mudanças gerais relativas. Eles são normalmente expres-


sos como porcentagens.

Exemplos de números de índice


O índice de preços ao consumidor (IPC) é o número de índi-
ce mais conhecido com base nas mudanças de preço para um grupo
de produtos selecionados, considera-se que dá um valor “médio” da
inflação. Outros números de índice que você, provavelmente, já ouviu
referenciados muitas vezes são o Dow Jones Industrial Average para a
Bolsa de Valores de Nova York e o composto Nasdaq para a American
Stock Exchange. O índice Dow Jones mede a variação nos preços das
ações em um conjunto de cerca de 30 grandes empresas que são con-
sideradas representativas dos negócios nos Estados Unidos. O índice
Nasdaq mede a mudança em todas as cerca de 3.000 ações listadas no
mercado Nasdaq.
Usa-se essa metodologia para realizar comparações quanti-
58
tativas das variações de fenômenos complexos. Os números de índice
não representam uma medida real, funcionando apenas como indicado-
res de tendências com uma ou mais variáveis que compõem um fenô-
meno específico.
Por exemplo:
• O preço de um determinado carro atualmente em relação ao
preço pago no ano anterior no mesmo período do ano.
• O consumo de água per capita no Ceará desde 1980 até hoje.
• O preço da maçã hoje em relação ao preço pago um ano atrás.
• Índices de crescimento de setores da economia

Tipos:
• Índice simples: apenas um objeto é verificado.
• Índice composto: um grupo de objetos é avaliado num de-
terminado período.

Utilizam-se três tipos de classificação de números de índices:


• Índice de preços: reflete uma variação de preços de um ou de
um conjunto de bens ou serviços.
• Índice de quantidade: representa as variações das quantidades
de um ou conjunto de bens ou serviços.
• Índice de valor: representa a variações dos gastos em
diferentes períodos.
As funções utilizadas para índices simples são respectivamente:

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


𝜌𝜌𝑖𝑖𝑖𝑖
𝜌𝜌𝑡𝑡𝑜𝑜 =
𝜌𝜌𝑖𝑖𝑖𝑖
𝑞𝑞𝑖𝑖𝑖𝑖
𝑞𝑞𝑡𝑡0 =
𝑞𝑞𝑖𝑖𝑖𝑖
𝜌𝜌𝑖𝑖𝑖𝑖 𝑞𝑞𝑖𝑖𝑖𝑖
𝑉𝑉𝑡𝑡0 =
𝜌𝜌𝑖𝑖0 𝑞𝑞𝑖𝑖0

Onde:
• P ou p = preço
• Q ou q = quantidade
• V ou v = (p x q) = valor
Como os números de índices compostos são utilizados para
variações em grupos de itens, eles são divididos em dois métodos de
cálculo:
• Agregados e Ponderados: utilizado para determinar varia-
59
ções de preço para um grupo de elementos, focando apenas preços,
eliminando-se as quantidades.
• Média dos Relativos de Preço: funciona como uma alter-
nativa ao método dos agregados ponderados, obtendo exatamente os
mesmos resultados.

Quando trabalhamos com grandezas complexas, utilizamos


três outros modelos: Laspevres, Paasche e Fischer.
Número-índice de Laspeyres: trata de uma ponderada de rela-
tivos, usando como fatores valores determinados por preço e quantida-
des de um período base, sendo:
• p – insumos.
• i – períodos - inicial (0), e atual (t).
• q – pesos/quantidades determinadas para os insumos no pe-
ríodo inicial.
∑�𝑝𝑝𝑐𝑐,𝑡𝑡 𝑛𝑛 . 𝑞𝑞𝑐𝑐,𝑡𝑡 0 �
𝑃𝑃𝐿𝐿 =
∑�𝑝𝑝𝑐𝑐,𝑡𝑡 0 . 𝑞𝑞𝑐𝑐,𝑡𝑡 0 �

Número-índice de Paasche: índice agregado, cuja fórmula é


uma média harmônica ponderada, cujos pesos são calculados usando
como base os preços e as quantidades dos objetos no período atual em
duas épocas, inicial e atual, levando-se em consideração as quantida-
des arbitradas dos insumos no período atual.
∑�𝑝𝑝𝑐𝑐,𝑡𝑡 𝑛𝑛 . 𝑞𝑞𝑐𝑐,𝑡𝑡 𝑛𝑛 �
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

𝑃𝑃𝑃𝑃 =
∑�𝑝𝑝𝑐𝑐,𝑡𝑡 0 . 𝑞𝑞𝑐𝑐,𝑡𝑡 𝑛𝑛 �

Número-índice de Fischer: também conhecido como forma


ideal, é na verdade a forma geométrica dos índices de Laspevres e
Paasche.
𝐹𝐹 = √𝐼𝐼𝐼𝐼. 𝐼𝐼𝐼𝐼

Para se utilizar e interpretar os números de índice, é necessá-


ria a compreensão de como eles são construídos, levando-se em conta
as condições dos em que os dados são utilizados, se são comparáveis
entre outros detalhes.

Modelos de programação em Big Data


1 - MapReduce
É o modelo atual que de fato é utilizado para criação de aplica-
ções centradas em dados. Ele é inspirado nas funções Map e Reduce
60
(daí o nome) juntamente com o modelo paralelo “divisão e conquista”.
O MapReduce possui um modelo de programação simples, porém é po-
deroso o bastante para suportar uma enorme variedade de programas
de análise de dados.
Recursos:
• Funções de mapa e redução. Um programa MapReduce con-
tém uma função Map que faz a transformação paralela e uma função
Reduce que faz a agregação paralela e o resumo da tarefa. Entre Ma-
pear e Reduzir, uma etapa de Embaralhamento implícita é responsável
por agrupar e classificar os resultados mapeados e, em seguida, ali-
mentá-los na etapa Reduzir.
• Paradigma simples. Na programação do InMapReduce, os
usuários só precisam escrever a lógica do Mapper e do Redutor, en-
quanto a lógica de embaralhamento, particionamento e classificação é
feita automaticamente pelo mecanismo de execução. Aplicativos e algo-
ritmos complexos podem ser implementados conectando uma sequên-
cia de trabalhos MapReduce. Devido a este paradigma de programação
simples, é muito mais conveniente escrever aplicativos paralelos orien-
tados a dados, porque os usuários só precisam considerar a lógica de
processamento de dados em cada Mapeador e Redutor sem se preocu-
par em como paralelizar e coordenar as tarefas.
• Baseado em valor-chave. No MapReduce, os dados de en-
trada e saída são considerados pares de valores-chaves com tipos dife-
rentes. Esse design é devido aos requisitos de paralelização e escalabi-
lidade. Os pares de valores-chaves podem ser facilmente particionados

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


e distribuídos para serem processados em clusters distribuídos.
• Paralelável e escalável. As funções Map e Reduce são
projetadas para facilitar a paralelização, portanto, os aplicativos MapRe-
duce são, geralmente, linearmente escaláveis para milhares de nós.

2 - Programação funcional
Paradigma emergente para a próxima geração de sistemas de
processamento em Big Data, já utilizada em frameworks como Spark e
Flink, que se utilizam de interfaces funcionais, facilitando a construção
de aplicativos de dados. Nesse modelo de programação, as interfaces
são especificadas em forma de funções aplicadas às fontes de dados
de entrada, sendo os cálculos tratados como cálculos de funções. Por
si só a programação funcional é declarativa, evitando, assim, o compar-
tilhamento de estados mutáveis. Se comparado a programação orienta-
da a objetos, esse modelo é mais compacto e intuitivo na representação
das transformações orientadas a dados e aplicativos.

61
Recursos
Como a Programação Funcional é um dos paradigmas de pro-
gramação mais reconhecidos, ela possui um conjunto de funcionalida-
des que facilitam o desenvolvimento em diferentes aspectos:
• Declarativo: Na programação funcional, os desenvolvedores
constroem os programas especificando a lógica semântica da computa-
ção em vez do fluxo de controle dos procedimentos.
• Funções são os elementos de primeiro nível em Programa-
ção Funcional. As primitivas de programação são fornecidas de maneira
funcional e a maioria delas pode assumir funções definidas pelo usuário
como parâmetros.
• Em princípio, a programação funcional não permite o compar-
tilhamento de estados, o que significa que as variáveis na programação
funcional são imutáveis. Portanto, não há efeitos colaterais para chama-
da de funções. Isso torna mais fácil escrever programas funcionalmente
corretos que também são fáceis de serem verificados formalmente.
• Recursivo: Na programação funcional, muitos loops são
normalmente representados como chamadas recursivas de funções.
Isso facilita a otimização do desempenho aplicando cauda recursiva
para reduzir a criação de dados intermediários e variáveis compartilha-
das em diferentes loops.
• Paralelização: Como geralmente não há compartilhamento
de estado na programação funcional, é fácil e adequado para aplicar a
paralelização a infraestruturas de computação distribuída e multicore.
• Referencial transparente: Na programação funcional, as fun-
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

ções são essencialmente reproduzíveis. Isso significa que o recálculo


dos resultados funcionais não é necessário. Portanto, uma vez que uma
função é calculada, seus resultados podem ser armazenados em cache
e reutilizados com segurança.

Exemplos de frameworks
Spark
O Spark fornece aos programadores um paradigma de progra-
mação funcional com interfaces de programação centradas em dados
com base em seu modelo de dados embutido - conjunto de dados distri-
buído resiliente (RDD). O Spark foi desenvolvido em resposta às limita-
ções do paradigma MapReduce, que força os programas distribuídos a
serem escritos em um fluxo de dados linear e grosseiramente definidos
como cadeias de tarefas Mapper e Redutor conectadas. No Spark, os
programas são representados como RDDtransformationDAGs. Os pro-
gramadores têm seu trabalho facilitado pelo uso de um rico conjunto
62
de funções primitivas de alto nível, ações e transformações para im-
plementar algoritmos complicados de uma maneira muito mais fácil e
compacta.
Além disso, o Spark fornece operações centradas em dados,
como amostragem e armazenamento em cache, para facilitar a progra-
mação centrada em dados em diferentes aspectos.
O Spark é bem conhecido por seu suporte a ricas transforma-
ções e ações funcionais. Basicamente, as primitivas de programação
no Spark parecem apenas interfaces de programação funcionais gerais,
ocultando operações complexas como particionamento de dados, dis-
tribuição e paralelização para os programadores e deixando-as do lado
do cluster.

Flink
Flink é um concorrente emergente do Spark, que fornece inter-
faces de programação funcionais bastante semelhantes às do Spark.
Os programas Filnk são programas regulares que são escritos com
um rico conjunto de operações de transformação (como mapeamento,
filtragem, agrupamento, agregação e junção) para os conjuntos de
dados de entrada. O conjunto de dados no Flink é baseado em um
modelo baseado em tabela, portanto os programadores podem usar
números de índice para especificar um determinado campo de um con-
junto de dados. O Flink compartilha muitas primitivas e transformações
funcionais da mesma maneira que o Spark faz para o processamento
em lote.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Além das primitivas de processamento em lote regulares, o
Flink também foi projetado nativamente para processamento de stream
com o suporte de um rico conjunto de operações funcionais. As APIs de
streaming do Flink estão em seu pacote principal e os usuários podem
escrever e executar aplicativos de processamento de fluxo e processa-
mento em lote na mesma estrutura. Ao contrário do Spark que usa um
min-batch para simular o processamento de fluxo, Flink usa o modelo
produtor-consumidor para a execução de programas de streaming. Por-
tanto, ele mostra ser uma estrutura mais natural para integrar processa-
mento em lote e fluxo.
Além das transformações normais, a API de streaming do Flink
também fornece algumas operações baseadas em janela para aplicar
funções e transformações em diferentes grupos de elementos no fluxo
de acordo com seu tempo de chegada.

3 - SQL-Like
SQL (Structured Query Language) é a linguagem de consulta
63
de dados mais clássica, originalmente projetada para bancos de dados
relacionais baseados na álgebra relacional. Ele contém quatro primiti-
vas básicas: criar, inserir, atualizar, excluir para modificar os conjuntos
de dados considerados como tabelas com esquemas. SQL é uma lin-
guagem declarativa e inclui alguns elementos procedimentais.
Os programas SQL contêm alguns elementos básicos, incluindo:
1. Cláusulas que são elementos constituintes de instruções e
consultas.
2. Expressões que podem ser avaliadas para produzir um con-
junto de dados resultantes.
3. Predicados que especificam condições que podem ser usa-
das para limitar os efeitos de declarações e consultas.
4. Consultas que recuperam os dados com base em alguns
critérios específicos.
5. Declarações que têm um efeito persistente nos dados, es-
quema ou mesmo no banco de dados.
Recursos
• Declarativa e auto-interpretável: SQL é uma linguagem de-
clarativa típica, ela especifica claramente quais transformações e ope-
rações estão sendo feitas para quais partes dos dados. Ao ler as con-
sultas SQL, os usuários podem entender facilmente a semântica das
consultas da mesma forma que entendem as descrições literais.
• Orientado por dados: O SQL é orientado por dados, todas as
operações e primitivas representam a transformação e manipulação do
conjunto de dados de destino (tabelas de dados em SQL). Isso torna o
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

SQL um dos modelos de programação mais fáceis para aplicativos cen-


trados em dados para bancos de dados tradicionais e contexto recente
de big data.
• Padronizado e interoperável: O SQL é oficialmente padroni-
zado por comunidades de dados como IBM e W3C. Portanto, diferentes
provedores de plataforma podem fornecer sua própria implementação,
mantendo a interoperabilidade entre diferentes plataformas e estrutu-
ras. No contexto de Big data, embora existam algumas variações para
SQL, como HQL (Hadoop Query Language) em Hive e CQL (Casandra
Query Language) em Casandra, os usuários ainda podem entender fa-
cilmente e enviar tais programas uns para os outros.
Exemplos
• Hive Query Language (HQL): Hive é um mecanismo de con-
sulta construído em ecossistemas Hadoop, ele fornece uma interface se-
melhante a SQL chamada Hive Query Language (HQL), que lê os dados
de entrada com base no esquema definido e, em seguida, converte de
forma transparente as consultas em trabalhos MapReduce conectados.
64
• Cassandra Query Language (CQL): O Apache Cassandra
foi introduzido pelo Facebook para aumentar a indexação de sua pes-
quisa na caixa de entrada. O Cassandra segue o design do Amazon
Dynamo com suas próprias interfaces de consulta - Cassandra Query
Language (CQL). CQL é uma linguagem de consulta baseada em SQL
fornecida como alternativa à interface RPC tradicional. CQL adiciona
uma camada de abstração que esconde detalhes de implementação
de sua estrutura de consulta e fornece sintaxes nativas para coleções e
codificações comuns.
• Spark SQL: O Spark introduz suas interfaces de consulta ra-
cionais como Spark SQL, que é construído no modelo DataFrame e
considera os conjuntos de dados de entrada como uma estrutura ba-
seada em tabela. O Spark SQL pode ser embutido em programas gerais
do Spark nativo e MLlib para permitir a interatividade entre os diferentes
módulos do Spark. Além disso, como o Spark SQL se baseia no Catalyst
para otimizar os planos de execução de consultas SQL, o Spark SQL
pode executar APIs Spark nativas na maioria das APIs comparadas.
• Apache Drill: É a versão de código aberto do sistema Dremel
do Google, que é um SQL Query Engine sem esquema para MapRe-
duce, NoSQL e Cloud Storage. Drill é bem conhecido por sua conec-
tividade com vários bancos de dados NoSQL e sistemas de arquivos.
Uma única consulta pode juntar dados de vários bancos de dados. Por
exemplo, você pode ingressar em uma coleção de perfis de usuário no
MongoDB com um diretório de logs de eventos no Hadoop.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Outros frameworks de consulta semelhantes a SQL
• Impala fornece consultas SQL de alto desempenho e baixa
latência em dados armazenados em formatos de arquivo populares do
Apache Hadoop. A resposta rápida para consultas permite a explora-
ção interativa e o ajuste fino de consultas analíticas, em vez de longos
trabalhos em lote tradicionalmente associados a tecnologias SQL-on-
-Hadoop. O Impala se integra ao banco de dados de metastore Apache
Hive para compartilhar bancos de dados e tabelas entre os dois compo-
nentes. O alto nível de integração com o Hive e compatibilidade com a
sintaxe do HiveQL permite que você use o Impala ou o Hive para criar
tabelas, emitir consultas, carregar dados e assim por diante.
• Presto é um mecanismo de consulta SQL distribuído de có-
digo aberto para execução de consultas analíticas interativas em fontes
de dados de todos os tamanhos, de gigabytes a petabytes. O Presto foi
projetado e escrito do zero para análises interativas e aproxima-se da
velocidade de data warehouses comerciais, ao mesmo tempo em que é
65
dimensionado para o tamanho de organizações como o Facebook.

4 - Modelo Ator (Actor Model)


O modelo Actor é um modelo de programação para computa-
ção concorrente, que considera “Actor” como a unidade primitiva univer-
sal para computação, o que significa que trata tudo como um ator. Um
ator é responsável por reagir a um conjunto de mensagens para acionar
lógicas de processamento específicas (como tomar decisões, construir
mais atores, enviar mais mensagens) para diferentes contextos. O mo-
delo de ator também é considerado um modelo de programação reativo
no qual os programadores escrevem lógica de atuação em resposta a
eventos e mudanças de contexto. Ao contrário de outros modelos de
programação que são normalmente sequenciais, o modelo de ator é
inerentemente concorrente. As reações de um ator podem acontecer
em qualquer ordem e as ações para diferentes atores também ocorrem
em paralelo.
Recursos
• Orientado por mensagens: o modelo de Ator herda a arquite-
tura orientada a mensagens para comunicação. As mensagens são as
primitivas e as únicas portadoras de dados entre os sistemas.
• Stateless (sem estado, em tradução livre) e isolamento: os
atores são fracamente acoplados uns aos outros. Portanto, não existe
um estado global compartilhado entre diferentes atores. Além disso, os
atores são unidades funcionais separadas que não devem afetar os ou-
tros quando ocorrem falhas e erros.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

• Concorrente: os atores no sistema de ator estão em ação ao


mesmo tempo e não há uma ordem fixa para enviar e receber mensa-
gens. Portanto, todo o sistema de ator é inerentemente concorrente.
Exemplos
1. Akka: é um modelo de programação concorrente e distribuída
desenvolvido pela Typesafe com inspiração em Erlang. A Akka tem sido
amplamente usada em estruturas concorrentes e distribuídas recentes,
como Spark, Play e Flink. A Akka fornece diferentes modelos de pro-
gramação, mas enfatiza o modelo de simultaneidade baseado em ator.
2. Storm: é uma estrutura de programação de código aberto
para processamento distribuído de dados em tempo real. Storm herda
do modelo de ator e fornece dois tipos de atores de processamento:
Spouts e Bolts.
• Spout é a fonte de dados de um fluxo e está continuamente
gerando ou coletando novos dados para processamento subsequente.
• Bolt é uma entidade de processamento dentro de um flu-
xo de processamento de streaming, cada bolt é responsável por uma
66
certa lógica de processamento, como transformação, agregação,
particionamento e redirecionamento, etc.
Jobs em Storm são definidos como gráficos acíclicos direcio-
nados (DAG) com Spouts e Bolts conectados como vértices. As bordas
no gráfico são fluxos de dados e dados diretos de um nó para outro. Ao
contrário dos trabalhos em lote que são executados apenas uma vez, os
trabalhos Storm são executados até serem eliminados.
3. Apache S4: O Apache S4 (Simple Scalable Streaming Sys-
tem) foi introduzido pelo Yahoo em 2008 para processamento de stream.
O S4 é uma plataforma de uso geral, distribuída, escalonável, tolerante
a falhas e conectável para processamento de fluxos de dados contínuos
e ilimitados. Os principais recursos do S4 estão listados a seguir:
• Descentralizado: todos os nós em S4 são simétricos, sem
serviço centralizado e sem ponto único de falha.
• Escalável: a taxa de transferência de S4 aumenta linearmente
conforme nós adicionais são adicionados ao cluster. Não há limite pre-
definido para o número de nós que podem ser suportados.
Extensível: os aplicativos podem ser escritos facilmente usan-
do uma API simples. Os blocos de construção da plataforma, como filas
de mensagens e processadores, serializador e back-end de checkpoint,
podem ser substituídos por implementações personalizadas.
Tolerante a falhas: quando um servidor no cluster falha, um
servidor em espera é automaticamente ativado para assumir as tarefas.
Em S4, cada ator de processamento é chamado de Proces-
sElement (PE), que é responsável pelo processamento em resposta a

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


cada elemento de dados (um evento) dentro do fluxo de entrada. Um
aplicativo S4 é construído conectando alguns ProcessElement em uma
determinada topologia.

5 - Estatística e analítica
Nos últimos anos, um esforço significativo foi despendido para
oferecer ambientes semanticamente amigáveis para computação esta-
tística e analítica, o que leva ao desenvolvimento e revolução de modelos
de programação estatística e analítica. Por exemplo, muitas bibliotecas
ou estruturas analíticas atuais fornecem um modelo de programação
baseado em álgebra linear que trabalha com vetores, matrizes e es-
truturas de dados de tensores para lidar com problemas matemáticos
definidos algebricamente em aprendizado de máquina, estatística e mi-
neração de dados, etc.
Recursos
Devido à natureza matemática da programação estatística e
analítica, é essencialmente funcional com manipulações em matrizes e
67
estruturas de dados baseadas em vetores.
• Funcional: Operações matemáticas são essencialmente fun-
ções que consomem um conjunto de parâmetros de entrada para gerar
uma saída. Além disso, muitas funções ou modelos complicados são agru-
pados em bibliotecas funcionais para que os usuários possam usá-los di-
retamente, sem conhecer os detalhes de implementação das funções.
• Estrutura de dados baseada em matriz: A matriz é uma das
estruturas de dados mais amplamente utilizadas para representar pro-
blemas e soluções analíticas e estatísticas modernas. Portanto, a maio-
ria das estruturas de programação analítica existentes são baseadas
em matrizes, vetores e estruturas de dados para manipular os dados.
• Declarativo: Na programação estatística e analítica, os pro-
gramas especificam explicitamente as funções e operações que foram
aplicadas aos dados (matriz, vetor e quadro de dados).
Exemplos
1. R: combina a linguagem de programação S e o Lexical Sco-
ping inspirado no Scheme. É bem conhecido pela programação estatís-
tica e desenho gráfico. Em R, os dados são essencialmente representa-
dos como matrizes que são muito convenientes para a implementação
de fórmulas matemáticas e estatísticas. R e suas bibliotecas implemen-
tam uma grande variedade de técnicas estatísticas e gráficas e são fá-
ceis de serem estendidas pelos desenvolvedores. R foi recentemente
introduzido no contexto de processamento de big data para facilitar a
desenvolvimento de programas e aplicativos estatísticos e analíticos
2. Mahout: Apache Mahout é uma implementação de código
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

aberto de algoritmos de aprendizado de máquina e mineração de dados


distribuído e escalonável. O Mahout fornece bibliotecas que se concen-
tram principalmente nas áreas de filtragem colaborativa, agrupamento e
classificação. A implementação inicial do Mahout é baseada no Apache
Hadoop, mas recentemente ele começou a fornecer ligações compatí-
veis no Spark e ser capaz de fornecer interfaces de programação ba-
seadas em matriz.
Essas são apenas algumas das principais aplicações desen-
volvidas para o tratamento de dados em Big Data e Data Mining. Com o
aprofundamento e a prática você descobrirá qual melhor se adequa ao
trabalho que precisa realizar.

O Big Data trouxe consigo uma massa enorme de dados de


diferentes tipos e contextos, introduzindo com isso novos modelos de
68
gerenciamento de dados. Soluções do tipo “NoSQL”, “Não SQL”, em re-
ferência à linguagem utilizada em quase todos os bancos de dados até
então. São bancos de dados não relacionais e possuem a capacidade
de trabalhar com dados semiestruturados.

Conheça um pouco mais sobre bancos de dados NoSQL, pes-


quise por Neo4J, Infinite Graph, InforGrid e HyperGraphDB.

Filme sobre o assunto: O Jogo da Imitação. Data de lança-


mento: 8 de janeiro de 2015 (Brasil). Direção: Morten Tyldum.
Observação: Sobre a temática, é importante que o aluno note
a relevância do assunto dentro do seu campo de atuação.

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


Data Mining é utilizado principalmente em três áreas:
- Estatística: com a utilização das teorias probabilísticas.
- Inteligência artificial: desenvolvendo mecanismos que pos-
sam simular o raciocínio e assim desenvolver algoritmos que permitam
aos sistemas computacionais “pensar” como os humanos.
- Aprendizado de máquina: para aprender a criar modelos au-
tomatizados que possam aprender com os dados.

69
QUESTÕES DE CONCURSOS
QUESTÃO 1
Ano: 2018 Banca: CESPE/CEBRASPE Órgão: STM Prova: Analista
Judiciário - Estatística
A respeito da autocorrelação dos erros de um modelo de regressão
linear, julgue o item subsequente.
A autocorrelação dos erros, desde que não seja unitária em termos
absolutos, insere um viés nas estimativas da variável dependente.
( ) Certo
( ) Errado

QUESTÃO 2
Ano: 2018 Banca: CESPE/CEBRASPE Órgão: STM Prova: Analista
Judiciário - Estatística
A respeito da autocorrelação dos erros de um modelo de regressão
linear, julgue o item subsequente.
Ocorre autocorrelação dos erros caso os erros da regressão sigam
um processo autorregressivo de ordem 1, ou seja, um AR(1).
( ) Certo
( ) Errado

QUESTÃO 3
Ano: 2019 Banca: FGV Órgão: DPE-RJ Prova: Superior Especiali-
zado - Estatística
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Sobre os Números Índices, sua construção, suas propriedades e


erros, é correto afirmar que:
a) O período da base de comparação deve ser posterior ao período
empregado para a base de ponderação.
b) Por construção, ao trabalhar com os inversos dos relativos, o que se
obtém é um valor para o índice que é o inverso do valor original, o de
antes da inversão dos relativos.
c) A homogeneidade de um índice pode ser afetada pelo surgimento de
novas tecnologias, que incidam sobre os hábitos e a cesta de consumo
dos indivíduos.
d) Dividindo-se o Índice de Valor por um dado Índice de Preços, o que
se obtém é o correspondente Índice de Quantidades;
e) O erro amostral em um Número Índice deverá ser tão maior quanto
maior for o número de bens e serviços considerados para o seu cálculo
ou apuração.

70
QUESTÃO 4
Ano: 2018 Banca: CESGRANRIO Órgão: Banco do Brasil Prova: Es-
criturário
Um modelo teórico do MapReduce pode ser resumido em duas
funções, map e reduce. Essas funções são representadas na litera-
tura, genericamente, com uma notação na forma:

Entrada genérica -> Saída genérica


A proposta original de MapReduce considerava que a função redu-
ce teria o modelo:
reduce(k2,list(v2)) -> list(v3)

Enquanto implementações de terceiros usam o modelo:


reduce(k2,list(v2)) -> list(k3,v3)

O modelo para a função map, porém, é sempre o mesmo.


Qual é esse modelo?
a) map(v1) -> list(k2,v2).
b) map(v1) -> k2,list(v2).
c) map(k1,v1) -> k2,list(v2).
d) map(k1,v1) -> k2,v2.
e) map(k1,v1) -> list(k2,v2).

QUESTÃO 5
Ano: 2018 Banca: CESPE/CEBRASPE Órgão: Polícia Federal Pro-

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


va: Papiloscopista Policial Federal
Julgue o item seguinte, a respeito de big data e tecnologias relacio-
nadas a esse conceito.
MapReduce permite o processamento de dados massivos usando
um algoritmo paralelo, mas não distribuído.
( ) Certo
( ) Errado

QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE

Explique por que, para a integração de várias fontes de informações he-


terogêneas, muitas empresas do setor preferem a abordagem orienta-
da por atualização (que constrói e usa data warehouses) à abordagem
orientada por consulta (que aplica wrappers e integradores). Descreva
as situações em que a abordagem orientada por consulta é preferível à
abordagem orientada por atualização.

71
TREINO INÉDITO

Quando afirmamos que “é o processo de encontrar anomalias, padrões


e correlações em grandes conjuntos de dados para prever resultados”
estamos nos referindo a que tecnologia exatamente?
a) Bancos de dados.
b) Orientação a objetos.
c) Linguagens de programação.
d) Mineração de dados.
e) Virtualização de dados.

NA MÍDIA

Data Mining para a tomada de decisões de negócio

O avanço da tecnologia, junto ao processo de transformação digital,


tem elevado drasticamente a quantidade de dados gerados pelas em-
presas e, com isso, imposto novos e grandes desafios acerca do arma-
zenamento nos bancos digitais e, principalmente, da tratativa que estas
informações recebem.
Para se ter ideia do volume de dados produzidos – no contexto do Big
Data, que nada mais é do que um termo para descrever os dados que
são gerados virtualmente, a cada instante, pelas empresas –, o estudo
A Universe Of Opportunities and Challenges, conduzido pela Internatio-
nal Data Corporation (IDC), em parceria com a Dell EMC, revela que,
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

até o fim de 2020, os dados globais gerados por organizações devem


alcançar a marca de 44 trilhões de gigabytes.

Fonte: Inteligov
Data: 23 de junho de 2020
Leia a notícia na íntegra: https://blog.inteligov.com.br/data-mining/

NA PRÁTICA

Data Mining: prevendo comportamentos

São muitas as possibilidades de negócios que surgiram com o Data


Mining. A cada dia são gerados bilhões de dados de todos os tipos e
áreas, dados que necessitam ser coletados e tratados, dados que po-
dem ajudar as empresas a seguir por caminhos menos complicados,
ajudando gestores a tomarem as decisões certas baseados em infor-
mações precisas.
72
Nesse contexto, surge o Cientista de Dados, o profissional capacitado
a trabalhar com a extração e análise desses dados brutos, transforman-
do-os em dados úteis para as empresas. E quais são as áreas em que
podemos aplicar o Data Mining? São muitas: área médica, financeira,
marketing, comércio, só para citar algumas. Para quem está entrando
nessa área agora, o conselho é: prepare-se, estude e alinhe sua exper-
tise com sua área de atuação.

Fonte: Site Iberdrola. Disponível em <https://www.iberdrola.com/ino-


vacao/data-mining-definicao-exemplos-e-aplicacoes> Acessado em
21/8/2020.

PARA SABER MAIS

Filmes sobre o assunto (colocar os títulos dos filmes e anos)


• A.I. — Inteligência Artificial (2001)
• Ex-Machina — Instinto Artificial (2015)
• O Homem Bicentenário (1999)
• Matrix (1999)
• O Exterminador do Futuro (1984)

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

73
Então é isso, vimos aqui o conteúdo básico para os estudos em
mineração de dados abordando os seus três conceitos que são: coleta,
armazenamento e análise de dados. Na primeira unidade, podemos co-
nhecer o que é a mineração de dados e qual a sua importância para o
conhecimento e tomada de decisões nos dias atuais, onde a produção
de informações é cada vez maior e heterogênea. Tratamos dos algorit-
mos principais para a manipulação desses dados, cada tipo específico
existente, ferramentas poderosas que aliam disciplinas como matemáti-
ca estatística e computação. Apresentamos os conceitos de bancos de
dados, os tipos existentes e como são importantes para a mineração de
dados, armazenando e ajudando na seleção e tratamento das informa-
ções. Através dos conceitos aqui apresentados, você poderá compreen-
der como é importante e até vital que se tenha o controle dos dados
produzidos pelos mais diferentes canais, e que dominar esses dados,
transformando-os em informações precisas faz toda a diferença dentro
de uma organização.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

74
GABARITOS

CAPÍTULO 01

QUESTÕES DE CONCURSOS

01 02 03 04 05
E B D A B

QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO


DE RESPOSTA
(a) É outro modismo?
A mineração de dados não é outro modismo. Em vez disso, a necessidade
de mineração de dados surgiu devido à ampla disponibilidade de grandes
quantidades de dados e à necessidade iminente de transformar esses da-
dos em informações e conhecimentos úteis. Assim, a mineração de dados
pode ser vista como o resultado da evolução natural da tecnologia da in-
formação.
(b) É uma transformação simples de tecnologia desenvolvida a partir de
bancos de dados, estatísticas e aprendizado de máquina?
Não. A mineração de dados é mais do que uma simples transformação de
tecnologia desenvolvida a partir de bancos de dados, estatísticas e apren-
dizado de máquina. De maneira oposta, a mineração de dados envolve, em

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


vez de uma simples transformação, uma integração de técnicas de várias
disciplinas, como tecnologia de banco de dados, estatística, aprendizado de
máquina, computação de alto desempenho, reconhecimento de padrões,
redes neurais, visualização de dados, recuperação de informações,
processamento de imagem e sinal e análise de dados espaciais.
(c) Explique como a evolução da tecnologia de banco de dados levou à
mineração de dados. A tecnologia de banco de dados começou com o de-
senvolvimento de mecanismos de coleta e criação de banco de dados que
levaram ao desenvolvimento de mecanismos eficazes para gerenciamento
de dados, incluindo armazenamento e recuperação de dados e processa-
mento de consultas e transações. O grande número de sistemas de banco
de dados que oferecem processamento de consultas e transações even-
tualmente e naturalmente levou à necessidade de análise e compreensão
de dados. Portanto, a mineração de dados começou seu desenvolvimento
a partir dessa necessidade.
TREINO INÉDITO
Gabarito: B
75
CAPÍTULO 02

QUESTÕES DE CONCURSOS

01 02 03 04 05
D A CERTO CERTO ERRADO

QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO


DE RESPOSTA

Método: podem ser funções ou procedimentos que estão ligados a um


objeto, determinando seu comportamento, podendo assim alterar seu
estado.
Assinatura do método: identifica um método de maneira única.
Mensagem: forma como os objetos interagem, através da troca de
mensagens.
Coleções: utilizadas para armazenar, recuperar e manipular dados,
além de facilitar troca de mensagens entre um método e outro.
Extensão: classe criada a partir de uma classe pai, que estende alguns
métodos.

TREINO INÉDITO
Gabarito: A
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

76
CAPÍTULO 03

QUESTÕES DE CONCURSOS

01 02 03 04 05
ERRADO CERTO C E ERRADO

QUESTÃO DISSERTATIVA – DISSERTANDO A UNIDADE – PADRÃO


DE RESPOSTA

Para consultas de tomada de decisão e consultas frequentes, a abor-


dagem orientada para atualização é mais preferível. Isso ocorre porque
a dispendiosa integração de dados e computação agregada são feitas
antes do tempo de processamento da consulta. Para que os dados co-
letados em vários bancos de dados heterogêneos sejam usados em
processos de tomada de decisão, os dados devem ser integrados e
resumidos com os problemas de heterogeneidade semântica entre os
múltiplos bancos de dados analisados ​​e resolvidos. Se a abordagem
orientada por consulta for empregada, essas consultas serão traduzidas
em consultas múltiplas (frequentemente complexas) para cada banco
de dados individual. As consultas traduzidas competirão por recursos
com as atividades nos sites locais, degradando, assim, seu desempe-
nho. Além disso, essas consultas gerarão um conjunto de respostas
complexo, que exigirá mais filtragem e integração. Portanto, a aborda-

COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS


gem orientada a consultas é, em geral, ineficiente e cara. A abordagem
orientada para atualização empregada no armazenamento de dados é
mais rápida e mais eficiente, uma vez que muito da pré-computação
pode ser feita off-line.
Para consultas que são usadas raramente, fazem referência aos dados
mais atuais e / ou não requerem agregações, a abordagem orientada
por consulta seria preferível à abordagem orientada por atualização.
Nesse caso, pode não ser justificável para uma organização pagar pe-
sadas despesas para construir e manter um data warehouse, se apenas
um pequeno número e / ou bancos de dados de tamanho relativamente
pequeno forem usados; ou se as consultas dependem dos dados atuais,
já que os data warehouses não contêm as informações mais atuais.

TREINO INÉDITO
Gabarito: D

77
AGGARWAL R. S. A Modern Approach to Logical Reasoning. S.
Chand Publishing. 2012.

BOX, George E. P.; JENKINS Gwilym M. Time Series Analysis: Fore-


casting and Control. 4th Ed. Wiley, 2015.

BRUCE, Andrew; BRUCE, Peter. Estatística Prática para Cientistas


de Dados. 50 conceitos essenciais. 1ª Ed. Rio de Janeiro: Alta Books,
2019.

CHAMBERLIN, D.D. and BOYCE, R.F. SEQUEL: A Structured English


Query Language. Proc. ACM SIGMOD Workshop on Data Description,
Access and Control, Ann Arbor, Michigan (May 1974) pages 249-264.

DATE, C.J. Introdução a sistemas de bancos de dados. Rio de Ja-


neiro: Elsevier, 2003.

GOLDSCHMIDT, Ronaldo; PASSOS, Emmanuel; BEZERRA, Eduardo.


Data. Mining: Conceitos, técnicas, algoritmos, orientações e apli-
cações. 2ª Ed. – Rio de Janeiro: Elsevier, 2015.

SILBERSCHATZ, Abraham; KORTH, Henri F.; SUDARCHAN, S. Siste-


ma De Banco De Dados. 6ª Ed. Rio de Janeiro: Elsevier, 2012.
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

SILVA, Leandro Nunes de Castro; FERRAR, Daniel Gomes. Introdu-


ção à mineração de dados: conceitos básicos, algoritmos e aplica-
ções.1ª Ed. São Paulo: Saraiva, 2016.

TAURION, Cezar. Big data. Rio de Janeiro: Brasport, 2013. ePub.

78
79
COLETA, ARMAZENAMENTO E ANÁLISE APLICADA - GRUPO PROMINAS

Você também pode gostar