Film concret
Soit le schéma relationnel suivant :
1
Film (#isan:char(33), titre:varchar(25), entrees:integer, nomReal=>Realisateur(nom), prenomReal=>Realisateur(prenom))
2
Realisateur (#nom:varchar(25), #prenom:varchar(25), ddn:date)
Soit la requête suivante portant sur ce schéma implémenté sous PostgreSQL :
1
SELECT f.titre AS film, r.ddn AS real
2
FROM Film f, Realisateur r
3
WHERE f.nomReal=r.nom AND f.prenomReal=r.prenom
Question
Proposer une optimisation de cette requête sous la forme de la vue matérialisée vTopFilms
.
Solution
1
-- Materialized view creation
2
CREATE TABLE vTopFilms (
3
film varchar(25),
4
real varchar(25)
5
);
6
7
-- Materialized view initialization
8
INSERT INTO vTopFilms
9
SELECT f.titre, r.ddn
10
FROM Film f, Realisateur r
11
WHERE f.nomReal=r.nom AND f.prenomReal=r.prenom ;