Basi di Dati Modello Concettuale Dettagli e Approfondimenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca – [email protected] – Università della Basilicata Mod. Concettuale >> Sommario Dettagli e Approfondimenti Classi e identificatori Identificatori Esterni Generalizzazioni Cardinalità Associazioni Il Modello Entità-Relazione Sintassi grafica G. Mecca - [email protected] - Basi di Dati 2 Modellazione Concettuale >> Dettagli e Approfondimenti >> Introduzione Introduzione Schema concettuale diagramma delle classi di UML alto livello di astrazione (fase di analisi) Costrutti classi e attributi associazioni cardinalità generalizzazioni G. Mecca - [email protected] - Basi di Dati 3 Modellazione Concettuale >> Dettagli e Approfondimenti >> Classi Classi In questo contesto “concetti” della realtà di interesse con esistenza autonoma Successivamente classi dell’applicazione tabelle della base di dati Attributi proprietà rilevanti per l’applicazione G. Mecca - [email protected] - Basi di Dati 4 Modellazione Concettuale >> Dettagli e Approfondimenti >> Classi Classi Identificatori non tutte le classi hanno identificatori espliciti ma gli oggetti della classe sono comunque distinti (es: due mele nella classe “Mele”) nell’applicazione, tutti gli oggetti hanno un identificatore implicito (nascosto): OID gli identificatori espliciti (es: matricola, codice fiscale, targa) esistono per la catalogazione sono rilevanti per la base di dati G. Mecca - [email protected] - Basi di Dati 5 Modellazione Concettuale >> Dettagli e Approfondimenti >> Classi Classi Identificatori esterni alcuni oggetti sono identificabili sulla base degli oggetti a cui sono associati esempio: un tirocinio può essere identificato con lo studente che lo ha sostenuto per identificarlo è necessario attraversare un arco di una associazione la cardinalità all’altro estremo deve essere 1 G. Mecca - [email protected] - Basi di Dati 6 Modellazione Concettuale >> Dettagli e Approfondimenti >> Classi Classi Identificatore esterno indicato con un’annotazione in cui viene indicata l’associazione da attraversare Esempio: tirocinio universitario Studente Tirocinio <<id>> matricola luogo cognome 1..1 ha svolto > 0..1 nome annoDiCorso G. Mecca - [email protected] - Basi di Dati dataInizio durata identificatore esterno “ha svolto” 7 Modellazione Concettuale >> Dettagli e Approfondimenti >> Classi Studente Classi <<id>> matricola {444, Pinco, Palla, 3} 1..1 0..1 ha svolto > cognome nome Studenti Tirocinio annoDiCorso {77777, Bruno Pasquale, 1} dataInizio identificatore esterno “ha svolto” i due tirocini sono distinguibili usando la matricola dello studente {111, Rossi, Mario {88888, 1} Pinco, Pietro, 1} sede durata {Microsoft, 25/06/2002, 3 mesi} {Microsoft, 25/06/2002, 3 mesi} {SOGEI 1/7/2002, 4 mesi} Tirocini G. Mecca - [email protected] - Basi di Dati 8 Modellazione Concettuale >> Dettagli e Approfondimenti >> Classi Classi Identificatore esterno complesso una o più associazioni, uno o più attributi int. Esempio: esame universitario Studente Esame Corso <<id>> matricola voto <<id>> codice cognome nome annoDiCorso lode ha sostenuto > 1..1 0..* data relativo a > 0..* 1..1 titolo ciclo identificatore esterno “ha sostenuto”, “relativo a” G. Mecca - [email protected] - Basi di Dati 9 Modellazione Concettuale >> Dettagli e Approfondimenti >> Classi Classi Nel caso volessimo tenere traccia anche degli esami non andati a buon fine lo studente può sostenere più volte l’esame Studente ProvaDiEsame Corso <<id>> matricola voto <<id>> codice cognome nome annoDiCorso ha sostenuto > 1..1 0..* lode data identificatore esterno “ha sostenuto”, “relativo a”, data G. Mecca - [email protected] - Basi di Dati relativo a > 0..* 1..1 titolo ciclo in questo caso l’identificatore esterno deve contenere la data 10 Modellazione Concettuale >> Dettagli e Approfondimenti >> Generalizzazioni Generalizzazioni Relazioni di ereditarietà tra i concetti consentono di descrivere gerarchie Possono essere di vario tipo completa o incompleta: tutte le istanze della superclasse sono classificate o meno nelle sottoclassi disgiunte o non disgiunte: le sottoclassi hanno intersezione vuota o meno sottoinsiemi: un’unica sottoclasse G. Mecca - [email protected] - Basi di Dati 11 Modellazione Concettuale >> Dettagli e Approfondimenti >> Generalizzazioni Generalizzazioni Persona completa disgiunta Uomo Donna Dipendente incompleta non disgiunta Studente incompleta disgiunta Professore sottoinsieme G. Mecca - [email protected] - Basi di Dati Amministrativo Tecnico Segretario 12 Modellazione Concettuale >> Dettagli e Approfondimenti >> Cardinalità Cardinalità Cardinalità vincoli sulle istanze degli attributi e delle associazioni Cardinalità degli attributi vincoli sul numero di valori dell’attributo Cardinalità delle associazioni vincoli sul numero di istanze (archi) dell’associazione G. Mecca - [email protected] - Basi di Dati 13 Modellazione Concettuale >> Dettagli e Approfondimenti >> Cardinalità Cardinalità Cardinalità minima normalmente 0 oppure 1 le cardinalità minime 1 vengono usate raramente Cardinalità massima normalmente 1 oppure * Possono esserci altri numeri es: associazione tra Partita e Squadra 2..2 Forme Compatte 1 sta per 1..1; * sta per 0..* G. Mecca - [email protected] - Basi di Dati 14 Modellazione Concettuale >> Dettagli e Approfondimenti >> Cardinalità Cardinalità Per gli attributi cardinalità standard 1..1 cardinalità minima 0: attributo opzionale cardinalità massima *: attributo multivalore Docente Supplente cognome universitaDiappartenenza [0..1] nome qualifica numTelefono [0..*] G. Mecca - [email protected] - Basi di Dati 15 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Relazioni logiche tra le classi Istanza dell’associazione arco che collega due oggetti delle classi Cardinalità vincoli sul numero di archi per un oggetto Classificazione rispetto alle cardinalità uno a uno: cardinalità massime pari a 1 uno a molti: cardinalità massime 1 e * molti a molti: cardinalità massime * e * G. Mecca - [email protected] - Basi di Dati 16 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Ruolo descrizione della funzione di una classe nell’associazione Dipartimento 1 < afferisce 1..* membro nome telefono 1 < dirige indirizzo 1 direttore ruoli G. Mecca - [email protected] - Basi di Dati Docente GruppoDiRicerca cognome nome nome qualifica numTelefono [0..*] temiDiRicerca [1..*] 1..* 1..* partecipa > ricercatore 17 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Normalmente associazioni binarie Ma ci sono altre forme associazioni ricorsive: associazione tra oggetti della stessa classe associazioni n-arie (poco usate): associazioni che coinvolgono oggetti di n classi (3 o più) G. Mecca - [email protected] - Basi di Dati 18 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Ricorsive Esempio Corsi prerequisito {a01, Analisi 1, laurea tr.} Corso <<id>> codice prerequisito titolo 0..* ciclo {a02, Analisi 2, laurea tr.} {p01, Prog. 1, laurea tr.} prerequisito 0..* propedeuticità G. Mecca - [email protected] - Basi di Dati {p02, Prog. 2, laurea tr.} 19 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Ternarie Si utilizza il simbolo del rombo associano elementi di tre classi Esempio: forniture di vini ai ristoranti rapporto di fornitura Cantina 1 * Tipo di Vino * Ristorante G. Mecca - [email protected] - Basi di Dati 20 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Ternarie Tipo di Vino {Aglianico del Vulture} rapporto di fornitura Cantina 1 * Tipo di Vino {Brachetto} * Ristorante {Cantina Martino} {La Taverna Oraziana} {Cantina Sociale} Cantina G. Mecca - [email protected] - Basi di Dati Ristorante 21 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Ternarie Sono di difficile gestione sarebbe opportuno sostituirle con più binarie Attenzione agli errori. Esempio: Ristorante si rifornisce da Cantina Ristorante serve Tipo di Vino Cantina Tipo di Vino * * * si rifornisce Ristorante G. Mecca - [email protected] - Basi di Dati * serve 22 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Ternarie Cantina Tipo di Vino {Aglianico del Vulture} Tipo di Vino {Brachetto} * * * si rifornisce Ristorante {Cantina Martino} * serve le due istanze non sono equivalenti (chi fornisce l’Aglianico ?) {La Taverna Oraziana} {Cantina Sociale} Cantina G. Mecca - [email protected] - Basi di Dati Ristorante 23 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Associazioni Ternarie Possono essere sostituite da una classe aggiuntiva tre associazioni binarie fornisce > Cantina 1 * Rapporto di Fornitura riguarda > * 1 Tipo di Vino * 1 utilizza > Ristorante G. Mecca - [email protected] - Basi di Dati identificatore esterno fornisce, riguarda utilizza 24 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Attributi di un’Associazione Le associazioni possono avere attributi Esempio: corsi tenuti nel passato tengo traccia del primo anno di titolarità titolarità attuale Docente cognome 0..1 numTelefono [0..*] 1..* titolarità passate nome qualifica Corso 1..* titolo 1..* primoAnnoDiTitolarita G. Mecca - [email protected] - Basi di Dati <<id>> codice ciclo attributo dell’associazione (surrogato della “classe di associazione”) 25 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Attributi di un’Associazione Identificazione dell’associazione gli attributi possono essere identificatori per le istanze dell’associazione tra gli stessi nodi possono esserci più archi è consentito solo per associazioni molti a m. StudenteLaurea Triennale 0..* tutor attuale 0..1 StudenteLaurea Specialistica tutor passati * <<id>> dataInizio G. Mecca - [email protected] - Basi di DatidataFine * 26 Modellazione Concettuale >> Dettagli e Approfondimenti >> Associazioni Altre forme di Associazione – Cenni Esistono altre forme di associazione aggregazione e composizione Aggregazione Tutto Parte associazione tra un tutto e le sue parti simbolo rombo vuoto dalla parte del tutto esempio: dipartimento e impiegati Composizione Tutto Parte aggregazione e le parti non esistono senza il tutto simbolo rombo pieno dalla parte del tutto esempio: libro e capitoli G. Mecca - [email protected] - Basi di Dati 27 Modellazione Concettuale >> Dettagli e Approfondimenti >> Modello ER Modello Entità-Relazione Sintassi grafica alternativa per il modello concettuale precedente ad UML tradizionalmente usato per l’analisi e la modellazione concettuale delle basi di dati UML è in parte ispirato all’ER meno generale del diagramma delle classi non include funzionalità dinamiche G. Mecca - [email protected] - Basi di Dati 28 Modellazione Concettuale >> Dettagli e Approfondimenti >> Modello ER Modello Entità-Relazione Per la modellazione concettuale sostanzialmente la semantica è equivalente Costrutti dei due modelli Diagramma delle classi Modello ER classe entità attributo attributo associazione relazione cardinalità cardinalità generalizzazione generalizzazione G. Mecca - [email protected] - Basi di Dati 29 Modellazione Concettuale >> Dettagli e Approfondimenti >> Modello ER Modello Entità-Relazione: Sintassi voto Esame lode Entità: rettangolo Attributi: due sintassi data Esame linee esterne all’entità sintassi equiv. a quella UML Relazione: voto lode data relativo a rombo (0,n) Cardinalità: posizione invertita Generalizzazione: freccia Corso Docente DocInt G. Mecca - [email protected] - Basi di Dati Esame (1,1) Suppl 30 Progettazione della BD >> Dettagli e Approfondimenti >> Modello ER Corso Esame < relativo a <<id>> codice 0..* voto 1 titolo 0..* relatore solo se al 3 anno ciclo titolarità data 1 Docente lode ha sostenuto > Studente cognome relatore > nome <<id>> matricola cognome 0..* qualifica 0..1 0..* numTelefono [0..*] 0..* Tirocinio luogo 1 dataInizio nome durata annoDiCorso ha svolto > DocenteInterno Supplente facolta Studente Laurea Triennale 0..* G. Mecca - [email protected] - Basi di Dati 0..1 Studente Laurea Specialistica tutor > 0..1 31 Progettazione della BD >> Dettagli e Approfondiementi >> Modello ER (0,n) Corso Esame relativo a codice voto (0,n) titolo titolarità (1,1) lode ha sostenuto ciclo data (1,1) (0,n) Docente Tirocinio Studente cognome relatore nome matricola luogo dataInizio (0,1) cognome (0,n) qualifica (0,n) (0,1) nome numTelefono (0,n) annoDiCorso durata ha svolto (1,1) DocenteInterno Supplente facolta Studente Laurea Triennale (0,1) G. Mecca - [email protected] - Basi di Dati tutor Studente Laurea Specialistica (0,n) 32 Modellazione Concettuale >> Sommario Dettagli e Approfondimenti Classi e identificatori Identificatori Esterni Generalizzazioni Cardinalità Associazioni Il Modello Entità-Relazione Sintassi grafica G. Mecca - [email protected] - Basi di Dati 33 Termini della Licenza Termini della Licenza This work is licensed under the Creative Commons AttributionShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. G. Mecca - [email protected] - Basi di Dati 34