Anteprima
Vedrai una selezione di 7 pagine su 27
Relazione SFT Pag. 1 Relazione SFT Pag. 2
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Relazione SFT Pag. 6
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Relazione SFT Pag. 11
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Relazione SFT Pag. 16
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Relazione SFT Pag. 21
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Relazione SFT Pag. 26
1 su 27
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Progettazione concettuale

La progettazione concettuale ci permette di rappresentare il nostro sistema mediante un insieme di concetti e relazioni tra concetti.

Diagramma Entità-Relazione

Dizionario delle entità

Descriviamo adesso le entità che sono presenti nello schema E/R.

Entità Descrizione Attributi Identificatori
SFT_TRENI Rappresenta il treno id, richiesta_id, carrozze, locomotore, nome_treno id

Utente registrato

  1. Login
  2. Accede ad area privata
  3. Controlla prenotazioni
  4. Modifica data prenotazioni
  5. Modifica posto a sedere
  6. Ricerca una soluzione di viaggio
  7. Paga la soluzione di viaggio
  8. Visita sito internet e accede a info storiche e turistiche

Utente non registrato (visitatore)

  1. Visita sito internet e accede a info storiche e turistiche
  2. Ricerca una soluzione di viaggio
essere prenotato dai locomotiva_idclienti fino alla sua id_partenzacapacità. Può essere id_destinazionespeciale (extra) o ordinario data_partenzaorario_partenzadata_arrivoorario_arrivocancellatoSFT_LOCOMOTIVE Questa entità è necessaria id idper rappresentare la nomelocomotiva necessaria al descrizionetreno. Esistono diverse velocita_massimatipologie di locomotive, alcune con posti a sedereSFT_CARROZZE Necessaria a id idrappresentare le carrozze nomeche costituiscono il treno. descrizioneOgnuna di esse ha una capacita_postipeculiare capacità in posti tipoa sedere, classe di viaggio e descrizioneSFT_RICHIESTA_TRENI_E La necessità di id idXTRA contraddistinguere la fase id_utenteiniziale di workflow di stazione_partenzarichiesta del treno ci ha stazione_destinazioneportato a prevedere ne data_partenzaquesta entità. data_richiestaRappresenta l’istanza di prodrichiesta di un nuovo treno straordinario. E’

richiestodall’amministrazione econvalidato dall’esercizioSFT attraverso una fasesuccessiva diprogrammazione etrasformazioni di una tuplanella tabella treni.

SFT_POSTI Attraverso questa entità id_prenotazione id_prenotaziovengono mappati e id_carrozza ne,modellizzati le occupazioni id_posto id_carrozza,dei posti a sedere in una id_postodeterminata carrozza aseguito di unaprenotazione.

SFT_UTENTI E’ l’utente che interagisce id idcon la web app SFT. Esso nomepuò avere diversi ruoli cognome(utente, amministrazione emailed esercizio). Risulta avere usernamea corredo diverse passwordinformazioni personali e ruolouna password crittografata

SFT_PRENOTAZIONI Questa entità rappresenta id idla prenotazione di un titolo datadi viaggio. Essa dettaglia id_trenopartenza, destinazione, id_utenteorari, costi e codice id_partenzaunivoco transazione id_destinazionefinanziaria effettuata a data_partenzaseguito del pagamento.


<p>orario_partenza</p>
<p>data_arrivo</p>
<p>orario_arrivo</p>
<p>costo_transazione</p>

<h2>SFT_STAZIONI</h2>
<p>Attraverso questa entità di id iddettaglia meglio il nomeconcetto di stazione posizione_kmattraverso una capolineadenominazione e anche laposizione lungo la lineaespressa in chilometri perpoter calcolare i tempi dipercorrenza</p>

<h2>SFT_TRAFFICO</h2>
<p>Con questa entità si id_tratta id_tratta,mappano li data data,attraversamenti dei treni ora_partenza ora_partenzanelle varie tratte e quindi ora_arrivotracciando l’occupazione id_trenodelle stesse e delmateriale rotabile.</p>

<h2>SFT_TRATTE</h2>
<p>Con questa entità vengono id idcensite tutte le tratte stazione_partenza(intese come i percorsi che stazione_arrivovanno da una stazione a percorrenzaquella successiva) con itempi di percorrenza a50Kmh.</p>

<h2>Dizionario delle relazioni</h2>
<p>Procediamo descrivendo le relazioni.</p>

<h3>Relazione PRENOTA</h3>
<p>Collega l’entità SFT_UTENTI con l’entità SFT_PRENOTAZIONI (1,1) //SFT_PRENOTAZIONI.</p>

SFT_USERS (0,N)RICHIEDE Collega l'entità SFT_RICHIESTA_TRENI_EXTR //SFT_RICHIESTA_TRENI_EXTRA con l'entità A (1,1)SFT_UTENTI

SFT_USERS (0,N)TRANSITA Collega l'entità //SFT_RICHIESTA_TRENI_EXTRA con l'entità SFT_RICHIESTA_TRENI_EXTRSFT_STAZIONI A (N,1)SFT_STAZIONI(1,N)CONDUCE Collega l'entità SFT_PRENOTAZIONI con SFT_PRENOTAZIONI (N,1) //l'entità SFT_STAZIONI

SFT_STAZIONI (1,N)OCCUPA Collega l'entità SFT_PRENOTAZIONI con SFT_PRENOTAZIONI (1,N) //l'entità SFT_POSTI

SFT_POSTI (0,N)USUFRUIS Collega l'entità SFT_PRENOTAZIONI con SFT_PRENOTAZIONI (1,1) //CE l'entità SFT_TRENI

SFT_TRENI (0,N)UTILIZZA Collega l'entità SFT_TRENI con l'entità SFT_TRENI (1,1) //SFT_LOCOMOTIVE

SFT_LOCOMOTIVE (0,N)SERVE Collega l'entità SFT_TRENI con l'entità SFT_TRENI (N,1) //SFT_STAZIONI

SFT_STAZIONI (1,N)PRESENTI_ Collega

l'entità SFT_POSTI con l'entità SFT_POSTI (1,1)

IN SFT_CARROZZE SFT_CARROZZE (1,N)

COMPONE Collega l'entità SFT_TRENI con l'entità SFT_TRENI (N,N)

SFT_CARROZZE SFT_CARROZZE (N,N)

REL Collega l'entità SFT_TRAFFICO con SFT_TRAFFICO (1,1)

SFT_TRATTE SFT_TRATTE (0,N)

PERCORRE Collega l'entità SFR_TRAFFICO con SFT_TRAFFICO (1,1)

SFT_TRENI SFT_TRENI(1,N)

Dizionario dei vincoli

Descriviamo i vincoli.

Vincol Regolao

V1 Un utente deve registrarsi se vuole prenotare/acquistare un titolo di viaggio

V2 Un utente non può controllare i propri dati se non accede all'area riservata.

V3 Non è possibile acquistare un biglietto se i posti nel treno sono tutti riservati

V4 Solo utenti con profilo "amministrazione" possono cancellare i treni senza prenotazioni

V5 Solo utenti con profilo "amministrazione" possono accedere ai dati sullo stato di occupazione treni

V6 Solo utenti con profilo

“esercizio” possono comporre e programmare i treniV7

Solo utenti con profilo “esercizio” possono convalidare richieste di treni extraV8

Solo gli utenti registrati possono modificare i loro titoli di viaggio (stessa data, diversoorario oppure cambio posto a sedere)

PROGETTAZIONE LOGICA

Ristrutturazione del modello E/R

Prevede sei trasformazioni da apportare al modello E/R per renderlo compatibile con ilmodello logico, procediamo con la descrizione delle singole operazioni da compiere:

Analisi delle ridondanze

In questo caso, non essendo presente alcuna ridondanza, non dobbiamo apportarealcuna modifica al modello E/R.

Eliminazione delle generalizzazioni

Nel nostro caso non sono presenti generalizzazioni, dunque non è necessarioapportare modifiche.

Partizionamento o accorpamento dei concetti

Nello schema E/R non occorre effettuare partizionamenti o accorpamenti delle entità.

Eliminazione degli attributi multivalore

Nel modello logico sussiste

l'impossibilità di avere attributi multivalore, quindi, andremo ad eliminare gli attributi di questo tipo presenti per sostituirli con un'entità apposita.

Eliminazione degli attributi composti

Nel modello logico sussiste l'impossibilità di avere attributi composti, quindi, andremo ad eliminare gli attributi di questo tipo presenti per sostituirli con attributi semplici.

Scelta degli identificatori principali

Nel passaggio al modello relazionale è importante e necessaria la scelta degli identificatori principali.

Alla fine del processo si è deciso di modificare questa sezione dello schema E/R per meglio rappresentare la gestione di un treno attraverso il concetto di convoglio:

Traduzione verso il modello logico

Adesso dobbiamo esaminare la traduzione verso il modello logico, che nel nostro caso è un modello relazionale, andiamo quindi a tradurre tutte le relazioni.

Relazione PRENOTA (0,N) e (1,1):

Questa è un'associazione uno a molti,

quindi applicheremo le dovute regole e lo schema relazionale che ne deriva sarà: <table> <tr> <th>id</th> <th>nome</th> <th>cognome</th> <th>email</th> <th>username</th> <th>password</th> <th>ruolo</th> </tr> <tr> <td>id</td> <td>data</td> <td>id_treno</td> <td>id_utente</td> <td>id_partenza</td> <td>id_destinazione</td> <td>data_partenza</td> <td>orario_partenza</td> <td>data_arrivo</td> <td>orario_arrivo</td> <td>costo</td> <td>n_transazione</td> </tr> </table> Possiamo quindi definire adesso il vincolo d'integrità referenziale che coinvolge id_utente, l'attributo della relazione sft_prenotazione con l'attributo di sft_utenti. Relazione RICHIEDE (0,N) e (1,1): Questa è un'associazione uno a molti, quindi applicheremo le dovute regole e lo schema relazionale che ne deriva sarà: <table> <tr> <th>id</th> <th>nome</th> <th>cognome</th> <th>email</th> <th>username</th> <th>password</th> <th>ruolo</th> </tr> <tr> <td>id</td> <td>id_utente</td> <td>stazione_partenza</td> <td>id_destinazione</td> <td>data_partenza</td> <td>data_richiesta</td> <td>prod</td> </tr> </table> Possiamo quindi definire adesso il vincolo d'integrità referenziale che coinvolge id_utente, l'attributo della

relazione sft_richiesta_treni_extra con l'attributo disft_utenti.

Relazione UTILIZZA (0,N) e (1,1):

Questa è un'associazione uno a molti, quindi applicheremo le dovute regole e lo schema relazionale che ne deriva sarà:

(id, richiesta_id, nome_treno, locomotiva_id, id_partenza, sft_treniid_destinazione, data_partenza, orario_partenza, data_arrivo, orario_arrivo, cancellato)

(id, sft_locomotive nome, descrizione, velocita_massima)

Possiamo quindi definire adesso il vincolo d'integrità referenziale che coinvolge locomotiva_id id l'attributo della relazione sft_treni con l'attributo di sft_locomotive.

Relazione USUFRUISCE (0,N) e (1,1):

Questa è un'associazione uno a molti, quindi applicheremo le dovute regole e lo schema relazionale che ne deriva sarà:

(id, richiesta_id, nome_treno, locomotiva_id, id_partenza, sft_treniid_destinazione, data_partenza, orario_partenza, data_arrivo, orario_arrivo, cancellato)

(id, data, id_treno, id_utente,

uindi ogni prenotazione può essere associata a uno e solo un treno, mentre ogni treno può essere associato a una o più prenotazioni. Per definire il vincolo d'integrità referenziale, possiamo utilizzare il tag HTML <table> per creare una tabella e i tag <th> per definire le intestazioni delle colonne. Utilizzeremo anche i tag <tr> per definire le righe della tabella e i tag <td> per inserire i valori. Ecco come potrebbe essere formattato il testo utilizzando i tag HTML:
id_partenza id_destinazione data_partenza orario_partenza data_arrivo orario_arrivo costo n_transazione
b. sft_prenotazioni id_treno sft_treni
In questo modo abbiamo creato una tabella con le intestazioni delle colonne e inserito i valori corrispondenti.
Dettagli
A.A. 2023-2024
27 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher wordpressAdmin80 di informazioni apprese con la frequenza delle lezioni di Basi di dati e conoscenza e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università telematica Guglielmo Marconi di Roma o del prof Regoli Luca.