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 14, 2025

ImportantOjectifs

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

NoteQuestion

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 ?

NoteQuestion

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

NoteQuestion

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

NoteQuestion

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

Schéma nycflights

NoteQuestion

Dans flights et weather imposer les contraintes

year, month, day, hour ⟶ time_hour
time_hour  ⟶  year, month, day, hour
NoteQuestion

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

NoteQuestion

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

NoteQuestion

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