La progettazione logica Traduzione dal modello Entità-Associazione al modello Anno accademico 2008/2009 Obiettivo: Costruire uno schema logico in grado di descrivere le informazioni contenute nello schema Entità- Associazione 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-A hanno una traduzione naturale nei modelli logici (es. attributi composti, attributi multivalore, generalizzazioni) 2 Ristrutturazione di schemi E-A Una serie di passi da effettuare in sequenza: 1. Eliminazione degli attributi multivalore 2. Eliminazione degli attributi composti 3. 4. Scelta degli identificatori primari (per quelle entità che ne hanno più di uno) Eliminazione degli attributi multivalore Attributo multivalore: attributo con cardinalità massima N Ogni attributo multivalore dà luogo a un associazione Fiscale Fiscale Ha recapito Numero 3 4 Eliminazione degli attributi composti Eliminazione degli attributi composti Ogni attributo composto viene sostituiti con gli attributi componenti Se l attributo composto è multivalore o opzionale, si usa una nuova associazione indirizzo matricola nome cognome via CAP citta via CAP citta matricola nome Fiscale telefono Fiscale Ha recapito Prefisso internazionale Prefisso Numero Prefisso internazion. Prefisso Numero 5 6 1
I modelli logici tradizionali (per esempio, il modello ) non consentono di rappresentare direttamente una generalizzazione È necessario trasformare le generalizzazioni in entità e/o associazioni Tre metodi: 1. Accorpamento del genitore nei figli 2. Accorpamento dei figli nel genitore 3. Sostituzione della generalizzazione con associazioni Corso di Per esempio: di universitario Dottorando Iscritto 7 8 1. Accorpamento del genitore nei figli: Per l ereditarietà, attributi e associazioni del genitore vanno aggiunti a tutti i figli Possibile solo se la generalizzazione è totale ed esclusiva Corso di 1. Accorpamento del genitore nei figli: di Dottorando StudIscritto DottIscritto 9 Per preservare l equivalenza con lo schema originale, bisogna aggiungere il vincolo che ogni università ha almeno uno studente 10 (di o dottorando) 2. Accorpamento dei figli nel genitore: Si aggiunge al genitore un attributo che indichi il tipo dell individuo (a quale entità figlia eventualmente appartiene) Si aggiungono al padre gli attributi e le associazioni dei figli, che diventano opzionali Sempre applicabile, ma comporta la presenza di attributi e associazioni opzionali e l aggiunta di vincoli 11 2. Accorpamento dei figli nel genitore: Corso di Tipo universitario Iscritto Per preservare l equivalenza con lo schema originale, bisogna aggiungere vincoli: Lo studente ha un ufficio solo se è un dottorando, ha corso di solo se è studente di ; deve avere advisor solo se è dottorando 12 2
3. Sostituzione della generalizzazione con associazioni: Si aggiungono nuove associazioni che rappresentazione la generalizzazione I figli partecipano obbligatoriamente all associazione, il genitore opzionalmente 13 Corso di 3. Sostituzione della generalizzazione con associazioni: È stud di di universitario È dottorando Dottorando Iscritto 14 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 da pochi attributi È meglio scegliere un identificatore interno (composto da pochi attributi) Ora vediamo come tradurre uno schema E-A ristrutturato in uno schema equivalente 15 16 matricola nome cognome data_nascita Se l entità ha identificazione esterna, la chiave primaria della relazione viene derivata dagli identificatori delle entità coinvolte nell identificazione esterna Le entità vengono tradotte con una relazione che comprende gli attributi e la cui chiave primaria corrisponde all identificatore dell entità (matricola,nome,cognome,data_nascita) 17 iscritto () (,) 18 3
Se l entità ha identificazione esterna, la chiave primaria della relazione viene derivata dagli identificatori delle entità coinvolte nell identificazione esterna iscritto Vincoli () di integrità referenziale (,) 19 Partecipazione Progetto Schema corrispondente: (,, ) Progetto(,, Budget) Partecipazione(,, DataInizio) Due vincoli di integrità: tra Partecipazione e () e tra Partecipazione e Progetto () Budget 20 Per rendere più comprensibile lo schema è conveniente effettuare ridenominazioni Per esempio: in Partecipazione,, Progetto (,, ) Progetto(,, Budget) Partecipazione(, Progetto, DataInizio) ditta Partita IVA Fornitore Fornitura Quantità Prodotto Fornitore(PartitaIVA, Ditta) (, ) Prodotto(, Genere) Fornitura(Fornitore, Prodotto,, Quantità) Genere 21 22 ditta Partita IVA Fornitore Fornitura Quantità Prodotto Fornitore(PartitaIVA, Ditta) (, ) Prodotto(, Genere) Fornitura(Fornitore, Prodotto,, Quantità) Genere Data nascita Ruolo 2. Associazioni uno a molti Giocatore Contratto Ingaggio Squadra Uno schema corrispondente: Giocatore(, DataNascita, Ruolo) Squadra(, Città, Colori) Contratto(Giocatore, DataNascitaGiocatore, Squadra, Ingaggio) Città Colori Tre vincoli di integrità (mostrati dalle frecce): ognuno da un attributo dell associazione Fornitura 23 24 4
Data nascita Ruolo 2. Associazioni uno a molti Giocatore Contratto Ingaggio Squadra Un altro schema corrispondente: Giocatore(, DataNascita, Ruolo, Squadra, Ingaggio) Squadra(, Città, Colori) Un vincolo di integrità : tra Squadra della relazione Giocatore e della relazione Squadra Città Colori relazione Direttore Direzione Due possibilità simmetriche e ugualmente valide: Direttore(,,, Diretto, InizioDirezione) (,, ) Direttore(,, ) (,,, Direttore, InizioDirezione) 25 26 relazione Direttore Direzione Due possibilità simmetriche e ugualmente valide: Direttore(,,, Diretto, InizioDirezione) Vincoli di (,, ) integrità referenziale Direttore(,, ) (,,, Direttore, InizioDirezione) Una terza possibilità: rappresentare tutti i concetti in una singola relazione Svantaggi: nello schema E-A le due entità sono separate per qualche ragione: meglio tenere le entità separate anche nel modello logico 27 28 Direzione Direzione Uno schema : (,, ) (,,, Direttore, InizioDirezione) Vincolo di integrità referenziale: tra Direttore della relazione e della relazione Preferibile all alternativa in cui l associazione Direzione viene rappresentata nella relazione : per il nome del dipartimento diretto, sono possibili valori nulli 29 a) Combinare l entità e l associazione Direzione in una relazione, lasciando l entità separata b) Combinare l entità e l associazione Direzione in una relazione, lasciando l entità separata 30 5
Direzione Direzione c) Lasciare l entità, l associazione Direzione e l entità separate: (,, ) (,, ) Direzione(Direttore,, DataInizioDirezione) Vincoli di integrità referenziale c) Lasciare l entità, l associazione Direzione, e l entità separate: (,, ) (,, ) Direzione(Direttore,, DataInizioDirezione) 31 32 Direzione c) Lasciare l entità, l associazione Direzione, e l entità separate: (,, ) (,, ) Direzione(Direttore,, DataInizioDirezione) Vantaggio rispetto le opzioni a) e b): non ci sono i valori nulli 33 6