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

  1. Numero delle camere libere per una struttura in determinato periodo
  1. Per un periodo le strutture con almeno una camera disponibile
  1. Tutte le strutture sold out per un determinato giorno
  1. Tutte le strutture con prenotazioni totali per almeno 1000 euro