1 / 38

Informatica

Informatica. Introduzione alle basi di dati Lezione 10 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006. La progettazione logica. Obiettivo:

colin
Télécharger la présentation

Informatica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informatica Introduzione alle basi di dati Lezione 10 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006

  2. La progettazione logica • Obiettivo: • Costruire uno schema logico in grado di descrivere le informazioni contenute nello schema Entità-Relazione prodotto nella fase di progettazione concettuale • Prima di passare allo schema logico, lo schema Entità-Relazione va ristrutturato: • Per semplificare la traduzione (non tutti i costrutti del modello E-R hanno una traduzione naturale nei modelli logici) • Per ottimizzare il progetto (la progettazione logica deve tener conto delle prestazioni del sistema)

  3. Analisi delle prestazioni su schemi E-R • Indici di prestazioni: le prestazioni di una base di dati non sono valutabili in maniera precisa dalla progettazione logica • Dipendenti anche da parametri fisici • Due parametri che regolano le prestazioni dei sistemi software: • Costo di una operazione: in termini di numero di occorrenze di entità e associazione che mediamente vanno visitate per rispondere a una operazione • Occupazione di memoria: lo spazio di memoria necessario per memorizzare i dati descritti dallo schema

  4. Analisi delle prestazioni su schemi E-R • Per studiare questi parametri, dobbiamo conoscere: • Volume dei dati: • Numero di occorrenze di ogni entità e associazione dello schema • Dimensioni di ciascun attributo (di entità o associazione) • Caratteristiche delle operazioni: tipo dell’operazione, frequenza, dati coinvolti

  5. Analisi delle prestazioni su schemi E-R Numero abitanti • Per esempio: • Tavola dei volumi: • Entità e associazioni con il volume (numero di occorrenze) previsto Residenza Città Persona (1,N) (1,1)

  6. Analisi delle prestazioni su schemi E-R • Tavola delle operazioni: • Per ogni operazione, la frequenza prevista (e un simbolo per il tipo, interattiva (I) o batch (B)) • Per esempio: • Op. 1: memorizza una nuova persona con la relativa città di residenza • Op. 2: stampa tutti i dati di una città (incl. num. abitanti)

  7. Analisi delle prestazioni su schemi E-R • Tavola degli accessi: • Per una operazione, il numero e il tipo accessi (di lettura (L) o scrittura (S)) necessario per svolgere l’operazione • Per esempio: Op. 1 Op. 2

  8. Ristrutturazione di schemi E-R • Una serie di passi da effettuare in sequenza: • Analisi delle ridondanze (eliminare o mantenere eventuali ridondanze presente nello schema E-R) • Eliminazione delle generalizzazioni • Partizionamento/accorpamento di entità e associazioni (partizionare concetti in più concetti, o accorpare concetti separati in un unico concetto) • Scelta degli identificatori primari (per quelle entità che ne hanno più di uno)

  9. Analisi delle ridondanze • Ridondanza: presenza di un dato che può essere derivati da altri dati • Per esempio: • Un tipo di ridondanza: un attributo (Numero abitanti) è derivabile da una operazione di conteggio di occorrenze • Numero abitanti per una città = numero di occorrenza della associazione Residenza a cui tale città partecipa • Ci sono altri tipi di ridondanze in esempi diversi (pagine 261 e 262 di Atzeni et al.) Numero abitanti Residenza Città Persona (1,N) (1,1)

  10. Analisi delle ridondanze • La presenza di ridondanze (dati derivati) in uno schema E-R presente un vantaggio e alcuni svantaggi • Vantaggio: riduzione degli accessi necessari • Svantaggi: • Maggiore occupazione di memoria (un costo spesso trascurabile) • La necessità di effettuare operazioni aggiuntive per mantenere il dato derivato aggiornato • La decisione di mantenere o eliminare una ridondanza va presa confrontando costo delle operazioni che coinvolgono il dato ridondante e relativa occupazione in memoria nei casi di presenza o assenza della ridondanza

  11. Analisi delle ridondanze Numero abitanti • Per esempio: • Presenza del dato ridondante (attributo Numero abitanti): • Assumiamo che Numero abitanti richiede 4 byte • Numero di città = 200, quindi il dato ridondante richiede 800 byte Residenza Città Persona (1,N) (1,1)

  12. Presenza del dato ridondante (attributo Numero abitanti): Op. 1 (memorizza una nuova persona con la relativa città di residenza): dalla sua tavola degli accessi, op. 1 richiede: Un accesso in scritta a Persona (memorizzare la nuova persona) Un accesso in scrittura a Residenza (per memorizzare una nuova coppia persona-città) Un accesso in lettura a Città (per cercare la città di interesse) Un accesso in scrittura a Città (per incrementare di uno il numero di abitanti di quella città) Analisi delle ridondanze

  13. Analisi delle ridondanze • Assenza del dato ridondante (attributo Numero abitanti viene tolto): • Op. 1: una nuova tavola degli accessi: • Un accesso in scritta a Persona (memorizzare la nuova persona) • Un accesso in scrittura a Residenza (per memorizzare una nuova coppia persona-città) • Conclusione: per op. 1, è meglio l’assenza del dato ridondante (meno accessi, 800 byte risparmiato)

  14. Analisi delle ridondanze • La situazione per op. 2 (stampa tutti i dati di una città, incluso numero abitanti) è diversa • In presenza di ridondanza: • In assenza di ridondanza: • In media, 5000 accessi in lettura a Residenza (5000 è ottenuto dividendo il numero di persone (1000000) per il numero di città (200))

  15. Analisi delle ridondanze • Riassunto: • Op. 1: meglio senza ridondanza • Op. 2: meglio con ridondanza • Un analisi più precisa può tenere conto: • Il costo di ogni operazione di lettura e scrittura (scrittura è più costoso) • La frequenza delle operazioni (nella tabella delle operazioni) • Se l’obiettivo della eliminazione delle ridondanze è di risparmiare memoria o di ridurre il numero di accessi ai dati

  16. Eliminazione delle generalizzazioni • I modelli logici tradizionali (per esempio, il modello relazionale) non consentono di rappresentare direttamente una generalizzazione • È necessario trasformare le generalizzazioni in entità e/o associazioni • Tre metodi: • Accorpamento delle figlie della generalizzazione nel padre • Accorpamento del padre della generalizzazione nelle figlie • Sostituzione della generalizzazione con associazioni

  17. Eliminazione delle generalizzazioni • Per esempio: A02 A01 R1 E3 E0 A21 A11 R2 E1 E4 E2 (X,Y)

  18. Eliminazione delle generalizzazioni • Accorpamento delle figlie della generalizzazione nel padre: A02 A01 A21 A11 (0,1) (0,1) R1 E3 E0 ATIPO R2 E4 (0,Y)

  19. Eliminazione delle generalizzazioni • Accorpamento del padre della generalizzazione nelle figlie: R1 R1 E3 A02 A01 A21 A11 A02 A01 R2 E1 E4 E2 (X,Y)

  20. Eliminazione delle generalizzazioni • Sostituzione della generalizzazione con associazioni: A02 A01 R1 E3 E0 (0,1) (0,1) RG1 RG2 (1,1) (1,1) A21 A11 R2 E1 E4 E2

  21. Partizionamento/accorpamento di concetti • Partizionare o accorpare entità e/o associazioni per ottenere una maggior efficienza delle operazioni (idea: ridurre gli accessi) • Partizionamento di entità • Eliminazione di attributi multivalore • Accorpamento di entità • Altri tipi di partizionamento/accorpamento

  22. Partizionamento/accorpamento di concetti Prima • Partizionamenti di entità • Per esempio: Codice Livello Cognome Impiegato Stipendio Indirizzo Ritenute Data nascita Dopo Codice Cognome Livello Dati impiegato Dati lavorativi Dati anagrafici (1,1) (1,1) Indirizzo Stipendio Data nascita Ritenute

  23. Partizionamento/accorpamento di concetti Prima • Partizionamenti di entità • Per esempio: Codice Livello Cognome Impiegato Stipendio Indirizzo Conviene se le operazioni che coinvolgono frequentemente l’entità Impiegato richiedono solo informazioni anagrafici o solo informazione relative alla sua retribuzione Ritenute Data nascita Dopo Codice Cognome Livello Dati impiegato Dati lavorativi Dati anagrafici (1,1) (1,1) Indirizzo Stipendio Data nascita Ritenute

  24. Scelta degli identificatori principali • Identificatori principali: cioè, le chiavi primarie • Criteri per la scelta degli identificatori principali: • Gli attributi con valori nulli non possono essere usati come identificatori principali • È meglio scegliere un identificatore composto di pochi attributi • È meglio scegliere un identificatore interno (composto di pochi attributi) • È meglio scegliere un identificatore che viene utilizzato da molte operazioni

  25. Traduzione verso il modello relazione • Schema E-R  uno schema logico equivalente • Entità e associazioni molti a molti • Lo schema relazione corrispondente: Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Matricola, Codice, DataInizio) • Due vincoli di integrità: tra Matricola e Codice di Partecipazione e Matricola e Codice di Impiegato e Progetto Nome Cognome Partecipazione Progetto Budget Impiegato Stipendio (0,N) (0,N) Codice Data inizio Matricola

  26. Traduzione verso il modello relazione • Entità e associazioni molti a molti • Per rendere più comprensibili il significato dello schema è conveniente effettuare ridenominazioni • Per esempio: in Partecipazione, Matricola  Impiegato, Codice  Progetto Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Impiegato, Progetto, DataInizio)

  27. Traduzione verso il modello relazione • Entità e associazioni molti a molti Fornitore(PartitaIVA, NomeDitta) Dipartimento(Nome, Telefono) Prodotto(Codice, Genere) Fornitura(Fornitore, Prodotto, Dipartimento, Quantità) Quantità Genere Nome ditta Fornitore Prodotto Fornitore (1,N) (0,N) Codice (1,N) Partita IVA Nome Telefono Dipartimento

  28. Traduzione verso il modello relazione • Entità e associazioni molti a molti Fornitore(PartitaIVA, NomeDitta) Dipartimento(Nome, Telefono) Prodotto(Codice, Genere), Fornitura(Fornitore, Prodotto, Dipartimento, Quantità) • Tre vincoli di integrità: ognuno da un attributo della relazione Fornitura (mostrato dalle frecce) Quantità Genere Nome ditta Fornitore Prodotto Fornitore (1,N) (0,N) Codice (1,N) Partita IVA Nome Telefono Dipartimento

  29. Traduzione verso il modello relazione • Associazioni uno a molti • Uno schema relazione corrispondente: Giocatore(Cognome, DataNascita, Ruolo) Squadra(Nome, Città, Colori) Contratto(Giocatore, DataNascitaGiocatore, NomeSquadra, Ingaggio) Città Cognome Contratto Squadra Colori Giocatore Data nascita (0,N) (1,1) Nome Ingaggio Ruolo

  30. Traduzione verso il modello relazione • Associazioni uno a molti • Un altro schema relazione corrispondente: Giocatore(Cognome, DataNascita, Ruolo, NomeSquadra, Ingaggio) Squadra(Nome, Città, Colori) • Un vincolo di integrità relazionale: tra NomeSquadra della relazione Giocatore e Nome della relazione Squadra Città Cognome Contratto Squadra Colori Giocatore Data nascita (0,N) (1,1) Nome Ingaggio Ruolo

  31. Traduzione verso il modello relazione • Associazioni uno a uno • Due possibilità simmetriche e ugualmente valide: Direttore(Codice, Cognome, Stipendio, DipartimentoDiretto, InizioDirezione) Dipartimento(Nome, Telefono, Sede) Direttore(Codice, Cognome, Stipendio) Dipartimento(Nome, Telefono, Sede, Direttore, InizioDirezione) Telefono Cognome Direzione Sede Dipartimento Direttore Stipendio (1,1) (1,1) Nome Data inizio Codice

  32. Traduzione verso il modello relazione • Associazioni uno a uno • Due possibilità simmetriche e ugualmente valide: Direttore(Codice, Cognome, Stipendio, DipartimentoDiretto, InizioDirezione) Dipartimento(Nome, Telefono, Sede) Direttore(Codice, Cognome, Stipendio) Dipartimento(Nome, Telefono, Sede, Direttore, InizioDirezione) Telefono Cognome Direzione Sede Dipartimento Direttore Stipendio (1,1) (1,1) Nome Data inizio Codice Vincoli di integrità referenziale

  33. Traduzione verso il modello relazione • Associazioni uno a uno • Una terza possibilità: rappresentare tutti i concetti in una singola relazione • Svantaggi: nello schema E-R le due entità sono separate per una ragione (o più ragioni); meglio tenere le entità separate anche nel modello logico

  34. Traduzione verso il modello relazione • Associazioni uno a uno • Uno schema relazionale: Impiegato(Codice, Cognome, Stipendio) Dipartimento(Nome, Telefono, Sede, Direttore, InizioDirezione) • Vincolo di integrità referenziale: tra Direttore della relazione Dipartimento e Codice della relazione Impiegato • Preferibile all’alternativa in cui l’associazione Direzione viene rappresentata nella relazione Impiegato: per il nome del dipartimento diretto, potrebbero essere valori nulli Telefono Cognome Direzione Sede Dipartimento Impiegato Stipendio (1,1) (0,1) Nome Data inizio Codice

  35. Traduzione verso il modello relazione • Associazioni uno a uno • Tre opzioni: • Combinare l’entità Impiegato e l’associazione Direzione in una relazione, lasciare l’entità Dipartimento separata • Combinare l’entità Dipartimento e l’associazione Direzione in una relazione, lasciare l’entità Impiegato separata … Telefono Cognome Direzione Sede Dipartimento Impiegato Stipendio (0,1) (0,1) Nome Data inizio Codice

  36. Traduzione verso il modello relazione • Associazioni uno a uno • Tre opzioni: … • Lasciare l’entità Impiegato, l’associazione Direzione, e l’entità Dipartimento separate: Impiegato(Codice, Cognome, Stipendio) Dipartimento(Nome, Telefono, Sede) Direzione(Direttore, Dipartimento, DataInizioDirezione) Telefono Cognome Direzione Sede Dipartimento Impiegato Stipendio (0,1) (0,1) Nome Data inizio Codice

  37. Traduzione verso il modello relazione • Associazioni uno a uno • Tre opzioni: … • Lasciare l’entità Impiegato, l’associazione Direzione, e l’entità Dipartimento separate: Impiegato(Codice, Cognome, Stipendio) Dipartimento(Nome, Telefono, Sede) Direzione(Direttore, Dipartimento, DataInizioDirezione) Telefono Cognome Direzione Sede Dipartimento Impiegato Stipendio (0,1) (0,1) Nome Data inizio Codice Vincoli di integrità referenziale

  38. Traduzione verso il modello relazione • Associazioni uno a uno • Tre opzioni: … • Lasciare l’entità Impiegato, l’associazione Direzione, e l’entità Dipartimento separate: Impiegato(Codice, Cognome, Stipendio) Dipartimento(Nome, Telefono, Sede) Direzione(Direttore, Dipartimento, DataInizioDirezione) Telefono Cognome Direzione Sede Dipartimento Impiegato Stipendio (0,1) (0,1) Nome Data inizio Codice Vantaggio rispetto le opzioni a) e b): non ci sono i valori nulli

More Related