Vi metto tutto ciò che è indispensabile per capirci qualcosa sulle basi di dati con i lucidi del libro usato nel corso (“Basi di Dati: Modelli e linguaggi di interrogazione”) e alcuni applicativi

Tutorial Php e Mysql

Lucidi (Del libro “Basi di Dati: Modelli e linguaggi di interrogazione”)

Normalizzazione ( appunti sulle forme normali, slides del corso)

Progettazione Logica (progettazione logica di database )

La progettazione logica implica la ristrutturazione dello schema E-R ( Entity Relationship ).Lo schema viene semplificato e ottimizzato.Lo scopo è quello di fare uno schema logico che descriva in maniera completa e corretta le informazioni dello schema E-R.

AnalisiLo schema E-R può essere modificato per ottimizzare gli indici di prestazione del progetto.

Analisi dele Prestazioni

  • costo di un operazione( numero di occorrenze di entità e associazioni che vengono visitate in media per un’operazione sulla base dati)
  • occupazione di memoria( operazione necesaria per memorizzare i dati dello schema )
  • volume dei dati( numero di occorrenze di ogni entità e asociazione dello schema e dimensione di ciascun attributo )
  • caratteristiche delle operazioni( tipo di operazione, ferquenza, dati coinvolti )

Per descrivere al meglio queste aspetti si utilizzano:

  • Tavola dei volomi : concetti dello schema e volume previsto a regime
  • Tavole delle operazioni : per ogni operazione la frequenza prevista
  • Tavola degli accessi : Relativa per ogni operazione

Ristrutturazione Schemi E-R

La ristrutturazione si suddivide in una serie di passi da fare in sequenza :

  • Analisi delle ridondanze: si decide se eliminare o no ridondanze dello schema
  • Eliminazione delle generalizzazioni: tutte le generalizzazioni dello schema vanno sostituite da altri costrutti
  • Partizionamento/accorpamento entità e associazioni : si decide se partizionare o accorpare conceti dello schema
  • Scelta degli identificatori primari: scelta delle chiavi e delle superchiavi
1) ANALISI DELLE RIDONDANZE

Si analizzano le varie ridondanze e si guarda in base al costo delle varie operazioni se è conveniente o meno mantenerle.

2) ELIMINAZIONE DELLE GENERALIZZAZIONI

Si effettua perchè le basi di dati non permettono la rappresentazione di generalizzazioni. Esistono tre tipi di eliminazione:

  • Accormapento delle figlie nel padre: conveniente quando le operazioni non fanno molta distinzione tra occorrenze e attributi
  • Accorpamento del padre nelle figlie : possibile solo se la generalizzazione è totale ( altrimenti alcune occorrenze del padre non verrebbero rappresentate ). Conveniente quando le operazioni si riferiscono solo a una specifica figlia.
  • Sostituzione delle generalizzazioni con associazioni : conveniente quando la generalizzazione non è totale e ci sono operazioni solo su una delle figlie o sul padre. Le figlie vengono identificate esternamente dal padre.

E’ possibile anche effettuare ristrutturazioni che sonocombinazioni delle tre alternative sopra viste.

3) PARTIZIONAMENTO/ACCORPAMENTO DEI CONCETTI

Entità e associazioni di uno schema E-R possono essere partizionati o accorpati per garantire efficienza nelle operazioni.

  • Partizionamento di entità : 1) decomposizione verticale si suddivide il concetto operando su i suoi attributo 2) decomposizione orizzontale si opera eulle occorrenze
  • Eliminazione attributi multivalore: necessaria perchè il modello relazionale non permette di rappresentare in maniera diretta questo tipo di attributo
  • Accorpamento di entità : in genere su associazioni uno a uno, effetto collaterale possibile presenza di valori nulli.
4)SCELTA DEGLI IDENTIFICATORI PRINCIPALI

La scelta degli identificatori principali è essenziale.I criteri di scelta sono:

  • Gli attributi con valori nulli non possono costituire identificatori principali
  • Un identificatore principale composto da uno o pochi attributi è da preferire
  • Un identificatore interno è da preferire ad uno esterno
  • E’ da preferire un identificatore utilizzato da molte operazioni per accedere alle occorrenze di una entità

Se non ci sono identificatori adatti si usa un nuovo attributo che conterrà valori speciali, questo attributo è detto codice

Traduzione verso il modello relazionale

ENTITA’ E ASSOCIAZIONI MOLTI A MOLTI

  • Per ogni entità una relazione con lo stesso nome avente per attributi i medesimi attrbuti dell’entità e per chiave il suo identificatore
  • Per l’associazione una relazione con lo stesso nome avente per attributi gli attributi dell’associazione e gli identificatori dell’entità coinvolte.Tali identificatori formano la chiave della relazione

ASSOCIAZIONI UNO A MOLTI

Se la cardinalità minima di “Giocatore” fosse stata zero allora ci potrebbero essere stati valori nulli in “Nome squadra” e “Ingaggio”. Si potrebbe risolvere il problema con il seguente schema:

Appunti di Basi di Dati

ASSOCIAZIONI UNO A UNO

Schema relazionale ( con partecipazione obbligatoria ) :

E’ possibile rappresentare l’associazione in una qualunque delle relazioni che rappresentano le due entità

DIRETTORE (Codice,Cognome,Stipendio,DipartimentoDiretto,InizioDirezione)
DIPARTIMENTO (Nome,Telefono,Sede)
DIRETTORE (Codice,Cognome,Stipendio)
DIPARTIMENTO (Nome,Telefono,Sede,Direttore,InizioDirezione)

Qualora un’entità avesse partecipazione opzionale (0,1) allora sarebbe preferibile l’associazione nella relazione che rappresenta l’entità con partecipazione obbligatoria (1,1) perché ci potrebbero essere valori nulli per l’entità con partecipazione opzionale.
Se entrambe le entità hanno partecipazione opzionale si prevede relazioni separate.