Alberghi
Progettare un database per gestire le prenotazioni di una serie di alberghi al mare. Per ogni albergo si hanno oltre i vari dati della struttura il numero delle camere ed il costo (si suppone che le camere siano tutte uguali). Considerare le prenotazioni per le camere fatte da persone; per ogni persona si hanno i dati identificativi; per ogni prenotazione si hanno anche la data di inizio e il numero di notti prenotate.
Modello fisico
Creazione tabelle
CREATE TABLE Albergo(
id INT PRIMARY KEY AUTO_INCREMENT,
numero_camere INT NOT NULL,
costo DOUBLE NOT NULL
);
CREATE TABLE Persona(
cf CHAR(16) PRIMARY KEY,
nome VARCHAR NOT NULL,
cognome VARCHAR NOT NULL
);
CREATE TABLE Prenotazione(
cf CHAR(16) REFERENCES Persona(cf),
numero_camera INT NOT NULL
data_inizio DATE NOT NULL,
numero_notti INT NOT NULL,
PRIMARY KEY(cf, numero_camera, data_inizio)
);
Interrogazioni SQL
- Numero delle camere libere per una struttura in determinato periodo
- Per un periodo le strutture con almeno una camera disponibile
- Tutte le strutture sold out per un determinato giorno
- Tutte le strutture con prenotazioni totali per almeno 1000 euro