Cours terminé pour 2024-25 Résultats affichés sur Moodle

TD 7 : Contraintes (suite)

Définition de données et Contraintes

Contraintes
Définition de Données
Référemces
Clés
Exclusion
pagila
nycflights
Published

November 8, 2024

Ojectifs

Cette séance est consacrée à l’enrichissement des schémas pagila et nycflights.

L’objectif est d’ajouter des contraintes aux schémas, en particulier, des contraintes d’exclusion.

Cette séance est l’occasion de se familiariser avec les types timestamp et tsrange et avec les opérateurs de recouvrement.

Contraintes SQL (suite)

Schéma pagila

Question

Imposer la contrainte suivante : un client ne peut emprunter plusieurs DVD simultanément.

Écrire d’abord une requête correspondant à la contrainte.

La requête est facile à écrire si on est prêt à utiliser le type tsrange, l’opérateur de recouvrement && (overlap).

Postgresql documentation on range types

Dans l’instance du schéma pagila disponible sur le serveur etu-pgsql, la contrainte est-elle vérifiée ?

Question

Imposer la contrainte : un film est identifié par son titre, son année de sortie et sa langue originale.

Question

Imposer la contrainte : le prix de location doit être croissant en fonction de la durée du film

Question

Imposer la contrainte : un même DVD ne peut pas être loué simultanément à deux clients différents.

Schéma nycflights

Question

Dans flights et weather imposer les contraintes

year, month, day, hour ⟶ time_hour
time_hour  ⟶  year, month, day, hour
Question

Dans flights imposer la contrainte : un aéronef ne peut pas effectuer deux missions simultanément.

Question

Dans flights imposer la contrainte : un aéronef ne peut pas être exploité par deux compagnies différentes à la même date.

Question

Dans planes, imposer les contraintes model ⟶ manufacturer et model ⟶ type