Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
UNIDADE 2 – NoSQL............................................................................................................ 24
Conceitos fundamentais .............................................................................................................................................. 24
Funcionamento Interno ............................................................................................................................................... 27
Tipos de Armazenamento............................................................................................................................................ 31
Referências ........................................................................................................................................... 68
1
Apresentação
Everton Gomede
Doutorando em Engenharia Elétrica/Computação pelo Programa de Pós-
graduação da Faculdade de Engenharia Elétrica e de Computação (FEEC) da
Universidade Estadual de Campinas (UNICAMP). Mestre em Ciência da
Computação pela Universidade Estadual de Londrina. MBA (Master of Business
Administration) em Neurogestão pela Fundação Getúlio Vargas. MBA em
Gerenciamento de Projetos pela FGV. Especialista em Engenharia de Software e
Banco de Dados pela Universidade Estadual de Londrina. Graduado em
Processamento de Dados. Sun Certified Programmer for Java 2 Platform 1.4 e
ITIL® Foundation Certificate in IT Service Management. Experiência de mais de
10 anos na área de TI em arquitetura de software, engenharia de software,
mapeamento de processos de negócio, gerenciamento de projetos,
desenvolvimento de sistemas transacionais e de suporte à decisão. Experiência
em projetos nacionais e internacionais em instituições financeiras e empresas
de desenvolvimento de software. Professor de cursos de pós-graduação em
universidades públicas e privadas. Membro do PMI 1580489. Publicações
nacionais e internacionais. Proficiência em inglês atestada pelo TOIEC e TOEFL.
Áreas de Interesse: Estrutura de Dados e Organização de Arquivos, Análise de
Sistemas e Engenharia de Software, Lógica de Programação, Redes de
Computadores, Linguagem de Programação, Administração de Banco de Dados,
Governança de TIC (ITIL/CobIT), Data Warehouse, Data Mining, Big Data,
Gerenciamento de Projetos, Gerenciamento de Processos de Negócio
(BPM/BPMN™), Pesquisa Operacional, Algoritmos, Sistemas de Suporte à
Decisão, Data Science e Machine Learning.
Ricardo Satin
Mestre em Engenharia de Software pela UTFPR; Especialista em Computação
pela Unicesumar; Graduado em Computação pela Universidade Estadual de
Maringá -UEM; MBA em Gerenciamento de Projetos pela FCV. Profissional
certificado em: gerenciamento de projeto pelo P.M.I. (profissional PMP);
Gerenciamento ágil de projetos (SCRUM); Gerenciamento de serviços de T.I.
(ITIL). Professor de ensino superior para cursos da área de T.I. e pós-graduação
para diversas áreas. Atua como consultor em gerenciamento de projetos;
processos de negócio; melhoria de processos e machine learning.
2
UNIDADE 1 – Introdução
Objetivos de aprendizagem
Conceitos fundamentais de modelos de dados
Conceitos fundamentais de modelos de dados alternativos
Utilização e tendências
Padrões de projetos
4
Com a descrição das relações entre as estruturas como motivação,
podemos agora discutir a arquitetura de três níveis de um sistema de
gerenciamento de banco de dados completo (SGBD). Os níveis que são
mantidos em tal sistema servem para fornecer independência de estruturas do
tipo que descrevemos. Esta organização é ilustrada na Figura 2.
O objetivo da organização de três níveis é a separação dos aplicativos do
usuário e do banco de dados físico. Isso também é conhecido como a
arquitetura ANSI/SPARC, após o comitê que o propôs. Primeiro no nível, o nível
físico possui um esquema interno, que descreve a estrutura de armazenamento
físico do banco de dados. Esse esquema usa um modelo de dados físico e
fornece detalhes de armazenamento de dados e caminhos de acesso para o
banco de dados (HAN, 2006).
O nível lógico descreve o modelo lógico, que é a visão da estrutura do
banco de dados inteiro para todos os usuários. Esse esquema oculta os detalhes
dos usuários e se concentra na descrição de entidades, tipos de dados,
relacionamentos, operações do usuário e restrições. O modelo lógico é
frequentemente usado para caracterizar um banco de dados específico.
Descreveremos a variedade de modelos de dados nesse nível que foram
desenvolvidos de hierárquico para relacional para o modelo de dados orientado
a objeto. Como será visto, a maioria das questões relativas à incerteza de
modelagem são descritas nesse nível e, portanto, a maior parte da ênfase em
nossa descrição será desse nível.
O nível externo ou de exibição inclui vários esquemas externos ou
visualizações do usuário. Cada esquema externo descreve a parte do banco de
dados em que um determinado grupo de usuários está interessado e oculta o
restante do banco de dados desse grupo de usuários.
5
Figura 2 – Estrutura de 3 níveis
Independência de dados
6
O conceito de independência de dados é ilustrado pelas relações entre os
níveis da arquitetura ANSI/SPARC. Há independência entre os níveis se for
possível alterar o esquema em um nível de um sistema de banco de dados sem
ter que alterar o esquema no próximo nível mais alto. Dois tipos de
independência de dados são geralmente distintos, independência de dados
lógica e física.
7
independência de dados físicos requer o divórcio de um aplicativo apenas das
estruturas de armazenamento físico específicas, geralmente é mais fácil obter
resultados do que a independência de dados lógicos.
Capacidade de dados
Integridade
8
obtidos diretamente do gerenciamento integrado dos dados e não da
semântica de dados. Em geral, o termo integridade abrange ambos os aspectos,
isto é, preservar a consistência dos dados e sua correção.
Processo Geral
9
Figura 3 – Processo de criação de modelos de dados
10
armazenamento e acesso. Em geral, não trataremos do processo de design
nesse nível em nossas discussões (HAN, 2006).
11
Figura 4 – Exemplo de modelo de dados em rede
#ATENÇÃO#
Existem uma variedade de modelos de dados. Escolha o que se adapte mais ao
problema a ser resolvido e não o contrário.
#ATENÇÃO#
Modelo Relacional
12
Nesses modelos anteriores, a necessidade de conhecimento
excessivamente detalhado da estrutura e o fato de não se basearem em um
conceito bem definido causaram muitos problemas. Eles eram geralmente
difíceis de programar e manter devido a essa complexidade e não eram
passíveis de desenvolvimento de interfaces de alto nível e fáceis de usar. Tais
problemas levaram a várias investigações de maneiras de fornecer uma visão
mais abstrata e mais sólida dos dados e suas relações. Isso culminou no
trabalho de Codd em sua proposta para o modelo de dados relacionais baseado
em conceitos teóricos. Essencialmente, os bancos de dados relacionais
consistem em uma ou mais relações no formato bidimensional (linha e coluna).
As linhas são chamadas tuplas e correspondem aos registros; as colunas são
chamadas de domínios ou atributos e correspondem aos campos. Um ou mais
dos atributos são distinguidos como atributos-chave. É desejável manter uma
relação na terceira forma normal, a fim de evitar certos problemas de
redundância e anomalias de armazenamento. Uma relação está na terceira
forma normal se os atributos chave e não-chave possuem duas características.
Primeiro, cada atributo deve ser totalmente dependente da chave inteira e não
de uma parte dela se a chave englobar mais de um atributo. Segundo, cada um
dos atributos não chave deve ser dependente não transitivamente da chave. Ou
seja, eles dependem diretamente apenas do chave e não uns sobre os outros
(HAN, 2006).
Agora podemos apresentar um exemplo de algumas relações da nossa
Entidade-Projeto de relacionamento do banco de dados de sites ambientais.
Conforme discutido, as entidades individuais tornam-se relações com valores de
dados reais dos atributos inseridos na relação. Dois deles são mostrados na
Figura 5. Também há a relação AVALIAÇÕES que foi derivada das relações
correspondentes no diagrama E-R. A transformação para criar essa relação é a
seguinte. As chaves das duas entidades envolvidas no relacionamento são
usadas como a chave composta na relação derivada. Além disso, quaisquer
atributos associados ao relacionamento são incluídos como atributos, nesse
caso, o atributo COSTS.
13
Figura 5 – Exemplo de modelo de dados relacional
#ATENÇÃO#
14
O modelo de dados relacional é o mais utilizado na indústria do software.
Entretanto, ele não é conhecido com a profundidade que deveria. Conhecer
esse modelo aumenta sua vantagem para a criação de estruturas de dados
robustas e eficientes.
#ATENÇÃO#
15
bancos de dados orientados a objetos independentes e por extensões
orientadas a objeto para o modelo relacional. Eles foram desenvolvidos em
resposta a aplicações complexas que não poderiam ser tratadas por modelos de
dados anteriores. Tais aplicativos incluíam sistemas CAD/CAM, bancos de dados
de imagens, sistemas de informações geográficas e outros que exigiam dados
altamente estruturados. A abordagem básica no modelo de dados orientado a
objeto é organizar um banco de dados em termos de objetos, suas
propriedades e suas operações. Uma classe conterá objetos com a mesma
estrutura e comportamento. As classes são organizadas em uma hierarquia de
superclasses e subclasses. Para cada classe, as operações permitidas são
fornecidas por procedimentos pré-definidos. Outra característica importante da
abordagem é o conceito de herança que permite a especificação de novas
classes e tipos que herdam a maioria de suas operações e estrutura de
superclasses na hierarquia de classes.
#ATENÇÃO#
O modelo de dados orientado a objetos é antigo mas não tem muita utilização
em aplicações comerciais. Ele acabou sendo substituído pelos modelos NoSQL.
#ATENÇÃO#
Valores nulos
16
relatório ANSI/X3/SPARC de 1975, por exemplo, aponta mais de uma dúzia de
tipos de nulos. Em uma extremidade do espectro, NULL significa
completamente desconhecido. Por exemplo, um valor nulo no salário atual de
um funcionário pode significar que o valor real é qualquer um dos valores
permitidos para o conjunto de domínios salariais.
Sem recorrer a medidas difusas, um usuário pode especificar algumas
informações sobre um valor que o restringe ainda mais. Um subconjunto ou
intervalo de valores do conjunto de domínios pode ser descrito dentro do qual
o valor real do atributo deve estar. O usuário ou o sistema (via dependências
funcionais) pode especificar subconjuntos ou sub-intervalos dentro dos quais o
valor real não deve estar.
Ainda outra opção é rotular valores nulos de uma maneira que requer
nulos distintos em diferentes partes do banco de dados para ter um
relacionamento de valor real específico (geralmente igualdade) se eles tiverem
o mesmo rótulo. A semântica do valor nulo varia de desconhecido (por exemplo,
o salário atual de um funcionário) para não aplicável (por exemplo, número da
submontagem de uma peça que não é um subconjunto) para não existe (por
exemplo, meio nome de uma pessoa). Esses dois últimos significados, no
entanto, não estão relacionados à incerteza.
Essas extensões relativamente pequenas tiveram muitas ramificações
dentro da teoria, algumas das quais ainda não foram totalmente resolvidas. Por
exemplo, se dois valores de domínio tiverem a mesma representação, eles
serão considerados o mesmo valor em bancos de dados comuns. Isso
claramente não é uma suposição correta para o valor nulo quando significa
desconhecido. É preciso levar em conta a semântica do nulo quando encontrado
durante a interpretação da consulta. Outro problema é a ocorrência de nulo
como valor-chave.
#ATENÇÃO#
Evite ao máximo valores nulos em seu banco de dados. Valores nulos, em sua
maioria, representam problemas de modelagem.
#ATENÇÃO#
Múltiplos Nulos
17
ausentes e no armazenamento de valores verdadeiros que descrevem o status
lógico dos valores padrão em tabelas suplementares. Quatro valores lógicos são
usados para que o status lógico dos valores de dados padrão possa ser descrito
como não apenas verdadeiro ou falso, mas também como inaplicável ou
desconhecido.
Se uma dada relação R pode ter valores faltantes em qualquer um de
seus campos não-chave, outra relação RL (tabela de status lógico) está
associada a R. RL possui o esquema relacional idêntico a R e os mesmos valores
nos campos-chave. No entanto, em outros campos, RL possui valores de status
lógicos correspondentes aos valores de atributos ou dados em R, e agora nem R
nem RL devem usar valores nulos reais (HAN, 2006).
Os valores de status lógico em RL são, na verdade, valores de verdade
lógicos de quatro valores. Os quatro valores de verdade são usados para
fornecer semântica adicional para descrever o status lógico de dados ausentes.
Os valores adicionais podem ser usados para descrever dados como não apenas
verdadeiros ou falsos, mas também como inaplicáveis ou desconhecidos. Agora
podemos discutir a semântica desses quatro casos.
Tipos de nulos
18
poluição da nossa base de dados de exemplo, em alguns campos as respostas
eram "sim" ou "não" para fornecer uma avaliação estatística uniforme, mas
alguns indivíduos podem fornecer respostas como "talvez", "por vezes" que não
são permitidas como valores.
Aplicável e Talvez Verdadeiro (AM ou 2) é o caso em que o valor: (1) é um
valor padrão, (2) está no domínio do atributo (é aplicável) e (3) pode ser um
verdadeiro ou um falso descrição da entidade nomeada pela chave primária. Ou
seja, o valor real é desconhecido, mas o padrão pode vir a ser uma descrição
verdadeira da entidade. Finalmente, o caso de Aplicável e Verdadeiro (AT ou 3),
que basicamente significa que os dados armazenados são exatamente como
deveriam ser para uso em o sistema de banco de dados.
Para entender a utilização desses valores e sua relação, devemos
considerar como os casos que eles representam podem ter surgido. Primeiro,
considere o processo de design do banco de dados. Uma dificuldade no
processo é decidir o que representar como uma entidade única e quais
atributos associar a determinadas entidades. Portanto, é possível que nem
todas as entidades de um determinado tipo tenham todas as propriedades ou
atributos associados ao tipo de entidade. Para algumas entidades, alguns dos
atributos não serão aplicados. Por exemplo, se na classificação de corpos de
água não tivermos distinguido entre rios e lagos, o atributo "corrente" pode não
ter um valor para algumas entradas de dados. Esse tipo de dados ausentes é
chamado de dados ausentes inaplicáveis, associados ao valor de verdade, NA.
Naturalmente, a outra situação comum é aquela em que os valores de
dados não estão disponíveis por algum motivo quando os registros são
adicionados ao banco de dados. Por exemplo, a corrente de um rio pode não
estar disponível quando inserimos outras características, como comprimento,
largura média, etc., de uma imagem de sensor remoto em um sistema GIS. Isso
é um dado desconhecido e está associado ao valor de verdade AM.
Benefícios
19
definindo uma exibição na qual todos os campos AM foram substituídos
pelos valores mínimo ou máximo no domínio.
• É possível fazer aritmética em dados perdidos, pois os campos de dados
sempre contêm um valor padrão, em vez de um valor ou marca nulos.
Abordagem de Lipski
Lipski propõe uma abordagem mais geral. Ele não assume, por exemplo,
que NULL significa que um valor é completamente desconhecido. Dado que
pode haver nulos de valor rotulados ou restritos, deixe Q denotar todos os
objetos do mundo real que uma consulta Q poderia representar. Seja T um
objeto de banco de dados e T todos os objetos do mundo real que ele poderia
representar. Estes também são conhecidos como interpretações externas e
internas.
O trabalho original de Lipski não assume um formulário de banco de
dados relacional (ou qualquer outro), mas, para ilustração, um será usado aqui.
Suponha uma relação EMPREGADO com os domínios NOME e IDADE. O objeto
do banco de dados T = [Bob 30-35] poderia representar seis objetos do mundo
real (um para cada ano na faixa etária). Uma consulta, Q, coloca cada objeto de
banco de dados em uma das três categorias.
Por exemplo, a query, EMPLOYEE [AGE> 32], coloca T no set possível,
enquanto EMPLOYEE [AGE> 25] V EMPLOYEE [AGE <40] coloca T em conjunto
com certeza. As duas primeiras categorias também são conhecidas como o
menor valor, IIQII * 'e valor superior, IIQII *, e estas interpretações limitantes
são estudadas em sua abordagem. Vários relacionamentos são desenvolvidos
para auxiliar na avaliação desse tipo de consulta. Este trabalho tem sido a base
20
de comparação para várias abordagens mais generalizadas que descreveremos
a seguir.
21
Primeiro, discutiremos os conceitos de abordagens estatísticas à
incerteza em bancos de dados. A principal abordagem nessa área é a de Wong,
na qual ele lida com uma grande classe de casos de incerteza por inferência
estatística. Essa formulação aborda a incerteza dos dados do mundo real,
assumindo um mundo ideal de informações perfeitas, ao qual os dados
incompletos podem ser estatisticamente comparados. A informação anterior
desta comparação é representada como uma função de distorção ou uma
distribuição condicional. Atributos ausentes e combinados podem ser tratados
por funções de distorção. Fontes de incerteza que resultam de distribuições
condicionais podem incluir obsolescência, erro de medição e agregação de
dados. Seu método visualiza as consultas como experimentos estatísticos nos
quais as informações eram incompletas e centradas no cálculo da resposta da
consulta como consistindo naquelas tuplas que minimizaram os dois tipos de
erros estatísticos.
Outra abordagem lida com tabelas relacionais estatísticas, mas a ênfase
está na informação estatística e não na informação incerta. Um excelente Um
resumo das questões de pesquisa de bases de dados estatísticos e científicos é
encontrado no artigo de Shoshani e Wong.
O método mais direto de lidar com a incerteza e a incompletude é usar
especificamente um modelo de dados probabilístico. Aqui vamos descrever a
abordagem mais completamente desenvolvida em que as probabilidades estão
associadas aos valores dos atributos. Em seu modelo, como cada atributo
estocástico é tratado como uma função de distribuição de probabilidade
discreta, as probabilidades de cada atributo (em uma tupla) devem ser
normalizadas (soma para 1.0). Entretanto, pode ser difícil determinar
probabilidades exatas para todos os valores de domínio possíveis. Como
resultado, eles desenvolveram o conceito de probabilidades ausentes para
considerar tais distribuições de probabilidade especificadas de forma
incompleta.
Utilização e Tendências
22
Figura 6 – Tendências dos modelos de dados
#ATENÇÃO#
Cuidado com a utilização de tendências. Nem sempre elas tem durabilidade ou
são adequadas ao seu modelo de negocio atual.
#ATENÇÃO#
Considerações Finais
23
UNIDADE 2 – NoSQL
Objetivos de aprendizagem
Conceitos fundamentais
Funcionamento interno dos modelos NoSQL
Os padrões ACID vs. BASE
Tipos de armazenamentos
Conceitos fundamentais
24
Figura 7 – Evolução dos modelos de dados
O termo NoSQL foi usado pela primeira vez em 1998 para um banco de
dados relacional que omitiu o uso do SQL. O termo foi retomado em 2009 e
usado para conferências de defensores de bancos de dados não relacionais,
como o desenvolvedor do Last.fm Jon Oskarsson, que organizou o meetup
NoSQL em San Francisco. A revista Computerworld relata em um artigo sobre o
encontro NoSQL em São Francisco que “NoSQLers chegaram a compartilhar
como eles haviam derrubado a tirania de bancos de dados relacionais lentos e
caros em favor de maneiras mais eficientes e mais baratas de gerenciar dados”.
Ele afirma que, especialmente, as startups da Web 2.0 iniciaram seus negócios
sem a Oracle e mesmo sem o MySQL, que antes era popular entre as mesmas.
Em vez disso, eles criaram seus próprios armazenamentos de dados
influenciados pelo Dynamo da Amazon e pelo Bigtable do Google para
armazenar e processar grandes quantidades de dados como aparecem, por
exemplo, na comunidade social ou aplicativos de computação em nuvem (HAN,
2006).
Com isso, a maioria desses datastores tornaram-se software de código
aberto. Por exemplo, o Cassandra originalmente desenvolvido para um novo
recurso de pesquisa do Facebook agora faz parte do Apache Software Project.
De acordo com o engenheiro Avinash Lakshman, ele é capaz de escrever 2500
vezes mais rápido em um grande banco de dados de 50 gigabytes do que o
MySQL. Algumas das razões normalmente usadas para desenvolver e usar
datastores NoSQL são:
25
relacionais fornecem uma variedade de recursos e consistência de
dados. Mas esse conjunto de recursos e as propriedades ACID
implementadas podem ser mais do que o necessário para
aplicativos e casos de uso específicos.
Alta taxa de transferência. Alguns bancos de dados NoSQL
fornecem uma taxa de transferência de dados significativamente
maior do que os SGBDRs tradicionais. Por exemplo, o Hypertable,
que busca a abordagem Bigtable do Google, permite que o
mecanismo de busca local Zvent armazene um bilhão de células de
dados por dia. Para dar outro exemplo, o Google pode processar
20 petabytes por dia armazenados no Bigtable por meio da
abordagem MapReduce.
Escalabilidade Horizontal e Execução em Hardware de Mais Barato.
Definitivamente, o volume de dados está ficando tão grande que as
pessoas estão olhando para outras tecnologias.
Evitar o caro mapeamento objeto-relacional. A maioria dos bancos
de dados NoSQL é projetada para armazenar estruturas de dados
simples ou mais semelhantes às de linguagens de programação
orientadas a objeto em comparação com estruturas de dados
relacionais. Eles não precisam do mapeamento objeto-relacional.
Complexidade e custo de configuração de clusters de banco de
dados. Os bancos de dados NoSQL são projetados de maneira que
os clusters de PC podem ser expandidos de maneira fácil e barata
sem a complexidade e o custo de fragmentação, o que envolve o
corte de bancos de dados em várias tabelas. clusters ou grades.
Confiabilidade para um melhor desempenho. Existem cenários em
que as aplicações estariam dispostas a comprometer a
confiabilidade para um melhor desempenho. Como exemplo,
imagine os dados de sessão HTTP que precisam ser compartilhados
entre vários servidores web, mas como os dados são de natureza
transitória (desaparecem quando o usuário efetua LOGOFF), não é
necessário armazená-los em de forma persistente.
O atual "um tamanho para todos" dos bancos de dados. Um número
crescente de cenários não podem ser abordados com bancos de
dados tradicionais. Ele argumenta que "essa percepção não é
26
realmente tão nova", como os estudos de Michael Stonebraker
(veja abaixo) existem há anos, mas as antigas "notícias" se
espalharam para uma comunidade maior nos últimos anos.
Funcionamento Interno
1
Acronimo para Atomicidade, Consistência, Isolamento e Durabilidade. São as propriedades fundamentais de
qualquer SGBDRs.
2
Propriedades BASE: Basically Available, Soft state, Eventually consistent.
27
ACID vs. BASE
A internet, com seus wikis, blogs, mídias sociais, etc., cria uma enorme e
crescente quantidade de dados que precisam ser processados, analisados e
entregues. Empresas, organizações e indivíduos que oferecem aplicativos ou
serviços nesse campo precisam determinar suas necessidades individuais em
relação a desempenho, confiabilidade, disponibilidade, consistência e
durabilidade. Como discutido acima, o teorema CAP afirma que uma escolha só
pode ser feita para duas opções de consistência, disponibilidade e tolerância à
partição (KIMBALL, 2013).
Para um número crescente de aplicações e casos de uso (incluindo
aplicações web, especialmente em grande e ultra grande escala, e até mesmo
no setor de e-commerce) a disponibilidade e a tolerância à partição são mais
importantes do que consistência. Essas aplicações precisam ser confiáveis, o
que implica disponibilidade e redundância. Estas propriedades são difíceis de
alcançar com propriedades ACID, portanto abordagens como BASE são
aplicadas. A abordagem BASE de acordo com Brewer perde as propriedades
ACID de consistência e isolamento em favor de disponibilidade, degradação
graciosa e desempenho. A sigla BASE é composta das seguintes características:
• Basically available
• Soft-state
• Eventual consistency
28
Figura 8 – Padrão ACID versus BASE
29
de monotonicidade de tempo que os clientes só verão versões mais atualizadas
dos dados em solicitações futuras (KIMBALL, 2013).
#ATENÇÃO#
Consistência de dados é muito importante para cenários de tomada de decisão.
Entretanto, você pode abrir mão dela para aumentar o desempenho onde esses
dados não tem uma relevância tão alta.
#ATENÇÃO#
30
ordem total é facilmente interrompida em um ambiente distribuído e
dinâmico de nós, argumenta a equipe do Projeto Voldemort.
• O Vector Clocks é uma abordagem alternativa para capturar pedidos e
permitir o processamento entre atualizações em um sistema distribuído.
• Armazenamento Multiversão significa armazenar um registro de data e
hora para cada célula da tabela. Esses timestamps "não precisam
necessariamente corresponder à vida real", mas também podem ser
alguns valores artificiais que podem ser colocados em uma ordem
definida. Para uma determinada linha, várias versões podem existir
simultaneamente. Além da versão mais recente, um leitor também pode
solicitar a versão “mais recente antes de T”. Isso fornece “controle de
simultaneidade otimista com comparação e troca de registros de data e
hora” e também permite obter instantâneos de conjuntos de dados.
Tipos de Armazenamento
31
como o Redis, permitem que cada valor tenha um tipo, como
'integer', que adiciona funcionalidade.
• Os repositórios de coluna ampla, como o Cassandra e o HBase, são
otimizados para consultas em grandes conjuntos de dados e
armazenam colunas de dados juntas, em vez de linhas.
Considerações Finais
32
UNIDADE 3 – Data Warehouse
Objetivos de aprendizagem
Modelo multidimensional
Data Stage, Data Marts e Data Lakes
Extração, Transformação e Carga (ETL)
Modelagem Multimensional
35
Modelos
Dimensões
36
usado para restringir uma consulta ou para uso em um relatório.
Fatos
37
Figura 11 – Exemplo de uma tabela fato
38
Figura 12 – Exemplo de modelo multidimensional
#ATENÇÃO#
O modelo multidimensional deve ser orientado a consultas. Dessa forma, os
dados deverão estar desnormalizados.
#ATENÇÃO#
Data Marts
39
que os dados sejam movidos fisicamente do data warehouse para os data
marts. Isso requer outra camada de extração, transformação e carregamento
(ETL) para mover os dados do data warehouse para o(s) data mart(s). A seguir,
descrevemos as características desse movimento físico de dados. Em alguns
casos, as estruturas do próprio data warehouse podem ser modificadas para
suportar os processos de carregamento e manutenção de data marts.
Mastering Data Warehouse Design, de Claudia Imhoff, Nicholas Galemmo e
Jonathon Geiger (Wiley, 2003), é um bom recurso para aprender mais sobre
essas técnicas.
40
apenas cinco anos.
Quem poderá usar os dados aqui? Os data marts são projetados
especificamente para suportar muitos usuários corporativos para suas
necessidades de relatórios e análises. Isso pode significar milhares de
representantes de atendimento ao cliente analisando o desempenho do
dia anterior, centenas de fornecedores acompanhando seu progresso em
direção a metas anuais ou um painel executivo revisado por um punhado
de executivos para acompanhar o desempenho corporativo.
Que tipo de acesso a dados eles terão? O acesso é direto ao data mart por
meio de um ambiente de acesso ou consulta de dados ou talvez por meio
de relatórios interativos publicados pela intranet da empresa.
41
para conformidade com requisitos legais, uma janela de processamento e
o que a trilha de auditoria deve incluir.
2. Desenho do sistema ETL: O modelo dimensional é o alvo que o sistema
ETL irá construir. O design do sistema ETL fornece os detalhes sobre
como ir de onde os dados estão agora para esse modelo dimensional de
destino. Algumas organizações exigem que cada pequeno detalhe seja
definido, incluindo todas as regras específicas para construir a dimensão,
e essas tabelas de fatos ser documentado antes de começar a construir o
sistema ETL. Outros esboçam um rápido fluxo de dados de alto nível em
um guardanapo e então começam a construir. Deve haver algum
equilíbrio aqui. É impossível rastrear cada pequeno detalhe que pode ser
descoberto nos dados antes de iniciar o trabalho no sistema ETL. No
entanto, é importante criar especificações que definam como o sistema
ETL funcionará. Eles são desenvolvidos usando os resultados dos
requisitos, incluindo definições de elementos de dados, mapeamento de
dados e insights da análise de dados de origem. Isso é ainda mais crítico
se o trabalho de construção for feito por desenvolvedores terceirizados.
Parte do design geral também deve abordar a funcionalidade para
manter o próprio sistema ETL em execução, incluindo uma trilha de
auditoria e recursos de backup / recuperação.
3. Construção do sistema ETL: Este é o desenvolvimento real do próprio
sistema, que pode incluir programas de escrita ou uso de tecnologia para
realizar o trabalho. Este trabalho pode ser dividido entre pessoas
diferentes ou até equipes diferentes. Usando o design coeso, cada equipe
pode trabalhar em sua parte. Pode haver algumas dependências entre as
equipes, mas muito do trabalho pode ser feito ao mesmo tempo.
4. Teste do sistema ETL: Como se trata de diferentes tipos de pessoas
trabalhando em diferentes partes do sistema, é importante realizar testes
completos e completos de todo o sistema. Isso também fornece a
oportunidade de identificar quaisquer gargalos e melhorar o
desempenho do sistema. Para se preparar para o teste, uma série de
casos de teste precisa ser desenvolvida para fornecer condições realistas
para determinar se o sistema está funcionando corretamente. Esses
casos de teste devem representar situações de negócios reais e precisam
ser definidos por representantes da comunidade de negócios.
42
#ATENÇÃO#
ETL tende a consumir muito processamento, memoria e acesso a disco. Dessa
forma, ter um servidor dedicado ao mesmo é uma boa prática.
#ATENÇÃO#
Extração
Extrair os dados pode ser muito mais difícil do que parece. O negócio
precisa de informações sobre as transações mais recentes ou aquelas que
foram processadas desde a última vez em que o sistema ETL foi executado.
Também é necessário obter os dados de referência que descrevem essas
transações. Por exemplo, se um cliente existente mudou, mas desde então
comprou mais produtos, você precisa saber os detalhes sobre o novo local do
cliente e ainda obter as transações de compra (ROKACH, 2014).
Os desafios na extração de dados estão diretamente relacionados à
capacidade de um sistema de origem de fornecer novas transações de negócios
e suportar dados de referência. Alguns sistemas identificam quando as
mudanças ocorreram e podem compartilhar facilmente os dados. Outros
sistemas efetivamente fazem o que é necessário para concluir a transação, mas
não são projetados para acompanhar o que mudou. Isso pode significar que o
data warehouse obtém uma cópia de todo o arquivo do cliente e o sistema ETL
precisa descobrir o que foi alterado. Claramente, há uma diferença significativa
na quantidade de trabalho necessária para filtrar todo o arquivo do cliente, em
vez de obter detalhes sobre apenas os clientes que atualizaram as informações.
43
Os desenvolvedores de ETL precisam coordenar seu trabalho com o de
equipes de TI que trabalham com os sistemas de origem nos quais os dados
devem ser extraídos. Essas outras equipes de desenvolvimento e suporte de
aplicativos podem ficar sobrecarregadas com seu próprio trabalho. Nesse caso,
as solicitações da equipe do data warehouse são apenas mais trabalho
adicionado a um cronograma já sobrecarregado.
Transformação
Crie uma descrição completa para novos clientes: depois que um novo
cliente é identificado, os dados devem estar localizados para preencher todos
os atributos do cliente. Isso pode exigir a análise de várias fontes de dados.
Também requer diretrizes que priorizem as fontes. Talvez o banco de dados
mestre de clientes do departamento de marketing sempre seja o primeiro a
procurar informações sobre o cliente. Se o cliente não for encontrado lá, use os
dados de nome e endereço da fonte em que o cliente foi identificado pela
primeira vez e, em seguida, solicite dados demográficos de um provedor de
dados de terceiros. A fonte deve ser selecionada para cada elemento de dados.
Validar relacionamentos de dados: Siga as regras de negócios definidas
para garantir que todos os relacionamentos de dados estejam corretos. Por
exemplo, verifique os valores de cidade, estado e código postal para garantir
que eles representem uma combinação válida. Isso pode incluir
relacionamentos padrão, como a geografia, bem como relacionamentos
internos, como clientes residentes em Illinois, pertencentes à região de vendas
do centro-oeste.
Mapear dados do cliente de várias origens: quando os dados estão sendo
processados de mais de um sistema de origem, deve haver um método para
associar dados de cada fonte. Cada sistema de origem pode ter diferentes
identificadores de clientes, às vezes chamados de identificadores de produção
(IDs) ou códigos. Por exemplo, deve haver um mapeamento indicando que o ID
de produção para o cliente "ABC" no sistema de vendas é o mesmo cliente
identificado como "1003XJ" no sistema de contabilidade. Criar e manter este
mapa é uma parte crítica do processo geral de transformação que permite a
integração de dados de diferentes origens / sistemas.
Identifique e elimine clientes duplicados: é comum encontrar o mesmo
45
cliente em cada uma das diferentes origens de dados. No entanto, pode ser que
o mesmo cliente possa estar em dados da mesma fonte de dados. Por exemplo,
pode haver dados para um cliente chamado Laura Reeves e para um cliente
chamado L. L. Reeves. Observando o sobrenome, as variações do nome e da
inicial e outros dados diferenciados, como data de nascimento e endereço
residencial, você pode determinar se essa é a mesma pessoa. Esse
processamento é geralmente chamado de desduplicação ou deduplicação dos
dados (SHMUELI, 2016).
#ATENÇÃO#
Existem algoritmos para a desduplicação de dados. Vale a pena estuda-los para
entender como o funcionamento pode auxiliar na economia de processamento.
#ATENÇÃO#
46
processamento para isolar as transações necessárias para preencher a
tabela de fatos de vendas. O sistema de vendas pode processar outras
transações, como devoluções de produtos ou ajustes de estoque. Se isso
não for necessário para criar a tabela de fatos de vendas, eles poderão
ser ignorados para essa etapa (eles podem ser necessários para outras
tabelas de fatos).
• Verifique a existência de dados de referência de dimensão para cada
transação de vendas: isso significa que os dados descritivos críticos, como
produto, cliente e data de vendas, são válidos. As transações podem fluir
pelo sistema de vendas com identificadores de clientes ausentes ou
inválidos. Deve haver um conjunto de regras sobre como lidar com cada
caso especial observado na transação. Também é essencial garantir que
haja uma linha na tabela de dimensões para cada instância usada para
uma transação. Isso é conhecido como integridade referencial.
• Atribuir identificadores de data warehouse apropriados: Uma vez que os
dados de referência críticos tenham sido validados, os identificadores
devem ser alterados daqueles usados pelos sistemas de origem
subjacentes àqueles usados no ambiente de data warehouse, as chaves
substitutas.
• Validar campos de fatos: Embora os fatos reais sejam específicos de cada
transação, geralmente há diretrizes gerais que podem ser verificadas
para determinar se o fato é exato. Por exemplo, uma transação de
vendas de unidades zero pode indicar que essa não é uma venda real.
Uma única transação de vendas para uma quantia maior que a média de
vendas semanais para toda a empresa é provavelmente um erro de
dados.
• Traduzir valores de fatos para facilidade de uso: as medidas de negócios
necessárias para relatórios podem ser diferentes de como os dados são
armazenados nos sistemas de origem. É útil converter dados em uma
unidade de medida comum para relatórios. Se uma transação de venda
registra a venda de um caso, isso pode ser um caso de 24 unidades
individuais ou talvez 36 unidades individuais. A conversão de todas as
vendas para as unidades individuais garante relatórios consistentes e
significativos. Além disso, muitos fatos funcionam juntos. Por exemplo, o
número de unidades vendidas, o preço e a quantia em dólares vendida
47
são todos fatos úteis. Apenas dois deles precisam ser armazenados
fisicamente; o terceiro pode ser calculado on-the-fly. Para fazer isso o
mais rápido possível, é útil armazenar os dois fatos que são usados com
mais frequência.
• Desvendar a lógica do sistema de origem: em muitos casos, o sistema de
origem tem dados principais armazenados de maneira a ajudar esse
sistema a executar rapidamente e permitir que cada módulo seja
relativamente autônomo. Isso pode significar que as peças necessárias
para obter uma imagem completa de uma transação de vendas podem
ser armazenadas em vários locais ou tabelas. Para tornar as coisas mais
desafiadoras, pode não haver links diretos entre essas tabelas, embora
possa haver uma série de tabelas de conversão e de pesquisa necessárias
para chegar ao fim das coisas. Talvez seja por isso que os dados são tão
difíceis de serem usados no sistema de origem. Os detalhes estão todos
lá, mas você precisa entender os "apertos de mão secretos" para chegar
aos números reais. O sistema ETL pode aplicar essa lógica para fornecer
os números de venda reais a serem carregados em uma tabela de fatos.
Isso é feito uma vez e todos podem acessar esses fatos sem ter que
aprender todos esses detalhes.
• Realizar cálculos complexos: muitos cálculos podem ser feitos ao criar um
relatório ou acessar dados de maneira ad hoc. No entanto, alguns
cálculos podem ser complexos e demorados demais para serem
executados on-the-fly. O sistema ETL pode executar esses cálculos e
armazenar os resultados como fatos, que podem ser acessados
diretamente para geração de relatórios.
#ATENÇÃO#
A realização de cálculos complexos exige que esse cálculo possa ser auditado.
Tenha uma forma de armazenar a memoria de calculo do mesmo.
#ATENÇÃO#
48
À medida que o conceito de data lake se torna parte da arquitetura
central de dados, a questão é, muitas vezes, se o data lake é uma estratégia de
arquitetura ou um destino de arquitetura. A resposta é ambas. Ao definir o data
lake como um repositório centralizado de dados corporativos para várias cargas
de trabalho de dados (dentro e fora de uma parte), abordamos tanto a
arquitetura do estado final como também estabelecer uma luz orientadora para
as decisões relacionadas à arquitetura de dados na jornada para alcançar massa
crítica para o lago de dados. Muitas empresas aplicam sabiamente o conceito
de lago de dados ao ditado de Ralph Waldo Emerson de que “a vida é uma
jornada, não um destino” e reconhecer que o lago de dados é o destino final de
uma jornada única que segue seu próprio ritmo e direção com base nos
direcionadores e prioridades da empresa adotante. Com base nos padrões de
adoção de arquitetura que vemos acontecendo nas empresas hoje, podemos
destilar a jornada até o data lake em quatro estágios de adoção de negócios.
O estágio 1 é composto por projetos pilotos de Big Data “kick-the-tire”
que focam em resultados de negócios específicos que servem como uma
introdução ao uso e gerenciamento de um ambiente Apache Hadoop. O estágio
2 é uma abordagem mais reacionária à medida que as empresas começam a se
concentrar na alavancagem dos pontos fortes do Hadoop para lidar com as
ineficiências da arquitetura existente e isolar oportunidades de valor de
negócios claras, rápidas e mensuráveis. Um desses padrões é aproveitar a
camada de persistência escalonável e de baixo custo do Hadoop ou sua
capacidade de executar processamento e análise de big data.
Um exemplo é a recente aceitação da realocação de dados de data
warehouse históricos para o data lake como uma extensão de armazenamento
on-line com acordos de nível de serviço menores para reduzir o tamanho e o
gerenciamento geral do data warehouse. Outras implementações podem
fornecer valor potencialmente de longo prazo, como realocar uma área de
armazenamento de dados de aquisições de dados de origem operacional no
data lake para que as integrações de data warehouse possam originar e
persistir dados adquiridos como dados brutos de longo prazo (e dados
adicionais não usados pelo data warehouse) para permitir a acessibilidade e
poder de processamento de dados necessários aos cientistas de dados e
desenvolvimento de análises (SHMUELI, 2016).
Considerações Finais
49
Esses modelo são fundamentais para a estabilidade do software e facilitam o
acesso aos ao longo do ciclo de vida do produto.
50
UNIDADE 4 – Data Mining
Objetivos de aprendizagem
Descoberta de conhecimento
Principais algoritmos
Técnicas para preparação de dados
Descoberta de Conhecimento
51
o desenvolvimento de sistemas de bancos de dados relacionais (onde os dados
são armazenados em estruturas de tabelas relacionais), ferramentas de
modelagem de dados e indexação e métodos de acesso. Além disso, os usuários
obtiveram acesso conveniente e flexível aos dados por meio de linguagens de
consulta, interfaces de usuários, processamento otimizado de consultas e
gerenciamento de transações. Métodos eficientes para processamento de
transações on-line (OLTP), onde uma consulta é vista como uma transação
somente leitura, contribuíram substancialmente para a evolução e ampla
aceitação da tecnologia relacional como uma ferramenta importante para
armazenamento, recuperação e gerenciamento eficientes de grandes volumes.
quantidades de dados.
A tecnologia de banco de dados desde meados da década de 1980 tem
sido caracterizada pela popular adoção de tecnologia relacional e pelo
surgimento de atividades de pesquisa e desenvolvimento em novos e
poderosos sistemas de banco de dados. Elas promovem o desenvolvimento de
modelos de dados avançados, como modelos de relacionamento estendido-
relacional, orientado a objetos, objeto-relacional e dedutivo. Sistemas de banco
de dados orientados a aplicativos, incluindo bancos de dados espaciais,
temporais, multimídia, ativos, de fluxo e sensor, e científicos e de engenharia,
bases de conhecimento e bases de informações de escritório, floresceram.
Questões relacionadas à distribuição, diversificação e compartilhamento de
dados têm sido estudadas extensivamente. Sistemas de bancos de dados
heterogêneos e sistemas de informações globais baseados na Internet, como a
World Wide Web (WWW), também surgiram e desempenham um papel vital na
indústria da informação.
O progresso constante e surpreendente da tecnologia de hardware de
computador nas últimas três décadas levou a um grande suprimento de
computadores poderosos e acessíveis, equipamentos de coleta de dados e
mídia de armazenamento. Essa tecnologia fornece um grande impulso ao banco
de dados e ao setor de informações e disponibiliza um grande número de
bancos de dados e repositórios de informações para gerenciamento de
transações, recuperação de informações e análise de dados.
52
Figura 13 – Como podemos analisar os dados?
#ATENÇÃO#
Abundancia de dados nem sempre significa qualidade de dados. Entenda os
dados que você tem disponível para verificar a qualidade dos mesmos.
#ATENÇÃO#
54
longo. “Mineração de conhecimento”, um termo mais curto, pode não refletir a
ênfase na mineração de grandes quantidades de dados. No entanto, a
mineração é um termo vívido que caracteriza o processo que encontra um
pequeno conjunto de pepitas preciosas de uma grande quantidade de matéria-
prima. Assim, tal denominação incorreta que carrega tanto “dados” como
“mineração” tornou-se uma escolha popular. Muitos outros termos carregam
um significado semelhante ou ligeiramente diferente para a mineração de
dados, como mineração de dados, extração de conhecimento, análise de
dados/padrões, arqueologia de dados e dragagem de dados (HAN, 2006).
55
1. Limpeza de dados. Para remover ruído e dados inconsistentes.
2. Integração de dados. Onde várias fontes de dados podem ser
combinadas.
3. Seleção de dados. Onde o registro de dados é feito por um indivíduo
exclusivo que foi retirado do banco de dados.
4. Transformação de dados. Em que os dados transformam ou consolidam
uma forma adequada de mineração, realizando operações de resumo ou
de agregação, por exemplo.
5. Mineração de dados. Um processo essencial em que métodos inteligentes
são aplicados para extrair padrões de dados.
6. Avaliação de padrões. Para identificar os padrões realmente interessantes
que representam o conhecimento com base em algumas medidas de
interesse.
7. Apresentação do conhecimento. Onde as técnicas de visualização e
representação de conhecimento são usadas para apresentar o
conhecimento extraído ao usuário.
56
Figura 15 – Processo de descoberta de conhecimento em bancos de dados
Principais Algoritmos
Padrões frequentes, como o nome sugere, são padrões que ocorrem com
frequência nos dados. Existem muitos tipos de padrões frequentes, incluindo
conjuntos de itens, subsequências e subestruturas. Um conjunto de itens
frequente geralmente se refere a um conjunto de itens que aparecem
57
frequentemente juntos em um conjunto de dados transacionais, como leite e
pão. Uma subsequência de ocorrência frequente, como o padrão que os
clientes tendem a adquirir primeiro um PC, seguido por uma câmera digital e,
em seguida, um cartão de memória, é um padrão sequencial (frequente). Uma
subestrutura pode se referir a diferentes formas estruturais, como gráficos,
árvores ou reticulados, que podem ser combinados com conjuntos de itens ou
subsequências. Se uma subestrutura ocorre com frequência, ela é chamada de
padrão estruturado e frequente. Padrões frequentes de mineração levam à
descoberta de associações e correlações interessantes dentro dos dados
(SHMUELI, 2016).
Classificação e Previsão
#ATENÇÃO#
Redes neurais são uma área extensa e deve ser bem entendida antes de utilizar
os resultados produzidos.
#ATENÇÃO#
Análise de Cluster
Análise Outlier
59
(SHMUELI, 2016).
Os outliers podem ser detectados usando testes estatísticos que
pressupõem um modelo de distribuição ou probabilidade para os dados, ou
usando medidas de distância, onde os objetos que estão a uma distância
substancial de qualquer outro cluster são considerados outliers. Em vez de usar
medidas estatísticas ou de distância, os métodos baseados em desvios
identificam os valores discrepantes examinando as diferenças nas principais
características dos objetos de um grupo.
60
o tamanho dos dados agregando, eliminando recursos redundantes ou clusters,
por exemplo. Essas técnicas não são mutuamente exclusivas; eles podem
trabalhar juntos. Por exemplo, a limpeza de dados pode envolver
transformações para corrigir dados incorretos, como transformar todas as
entradas de um campo de data em um formato comum. As técnicas de
processamento de dados, quando aplicadas antes da mineração, podem
melhorar substancialmente a qualidade geral dos padrões minerados e / ou o
tempo necessário para a mineração real (HAN, 2006).
Imagine que você é um gerente da AllElectronics e foi encarregado de
analisar os dados da empresa em relação às vendas na sua filial. Você
imediatamente começou a executar essa tarefa. Você inspeciona
cuidadosamente o banco de dados e o data warehouse da empresa,
identificando e selecionando os atributos ou dimensões a serem incluídos em
sua análise, como item, preço e unidades vendidas. Você percebe que vários
dos atributos para várias tuplas não têm valor registrado. Para sua análise, você
gostaria de incluir informações sobre se cada item comprado foi anunciado
como vendido, mas você descobre que essa informação não foi registrada. Além
disso, os usuários do sistema de banco de dados relataram erros, valores
incomuns e inconsistências nos dados registrados para algumas transações. Em
outras palavras, os dados que você deseja analisar pelas técnicas de mineração
de dados são incompletos (sem valores de atributos ou certos atributos de
interesse, ou contendo apenas dados agregados), ruidosos (contendo erros ou
valores discrepantes que se desviam do esperado ) e inconsistente (por
exemplo, contendo discrepâncias nos códigos de departamento usados para
categorizar itens). Bem-vindo ao mundo real!
Dados incompletos, ruidosos e inconsistentes são propriedades comuns
de grandes bancos de dados e data warehouses do mundo real. Dados
incompletos podem ocorrer por várias razões. Os atributos de interesse nem
sempre estão disponíveis, como informações de clientes para dados de
transações de vendas. Outros dados podem não estar incluídos simplesmente
porque não foram considerados importantes no momento da entrada. Dados
relevantes podem não ser registrados devido a um mal-entendido ou devido a
falhas no equipamento. Dados inconsistentes com outros dados gravados
podem ter sido excluídos. Além disso, o registro da história ou modificações nos
dados pode ter sido negligenciado. Dados ausentes, particularmente para tuplas
com valores ausentes para alguns atributos, podem precisar ser inferidos.
Existem muitas razões possíveis para dados ruidosos (com valores de
atributos incorretos). Os instrumentos de coleta de dados usados podem estar
com defeito. Pode ter havido erros humanos ou de computador ocorridos na
61
entrada de dados. Erros na transmissão de dados também podem ocorrer. Pode
haver limitações de tecnologia, como tamanho de buffer limitado para
coordenar a transferência e o consumo de dados sincronizados. Dados
incorretos também podem resultar de inconsistências em convenções de
nomenclatura ou códigos de dados usados ou formatos inconsistentes para
campos de entrada, como data. As tuplas duplicadas também exigem limpeza
de dados.
63
de dados que eu selecionei para análise é ENORME, o que certamente
desacelerará o processo de mineração.
Existe alguma maneira de reduzir o tamanho do meu conjunto de dados,
sem comprometer os resultados de mineração de dados? ”A redução de dados
obtém uma representação reduzida do conjunto de dados que é muito menor
em volume, mas produz o mesmo (ou quase o mesmo) resultados. Existem
várias estratégias para redução de dados. Estes incluem agregação de dados
(por exemplo, construção de um cubo de dados), seleção de subconjunto de
atributos (por exemplo, remoção de atributos irrelevantes através de análise de
correlação), redução de dimensionalidade (por exemplo, usando esquemas de
codificação como codificação de comprimento mínimo) e redução de
numerosidade (por exemplo, “substituindo” os dados por representações
alternativas menores, como clusters ou modelos paramétricos).
Os dados também podem ser “reduzidos” pela generalização com o uso
de hierarquias conceituais, onde conceitos de baixo nível, como cidade para
localização do cliente, são substituídos por conceitos de nível superior, como
região ou província ou estado. Uma hierarquia conceitual organiza os conceitos
em níveis variados de abstração. A discretização de dados é uma forma de
redução de dados que é muito útil para a geração automática de hierarquias
conceituais a partir de dados numéricos.
Em resumo, os dados do mundo real tendem a ser sujos, incompletos e
inconsistentes. As técnicas de pré-processamento de dados podem melhorar a
qualidade dos dados, ajudando a melhorar a precisão e a eficiência do processo
de mineração subsequente. O pré-processamento de dados é um passo
importante no processo de descoberta de conhecimento, porque as decisões
de qualidade devem ser baseadas em dados de qualidade. Detectar anomalias
de dados, retificá-las precocemente e reduzir os dados a serem analisados pode
levar a enormes retornos para a tomada de decisões (SHMUELI, 2016).
Considerações Finais
Neste estudo aprendemos sobre data mining e como os isso podem ser
aplicados aos projetos de software orientados a decisões. Esses modelos e
técnicas são fundamentais para a criação de decisões baseadas na descoberta
de conhecimento que seriam mais difíceis cm as técnicas convencionais.
64
UNIDADE 5 – Cenários de Utilização
Objetivos de aprendizagem
Cenários comuns de utilização dos modelos de dados alternativos
Como evitar os modismos
Boas práticas de modelagem
Modelos NoSQL
#ATENÇÃO#
Os modelos NoSQL tem algumas finalidades especificas. Evite eles quando o
padrão ACID for mais importante do que o BASE.
#ATENÇÃO#
65
Modelos Data Warehouse
66
Ao projetar modelos de dados alternativos precisamos saber como criar
as entidades e principalmente como as mesmas se relacionam entre si. Dessa
forma, a utilização de modelos como NoSQL, DW e DM podem ajudar nessa
tarefa. Além disso, podemos lançar mão dos modelos de dados para criar uma
estrutura que possa acomodar facilmente modificações que possam (em
sempre vão) surgir e se não bem projetado, haverá sempre muito esforço para
modificar o software evitando os efeitos colaterais.
Considerações Finais
67
Referências
SHMUELI, Galit, BRUCE, Peter C., STEPHENS, Mia L. e PATEL, Nitin R. Data
Mining for Business Analytics: Concepts, Techniques, and Applications, Wiley,
2016
ROKACH, Lior, MAIMON, Oded, MAIMON, Oded Z. Data Mining with Decision
Trees:Theory and Applications. WSPC, 2014.
KIMBALL, Ralph, ROSS, Margy. The Data Warehouse Toolkit: The Definitive
Guide to Dimensional Modeling, Wiley, 2013.
68