Banco de Dados II Prof. Antônio Cordeiro
Arquitetura de um SGBD Bancos de Dados II - Prof. Antônio Cordeiro Slide 2
Conceitos e Terminologia 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) Bancos de Dados II - Prof. Antônio Cordeiro Slide 3
Conceitos e Terminologia O Modelo Relacional Modelo Relacional Tabelas Operações sobre Tabelas Transformação de esquemas OO em esquemas relacionais Bancos de Dados II - Prof. Antônio Cordeiro Slide 4
Conceitos e Terminologia SGBDs Objeto-Relacionais Implementam esquemas de BD segundo o modelo objeto-relacional (esquemas objeto-relacionais) Bancos de Dados II - Prof. Antônio Cordeiro Slide 5
Conceitos e Terminologia 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 Bancos de Dados II - Prof. Antônio Cordeiro Slide 6
Conceitos e Terminologia Esquemas OO são também chamados de Esquemas Conceituais Esquemas Relacionais e Objeto-Relacionais são também chamados de Esquemas Lógicos Bancos de Dados II - Prof. Antônio Cordeiro Slide 7
Conceitos e Terminologia 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 Bancos de Dados II - Prof. Antônio Cordeiro Slide 8
Benefícios do Uso de SGBDs 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. Bancos de Dados II - Prof. Antônio Cordeiro Slide 9
Benefícios do Uso de SGBDs 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. Bancos de Dados II - Prof. Antônio Cordeiro Slide 10
Modificações no Esquema Arquitetura de um SGBD Modificações no Esquema Consultas Atualizações Processador de Consultas Gerente de Memória Dados&Metadados de Transações Bancos de Dados II - Prof. Antônio Cordeiro Slide 11
Arquitetura de um SGBD 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. Bancos de Dados II - Prof. Antônio Cordeiro Slide 12
Arquitetura de um SGBD Gerente de Transações Garante a atomicidade e o isolamento dos programas que modificam esquemas, ou consultam, ou atualizam o banco de dados Bancos de Dados II - Prof. Antônio Cordeiro Slide 13
Processador de Consultas Arquitetura de um SGBD Processador de Consultas Clientes(Identidade, Nome, Endereço) Contas(Número, Saldo, Identidade) Encontrar os saldos de todas as contas de Maria José Bancos de Dados II - Prof. Antônio Cordeiro Slide 14
Processador de Consultas Arquitetura de um SGBD 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 Bancos de Dados II - Prof. Antônio Cordeiro Slide 15
Processador de Consultas Arquitetura de um SGBD 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 Bancos de Dados II - Prof. Antônio Cordeiro Slide 16
Processamento de Consultas 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. Exame, analise e validação Otimização Geração do Plano Execução Bancos de Dados II - Prof. Antônio Cordeiro Slide 17
Processamento de Consultas Esquema de Processamento Query Parser and Translator Relational Algebra expression Otimizer Execution plan Statistics Abaout data Evolution Engine Out Put Data Bancos de Dados II - Prof. Antônio Cordeiro Slide 18
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
Otimização de Consulta 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
GERAÇÃO DE CÓDIGO DA 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 Bancos de Dados II - Prof. Antônio Cordeiro Slide 22
Execução O Modelo Relacional É 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 Bancos de Dados II - Prof. Antônio Cordeiro Slide 23
Otimização de Consulta 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 Bancos de Dados II - Prof. Antônio Cordeiro Slide 24
Passos da Otimização de Consultas 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. Bancos de Dados II - Prof. Antônio Cordeiro Slide 25
Árvore de Consulta É 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. Bancos de Dados II - Prof. Antônio Cordeiro Slide 26
Exemplo de Árvore de Consulta Л Nome_aluno | X | | X | alunos σ Cod_disc =‘SIBDIIA’ σ media > 8 Históricos Disciplinas Bancos de Dados II - Prof. Antônio Cordeiro Slide 27