Gerenciamento de Banco de
Dados
Profa. Sandra de Amo
Apresentação da Disciplina
GBC053
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-2.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 < 60
Nota final com Sub no máximo = 60
Calendário das Avaliações





Prova 1 : 26 de Novembro
Prova 2 : 14 de Janeiro
Prova 3 : 25 de Fevereiro
Projeto : de 26, 27 e 28 de Fevereiro
Prova Substitutiva : 10 de Março
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 GERAL
DE UM SGBD
RELACIONAL
Esquema Geral do Processador de
Consultas
Bloco SQL simples
usuário
Consulta SQL
SQL Parser
Transforma em Algebra
Coleção de blocos simples
B1, B2, ...., Bn
Plano canônico
Cria planos alternativos
Otimizador
Planos alternativos
Estima custos
Melhor Plano de execução
Melhor Plano de execução
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
Exemplo
R(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)
Projeção sobre os atributos do SELECT
Having ....
Group by ...
σ condições do WHERE
Seleção sobre as condições do WHERE
R1 X R2 X ... X Rn
Produto Cartesiano das relações do FROM
Plano de Execução “Canônico”
ΠA,B,...,C
A,B,...,Min(C)
Having ....
Group by A
σ condições do WHERE
ΠA,B,...,C
GroupA + Seleciona_grupos
σ
R1 X R2 X ... X Rn
X
 Resultado R é ordenado
 O GROUP BY é executado
sobre o resultado R ordenado.
R1
 O HAVING é aplicado para eliminar
certos grupos.
 Funções de agregação são executadas sobre
os grupos finais
R2
Rn
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
Π
σ
Projeção com ordenação
Π
Projeção com ordenação
Seleção usando indice
B+tree no atributo A
σ
Seleção usando indice Hash
no atributo B
X Hash Join
R
S
X Sort Merge Join
R
S
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)
Para a Próxima Aula

Ler Seções 8.1 e 9.1 do Livro Texto
Download

Slides - Sandra de Amo