Decisão Suporte: Warehousing, OLAP e Data Mining 7-1 Introdução Cada vez mais, organizações estão analizando dados correntes e históricos para identificar padrões úteis e suporte a estratégias de negócios. Ênfase na análise exploratória complexa, interativa, de enormes conjuntos de dados criados pela integração de dados através de todas as partes de uma empresa ; dados são razoavel/e estáticos. Contraste tal On-Line Analytic Processing (OLAP) com tradicional On-line Transaction Processing (OLTP): maioria das consultas longas, ao invés de uma transações curtas de atualização. 7-2 1
Tres Tendências Complementares Data Warehousing: Dados consolidados de muitas pesquisas em uma grande repositório. Sincronização períodicas de réplicas. Integração semântica. OLAPs: Consulta SQL complexas, consultas de negócio, baseadas em operações estilo planilha eletrônica e visão multidimensional de dados. Data Mining: Análise exploratória; essencialmente busca por tendências e anomalias interessantes. 7-3 Data Warehousing EXTERNAL DATA SOURCES Dados dados integrados em longo périodo de tempo frequentemente enriquecida com informações resumidas. Vários gigabytes a terabytes são comuns. Curto tempo de resposta esperado para consultas complexas; atualização adhoc incomum. Metadata Repository EXTRACT TRANSFORM LOAD REFRESH SUPPORTS DATA WAREHOUSE DATA MINING OLAP 7-4 2
Pontos em Warehousing Integração Semântica: Quando obtendo dados de multiplas fontes, deve eliminar impedâncias, e.g., moedas diferentes, esquemas. Fontes Heterogêneas: Deve acessar dados de um variado formato de fontes e repositórios. Carregar, Renovar, Eliminar: Deve carregar dados, periodicamente renová-los, e eliminar dados muito velhos. Gerenciamento das Metas de Dados: Deve manter fontes, tempo de carga e outras informações para todos dados no warehouse. 7-5 Modelo de Dados Multidimensional Coleção de medidas númericas que dependem de um conjunto de dimensões. E.g., medida Sales, dimensões Product (key: pid), Location (locid), and Time (timeid). Slice locid=1 is shown: pid 11 12 13 8 10 10 30 20 50 25 8 15 1 2 3 timeid locid pid timeid locid sales 11 1 1 25 11 2 1 8 11 3 1 15 12 1 1 30 12 2 1 20 12 3 1 50 13 1 1 8 13 2 1 10 13 3 1 10 11 1 2 35 7-6 3
MOLAP vs ROLAP Dados multidimensionais podem ser armazenados fisicamente em um array (em disco, persistente); chamado sistema MOLAP. Alternativamente, pode ser armazenado como uma relação; chamado sistema ROLAP. A relação principal, que relata dimensões para uma medida, é chamado tabela de fato. Cada dimensão pode ter atributos adicionais e uma tabela de dimensão associada. E.g.,Products(pid, pname, category, price) Tabelas de fatos são muito maiores do que tabelas de dimensões. 7-7 Hierarquias de Dimensões Para cada dimensão, o conjunto de valores pode ser organizado em uma hierarquia: PRODUCT TIME LOCATION year quarter country category week month state pname date city 7-8 4
Consultas OLAP Influenciada por SQL e por planilhas. Uma operação comum é agregar uma medida sobre uma ou mais dimensões. Achar total de vendas. Achar total de vendas para cada cidade ou cada estado. Achar os cinco produtos mais vendidos pelo total de vendas. Roll-up: Agregando em diferentes níveis de uma hierarquia de dimensão. E.g., Obtendo total de vendas por cidade, podemos rollup para obter vendas por estado. 7-9 Consultas OLAP Drill-down: O inverso de roll-up. E.g., Obtendo total de vendas por estado, pode drilldown para obter total de vendas por cidade. E.g., Pode também drill-down em diferente dimensão para obter total de vendas por produto para cada estado. Pivoting: Agregações em dimensões selecionadas. E.g., Pivoting em Location and Time WI CA resulta no seguinte (cross-tabulation): 63 81 144 Slicing and Dicing: Igualdades e seleções limitadas em uma ou mais dimensões. 1995 1996 1997 Total Total 38 107 145 75 35 110 176 223 339 7-10 5
Comparação Com Consultas SQL A cross-tabulation obtida por pivoting pode também ser computada usando consultas SQL: SELECT SUM(S.sales) FROM Sales S, Times T, Locations L WHERE S.timeid=T.timeid AND S.timeid=L.timeid GROUP BY T.year, L.state SELECT SUM(S.sales) FROM Sales S, Times T WHERE S.timeid=T.timeid GROUP BY T.year SELECT SUM(S.sales) FROM Sales S, Location L WHERE S.timeid=L.timeid GROUP BY L.state 7-11 O Operador CUBE Generalizando o exemplos anteriore, se há dimensões K, temos possíveis 2^k SQL GROUP BY consultas que podem ser geradas através de pivoting em um subconjunto de dimensões. CUBE pid, locid, timeid BY SUM Sales Equivalente a rolling up Sales em todos oitos subconjuntos do conjunto {pid, locid, timeid}; cada rollup corresponde á uma consulta SQL da forma: Muitos trabalhos recentes na optimização do operador CUBE! SELECT SUM(S.sales) FROM Sales S GROUP BY grouping-list 7-12 6
Projeto e Implementação Tabelas tipicamente em BCNF; tabela de dimensão não são normalizada. (Intuição?) Novas técnicas de indexação:índices Bit Map, índices Join, compressão, precomputação de agregações, etc. E.g., Índice Bit Map : Bit-vector: 1 bit para cada valor possível. Muitas consultas podem ser respondidas usando oper. bit-vector! sex custid name sex rating rating 112 Joe M 3 115 Ram M 5 10 10 01 10 119 Sue F 5 112 Woo M 4 00100 00001 00001 00010 7-13 Data Mining Este é um amplo termo aplicado para diferentes tipos de análises exploratórias. E.g., Regras de associação, modelos sequenciais, classificação, agrupamento, redes Bayesian networks para inferir casualidade, similaridade de sequencias, visualização. Relatado para trabalhar em Aprendizado de Máquinas, Programação Matemática e Estatística. Novas ênfases: conjuntos enormes de dados. 7-14 7
Regras de Associação Obtendo uma coleção de compras de clientes (ou transações ) com formato: transid custid date item price qty Queremos identificar regras da forma : {pen} => {ink} Uma transação na qual uma caneta foi comprada é provável ter envolvido também a compra de tinta. 7-15 Regras de Associação LHS => RHS Suporte: % de transações contendo todos os itens em LHS e RHS da regra. Confiança: Considera transações contendo todos itens LHS. Confidência é a % destas transações que também contêm todos itens RHS. Deve ser usado para predição com grande cautela; regras não refletem causalidade. Se usuários compram lápis mesmo quando compram canetas, temos a regra {pencil} => {ink}, Mas não há causalidade; oferecendo uma promoção em lápis no sentido de estimular vendas em tinta será um fracasso! 7-16 8
Computação Eficiente de Regras de Associação Objetivo: Achar eficientemente todas regras que satisfazem um dado suporte e nível de confiança. Idéia: Contar com a propriedade a priori que se um conjunto de itens tem suporte mínimo (I.e., é um conjunto de itens frequente) então todo subconjunto deste conjunto de itens também tem suporte mínimo. Iterativamente : Ache todos conjunto de itens frequente c/ 1 item ; depois todos conjuntos de itens frequentes c/ 2 itens, etc. em cada iteração k, somente considere conjunto de itens que contem algum k-1 conjunto de items frequente. Obtendo todos conjuntos de itens frequentes, achar as regras é fácil. 7-17 Resumo Suporte a decisão é uma sub-área de banco de dados emergindo e crescendo rapidamente. Envolve a criação de grande e consolidados repositórios de dados chamados data warehouses Warehouses são exploradas usando técnicas de análises sofisticadas: Consultas de SQL complexas, consultas multidimensionais OLAP (influenciada por ambos SQL e spreadsheets), e análises exploratórias (data mining). 7-18 9