Buscar

Exercicio Implementação BDs com respostas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Exercícios de Implementação de Bancos de Dados 
Prof. Rômulo Alencar 
 
Assunto: Processamento de Consultas e de Transações 
 
Para as questões de 1 a 3, admita o seguinte esquema de banco de dados de uma gravadora de 
discos, expresso através dos seguintes comandos DDL: 
 
create table Artista ( 
 id int primary key, 
 nome char(60) not null unique 
); 
create table Musica ( 
 id int primary key, 
 titulo char(94) not null unique 
); 
create table Album ( 
 id int primary key, 
 titulo char(50) not null, 
 artista_id int references Artista(id), 
 ano int not null 
); 
create table Album_Musica ( 
 album_id int references Album(id), 
 musica_id int references Musica(id), 
 numero int not null, 
 primary key(album_id, musica_id) 
); 
 
Considere as seguintes observações: 
 
• Desconsidere a existência de quaisquer índices; 
• Admita que o tipo de dados “int” ocupa 8 bytes, cada caractere do tipo “char” ocupa 1 byte; 
• Admita que o SGBD que armazenará o banco de dados trabalha com páginas de dados de 8KB 
(8.192 bytes); 
• Admita que o custo de cada operação no processamento de uma consulta ao SGBD é 
determinado pela quantidade de páginas de dados lidas ou armazenadas no disco rígido 
durante o processamento da operação; 
• Admita as seguintes quantidades de linhas em cada uma das tabelas: 
Artista: 5.000 linhas 
Musica: 400.000 linhas 
Album: 50.000 linhas 
Album_Musica: 500.000 linhas 
 
 
Para as questões de 1 a 3, justifique suas respostas com os cálculos de custo dos algoritmos 
utilizados. 
 
1- Admita a seguinte consulta SQL: 
 
SELECT id, titulo 
FROM Musica 
WHERE titulo = 'Let It Be' 
 
Qual algoritmo de seleção deveria ser empregado no processamento desta consulta para produzir 
o melhor custo possível? Qual seria o custo? Prove! 
 
 
 
2- Admita a seguinte consulta SQL: 
 
SELECT m.titulo, am.numero 
FROM Album_Musica am INNER JOIN Musica m ON am.musica_id = m.id 
 
Qual algoritmo de junção deveria ser empregado no processamento desta consulta para produzir o 
melhor custo possível? Qual seria o custo? Prove! 
 
3- Admita a seguinte consulta SQL: 
 
SELECT a.nome, ab.titulo 
FROM Album ab INNER JOIN Artista a ON ab.artista_id = a.id 
 
Qual algoritmo de junção deveria ser empregado no processamento desta consulta para produzir o 
melhor custo possível? Qual seria o custo? Prove! 
 
 
 
 
Para as questões de 4 e 5, admita o seguinte escalonamento: 
 
Tempo Transação 1 Transação 2 
1 SELECT * FROM funcionarios 
WHERE matricula = 1 
 
2 SELECT * FROM funcionarios 
WHERE matricula = 1 
3 UPDATE funcionarios 
SET salario = salario * 1.1 
WHERE matricula = 1 
4 COMMIT 
5 UPDATE funcionarios 
SET salario = salario + 500 
WHERE matricula = 1 
 
6 COMMIT 
 
Admita que 
• O escalonador implementa um protocolo de controle de concorrência conservador; 
• A granularidade de bloqueios do escalonador é linha (tupla). 
 
4- A tentativa de execução do escalonamento acima, admitindo-se o nível de isolamento serializable, 
produziria um deadlock? Prove! 
 
5- Quais níveis de isolamento do padrão ANSI SQL:2011 poderiam produzir o escalonamento acima? 
Prove!

Outros materiais