INE 5336 Banco de Dados II Ronaldo S. Mello 2007/2 Horário Atendimento: Quintas-feiras, das 17h30 às 19h UFSC-CTC-INE.

Slides:



Advertisements
Apresentações semelhantes
Otimização de Consultas em SQL Estimativas de Custos
Advertisements

Álgebra Relacional Marcelo Mendes Manaus
Introdução a Banco de Dados
Introdução a Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Linguagens relacionais
Manipulação algébrica
Sistema Gerenciador de Banco de Dados SGBD
Gerência de Banco de Dados 1
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Gerência de Banco de Dados 1 Apresentação da Disciplina Profa. Sandra de Amo Bacharelado em Ciência Computação 2009 – 2.
Gerenciamento de Banco de Dados
Introdução aos Sistemas Gerenciadores de Banco de Dados
Algebra relacional nomeada e não-nomeada
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
Sumário 1 Processamento de Consultas 2 Introdução a Transações
SQL – DML Consulta a dados de uma tabela
Professora: Aline Vasconcelos
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Banco de Dados (BAN-TSI)
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Bancos de Dados I Renata Viegas
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
SISTEMAS DE INFORMAÇÃO – UNIESP/2010
A área de banco de dados Cristina Paludo Santos –
Introdução a Banco de Dados com exercícios de aplicação
Banco de Dados Aplicado ao Desenvolvimento de Software - BDD
Processamento Distribuído de Consultas
Geração de Planos de Execução Planos para Consultas Aninhadas
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
Banco de Dados II Prof. Antônio Cordeiro.
AULA 26 Profa. Sandra de Amo GBC053 – BCC
Otimizador de consultas
BEM-VINDO AO JOGO DAS MALETAS!
Gerência de Banco de Dados 1
Tuning Lílian Simão Oliveira.
Otimização de Consultas em SQL Planos de Execução
Algoritmos de Processamento e Otimização de Consultas
Sistemas de Informação Prof. Carlos Alberto Seixas Banco de Dados II /01 UNIESP
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Conceitos Programas Programação Linguagens de Programação SQL.
Geração de Código aula-12-geração-de-código.pdf.
Projeto de Banco de Dados Profa. Ceça
Banco de Dados Aplicado ao Desenvolvimento de Software
Cristina Paludo Santos URI – Campus de Santo Ângelo
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Introdução a Banco de Dados Aula 04
Prof. Fábio Carneiro Mokarzel 2014
Campus de Caraguatatuba Aula 1: Orientações Gerais
Prof. Alessandro Gonçalves
BD I / Processamento de Consultas Prof. Altigran Soares da Silva IComp/UFAM.
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Sumário 1 SQL Embutida 2 Processamento de Consultas
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
SQL – DML Consultas envolvendo mais de uma tabela
Subconsultas ou Consultas Aninhadas Forma alternativa de especificar consultas envolvendo relacionamentos entre tabelas Otimização –filtragens prévias.
Disciplina: Banco de Dados III
PostgreSQL Índices Nuno Campos N.º Nuno Campos - N.º Índice Introdução Tipos de Índices – B-Tree – R-Tree – Hash – GiST Classes de Operadores.
Banco de Dados Universidade do Estado de Santa Catarina
Fundamento de Banco de Dados
Uma Proposta para Bancos de Dados Categoriais Rafael C. Pinto.
Algoritmos e Programação I
SISTEMAS DE INFORMAÇÃO
UCSal – Bacharelado em Informática
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
LÓGICA DE PROGRAMAÇÃO Curso: Técnico em Informática Professor: Ronaldo Disciplina: Lógica de Programação.
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Transcrição da apresentação:

INE 5336 Banco de Dados II Ronaldo S. Mello 2007/2 Horário Atendimento: Quintas-feiras, das 17h30 às 19h UFSC-CTC-INE Curso de Ciência de Computação

Programa da Disciplina Objetivo Conteúdo Avaliação Bibliografia Cronograma (Previsto) de Aulas

Objetivo Esta disciplina apresenta técnicas de gerenciamento interno de dados utilizados por um SGBD para processamento de consultas e controle de transações, além de conceitos básicos de BD Distribuído (BDD) e SQL embutida. Ao final da disciplina, o aluno deverá ser capaz de entender e avaliar os mecanismos de gerenciamento de SGBDs; conhecer os fundamentos de um BDD e ser capaz de utilizar instruções de SQL embutida.

Conteúdo 1.Processamento de Consultas i. Etapas ii. Otimização Algébrica iii. Plano de Execução 2.Gerência de Transações i. Introdução a Transações ii. Recuperação de Falhas (recovery) iii. Controle de Concorrência (scheduler) 3.SQL Embutida 4.Fundamentos de BDs Distribuídos i.Conceitos e Arquiteturas ii.Noções de Projeto de BDD iii.Processamento de Consultas iv.Gerência de Transações

Avaliação 3 Provas: P1, P2 e P3; 1 Trabalho de Implementação (Ti). Conteúdo da P1: processamento de consultas; Conteúdo da P2: gerência de transações; Conteúdo da P3: SQL embutida e BDD. Nota Final (NF) = (P1 + P2 + P3 + Ti) / 4 Recuperação: prova abrangendo todo o conteúdo ministrado na disciplina (PR). Aplica- se somente a alunos com A nova nota final (NNF) será NNF = (NF + PR) / 2.

Bibliografia Principal 1. Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 4a edição. Editora Addison-Wesley (em inglês: Elmasri, R.; Navathe S. B. Fundamentals of Database Systems. 4th ed. Addison-Wesley. 2003). 2. Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 5a edição. Editora Campus, Ramakrishnan, R., Gehrke, J. Database Management Systems. 3th ed. McGraw Hill Date, C. J. Introdução a Sistemas de Bancos de Dados. 8a edição. Editora Campus, Özsu, M.; Valduriez, P. Princípios de Sistemas de Banco de Dados Distribuídos. 2a ed. Editora Campus, Bernstein, P. A.; Hadzilacos, V.; Goodman, N. Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.

Cronograma (Previsto) de Aulas DataConteúdo 6/agoapresentação;etapas processamento consultas 8/agootimização algébrica 13/agoIRI 2007 (sem aula) 15/agoIRI 2007 (sem aula) 20/agootimização algébrica 22/agoplano execução 27/agoplano execução 29/agoplano execução 3/setDEXA 2007 (sem aula) 5/setDEXA 2007 (sem aula) 10/setplano execução 12/setplano execução 17/setPROVA 1 19/setintrodução a transações; recovery 24/setrecovery 26/setrecovery 1/outrecovery 3/outscheduler 8/outscheduler 10/outscheduler 15/outSBBD 2007 (sem aula) 17/outSBBD 2007 (sem aula) 22/outscheduler DataConteúdo 24/outscheduler 29/outPROVA 2 31/outSQL embutida 5/novSECCOM (sem aula) 7/novSECCOM (sem aula) 12/novSQL embutida; BDD 14/novBDD 19/novBDD 21/novBDD 26/novPROVA 3 28/novAPRESENTAÇÃO TRABALHOS 3/dezDivulgação Notas 5/dezRECUPERAÇÃO

Sumário 1 Processamento de Consultas 2 Introdução a Transações 3 Recuperação de Falhas 4 Controle de Concorrência 5 SQL Embutida 6 Banco de Dados Distribuído

Processamento de Consultas Extração de informações do BD Consulta SQL –adequada para uso humano –não adequada para processamento pelo SGBD não descreve uma seqüência de passos (procedimento) a ser seguida não descreve uma estratégia eficiente para a implementação de cada passo no que diz respeito ao acesso a nível físico (arquivos do BD) O SGBD deve se preocupar com este processamento! –módulo Processador de Consultas

Módulo Processador de Consultas Objetivo –otimização do processamento de uma consulta tradução, transformação e geração de uma estratégia (plano) de acesso plano de acesso –leva em conta: (i) algoritmos predefinidos para implementação de passos do processamento; (ii) estimativas sobre os dados Vale a pena todo este esforço? Sim! –T x = tempo para definir e executar uma estratégia otimizada de processamento –T y = tempo para executar uma estratégia não- otimizada de processamento –Quase sempre: T x  T y

Etapas de Processamento Tradução Transformação Definição do Plano de Execução Consulta em linguagem de alto nível (consulta SQL, p. ex.) Representação interna (árvore algébrica da consulta) Representação transformada (árvore otimizada algebricamente) Plano de Execução (árvore com indicação de estratégias de acesso) Processador Run-time Gerador de Código Código de Execução Resultado da Consulta

Etapas de Processamento Tradução Transformação Definição do Plano de Execução Consulta em linguagem de alto nível (consulta SQL, p. ex.) Representação interna (árvore algébrica da consulta) Representação transformada (árvore otimizada algebricamente) Plano de Execução (árvore com indicação de estratégias de acesso) Processador Run-time Gerador de Código Código de Execução Resultado da Consulta análise léxica - cláusulas SQL e nomes válidos análise sintática - validação da gramática análise semântica - nomes usados de acordo com a estrutura do esquema conversão para uma árvore algébrica da consulta

Árvore (Algébrica) da Consulta Estrutura que representa o mapeamento da consulta para a álgebra relacional –uma expressão da álgebra relacional “estendida” pode indicar alguma computação (função agregação, atributo calculado,...) –nodos folha: relações (do BD ou resultados intermediários) –nodos internos: operações da álgebra Processamento da árvore –nodos internos são executados quando seus operandos estão disponíveis –são substituídos pela relação resultante –a execução termina quando o nodo raiz é executado

Exemplo de Árvore da Consulta select m.CRM, m.nome, a.número, a.andar from Médicos m, Ambulatórios a where m.especialidade = ‘ortopedia’ and a.andar = 2 and m.número = a.número Médicos Ambulatórios X  m.especialidade = ‘ortopedia’  a.andar = 2  m.número = a.número  m.CRM, m.nome, a.número, a.andar

Etapas de Processamento Tradução Transformação Definição do Plano de Execução Consulta em linguagem de alto nível (consulta SQL, p. ex.) Representação interna (árvore algébrica da consulta) Representação transformada (árvore otimizada algebricamente) Plano de Execução (árvore com indicação de estratégias de acesso) Processador Run-time Gerador de Código Código de Execução Resultado da Consulta definição de uma árvore de consulta equivalente - chega ao mesmo resultado - processa de forma mais eficiente também chamada de Otimização Algébrica

Exemplo de Árvore Equivalente Médicos Ambulatórios X  m.especialidade = ‘ortopedia’  a.andar = 2  m.número = a.número  m.CRM, m.nome, a.número, a.andar Médicos Ambulatórios X  m.número = a.número  m.CRM, m.nome, a.número, a.andar  m.especialidade = ‘ortopedia’  a.andar = 2 

Etapas de Processamento Tradução Transformação Definição do Plano de Execução Consulta em linguagem de alto nível (consulta SQL, p. ex.) Representação interna (árvore algébrica da consulta) Representação transformada (árvore otimizada algebricamente) Plano de Execução (árvore com indicação de estratégias de acesso) Processador Run-time Gerador de Código Código de Execução Resultado da Consulta análise de alternativas de definição de estratégias de acesso - escolha de algoritmos para implementação de operações - existência de índices - estimativas sobre os dados (tamanho de tabelas, seletividade,...)

Exemplo de Plano de Execução Médicos Ambulatórios X  m.número = a.número  m.CRM, m.nome, a.número, a.andar  m.especialidade = ‘ortopedia’  a.andar = 2 (pesquisa linear) (pesquisa indexada) (loop-aninhado) (processamento pipeline)

Etapas de Processamento Tradução Transformação Definição do Plano de Execução Consulta em linguagem de alto nível (consulta SQL, p. ex.) Representação interna (árvore algébrica da consulta) Representação transformada (árvore otimizada algebricamente) Plano de Execução (árvore com indicação de estratégias de acesso) Processador Run-time Gerador de Código Código de Execução Resultado da Consulta

Etapas de Processamento Tradução Transformação Definição do Plano de Execução Consulta em linguagem de alto nível (consulta SQL, p. ex.) Representação interna (árvore algébrica da consulta) Representação transformada (árvore otimizada algebricamente) Plano de Execução (árvore com indicação de estratégias de acesso) Processador Run-time Gerador de Código Código de Execução Resultado da Consulta FOCO: OTIMIZADOR DE CONSULTA

Otimização Algébrica Objetivo do passo de Transformação –entrada: árvore da consulta inicial –saída: árvore da consulta otimizada (pode manter a mesma árvore) Base –regras de equivalência algébrica devem ser conhecidas pelo otimizador para que possam ser geradas transformações válidas –algoritmo de otimização algébrica indica a ordem de aplicação das regras e de outros processamentos de otimização

Regras de Equivalência Algébrica 1. Cascata de Seleções  c1  c2 ... cn (R)   c1 (  c2 (... (  cn (R)))) 2. Comutatividade de Seleções  c1 (  c2 (R))   c2 (  c1 (R)) 3. Cascata de Projeções  listaAtributos1 (R)   listaAtributos1 (  listaAtributos2 (...(  listaAtributosN (R)))) - válido em que situação?

Regras de Equivalência Algébrica 4. Comutatividade de Seleções e Projeções (a)  a1, a2,..., an (  c (R))   c (  a1, a2,..., an (R)) ou (b)  a1, a2,..., an (  c (R))   c (  a1, a2,..., an, ap,..., at (R)) - válidas em quais situações? 5. Comutatividade de Operações Produtórias (“X”) R “X” S  S “X” R - por “X” entenda-se: X ou X  ou - a ordem dos atributos e tuplas do resultado não é relevante

Regras de Equivalência Algébrica 6. Comutatividade de Seleções e Operações Produtórias (a)  c (R “X” S)  (  c (R)) “X” Sou (b)  c (R “X” S)  (  c1 (R)) “X” (  c2 (S)) - válidas em quais situações? 7. Comutatividade de Projeções e Operações Produtórias (a)  listaAtributos1 (R “X” S)  (  listaAtributos2 (R)) “X” Sou (b)  listaAtributos1 (R “X” S)  (  listaAtributos2 (R)) “X” (  listaAtributos3 (S)) ou (c)  listaAtributos1 (R “X” S)   listaAtributos1 ((  listaAtributos2 (R)) “X” (  listaAtributos3 (S))) - válidas em quais situações?

Regras de Equivalência Algébrica 8. Comutatividade de Operações de Conjunto R  S  S  Re R  S  S  R - por quê a “  ” não é comutativa? 9. Associatividade de Operações Produtórias e de Conjunto ( “  X” ) (R “  X” S) “  X” T  R “  X” (S “  X” T) - por “  X” entenda-se: X ou X  ou ou  ou  - por quê a “  ” não é associativa?

Regras de Equivalência Algébrica 9. Associatividade de Operações Produtórias e de Conjunto ( “  X” ) (R “  X” S) “  X” T  R “  X” (S “  X” T) Observação: predicados de junção devem ser devidamente ajustados na associatividade de operações produtórias Exemplo: seja  1 um predicado sobre atributos de R e S,  2 um predicado sobre atributos de S e T, e  3 um predicado sobre atributos de R e T. Então: (R “X”  1 S) “X”  2   3 T  R “X”  1   3 (S “X”  2 T)

Regras de Equivalência Algébrica 10. Comutatividade de Seleção e Operações de Conjunto ( “  ” ) 11. Comutatividade de Projeção e União  c (R “  ” S)  (  c (R)) “  ” (  c (S)) - por “  ” entenda-se:  ou  ou   listaAtributos (R  S)  (  listaAtributos (R))  (  listaAtributos (S)) - supõe-se atributos de R e S renomeados para manter os mesmos nomes - por quê a “  ” e a “  ” não são comutativas?

Regras de Equivalência Algébrica 12. Fusão de Seleções e Operações Produtórias (a)  c (R X S)  R X  =  c Sou (b)  c (R X S)  R Sou (c) R X  =  c S  R S - válidas em quais situações? c c

Algoritmo de Otimização Algébrica Algoritmo de alto (altíssimo!) nível (heurístico) Composto de 6 grandes passos Passo 1 –aplicar a regra 1 desmembrar operações de seleção –maior flexibilidade para mover seleções Passo 2 –aplicar as regras 2, 4, 6 e 10 objetivo –mover seleções para níveis inferiores da árvore o máximo possível

Algoritmo de Otimização Algébrica Passo 3 –aplicar a regra 9 mudar de posição sub-árvores envolvidas em operações produtórias objetivos –combinar prioritariamente sub-árvores com menor número de dados »investigar sub-árvores com seleções mais restritivas –evitar produtos cartesianos »combinações sem atributos de junção como saber quais as seleções mais restritivas? –análise do grau de seletividade de um predicado »estatística geralmente mantida no DD

Grau de Seletividade (GS ai (R)) Definido pela seguinte razão –GS ai (R) = t p (R) / |R|, onde t p (R) é o número de tuplas que satisfazem o predicado aplicado sobre um atributo ai em uma relação R e |R| é o número de tuplas em R (G S  [0,1]) GS ai (R) pequeno (  0)  seleção mais restritiva Um atributo chave a c possui baixo G S em predicados de igualdade –GS ac (R) = 1 / |R| Geralmente mantém-se uma estimativa de distribuição uniforme de valores de atributos –GS ai (R) = (|R| / V(a i )) / |R| = 1 / V(a i ), onde V(a i ) é o número de valores distintos de a i

Algoritmo de Otimização Algébrica Passo 4 –aplicar a regra 12 otimizar operações produtórias Passo 5 –aplicar as regras 3, 4, 7 e 11 desmembrar e mover projeções para níveis inferiores da árvore, tanto quanto possível, definindo novas projeções conforme se faça necessário Passo 6 –identificar sub-árvores que representem grupos de operações que possam ser executados por um único algoritmo defina-os uma única vez (uma única sub-árvore) na “árvore”

Passo 6 - Exemplo RS  r1, s1, s2, t1, t2  r1 = x  s1 > y S T  t2 < z R  r1, s1, s2, t1, t2  r1 = x S  s1 > y T  t2 < z XX XX

Exercício – Operadores Lógicos Considerando que p1, p2 e p3 são predicados de seleção, as leis abaixo são úteis no algoritmo de otimização algébrica (Passo 1)? Justifique suas respostas. Leis de De Morgan (a)  (p1  p2)  (  p1)  (  p2) (b)  (p1  p2)  (  p1)  (  p2) Leis da Distributividade (a) p1  (p2  p3)  (p1  p2)  (p1  p3) (b) p1  (p2  p3)  (p1  p2)  (p1  p3)