Pagina 1 Progetto Logico per il il Modello Relazionale Autore: Scarsi Riccardo
Pagina 2 Trasformazione da schema ER a modello relazionale Risultato: schema relazionale nella forma normale opportuna. SCHEMA ER passo A A Schema ER semplificato passo B B Set di relazioni (modello relazionale) Autore: Scarsi Riccardo
Pagina 3 Passo di semplificazione dello schema ER 1) Eliminazione delle gerarchie di generalizzazione 2) Eliminazione degli identificatori esterni 3) Eliminazione degli attributi multivalore e composti Autore: Scarsi Riccardo
Pagina 4 Passo di traduzione nel modello relazionale 1) Traduzione di ogni entità in una relazione (tabella) 2) Traduzione delle relazioni: le relazioni 1:1, 1:molti, molti:1 sono modellate aggiungendo attributi a relazioni esistenti le relazioni molti:molti richiedono sempre la creazione di una nuova relazione (tabella) Autore: Scarsi Riccardo
Pagina 5 Eliminazione delle gerarchie di generalizzazione Vi sono alcune possibilità: 1) Collassamento delle sottoclassi nella superclasse: gli attributi delle sottoclassi sono uniti a quelli dell entità superiore si aggiunge un attributo discriminante 2) Eliminazione della superclasse: propagazione degli attributi della superclasse in tutte sottoclassi 3) Mantenimento di tutte le entità, correlate da relazioni che rappresentano la generalizza-zione. Autore: Scarsi Riccardo
Pagina 6 STUDENTE (p,e) Esempio C_FISC NOME CORSO_DI_STUDI TUTORE GRADO(a.d.,(0,1)) TITOLO_TESI (0,1) STUDENTE C_FISC NOME CORSO_DI_ STUDI LAUREANDO UNIVERSITARIO (1,1) HA_ RELATORE TITOLO_ TESI (0,1) SOCIO_ DI TUTORE (0,1) HA_ RELATORE (0,1) SOCIO_ DI FACOLTA` ASSOCIAZIONE_ STUDENTESCA FACOLTA` ASSOCIAZIONE_ STUDENTESCA Autore: Scarsi Riccardo
Pagina 7 Esempio C_FISC NOME IMPIEGATO (0,1) PAGA_ (1,1) CONTR CONTRIBUTI (t,e) DIRETTO_DA SEGRETARIO INGEGNERE MANAGER (0,m) CAPACITA` USA SPECIALIZZAZIONE NUM_SOTTOPOSTI (0,n) WORD_PROCESSOR Rappresentazione di gerarchie di generalizzazione mediante sottoclassi Autore: Scarsi Riccardo
Pagina 8 C_FISC NOME CONOSC CONTR_1 SEGRETARIO USA (0,1) (0,m) C_FISC NOME (0,1) (0,1) SPECIALIZ INGEGNERE (1,1) CONTR_2 DIRIGE_1 (0,1) MANAGER (0,1) CONTRIBUTI NUM_SOTTOPOSTI C_FISC NOME (0,1) CONTR_3 DIRIGE_3 (0,1) (0,n) (1,1) DIRIGE_2 WORD_PROCESSOR Autore: Scarsi Riccardo
Pagina 9 NUM_PROG NOME_PROG PROGETTO (p,o) Esempio (1,m) MEMBRI_ HA PROGETTO BUDGET PROGETTO_ SW MESI_UOMO PROGETTO_ HW USA NUM_ SCHEDE SOTTOCONTRATTO CONTRAENTE_ PRINCIPALE (0,m) COMPONENTI_HW Rappresentazione di gerarchie di generalizzazione tramite relazioni Autore: Scarsi Riccardo
Pagina 10 (0,1) NUM_PROG NOME_PROG PROGETTO (0,1) (1,m) MEMBRI_ HA PROGETTO BUDGET (0,1) E`_SW E`_HW E`_ SOTTOCONTR (1,1) (1,1) (1,1) PROGETTO_ SW MESI_UOMO PROGETTO_ HW USA NUM_ SCHEDE SOTTOCONTRATTO CONTRAENTE_ PRINCIPALE (0,m) COMPONENTI_HW Autore: Scarsi Riccardo
Pagina 11 Eliminazione di identificatori esterni Gli identificatori esterni sono trasformati in identificatori interni. E1 (1,1) ID A E2 B R E2 B B E1 A Autore: Scarsi Riccardo
Pagina 12 Esempio UNIVERSITÀ CODICE UNIVERSITÀ NOME CITTÀ ISCRIVE STUDENTE MATRICOLA_STUDENTE COGNOME ETÀ (a) Schema iniziale Autore: Scarsi Riccardo
Pagina 13 Esempio UNIVERSITÀ CODICE UNIVERSITÀ NOME CITTÀ + STUDENTE CODICE UNIVERSITÀ NUMERO_STUDENTE COGNOME ETÀ (b) Schema finale Autore: Scarsi Riccardo
Pagina 14 Eliminazione di identificatori esterni E1 A E1 A R1 ID1 E2 B E2 A B R2 E3 C E3 ID2 A B C Autore: Scarsi Riccardo
Pagina 15 Eliminazione di attributi composti Due possibilità: a) considerare l attributo composto come insieme di attributi singoli Problema: si perde la nozione di collegamento tra gli attributi b) eliminare le componenti individuali considerando solo i valori aggregati Problema: il singolo attributo deve poi essere scisso dall applicazione per individuare i valori separati Autore: Scarsi Riccardo
Pagina 16 Esempio PERSONA COGNOME ETA` SESSO INDIRIZZO VIA CITTA` (a) Schema con un attributo composto STATO PERSONA (b) Attributo composto ridotto nelle sue componenti COGNOME ETA` SESSO VIA CITTA` STATO PERSONA (c) Attributo composto considerato come attributo singolo COGNOME ETA` SESSO INDIRIZZO Autore: Scarsi Riccardo
Pagina 17 Eliminazione degli attributi multivalore dalle entità Ogni attributo a molti valori è rappresentato da un'entità, in cui può essere rappresentato come attributo a singolo valore. La nuova entità contiene l attributo a molti valori più l identificatore dell entità di origine. L identificatore della nuova entità è l insieme di tutti gli attributi. Autore: Scarsi Riccardo
Pagina 18 Attributi multivalore di entità E1 A B A E1 R EAM B A E1 EAM A B Autore: Scarsi Riccardo
Pagina 19 Esempio PRODOTTO CODICE_PRODOTTO CODICE_MATERIALE DESCRIZIONE PREZZO PRODOTTO CODICE_PRODOTTO DESCRIZIONE PREZZO PRODOTTO_MATERIALE CODICE_PRODOTTO CODICE_MATERIALE Autore: Scarsi Riccardo
Pagina 20 Eliminazione degli attributi multivalore dalle relazioni Attributo a molti valori appartiene alla relazione R tra le entità E1 e E2 nuova entità NE che include 1 o 2 attributi presi da E1 o E2 (o entrambi) in funzione del tipo di relazione: relazione 1 a 1: NE richiede 1 degli identificatori di E1 o E2 relazione 1 a molti: NE comprende l identificatore di E2 (E2 nel lato molti ) relazione molti a molti: NE comprende gli identificatori provenienti da E1 ed E2 Autore: Scarsi Riccardo
Pagina 21 Eliminazione degli attributi multivalore dalle relazioni La chiave primaria di NE è costituita da: tutti gli attributi di NE provenienti da E1 ed E2 l attributo multi valore Gli attributi non multivalore di R rimangono a R. Autore: Scarsi Riccardo
Pagina 22 Attributi a molti valori di relazioni E1 C E1 C (0,n) R A R (0,m) A B E2 D E2 D Attrib B B C D Autore: Scarsi Riccardo
Pagina 23 Esempio INSEGNANTE (0,m) SSN_INSEGNANTE DIPARTIMENTO TELEFONO TIENE MAX_NUM_STUD SEMESTRE CORSO NUM_CORSO Autore: Scarsi Riccardo
Pagina 24 eliminazione di attributo multivalore da una relazione tramite creazione di entità separate INSEGNANTE (0,m) TIENE SSN_INSEGNANTE DIPARTIMENTO TELEFONO MAX_NUM_STUD CORSO NUM_CORSO OFFERTA_ CORSI SSN_INSEGNANTE NUM_CORSO SEMESTRE Autore: Scarsi Riccardo
Pagina 25 Traduzione di entità Entità = Relazione Esempio: IMPIEGATO SSN NOME COGNOME SALARIO IMPIEGATO (SSN, NOME, COGNOME, SALARIO) Autore: Scarsi Riccardo
Pagina 26 Traduzione di relazione 1 a 1 Si considera la cardinalità minima. Una sola relazione, se la partecipazione delle due entità è totale: card min = 1, card max = 1 Scelta della chiave primaria: le due entità hanno la stessa chiave primaria si sceglie quella chiave primaria le due entità hanno chiavi primarie diverse si sceglie una delle due chiavi primarie Autore: Scarsi Riccardo
Pagina 27 Traduzione di relazione 1 a 1 Relazioni separate, se una o entrambe le entità hanno partecipazione parziale nella relazione: card min = 0, card max = 1 un entità con partecipazione parziale tre relazioni separate, oppure una sola relazione scegliendo opportunamente la chiave entrambe le entità con partecipazione parziale tre relazioni separate Autore: Scarsi Riccardo
Pagina 28 Esempio CLIENTE (1,1) (1,1) CON INDIRIZZO_SPED NUM_CLIENTE NOME_CLIENTE NUM_CLIENTE INDIRIZZO_SPED SPEDIZ_CLIENTE (NUM_CLIENTE, NOME_CLIENTE, INDIRIZZO_SPED) (a) una sola relazione Autore: Scarsi Riccardo
Pagina 29 Esempio CLIENTE (0,1) (1,1) POSSIEDE CARTA_CREDITO NUM_CLIENTE NOME_CLIENTE TIPO_CARTA LIMITE_ CREDITO NUM_CARTA CLIENTE (NUM_CLIENTE,NOME_CLIENTE) CARTA_CREDITO (TIPO_CARTA, NUM_CARTA, LIMITE_CREDITO) POSSIEDE_CARTA (TIPO_CARTA,NUM_CARTA,NUM_CLIENTE) (b) Relazioni separate; un entità ha partecipazione parziale Autore: Scarsi Riccardo
Pagina 30 Esempio MASCHIO (0,1) (0,1) SPOSA FEMMINA MASCHIO_SSN NOME DATA DURATA FEMMINA_SSN NOME MASCHIO (MASCHIO_SSN, NOME) FEMMINA (FEMMINA_SSN, NOME) SPOSA (MASCHIO_SSN, FEMMINA_SSN, DATA, DURATA) (b) Relazioni separate; entrambe le entità hanno partecipazioni parziali Autore: Scarsi Riccardo
Pagina 31 Traduzione di relazione 1 a molti B (1,1) E1 R E2 A molti uno Se E1 partecipa completamente, inclusione dell identificatore A in E1. E2 A E1 A B Autore: Scarsi Riccardo
Pagina 32 Esempio CITTA` NOME POPOLAZIONE (1,1) APPARTIENE_ A STATO NOME GOVERNATORE POPOLAZIONE CITTA` (NOME CITTA`, NOME STATO, POPOLAZIONE) STATO (NOME STATO, GOVERNATORE, POPOLAZIONE) (a) Partecipazione totale Autore: Scarsi Riccardo
Pagina 33 Traduzione di relazione 1 a molti L entità sul lato molti ha partecipazione parziale A (0,1) E1 R E2 B molti C uno E1(A) R(A,B,C) E2(B) E` possibile includere B in E1, se B ammette valori null. Autore: Scarsi Riccardo
Pagina 34 Esempio VENDITORE NOME TELEFONO EMETTE SCONTO (0,1) ORDINE NUMERO_ORDINE DATA VENDITORE (NOME, TELEFONO) ORDINE (NUM_ORDINE, DATA) ORDINE_VENDITA (NUM_ORDINE, NOME_VENDITORE, SCONTO) (b) Partecipazione parziale Autore: Scarsi Riccardo
Pagina 35 Traduzione di relazione molti a molti Non dipende dalla cardinalità minima. A (0,n) (0,m) E1 R E2 B C E1(A) R(A,B,C) E2(B) Autore: Scarsi Riccardo
Pagina 36 Esempio STUDENTE ISCRITTO_ A MATRICOLA_STUDENTE COGNOME GPA SEMESTRE VOTO CORSO NUMERO_CORSO NOME_CORSO STUDENTE (NUMERO_STUDENTE, COGNOME, GPA) CORSO (NUMERO_CORSO, NOME_CORSO) ISCRITTO_A (MATRICOLA_STUDENTE, NUMERO_CORSO, SEMESTRE, VOTO) Autore: Scarsi Riccardo
Pagina 37 Relazioni n-arie (n>2) la relazione eredita tutti gli identificatori delle n entità collegate che diventano identificatori della nuova relazione (come per le relazioni binarie molti a molti) Attenzione: in questo caso la chiave può non essere minima Autore: Scarsi Riccardo
Pagina 38 Esempio COD_COMP COMPONENTE PRODOTTO FORNISCE CODICE_PRODOTTO NOME DESCRIZIONE QUANTITA` DESCRIZIONE Relazione ternaria FORNITORE CODICE_FORNITORE NOME INDIRIZZO TELEFONO COMPONENTE (COD_COMP, DESCRIZIONE) PRODOTTO (CODICE_PRODOTTO, NOME, DESCRIZIONE) FORNITORE (CODICE_FORNITORE, NOME, INDIRIZZO, TELEFONO) FORNISCE (CODICE_PRODOTTO, CODICE_COMPONENTE, CODICE_FORNITORE, QUANTITA`) Autore: Scarsi Riccardo
Pagina 39 Esempio AUTOMOBILE NUM_TELAIO NOME_CLIENTE CLIENTE VENDITA_ AUTO PREZZO_AUTO AMMONTARE_PRESTITO DISTRIBUTORE NOME_DISTRIB INTERESSI BANCA_ FINANZIATRICE NOME_BANCA Relazione quaternaria VENDITA_AUTO (NUM_TELAIO, NOME_CLIENTE, NOME_DISTRIB, NOME_BANCA, PREZZO_AUTO, AMMONTARE_PRESTITO, INTERESSI) Autore: Scarsi Riccardo
Pagina 40 Esempio NOME DATA_DI_NASCITA E`_SUBORDINATO_A IMPIEGATO CAPO_ DI E`_IL_SUPERIORE_DI relazione recursiva Relazione molti a molti: IMPIEGATO(NOME, DATA_DI_NASCITA) CAPO_DI(NOME_CAPO, NOME_SUBORDINATO) Relazione 1 a molti: IMPIEGATO(NOME, DATA_DI_NASCITA) CAPO_DI(NOME_SUBORDINATO, NOME_CAPO) o IMPIEGATO(NOME, DATA_DI_NASCITA, NOME_CAPO) Autore: Scarsi Riccardo