Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 2 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 3 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Núcleo de Educação a Distância GRUPO PROMINAS DE EDUCAÇÃO Diagramação: Gildenor Silva Fonseca 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. 4 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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. 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 5 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 6 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 7 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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. 8 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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. Mineração. Conhecimento. Dados. 9 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S CAPÍTULO 01 SOLUÇÕES EM MINERAÇÃO DE DADOS Apresentação do Módulo ______________________________________ 11 Introdução a Mineração de Dados ________________________________ Representação do Conhecimento ________________________________ Algoritmos _______________________________________________________ Recapitulando ___________________________________________________ 12 18 20 29 CAPÍTULO 02 BANCOS DE DADOS NÃO CONVENCIONAIS Bancos de Dados Distribuídos __________________________________ Bancos de Dados Orientados a Objetos __________________________ Bancos de Dados Objeto-Relacional ____________________________ Recapitulando _________________________________________________ 34 38 40 49 10 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S Números Índices _______________________________________________ Recapitulando _________________________________________________ Considerações Finais ___________________________________________ Fechando a Unidade ___________________________________________ Referências ____________________________________________________ 58 70 74 75 78 Séries Temporais _______________________________________________ 54 CAPÍTULO 03 ANÁLISE EXPLORATÓRIA DE DADOS Análise Bidimensional _________________________________________ 52 11 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 armazenamentode dados, e como se dá a filtragem e classificação 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. 12 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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- SOLUÇÕES EM MINERAÇÃO DE DADOS C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 13 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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: 14 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S • 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 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 15 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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ânciamaior nos aspectos analíticos da mineração de dados. Inicia-se após a coleta dos dados e segue as seguintes etapas: 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. 16 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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- 17 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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 18 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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- 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 formatosde 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 19 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S (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. 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 20 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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. 21 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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: O modelo de regressão logística dado a seguir é outro exemplo de modelos de regressão não linear: 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 𝑦𝑦𝑖𝑖 = 𝑓𝑓(𝑥𝑥𝑖𝑖 ,𝛽𝛽) + 𝜀𝜀𝑖𝑖 𝑥𝑥𝑖𝑖 = � 1 𝑥𝑥𝑖𝑖 ,1… 𝑥𝑥𝑖𝑖 ,𝑝𝑝 � 𝛽𝛽 = � 𝛽𝛽0 𝛽𝛽1… 𝛽𝛽𝑝𝑝 � 𝑦𝑦𝑖𝑖 = 𝛽𝛽0 + 𝛽𝛽 1𝑒𝑒𝛽𝛽2𝑥𝑥𝑖𝑖 + 𝜀𝜀𝑖𝑖 𝑦𝑦𝑖𝑖 = 𝛽𝛽0 1 + 𝛽𝛽 1𝑒𝑒𝛽𝛽2𝑥𝑥𝑖𝑖 + 𝜀𝜀𝑖𝑖 . 22 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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- 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. 𝑃𝑃(𝐴𝐴 ∧ 𝐵𝐵) = 𝑃𝑃(𝐴𝐴|𝐵𝐵)𝑃𝑃(𝐵𝐵) = 𝑃𝑃(𝐵𝐵|𝐴𝐴)𝑃𝑃(𝐴𝐴). 𝑃𝑃(𝐴𝐴|𝐵𝐵) = 𝑃𝑃(𝐵𝐵|𝐴𝐴)𝑃𝑃(𝐴𝐴) 𝑃𝑃(𝐵𝐵) 𝑦𝑦𝑦𝑦𝐴𝐴𝑃𝑃 = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦𝑃𝑃(𝑦𝑦|𝑥𝑥) = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦 𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) 𝑃𝑃(𝑥𝑥) ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦), 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦𝑃𝑃(𝑦𝑦|𝑥𝑥) 23 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 O classificador Naïve Bayes estima os termos de probabilidade na equação anterior da seguinte maneira: 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. 𝑦𝑦𝑦𝑦𝑦𝑦 = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦𝑒𝑒𝑦𝑦𝑃𝑃(𝑥𝑥|𝑦𝑦). 𝑃𝑃(𝑦𝑦) = 𝑃𝑃(𝑦𝑦′)𝑝𝑝𝑎𝑎𝑎𝑎𝑎𝑎 𝑞𝑞𝑞𝑞𝑎𝑎𝑞𝑞𝑞𝑞𝑞𝑞𝑒𝑒 𝑦𝑦 ≠ 𝑦𝑦′ ,𝑦𝑦 ∈ 𝑦𝑦,𝑦𝑦′ ∈ 𝑦𝑦, 𝑒𝑒𝑒𝑒𝑒𝑒ã𝑜𝑜 𝑦𝑦𝑦𝑦𝐴𝐴𝑃𝑃 ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦 ∈ 𝑦𝑦𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦 ∈ 𝑦𝑦𝑃𝑃(𝑥𝑥|𝑦𝑦) 𝑦𝑦𝑦𝑦𝐴𝐴𝑃𝑃 = 𝑦𝑦𝑦𝑦𝑦𝑦 𝑦𝑦𝑦𝑦𝐴𝐴𝑃𝑃 ≈ 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦 ∈ 𝑦𝑦𝑝𝑝(𝑦𝑦)𝑃𝑃(𝑥𝑥|𝑦𝑦) = 𝑎𝑎𝑎𝑎𝑎𝑎 𝑚𝑚𝑎𝑎𝑥𝑥 𝑦𝑦 ∈ 𝑦𝑦𝑝𝑝(𝑦𝑦)�𝑃𝑃(𝑥𝑥𝑖𝑖|𝑦𝑦). 𝑝𝑝 𝑖𝑖=1 𝑃𝑃(𝑦𝑦) = 𝑒𝑒𝑦𝑦 𝑒𝑒 𝑃𝑃(𝑥𝑥𝑖𝑖 |𝑦𝑦) = 𝑒𝑒𝑦𝑦&𝑥𝑥𝑖𝑖 𝑒𝑒𝑦𝑦 24 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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 25 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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. 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|. 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ó. 𝐺𝐺(𝑣𝑣𝑖𝑖) = 1 −�𝑝𝑝𝑗𝑗2. 𝑘𝑘 𝑗𝑗=𝑖𝑖 𝐺𝐺𝑖𝑖𝑒𝑒𝑖𝑖 − 𝑆𝑆𝑝𝑝𝑞𝑞𝑖𝑖𝑒𝑒(𝑆𝑆⇒ 𝑆𝑆𝑖𝑖 … 𝑆𝑆𝑎𝑎) = � |𝑆𝑆𝑖𝑖| |𝑆𝑆| 𝐺𝐺(𝑆𝑆𝑖𝑖) 𝑎𝑎 𝑖𝑖=1 26 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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 𝐸𝐸(𝑆𝑆) = −�𝑝𝑝𝑗𝑗 𝑞𝑞𝑜𝑜𝑎𝑎2(𝑝𝑝𝑗𝑗 ) 𝑘𝑘 𝑗𝑗=1 27 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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. 28 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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>. 29 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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: 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. 30 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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. 31 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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 32 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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. 33 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 34 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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. BANCO DE DADOS NÃO CONVENCIONAIS C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 35 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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. 36 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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- 37 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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- 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. 38 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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, 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 39 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 objetoencapsula 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. 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, 40 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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. 41 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S • 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 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. 42 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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. 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 assinaturana 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- 43 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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 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- 44 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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- 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. 45 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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- 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- 46 C O LE TA , A R M A Z E N A M E N TO E A N Á LI SE A P LI C A D A - G R U P O P R O M IN A S 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
Compartilhar