Analisi dei requisiti

Riscrivere il testo in input

  1. Scegliere il corretto livello di astrazione, scegliendo termini normali

  2. Standardizzare la struttura delle frasi

  3. Linearizzare le frasi, suddividendo quelle articolate.

  4. Individuare omonimi e sinonimi, unificando i termini

  5. Rendere esplicito il riferimento fra termini

  6. Riorganizzare le frasi per concetti

    1. Frasi di carattere generale

    2. Frasi relative a feature N

  7. Scrivere SOLO le specifiche sui dati, non quelle sulle operazioni

Costruire glossario di termini

Termine Descrizione Sinonimi Collegamenti
Partecipante Un partecipante ai corsi, può essere dipendente o libero Studente Corso, Società

Riscrivere le frasi sulle operazioni/funzioni, con frequenza delle operazioni

Il sistema deve essere in grado di gestire, tra le altre, le seguenti operazioni:

  1. visualizzare l'insieme delle fografie per un certo tipo di soggetto e la loro dislocazione fisica (50 volte al gg)

Progettazione Concettuale

Strategia Ibrida:

  1. partendo dalle specifiche si rappresentano tutte le informazioni in uno SCHEMA SCHELETRO iniziale usando pochi concetti astratti.

  2. Successivamente ogni entità e/relazione dello schema è RAFFINATA.

    1. Vengono incluse solo le entità, non le relazioni

    2. Scrivere separatemente valori ammessi e vincoli

  3. i diversi schemi ottenuti sono INTEGRATI, giungendo allo schema E-R finale, più dettagliato di quello iniziale.

Includere le scelte che si sono effettuate, la lista degli enum e i vincoli di integrità (sotto forma di asserzione, ovvero deve/non deve).

Se è troppo complicato aggiungere gli attributi nello schema si possono non disegnare e aggiungerli in un dizionario dei dati

Enetità Descrizione Attributi Identificatore
Impiegato Un impiegato che lavora Codice, Cognome, Stipendio Codice

Progettazione logica

Determinazione carico applicativo

Tavola dei volumi

Concetto Tipo Volume
Sede E 10

Tavola delle operazioni

Operazione Tipo Frequenza
Op.1 I 50 al giorno

Tavola degli accessi

Costo di una lettura = 1, costo di una scrittura = 2

Per ogni operazione spiegare il perché della stima e costruire una tavola degli accessi

Operazione 1

Concetto Costrutto Accessi Tipo
Impiegato Entità 1 L

Operazione N…

Concetto Costrutto Accessi Tipo
Afferenza Relazione 1 L

Analisi delle ridondanze

Forme di ridondanza da eliminare:

  1. attributi derivabili per ogni occorrenza, sia da altri attributi della stessa entità o associazione, sia da attributi di altre entità o associazioni, spesso tramite funzioni di aggregazione

  2. Associazioni derivabili dalla composizione di altre associazioni, ovvero presenza di cicli (nota: la presenza di cicli non garantisce la presenza di una ridondanza).

La decisione fra mantenere o eliminare una ridondanza va presa confrontando:

  1. Il costo di esecuzione delle operazioni, con/senza ridondanza

    1. Per ogni operazione:

      1. Prendi la tavola degli accessi con/senza ridondanza ed esegui la somma degli accessi

      2. Moltiplica la somma del costo di accesso per la frequenza giornaliera (che troverai nella tavola delle operazioni)

    2. Somma tutto

sommatoria, per ogni operazione, di: (somma tavola accessi) *frequenza giornaliera

  1. Lo spazio occupato dal dato ridondante (non importante da fare)

Eliminazione delle generalizzazioni

  1. Accorpamento delle figlie nel genitore

    1. Le entità figlie sono eliminate e le loro proprietà aggiunte al padre. Viene inoltre aggiunto un attributo per distinguere il tipo di occorrenza di padre.

    2. Accorpamento del padre nelle figlie: Si elimina il padre, i suoi attributi vengono aggiunti alle figlie, le relazioni vengono divise in due. Si può fare solo se totale.

    3. Sostituzione della generalizzazione con associazioni (relazioni 0,1 1,1 (parziale) 1,1,1,1 (totale)), con chiave esterna che lega figlie alla relazione. Conviene farlo se gli accessi alle entità figlie sono separatai dagli accessi del padre.

Partizionamento/accorpamento di entità e associazioni

Partizionamento verticale di entità:

si suddivida un’entità in due entità legate da una relazione.

Partizionamento orizzontale di entità

Ripartizione di Impiegato in Analista e Venditore (sulle occorrenze di un’entità e non sugli attributi).

Eliminazione di attributi multivalore

Attributi che possono avere più istanze, tipo una agenzia che ha più numeri di telefono

Accorpamento di entità

Scelta degli identificatori primari

L’identificatore primario di una relazione:

  1. Non deve avere valori nulli

  2. Deve essere semplice

  3. Deve essere usato nelle operazioni più frequenti

Traduzione verso il modello logico

Le entità diventano relazioni

Le associazioni diventano relazioni

Impiegato(Matricola, Cognome, Stipendio)

Progetto(Codice, Nome, Budget)

Partecipazione(Matricola, Codice, DataInizio)

Se c’è una relazione uno-a-molto, prestare attenzione alla chiave, alcuni attributi potrebbero essere non necessari

Se due relazioni hanno la stessa chiave, si possono fondere

Indicare chiavi, possibili valori nulli* e vincoli di integrità referenziale con le frecce

Normalizzazione

Una dipendenza funzionale è un attributo il cui valore dipende sempre da un altro attributo, ad esempio “tipolavoro” determina “stipendio”. Questa è una generalizzazione della definizione di vincolo di chiave.

Le anomalie si verificano in corrispondenza delle dipendenze funzionali che non derivano dalle chiavi

Si tratta di Dipendenza Funzionale “banale” (sempre soddisfatta) • Y → A è non banale se A non appartiene a Y • Y → Z è non banale se nessun attributo in Z appartiene a Y

Una relazione r è in forma normale di Boyce e Codd (BCNF) se, per ogni dipendenza funzionale (“non banale”) X◊Y “definita” su r, X è (super)chiave.

Def. Una relazione r è in terza forma normale (3NF) se, per ogni dipendenza funzionale (“non banale”) X◊Y definita su r, almeno una delle seguenti condizioni è verificata: • X contiene una chiave K di r • ogni attributo in Y è contenuto in almeno una chiave di r.

Di solito si decompone una relazione, ma si può anche introdurre un altro attributo