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