TD 7 : Contraintes (suite)
Définition de données et Contraintes
L3 MIASHS/Ingémath |
| Année 2025 |
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
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 ?
Imposer la contrainte : un film est identifié par son titre, son année de sortie et sa langue originale.
Imposer la contrainte : le prix de location doit être croissant en fonction de la durée du film
Imposer la contrainte : un même DVD ne peut pas être loué simultanément à deux clients différents.
Schéma nycflights
Dans flights et weather imposer les contraintes
year, month, day, hour ⟶ time_hour
time_hour ⟶ year, month, day, hour
Dans flights imposer la contrainte : un aéronef ne peut pas effectuer deux missions simultanément.
Dans flights imposer la contrainte : un aéronef ne peut pas être exploité par deux compagnies différentes à la même date.
Dans planes, imposer les contraintes model ⟶ manufacturer et model ⟶ type