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:
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”