Traduzione dal modello E/R al modello relazionale
Obiettivo: tradurre lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta (ed efficiente)
Schema E-R Ristrutturazione dello schema E-R Traduzione nel modello logico Schema E-R ristrutturato Schema logico
Ristrutturazione schema E-R Motivazioni: semplificare la traduzione (ottimizzare le prestazioni)
Attività della ristrutturazione 1. Analisi delle ridondanze 2. Eliminazione delle generalizzazioni 3. Eliminazione di attributi composti 4. Scelta degli identificatori primari
Attività della ristrutturazione 1. Analisi delle ridondanze 2. Eliminazione delle generalizzazioni 3. Eliminazione di attributi composti 4. Scelta degli identificatori primari
Analisi delle ridondanze Una ridondanza in uno schema E-R è una informazione significativa ma derivabile da altre
Forme di ridondanza in uno schema E-R attributi derivabili: da altri attributi della stessa entità o relazione da attributi di altre entità o relazioni (relazioni derivabili dalla composizione di altre relazioni in presenza di cicli)
Attributo derivabile Importo netto Fattura IVA Importo lordo
Attributo derivabile Importo totale Prezzo Acquisto Composizione Prodotto Popolazione Città Residenza Persona
Attività della ristrutturazione 1. Analisi delle ridondanze 2. Eliminazione delle generalizzazioni 3. Eliminazione di attributi composti 4. Scelta degli identificatori primari
Eliminazione delle gerarchie il modello relazionale non può rappresentare direttamente le generalizzazioni entità e relazioni sono invece direttamente rappresentabili si eliminano perciò le gerarchie, sostituendole con entità e relazioni
Tre possibilità 1. accorpamento delle figlie della generalizzazione nel genitore 2. (accorpamento del genitore della generalizzazione nelle figlie) 3. (sostituzione della generalizzazione con relazioni)
A01 A02 E0 R1 E3 E1 E2 R2 A11 A21 E4
A01 A02 A11 A21 E0 R1 E3 TIPO R2 E4
Attività della ristrutturazione 1. Analisi delle ridondanze 2. Eliminazione delle generalizzazioni 3. Eliminazione di attributi composti 4. Scelta degli identificatori primari
Eliminazione di attributi composti Via Persona Indirizzo Numero civico Via Città Persona Numero civico Città
Attività della ristrutturazione 1. Analisi delle ridondanze 2. Eliminazione delle generalizzazioni 3. Eliminazione di attributi composti 4. Scelta degli identificatori primari
Scelta degli identificatori principali Operazione indispensabile per la traduzione nel modello relazionale Se nessuno degli identificatori soddisfa i requisiti visti, si introducono nuovi attributi (codici) contenenti valori speciali generati appositamente per questo scopo
Traduzione verso il modello relazionale Idea di base: Le entità diventano tabelle con gli stessi attributi Le relazioni E-R diventano tabelle con gli identificatori delle entità coinvolte più gli attributi propri
Entità e relazioni molti a molti Cognome Matricola Data inizio Codice Nome Impiegato (0,N) Partecipazione (1,N) Progetto Stipendio Budget Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Matricola, Codice, DataInizio)
Nomi più espressivi per gli attributi della chiave della tabella che rappresenta la relazione Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Matricola, Codice, DataInizio) Partecipazione(MatricolaImpiegato, CodiceProgetto, DataInizio)
Relazioni uno a molti Cognome Data Ingaggio nascita Città Nome (1,1) (0,N) Giocatore Contratto Squadra Ruolo Colori sociali Giocatore(Cognome, DataNascita, Ruolo, NomeSquadra, Ingaggio) Squadra(Nome, Città, ColoriSociali)
Entità con identificazione esterna Cognome Matricola Nome Città Studente (1,1) (1,N) Iscrizione Università AnnoDiCorso Indirizzo Studente(Matricola, NomeUniversità, Cognome, AnnoDiCorso) Università(Nome, Città, Indirizzo)
Relazioni uno a uno Codice Cognome Data inizio Nome Telefono Direttore (1,1) (1,1) Direzione Dipartimento Direttore(Codice, Cognome) Dipartimento(Nome, Telefono, CodiceDirettore, DataInizioDirezione)
Relazioni uno a uno Codice Cognome Data inizio Nome Telefono Impiegato (0,1) (1,1) Direzione Dipartimento Impiegato(Codice, Cognome) Dipartimento(Nome, Telefono, CodiceImpiegatoDirettore, DataInizioDirezione)
Relazioni uno a uno Codice Cognome Data inizio Nome Telefono Impiegato (0,1) (0,1) Direzione Dipartimento Impiegato(Codice, Cognome) Dipartimento(Nome, Telefono) Direzione(CodiceImpiegatoDirettore, NomeDipartimento, DataInizio)
Cognome (0,1) Direzione (1,1) Telefono Codice Impiegato (0,N) Partecipazione (1,N) (0,1) (1,N) Afferenza (0,1) Data Dipartimento (1,1) Composizione (1,N) Nome Budget Progetto Nome Via CAP Indirizzo Sede Città