Demo

Soluzione traccia di Informatica 2016/2017

La traccia di quest'anno richiedeva di implementare un sistema per gestire il cosiddetto Car Sharing (un sistema alla Bla Bla Car per intenderci).

Nella immagine allegata trovate una mia possibile soluzione di schema Entità/Relazioni e di seguito il corrispondente Schema Logico:

soluzione diagramma ER

PASSEGGERO (codice_fiscale (PK), nome, cognome, email, cellulare, num_documento)

AUTISTA (codice_fiscale (PK), nome, cognome, email, cellulare, num_patente, scadenza_patente, targa_auto, modello_auto, marca_auto, url_foto)

VIAGGIO (data_partenza (PK), ora_partenza (PK), codice_fiscale_autista (PK, FK), costo, luogo_partenza, luogo_arrivo, tempo_percorrenza, dettaglio_soste, flag_animali_consentiti, flag_bagagli_consentiti, flag_viaggio_chiuso, num_posti_disponibili)

PASSAGGIO (data_partenza (PK), ora_partenza (PK), codice_fiscale_autista (PK, FK), codice_fiscale_passeggero (PK, FK), codice_prenotazione, feedback_autista, voto_autista, feedback_passeggero, voto_passeggero, flag_passaggio_accettato)

UTENTE (username (PK), password, flag_autista_passeggero, codice_fiscale_autista, codice_fiscale_passeggero)

Di seguito anche le prime 2 query SQL richieste:

QUERY A

SELECT A.nome, A.cognome, A.email, A.cellulare, A.num_patente, A.scadenza_patente, A.targa_auto, A.modello_auto, A.marca_auto, V.costo

FROM VIAGGIO V, AUTISTA A

WHERE A.codice_fiscale=V.codice_fiscale AND

V.data_partenza = ‘23/06/2017’

AND V.luogo_partenza =”COSENZA”

AND V.luogo_arrivo=”IL CAIRO”

AND V. flag_viaggio_chiuso=”N”

ORDER BY V.ora_partenza

 

QUERY B

SELECT V.luogo_partenza, V.luogo_arrivo, V.data_partenza, V.ora_partenza, A.nome, A.cognome, A.targa_auto, A.modello_auto, A.marca_auto

FROM AUTISTA A, VIAGGIO V, PASSAGGIO P

WHERE A.codice_fiscale=V.codice_fiscale_autista

AND V.data_partenza = P.data_partenza

AND V.ora_partenza = P.ora_partenza

AND V.codice_fiscale_autista = P.codice_fiscale_autista

AND P.codice_prenotazione = ”XXXXX”

AND P.flag_passaggio_accettato = ”S”