Escolar Documentos
Profissional Documentos
Cultura Documentos
Nodo SC:
a) LivrariaCatarina estado=‘SC’ (Livraria)
SC.Livraria LivrariaCatarina
b) EstoqueCatarina E.* (LivrariaCatarina Estoque E)
SC.Estoque EstoqueCatarina
c) LivroCC assunto=‘Ciência da Computação’ (Livro)
LivroEsportes assunto=‘Esportes’ (Livro)
SC.Livro LivroCC U LivroEsportes ...
Nodo Leste:
CREATE VIEW Leste.Parcial AS
SELECT Num_livro , Estoque_Total FROM Leste.Livros
WHERE preco > 15 AND preco <= 20
Nodo Centro:
CREATE VIEW Centro.Parcial AS
SELECT Num_livro , Estoque_Total FROM Centro.Livros
WHERE preco > 20 AND preco <= ptoCorte
Nodo Oeste:
CREATE VIEW Oeste.Parcial AS
SELECT Num_livro , Estoque_Total FROM Oeste.Livros
WHERE preco > ptoCorte AND preco < 55
20 < ptoCorte <= 50
(determinado pelo SGBD de acordo com distribuição dos preços dos livros)
Exercício 4.2 b)
Nodo Centro:
DELETE FROM Centro.Livros
WHERE Num_livro = 1234;
Nodo Oeste:
UPDATE Oeste.Livros
SET preco = 55
WHERE Num_livro = 1234;
Nodo Centro:
DELETE FROM Centro.Livros
WHERE Num_livro = 1234;
Nodo Oeste:
UPDATE Oeste.Livros
SET preco = 55
WHERE Num_livro = 1234;
Subconsultas geradas:
Nodo Centro:
CREATE VIEW Centro.Parcial AS
SELECT COUNT(*) AS n FROM Centro.LIVRARIA;
Nodo Oeste:
CREATE VIEW Oeste.Parcial AS
SELECT COUNT(*) AS n FROM Oeste.LIVRARIA;
Nodo1.Funcionário Funcionário
cidade=‘Florianópolis’ (Filial)
FiliaisDeFloripa
Nodo2.Filial FiliaisDeFloripa ( U … )?
FiliaisDeBlumenau cidade=‘Blumenau’ (Filial)
Nodo3.Filial FiliaisDeBlumenau ( U … )?
Exercício 4.3 b) e c)
Estratégia 1
Nodo 1:
CREATE VIEW Nodo1.Resultado AS
SELECT F.codF, F.nome, F.nroFilial
FROM Nodo1.Funcionário F NATURAL JOIN
( Nodo2.Parcial UNION Nodo3.Parcial );
k*(|codF|+|f.nome|+|nroFilial|) 20*|nroFilial|
Nodo 2:
CREATE VIEW Nodo2.Parcial AS
SELECT nroFilial FROM Nodo2.Filial
WHERE cidade=’Florianópolis’;
Nodo 3:
CREATE VIEW Nodo3.Parcial AS
SELECT nroFilial FROM Nodo3.Filial 10*|nroFilial|
WHERE cidade=’Blumenau’;
Exercício 4.3 b) e c)
Estratégia 2
N*(|codF|+|f.nome|+|nroFilial|)
Nodo 1:
CREATE VIEW Nodo1.Funcs AS
SELECT F.codF, F.nome, F.nroFilial
FROM Nodo1.Funcionário F;
Nodo 2:
CREATE VIEW Nodo2.Parcial AS
SELECT nroFilial FROM Nodo2.Filial WHERE cidade=’Florianópolis’;
N*(|codF|+|f.nome|+|nroFilial|) + 10*|nroFilial|
K < N – 20 * |nroFilial|
|codF|+|f.nome|+|nroFilial|
Exercício 4.4
T1 só ABORTA se SC falhar
T2 só ABORTA se SP falhar
Exercício 4.5 - a)
Nodo SC
Nodo RS
RS.Aluno Aluno
RS.Cursa Cursa
RS.Disciplina Disciplina
Exercício 4.5 - b)
Nodo SC
CREATE VIEW SC.Parcial AS
SELECT idD, COUNT(DISTINCT idA) AS nA, SUM(nota) AS s, COUNT(*) AS n
FROM SC.Cursa C GROUP BY idD;
Nodo RS
CREATE VIEW RS.Parcial AS
SELECT idD, COUNT(DISTINCT idA) AS nA, SUM(nota) AS s, COUNT(*) AS n
FROM RS.Aluno A NATURAL JOIN RS.Cursa C
WHERE A.uf <> SC
GROUP BY idD;