Gerenciamento de Banco de Dados Profa. Sandra de Amo Apresentação da Disciplina GBC053 2013 – 1...
Transcript of Gerenciamento de Banco de Dados Profa. Sandra de Amo Apresentação da Disciplina GBC053 2013 – 1...
Gerenciamento de Banco de Dados
Profa. Sandra de AmoApresentação da Disciplina
GBC053 2013 – 1
Bacharelado em Ciência Computação
Roteiro Informações Gerais sobre a dinâmica da
disciplina Conteúdo da Disciplina GBC053 Objetivos gerais Critério de Avaliação Bibliografia
Informações Gerais
Homepage
http://www.deamo.prof.ufu.br/CursoGBD2-2013-1.html Dinâmica
Chamada 2 vezes 1a vez: Durante os 50 primeiros minutos 2a vez: Durante os 50 últimos minutos
Aula de Exercícios – Listas Informações via email Trabalho em grupo
Conteúdo da Disciplina Arquitetura de um Sistema de Gerenciamento de Banco de Dados
(SGBD) – Catálogo Organização de Arquivos e Índices Armazenamento de Dados –
gerenciamento de memória em disco e no buffer Indices baseados em árvores Indices baseados em hash: Hash estático; Hash Extensível; Hash
Linear Processamento de Consultas
Ordenação de Dados em Disco Implementação dos operadores da álgebra relacional: Seleção; Projeção;
Junção; Operações com conjuntos e agregações Otimização de consultas SQL
Bibliografia Database Management Systems – 3a Edição
R.Ramakrishnan – J. Gehrke, 2003.
Versão em portugues: Sistemas de Gerenciamento de Bancos de Dados, 2008
Sistemas de Banco de Dados – Elmasri, Navathe.
Editora Pearson, 6ª edição, 2011. Sistema de Banco de Dados. A. Silberschatz, H.F. Korth, S Sudarshan.
Tradução da 5a. Edição: Database Systems Concepts, Rio de Janeiro, Elsevier, 2006.
Database System Implementation. Garcia-Molina, H.; Ullman, J. D.; Widom, J., Delhi-India: Pearson, 2006
Critério de Avaliação Prova 1 (P1) = 25 pontos Prova 2 (P2) = 30 pontos Prova 3 (P3) = 30 pontos Projeto (P) = 15 pontos
NF = P1 + P2 + P3 + P
Prova Substitutiva = somente se NF < 60Nota final com Sub no máximo = 60
Calendário das Avaliações
Prova 1 : 25 de Junho Prova 2 : 13 de Agosto Prova 3 : 10 de Setembro Projeto : de 11 a 13 de Setembro Prova Substitutiva : 16 de Setembro
O que é um SGBD ?
Um SGBD (Sistema Gerenciador de Banco de Dados) é um software projetado para armazenar e manipular de forma eficiente grandes quantidades de dados (banco de dados)
Sistemas de Banco de Dados Sistemas de Gerenciamento de Banco de Dados
(SGBD) Relacionais (SGBDR) – puramente relacionais, sem
suporte para dados complexos. Orientados a Objetos (nativos) – puramente orientado a
objetos (O2) Semi-estruturados nativos (XML nativo) Objeto-Relacionais (SGBDOR): a maioria das novas
versões dos SGBDs comerciais atuais- têm suporte a dados semi-estruturados (XML)
ARQUITETURA GERALARQUITETURA GERALDE UM SGBD DE UM SGBD RELACIONALRELACIONAL
Esquema Geral do Processador de Consultas
SQL Parser Consulta SQL
usuário
Coleção de blocos simplesB1, B2, ...., Bn
Otimizador
Melhor Plano de execução
Bloco SQL simples
Plano canônico
Cria planos alternativos
Planos alternativos
Estima custos
Melhor Plano de execução
Transforma em Algebra
Decompor consulta em blocos simples
Um bloco SQL simples é um comando sem subconsultas aninhadas, onde aparece somente um SELECT, somente um FROM no máximo um WHERE (em FNC) no máximo um GROUP BY no máximo um HAVING
Bloco simples SELECT <lista atributos>
FROM <lista relações>
WHERE <condição em FNC>
GROUP BY
HAVING
ExemploR(sid,bid,day,rname) : RESERVA
S(sid,sname,rating,age) : SAILORS
B(bid,bname, color) : BOAT
Para cada marinheiro (sailor) com o mais alto status (rating) e que fez pelo menos 2 reservas de barcos vermelhos, dê seu identificador e a data mais recente em que fez reserva de barco vermelho.
Exemplo (continuação) SELECT DISTINCT S.sid, Min (R.day)
FROM Sailors S, Reservas R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND B.color = ‘red’
AND S.rating = (SELECT MAX (S2.rating) FROM Sailors S2 )
GROUP BY S.sid
HAVING COUNT (*) > 1
Exemplo (continuação) Bloco 1 : bloco interno
SELECT MAX (S2.rating) FROM Sailors S2 Resultado : Relação temporária T(A)
Bloco 2 : bloco externo SELECT DISTINCT S.sid, Min (R.day) FROM Sailors S, Reservas R, Boats B, T WHERE S.sid = R.sid AND R.bid = B.bid
AND B.color = ‘red’ AND S.rating = T.A GROUP BY S.sid HAVING COUNT (*) > 1
Bloco SQL Expressão algébrica
ΠA,B,..., MIN (C)
Having .... Group by ...
σ condições do WHERE
R1 X R2 X ... X Rn
Projeção sobre os atributos do SELECT
Seleção sobre as condições do WHERE
Produto Cartesiano das relações do FROM
Plano de Execução “Canônico”ΠA,B,...,Min(C)
σ condições do WHERE
R1 X R2 X ... X Rn
Having .... Group by A
ΠA,B,...,C
σ
ΠA,B,...,C
X
R1 R2 Rn
Resultado R é ordenado O GROUP BY é executado sobre o resultado R ordenado. O HAVING é aplicado para eliminar certos grupos. Funções de agregação são executadas sobre os grupos finais
O que é um plano de execução ? Plano de execução correspondente à uma
expressão algébrica E Sequência de operações equivalente à expressão
E, isto é, produzindo o mesmo resultado que E. Para cada operação da sequência (projeção,
seleção, junção), um algoritmo é especificado para implementar tal operação.
Exemplo
σ
X
R S
Π Projeção com ordenação
Seleção usando indice B+tree no atributo A
Hash Join
σ
X
R S
Projeção com ordenação
Sort Merge Join
Π
Seleção usando indice Hash no atributo B
Objetivos principais da disciplina Estudar os algoritmos utilizados para executar cada um dos
operadores do SQL – os utilizados pelos principais SGBDs comerciais Entender as estruturas de dados utilizadas pelos diferentes
algoritmos (indices) Entender como os dados em disco e no buffer pool são
manipulados pelos algoritmos
Estudar os métodos utilizados pelos otimizadores para gerar os planos de consultas e escolher o melhor plano.
Profissionais a que é direcionado... Programadores Desenvolvedores de SGBDs Administrador de BD (DBA)