Tópicos Avançados de Bases de Dados 2005/2006 Henrique Madeira Programa proposto 1. Objectivos da disciplina Esta disciplina visa formar os alunos em aspectos avançados de bases de dados que, pela sua natureza especializada ou pelo seu carácter recente, não foram contemplados na formação base ministrada nas disciplinas que a antecederam. O estudo das bases de dados de apoio à decisão (data warehouses) constitui o objectivo enquadrador da disciplina, na sua vertente mais teórica. Tal deve-se a duas ordens de razões: As data warehouses são bases de dados avançadas que assumem actualmente uma grande importância no mercado da informática, sendo essencial preparar os futuros engenheiros para os desafios da concepção e administração data warehouses. As data warehouses, pela sua complexidade e pelo grande volume de dados, são o contexto ideal para a introdução dos tópicos avançados de bases de dados mais relevantes, tais como: o Novos modelos de dados (modelo mutidimensional); o Formas de indexação avançada, tais como índices bitmap e índices de funções; o Optimização de queries; o Vistas materializadas; o Concepção física com vista à optimização do desempenho de bases de dados; o Administração de bases de dados. Para além das data warehouses e dos tópicos avançados que decorrem do estudo deste tipo de bases de dados, foram detectados dois assuntos (considerados matéria básica em bases de dados) em que os alunos mostravam dificuldades, pelo que foram incluídos no conjunto de objectivos da disciplina: Transacções e controle de concorrência. Índíces (básicos, do tipo B-tree) e estratégias de indexação; No tocante à componente mais prática, o objectivo da disciplina consiste na consolidação os conhecimentos dos alunos na área de bases de dados, através do desenvolvimento completo de uma aplicação base de dados típica e de exercícios práticos sobre transacções, controlo de concorrência e indexação. A opção pela consolidação da matéria básica de bases em detrimento de exercícios práticos sobre os tópicos avançados de data warehouses, afigurou-se mais proveitosa face aos conhecimentos prévios evidenciados pelos alunos. Instituto Politécnico da Guarda, Escola Superior de Tecnologia e Gestão, Tópicos Avançados de Bases de Dados 2. Programa da disciplina 2.1. Aulas teóricas 2.1.1. Aspectos gerais do programa teórico Após a revisão de conceitos básicos em bases de dados e do preenchimento de algumas lacunas na formação dos alunos (e.g., transacções e controle de concorrência), que ocupa as aulas iniciais, as aulas teóricas passa a abordar o assunto das bases de dados de apoio à decisão (Data Warehousing). Podemos dividir então os assuntos abordados nas aulas teóricas nas seguintes partes: Revisão de conceitos básicos em bases de dados Esta revisão é feita essencialmente nas aulas iniciais em que se procura recordar os conceitos básicos em bases de dados, tais como modelo relacional, normalização, integridade, modelação de dados usando ERs, concepção de aplicações de bases de dados, etc. Ao longo da matéria de Data Warehousing também se procurará complementar a formação dos alunos em aspectos básicos que, por uma razão ou por outra, não foram abordados em disciplinas anteriores e que surge naturalmente ao abordar a matéria de Data Warehousing. Exemplos destes tópicos são os métodos de acesso a dados e os índices. Data Warehousing A matéria de Data Warehousing é organizada em três grandes partes, cada uma com objectivos de formação bem específicos e enquadrados nos objectivos gerais da disciplina anteriormente referidos. Parte 1 - Modelo Multidimensional e Conceitos Importantes em Data Warehousing Neste conjunto de aulas procura-se apresentar e discutir o modelo multidimensional e os conceitos relevantes em Data Warehousing. Os aspectos introdutórios e de enquadramento do assunto do Data Warehousing são fornecidos à custa da análise de um conjunto de exemplos, que, partindo de situações reais (mas genéricas, tais como a gestão de uma cadeia de lojas ou de uma empresa de telecomunicações), procuram motivar os alunos através da ilustração prática dos objectivos e das potencialidades das Data Warehouses. Parte 2 - Processo de Concepção e Desenvolvimento de uma Data Warehouse O objectivo deste conjunto de aulas é dominar o processo de concepção e desenvolvimento de uma Data Warehouse em todas as suas fases. Muitos dos Henrique Madeira 2 Instituto Politécnico da Guarda, Escola Superior de Tecnologia e Gestão, Tópicos Avançados de Bases de Dados conceitos teóricos já abordados na Parte 1 serão aqui revisitados e aprofundados, beneficiando do facto de, nesta etapa, serem enquadrados no processo de concepção e desenvolvimento das Data Warehouses. Para além dos passos considerados clássicos no desenvolvimento de uma Data Warehouse, será dada grande atenção à resolução de situações em que o modelo multidimensional (na sua versão ROLAP, ou seja, modelos em estrela) necessita de técnicas particulares. Parte 3 - Administração e Manutenção de Data Warehouses Este conjunto de aulas estabelece a ponte para aspectos de cariz mais tecnológico. É dada particular atenção ao problema da gestão do espaço/desempenho numa Data Warehouse. As soluções para este problema são abordadas nos seus diferentes níveis, desde aspectos que se situam ao nível da boa administração da base de dados e do correcto projecto físico das tabelas, até às soluções avançadas específicas das Data Warehouses, como é o caso de índices bit-map, star-joins, agregados ou particionamento de dados. É abordado o ciclo de vida típico de uma Data Warehouse, com particular destaque para a discussão das dificuldades (e possíveis soluções) encontradas quer no carregamento inicial, quer nas actualizações periódicas. 2.1.2. Programa teórico detalhado I - Revisão de conceitos básicos em bases de dados Visão geral dos sistemas de bases de dados: SGBDs, SQL, aplicações de bases de dados, etc Modelo relacional Aspectos básicos Integridade dos dados Chaves e restrições de integridade relacional Dependências funcionais e normalização Operações relacionais e aspectos básicos de SQL Concepção de esquemas de bases de dados Diagramas de Entidade-Relacionamento (ER): aspectos básicos Concepção de esquemas de dados relacionais usando ERs Tradução de diagramas ER para esquemas relacionais Normalização dos esquemas relacionais gerados a partir de ERs: o que é preciso fazer? Transacções e controlo de concorrência Henrique Madeira 3 Instituto Politécnico da Guarda, Escola Superior de Tecnologia e Gestão, Tópicos Avançados de Bases de Dados II - Data Warehousing Parte 1 – Modelo Multidimensional e Conceitos Importantes em Data Warehousing Bases de dados para apoio à decisão: terminologia e principais conceitos (Data Warehouses (DW), Data Marts, OLAP, ROLAP, MOLAP, EIS, ODS, etc) Arquitectura de BDs de uma organização BD operacionais vs Data Warehouses Volume de dados típicos de uma DW Características das DW Dependência temporal Não volatilidade Orientadas para fins específicos Integração e consistência de informação Optimização das consultas Meta-dados O modelo multidimensional (modelo conceptual) Modelo em estrela Exemplos de modelos em estrela Algumas características do modelo em estrela Estudo detalhado de alguns exemplos: Exemplo 1: Cadeia de lojas A dimensão tempo A dimensão produto A dimensão loja A dimensão promoções Exemplo 2: Existências em armazéns Fotografia periódica de existências Registo de transacções de existências Cálculo simplificado do espaço ocupado Densidade e esparsidão Cálculo (simplificado) do espaço em disco ocupado por uma DW Parte 2 - Processo de Concepção e Desenvolvimento de uma Data Warehouse Passos na construção de uma DW: primeira abordagem Objectivos a atingir com a DW Infra-estrutura para projecto Identificar modelo de dados das BD fonte Henrique Madeira 4 Instituto Politécnico da Guarda, Escola Superior de Tecnologia e Gestão, Tópicos Avançados de Bases de Dados Dados históricos, de referência e sínteses Definir modelo de dados da DW Modelos na construção de uma DW Definir regras para o mapeamento de dados Extrair, integrar, purificar e racionalizar os dados Exploração, afinação e avaliação de eficácia Passos para definir o modelo dimensional: abordagem iterativa Identificar o processo de negócio/actividade Escolher a ganularidade dos dados a registar; Identificar dimensões; Identificar os factos. Cálculo simplificado do espaço ocupado Redução espaço ocupado: abordagem simplista Exemplos de definição de modelos em estrela Modelos com diversas estrelas Exemplos de múltiplas estrelas Problemas, peculiariedades e limitações do modelo Dimensões grandes Flocos de neve Vantagens e desvantagens de flocos de neve Mini-dimensões Alterações (actualizações) em dimensões Três técnicas para lidar com actualizações nas dimensões Escrever por cima Inserir um registo novo na dimensão com os valores actualizados Ter atributos na dimensão que permitam registar a evolução no tempo Exemplos Dimensões “sujas” Produtos heterogéneos Solução para a heterogeneidade numa dimensão Tabelas de factos sem factos Exemplos de tabelas de factos sem factos Tabelas de cobertura: representação de eventos que não aconteceram Exemplo da cadeia de lojas, com cobertura de promoções Estudo de exemplos de DW: sector bancário e telecomunicações Henrique Madeira 5 Instituto Politécnico da Guarda, Escola Superior de Tecnologia e Gestão, Tópicos Avançados de Bases de Dados Parte 3 – Administração e Manutenção de Data Warehouses O problema do espaço e da performance: discussão de possíveis soluções Agregados (vistas materializadas) Vantagens e problemas dos agregados Outros processos de acelerar as respostas Técnicas para armazenamento de agregados Exemplos de agregados: cadeia de lojas Quantos agregados são necessários? Método dos atributos de nível e contagem dupla Agregados e esparsidão Administração da DW: conceitos gerais Projecto físico das tabelas de uma DW Índices B-Tree e bit-map Estratégias para indexação de modelos em estrela Sistemas de discos e RAID Diferentes níveis de RAID e acessos típicos numa DW Ritmo típico de uma DW Extracção de dados Exploração da Informação e OLAP 2.2. Aulas práticas As aulas práticas são essencialmente dedicadas ao apoio à execução do trabalho prático (embora este trabalho seja também feito autonomamente pelos alunos fora do horário das aulas). Neste trabalho pretende-se que os alunos tenham uma verdadeira experiência prática de desenvolvimento de uma aplicação de bases de dados, em todas as suas fases, incluindo ainda as componentes essenciais da administração da base de dados. Os trabalhos são realizados por grupos de dois ou três alunos. Para além do apoio ao trabalho prático, são efectuados exercícios práticos sobre os seguintes tópicos: Transacções e controle de concorrência. Índíces (básicos, do tipo B-tree) e estratégias de indexação. Concepção de modelos de estrela para Data Warehouses (estas aulas práticas serão leccionadas em horário de aulas teóricas, pois destinam-se especificamente a consolidar aspectos teóricos de matéria de Data Warehousing) Henrique Madeira 6 Instituto Politécnico da Guarda, Escola Superior de Tecnologia e Gestão, Tópicos Avançados de Bases de Dados 3. Bibliografia A bibliografia proposta para a disciplina é a seguinte: Apontamentos fornecidos pelo docente. Livro base para o estudo de data warehouses: “The Data Warehouse Lifecycle Toolkit: Expert Methods for Designing, Developing, and Deploying Data Warehouses”, Ralph Kimball, Laura Reeves, Margy Ross, Warren Thornthwaite, John Wiley & Sons, ISBN 0471255475, edição de 2001. Manuais do Oracle 10g. 4. Avaliação A avaliação é composta de duas partes: Testes escritos (frequência, exame e exame de época recurso) cotados para 10 valores (escala de 20). Trabalho prático cotado para 10 valores. Os trabalhos são avaliados pela documentação produzida (ver enunciado dos trabalhos) e pela demonstração e defesa do trabalho efectuada por cada grupo perante os docentes. Guarda, 13 de Setembro de 2005 Henrique Santos do Carmo Madeira Henrique Madeira 7