Upload
internet
View
105
Download
1
Embed Size (px)
Citation preview
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