The show

[30 minutes]

Soit le schéma relationnel suivant décrivant un système de réservations de places de spectacles :

1
SPECTACLE (#nospectacle:int, nom:str, durée:int, type:{théâtre|danse|concert})
2
SALLE (#nosalle:int, nbplaces:int)
3
REPRESENTATION (#date:date, #nospectacle=>SPECTACLE, #nosalle=>SALLE, prix:decimal)

En faisant les suppositions suivantes :

  • On gère un espace de spectacles ayant un ensemble de salles (décrit par la relation SALLE).

  • On suppose que pour un jour donné et une salle donnée, il n'y a qu'un seul spectacle représenté.

Question

Retro-concevoir le MCD en UML.

Question

Proposer des contraintes d'intégrité réalistes pour ce schéma (en français).

Solution

Exemple
  • sur SPECTACLES :

    • le nom d'un spectacle est non nul,

    • la durée d'un spectacle est comprise entre 1h et 4 h,

  • sur SALLES :

    • la capacité d'une salle est comprise entre 100 et 500 places.

  • sur REPRESENTATION :

    • le prix d'une représentation est compris entre 10 et 50 €,

    • certaines dates peuvent être interdites (le premier mai par exemple).

Question

Proposer une définition du schéma en SQL qui prenne en compte certaines de ces contraintes.

Solution

1
CREATE TABLE SPECTACLE (
2
nospectacle integer,
3
nom varchar(30) NOT NULL,
4
duree integer,
5
type char(7),
6
PRIMARY KEY (nospectacle),
7
CHECK (duree>1 and duree<4),
8
CHECK (type in ('théâtre', 'danse', 'concert'))
9
);
1
CREATE TABLE SALLE (
2
nosalle integer,
3
nbplaces integer,
4
PRIMARY KEY (nosalle),
5
CHECK (nbplaces>100 and nbplaces<500)
6
);
1
CREATE TABLE REPRESENTATION (
2
nospectacle integer,
3
nosalle integer,
4
date date,
5
prix decimal(3,2),
6
PRIMARY KEY (nosalle, date, nospectacle),
7
FOREIGN KEY (nospectacle) REFERENCES SPECTACLE(nospectacle),
8
FOREIGN KEY (nosalle) REFERENCES SALLE(nosalle),
9
CHECK (prix>10 and prix<50)
10
);

Question

Insérer des données réalistes dans votre schéma afin de vérifier son bon fonctionnement.