Banco de Dados II Prof. Antônio Cordeiro. Arquitetura de um SGBD Bancos de Dados II - Prof....

Post on 18-Apr-2015

105 views 1 download

Transcript of Banco de Dados II Prof. Antônio Cordeiro. Arquitetura de um SGBD Bancos de Dados II - Prof....

Banco de Dados II

Prof. Antônio Cordeiro

Arquitetura de um SGBD

Bancos de Dados II - Prof. Antônio Cordeiro Slide 2

• Sistema Gerenciador de Banco de Dados (SGBD): software para criar, manter e consultar um BD.

• SGBDs Relacionais: implementam esquemas de BD segundo o modelo relacional (esquemas relacionais)

Conceitos e Terminologia

Bancos de Dados II - Prof. Antônio Cordeiro Slide 3

O Modelo Relacional

Bancos de Dados II - Prof. Antônio Cordeiro Slide 4

• Modelo Relacional– Tabelas– Operações sobre Tabelas– Transformação de esquemas OO em

esquemas relacionais

Conceitos e Terminologia

• SGBDs Objeto-Relacionais

– Implementam esquemas de BD segundo o modelo objeto-relacional (esquemas objeto-relacionais)

Conceitos e Terminologia

Bancos de Dados II - Prof. Antônio Cordeiro Slide 5

• Modelo Objeto-Relacional

– Object Tables– Operações sobre Object Tables– Transformação de esquemas OO em

esquemas objeto-relacionais

• Esquemas OO são mais próximos do mundo real que os esquemas relacionais

Conceitos e Terminologia

Bancos de Dados II - Prof. Antônio Cordeiro Slide 6

• Esquemas OO são também chamados de Esquemas Conceituais

• Esquemas Relacionais e Objeto-Relacionais são também chamados de Esquemas Lógicos

Conceitos e Terminologia

Bancos de Dados II - Prof. Antônio Cordeiro Slide 7

• Esquema Físico– Descreve a implementação, pelo SGBD, de

um esquema lógico

• Projeto de BD– Criação de um Esquema OO– Transformação do Esquema OO em um

Esquema Lógico– Criação do Esquema Físico

Conceitos e Terminologia

Bancos de Dados II - Prof. Antônio Cordeiro Slide 8

• Independência Lógica de Dados– Alteração de um esquema lógico não implica

necessariamente em alteração dos programas que acessam o BD.

• Independência Física de Dados – Alteração de um esquema físico não implica

em alteração dos programas que acessam o BD.

Benefícios do Uso de SGBDs

Bancos de Dados II - Prof. Antônio Cordeiro Slide 9

• Suporte transacional - ACID;• Atomicidade: a transação é processada ou cancelada

como um todo. Tolerância a falhas

• Consistência: gravação correta do dado independente da situação.

• Isolamento: independência de contexto;

• Durabilidade:consistência de informações após o processamento da transação.

Benefícios do Uso de SGBDs

Bancos de Dados II - Prof. Antônio Cordeiro Slide 10

Modificações no Esquema

Consultas Atualizações

Processadorde Consultas

Gerente de Memória

Dados&Metadados

Gerentede Transações

Arquitetura de um SGBD

Bancos de Dados II - Prof. Antônio Cordeiro Slide 11

• Gerente de Memória– Localiza os arquivos em disco, através do

Gerente de Arquivos, e transfere para os buffers os blocos de dados solicitados pelo Gerente de Buffers.

– O Gerente de Buffers escolhe páginas da memória principal onde armazenar os blocos.

– Se as páginas contêm outros blocos, os novos blocos substituem os antigos.

Arquitetura de um SGBD

Bancos de Dados II - Prof. Antônio Cordeiro Slide 12

• Gerente de Transações

– Garante a atomicidade e o isolamento dos programas que modificam esquemas, ou consultam, ou atualizam o banco de dados

Arquitetura de um SGBD

Bancos de Dados II - Prof. Antônio Cordeiro Slide 13

• Processador de Consultas– Clientes(Identidade, Nome, Endereço)– Contas(Número, Saldo, Identidade)

– Encontrar os saldos de todas as contas de Maria José

Arquitetura de um SGBD

Bancos de Dados II - Prof. Antônio Cordeiro Slide 14

• Processador de Consultas– Possíveis Planos de Realização da Consulta

• Examinar todos os registros de Clientes, procurando por Maria José. Para cada Maria José, encontrar todos os registros de Contas com a identidade de Maria José

• Se houver um índice p/ nome de cliente, localizar, via o índice, os registros de Maria José. O restante é como o plano anterior

Arquitetura de um SGBD

Bancos de Dados II - Prof. Antônio Cordeiro Slide 15

• Processador de Consultas– Decide qual dos possíveis planos de

execução da Consulta é melhor• Exemplo : Um plano que explora a existência de

dois índices: para nome de cliente, e para identidade de proprietário de conta

O Processador de consultas escolherá o melhor plano de execução

Arquitetura de um SGBD

Bancos de Dados II - Prof. Antônio Cordeiro Slide 16

• Processador de Consultas– As consultas (querys) são especificadas em linguagens de alto

nível.– O SGBD precisa converter estes comandos em algoritmos

capazes de recuperar as informações desejadas.– Fases do processo.

Processamento de Consultas

Bancos de Dados II - Prof. Antônio Cordeiro Slide 17

Exame, analise e validação

OtimizaçãoGeração do

PlanoExecução

• Esquema de Processamento

Bancos de Dados II - Prof. Antônio Cordeiro Slide 18

QueryParser and Translator

Relational Algebra expression

Otimizer

Execution plan

Statistics Abaout data

Evolution EngineQuery Out Put

Data

Processamento de Consultas

Fase de Exame, Análise e Validação

Realiza a validação sintática e semântica do comando

Efetua a validação dos nomes de colunas e tabelas acessadas

Traduz a consulta em uma representação interna (árvore de consulta) geralmente definida por meio de uma expressão da álgebra relacional.

A estrutura a ser otimizada é a árvore de consulta

Bancos de Dados II - Prof. Antônio Cordeiro Slide 19

Processamento de Consultas

Os blocos de consulta (select básico) são as unidade básicas de tradução

Cada bloco é traduzido para depois ser otimizado

Select cod_cli, nom_cli

from clientes σ sls-medio > par (Clientes)

where sdl-medio = (

select avg(sld-medio)

from clientes Par <- AVG sld-medio (

where uf = ‘BA’ ) σ UF=‘BA’ (Clientes))

Bancos de Dados II - Prof. Antônio Cordeiro Slide 20

Otimização de Consulta

Consiste basicamente na escolha do melhor algoritmo possível para executar uma dada consulta

Deve ser definida a melhor estratégia de execução possível para recuperar o resultado da consulta a partir das estruturas de dados disponíveis.

Resumidamente, é do otimizador a tarefa de definir o plano de execução da consulta.

Bancos de Dados II - Prof. Antônio Cordeiro Slide 21

Otimização de Consulta

Basicamente tem a função de gerar o código que será executado na recuperação da consulta.

Diante do plano definido pelo Otimizador, o código da consulta deve ser gerado com base em algoritmos previamente definidos para cada tipo de acesso presente no plano de execução

GERAÇÃO DE CÓDIGO DA CONSULTA

Bancos de Dados II - Prof. Antônio Cordeiro Slide 22

O Modelo Relacional

Bancos de Dados II - Prof. Antônio Cordeiro Slide 23

É uma tarefa realizada pelo processador run-time do Banco de Dados.

O Processador executa o código definido pelo gerador, acessando dados em disco e gerenciando a memória necessária.

É nesta fase que a consulta é realmente processada

Execução

Para uma mesma consulta, pode existir mais que um plano de execução possível.

A tarefa do otimizador é escolher aquela que recupere os dados a um menor custo.

Cada operador pode ser executado, e por conseguinte, avaliado utilizando vários algoritmos com custos de consultas diferentes.

A diferença entre os custos de execução de dois planos pode ser significativa

Otimização de Consulta

Bancos de Dados II - Prof. Antônio Cordeiro Slide 24

A partir de regras que transformam uma expressão relacional em outra equivalente, gerar as várias expressões que sejam logicamente iguais.

Anotar as várias expressões resultantes com as alternativas de planos de acessos.

Escolher entre os várias planos gerados, aquele que represente o menos custo.

Passos da Otimização de Consultas

Bancos de Dados II - Prof. Antônio Cordeiro Slide 25

É uma estrutura de dados em forma de árvore que corresponde a uma expressão da álgebra relacional.

Cada nó descendente representa uma entrada para os operadores relacionais posicionados nos nós internos.

O resultado de um operador em um nó mais interno serve de entrada para o operador no nó interno pai.

A execução ocorre sempre dos nós folha para a raiz.

Árvore de Consulta

Bancos de Dados II - Prof. Antônio Cordeiro Slide 26

Exemplo de Árvore de Consulta

Bancos de Dados II - Prof. Antônio Cordeiro Slide 27

Л Nome_aluno

σ media > 8

| X |

| X | alunos

Históricos

σ Cod_disc =‘SIBDIIA’

Disciplinas