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
Scarica

dettagli e approfondimenti ()