INE 5336 Banco de Dados II - PowerPoint PPT Presentation

About This Presentation
Title:

INE 5336 Banco de Dados II

Description:

... SQL Embutida Fundamentos de BDs Distribu dos Conceitos e Arquiteturas No es de Projeto de BDD Processamento de Consultas Ger ncia de Transa es ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 35
Provided by: INE95
Category:
Tags: ine | banco | dados | fundamentos

less

Transcript and Presenter's Notes

Title: INE 5336 Banco de Dados II


1
INE 5336Banco de Dados II
UFSC-CTC-INE Curso de Ciência de Computação
  • Ronaldo S. Mello
  • 2007/2
  • http//www.inf.ufsc.br/ronaldo/ine5336
  • Horário Atendimento
  • Quintas-feiras, das 17h30 às 19h

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

3
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.

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

5
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 3.0 lt NF lt 5.75 e nota Ti gt 0. A
    nova nota final (NNF) será NNF (NF PR) / 2.

6
Bibliografia Principal
  • 1. Elmasri, R. Navathe S. B. Sistemas de Banco
    de Dados. 4a edição. Editora Addison-Wesley.
    2005.
  • (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, 2006.
  • 3. Ramakrishnan, R., Gehrke, J. Database
    Management Systems. 3th ed. McGraw Hill. 2003.
  • 4. Date, C. J. Introdução a Sistemas de Bancos de
    Dados. 8a edição. Editora Campus, 2004.
  • 5. Özsu, M. Valduriez, P. Princípios de Sistemas
    de Banco de Dados Distribuídos. 2a ed. Editora
    Campus, 2001.
  • 6. Bernstein, P. A. Hadzilacos, V. Goodman, N.
    Concurrency Control and Recovery in Database
    Systems. Addison-Wesley, 1987.

7
Cronograma (Previsto) de Aulas
Data Conteúdo
6/ago apresentaçãoetapas processamento consultas
8/ago otimização algébrica
13/ago IRI 2007 (sem aula)
15/ago IRI 2007 (sem aula)
20/ago otimização algébrica
22/ago plano execução
27/ago plano execução
29/ago plano execução
3/set DEXA 2007 (sem aula)
5/set DEXA 2007 (sem aula)
10/set plano execução
12/set plano execução
17/set PROVA 1
19/set introdução a transações recovery
24/set recovery
26/set recovery
1/out recovery
3/out scheduler
8/out scheduler
10/out scheduler
15/out SBBD 2007 (sem aula)
17/out SBBD 2007 (sem aula)
22/out scheduler
Data Conteúdo
24/out scheduler
29/out PROVA 2
31/out SQL embutida
5/nov SECCOM (sem aula)
7/nov SECCOM (sem aula)
12/nov SQL embutida BDD
14/nov BDD
19/nov BDD
21/nov BDD
26/nov PROVA 3
28/nov APRESENTAÇÃO TRABALHOS
3/dez Divulgação Notas
5/dez RECUPERAÇÃO
8
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

9
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

10
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!
  • Tx tempo para definir e executar uma estratégia
    otimizada de processamento
  • Ty tempo para executar uma estratégia
    não-otimizada de processamento
  • Quase sempre Tx ?? Ty

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

Plano de Execução (árvore com indicação de
estratégias de acesso)
Gerador de Código
Resultado da Consulta
Código de Execução
Processador Run-time
13
Á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

14
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.CRM, m.nome, a.número, a.andar
? m.especialidade ortopedia ? a.andar
2 ? m.número a.número
X
Ambulatórios
Médicos
15
Etapas de Processamento
Consulta em linguagem de alto nível (consulta
SQL, p. ex.)
Tradução
Representação interna (árvore algébrica da
consulta)
Transformação
Definição do Plano de Execução
Representação transformada (árvore otimizada
algebricamente)
  • 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

Plano de Execução (árvore com indicação de
estratégias de acesso)
Gerador de Código
Resultado da Consulta
Código de Execução
Processador Run-time
16
Exemplo de Árvore Equivalente
? m.CRM, m.nome, a.número, a.andar
? m.CRM, m.nome, a.número, a.andar
? m.número a.número
? m.especialidade ortopedia ? a.andar
2 ? m.número a.número
?
X
X
? m.especialidade ortopedia
?a.andar 2
Ambulatórios
Médicos
Ambulatórios
Médicos
17
Etapas de Processamento
Consulta em linguagem de alto nível (consulta
SQL, p. ex.)
  • 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, ...)

Tradução
Representação interna (árvore algébrica da
consulta)
Transformação
Definição do Plano de Execução
Representação transformada (árvore otimizada
algebricamente)
Plano de Execução (árvore com indicação de
estratégias de acesso)
Gerador de Código
Resultado da Consulta
Código de Execução
Processador Run-time
18
Exemplo de Plano de Execução
? m.CRM, m.nome, a.número, a.andar
? m.número a.número
(processamento pipeline)
X
(loop-aninhado)
? m.especialidade ortopedia
?a.andar 2
(pesquisa linear)
(pesquisa indexada)
Ambulatórios
Médicos
19
Etapas de Processamento
Consulta em linguagem de alto nível (consulta
SQL, p. ex.)
Tradução
Representação interna (árvore algébrica da
consulta)
Transformação
Definição do Plano de Execução
Representação transformada (árvore otimizada
algebricamente)
Plano de Execução (árvore com indicação de
estratégias de acesso)
Gerador de Código
Resultado da Consulta
Código de Execução
Processador Run-time
20
Etapas de Processamento
Consulta em linguagem de alto nível (consulta
SQL, p. ex.)
Tradução
Representação interna (árvore algébrica da
consulta)
Transformação
Definição do Plano de Execução
Representação transformada (árvore otimizada
algebricamente)
FOCO OTIMIZADOR DE CONSULTA
Plano de Execução (árvore com indicação de
estratégias de acesso)
Gerador de Código
Resultado da Consulta
Código de Execução
Processador Run-time
21
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

22
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?
23
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

24
Regras de Equivalência Algébrica
6. Comutatividade de Seleções e Operações
Produtórias
(a) ?c (R X S) ? (?c (R)) X S ou (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 S ou (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?
25
Regras de Equivalência Algébrica
8. Comutatividade de Operações de Conjunto
R ? S ? S ? R e 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?

26
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)
27
Regras de Equivalência Algébrica
10. Comutatividade de Seleção e Operações de
Conjunto (?)
?c (R ? S) ? (?c (R)) ? (?c (S))
  • por ? entenda-se ? ou ? ou ?

11. Comutatividade de Projeção e União
?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?

28
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 S ou (b) ?c (R X S)
? R S ou (c) R X ? ?c S ? R S
c
c
- válidas em quais situações?
29
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

30
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

31
Grau de Seletividade (GSai(R))
  • Definido pela seguinte razão
  • GSai (R) tp(R) / R, onde tp(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 (GS ? 0,1)
  • GSai (R) pequeno (? 0) ? seleção mais restritiva
  • Um atributo chave ac possui baixo GS em
    predicados de igualdade
  • GSac (R) 1 / R
  • Geralmente mantém-se uma estimativa de
    distribuição uniforme de valores de atributos
  • GSai (R) (R / V(ai)) / R 1 / V(ai), onde
    V(ai) é o número de valores distintos de ai

32
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

33
Passo 6 - Exemplo
? r1, s1, s2, t1, t2
? r1, s1, s2, t1, t2
X?
X?
?s1 gt y
?s1 gt y
? t2 lt z
? r1 x
?s1 gt y
? t2 lt z
? r1 x
R
S
S
T
R
S
T
34
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)
Write a Comment
User Comments (0)
About PowerShow.com