Modelli dei dati
Modelli e database
• In generale un modello è la rappresentazione di idee
e conoscenze relative a un fenomeno espressa in un
certo linguaggio formale
– Es. Si pensi al modello su carta di una casa,
espresso con il linguaggio della geometria e della
matematica
• Un database relazionale (un insieme di tabelle) è un
modello (una rappresentazione) di una porzione della
realtà di interesse, detta universo del discorso
• Il modello è espresso in termini del modello dei dati
offerto dal DBMS in uso
Modelli dei dati
Il Modello Relazionale
Il modello relazionale dei dati, proposto nel 1970 ed adottato nei
sistemi commerciali a partire dal 1978, si è diffuso rapidamente
tanto sui sistemi grandi quanto sugli elaboratori personali.
I meccanismi per definire un database con il modello relazionale
sono il record (o ennupla) e la tabella (o relazione):
– una tabella R(T) è definita da un insieme finito di coppie,
dette campi, della forma T = (A1: T1, A2: T2,…, An: Tn), dove
• A1, A2,…, An sono detti attributi
• T1, T2,…, Tn sono tipi elementari
– lo schema di una base di dati è un insieme di schemi di
relazione R1(T1), R2(T2), …, Rk(Tk);
– un’istanza di una tabella R(T) è un insieme finito di record di
tipo T della forma (A1: v1, A2: v2,…, An: vn), dove vi è di tipo Ti
Modello relazionale
Esempio: relazione Studenti
Relazione
Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int)
attributo
Istanza di Studenti
record
Nome
Matricola
Provincia AnnoNascita
Isaia
171523
PI
1980
Rossi
167459
LU
1975
Bianchi 179856
LI
1078
Bonini
PI
1980
175649
Valore
di attributo
Una tabella si rappresenta graficamente come una tabella con una
colonna per ogni attributo e una riga per ogni record dell’istanza
della tabella.
Modello relazionale
Nozioni e specifiche
• La cardinalità di una tabella è data dal numero dei
record che appartengono alla sua istanza.
• Il grado di una tabella è dato dal numero di attributi
della tabella.
• Due record sono uguali se contengono gli stessi
valori per gli stessi attributi.
• Una tabella può contenere record uguali (tabelle
come multinsiemi).
• Ogni tabella contiene un insieme non ordinato di
record: due tabelle che differiscono solo per l’ordine
dei record in esse contenute, sono uguali.
Modello relazionale
Operazioni sulle relazioni
• Chiusura delle operazioni. Ogni operazione
ha come parametri in ingresso delle relazioni
e restituisce sempre una relazione.
• Questo consente la composizione di
operazioni: il risultato di un’operazione può
essere utilizzato come input per un’altra
operazione.
Progettazione
Progettazione di database
• Supponiamo di voler modellare l’universo del discorso
dell’Università, in particolare il contesto della gestione della
carriera universitaria degli studenti
• È improponibile progettare un database sulla base del solo
universo del discorso e senza l’adozione di metodologie di
modellazione
– Passare direttamente dalla realtà dell’Università a tabelle
relazionali sulla base della sola intuizione è un’operazione
ardua e rischiosa
• Un modello (un database) è il risultato di un processo di
interpretazione, guidato dalle idee e conoscenze possedute dal
soggetto che interpreta
• Definire un modello è un’operazione complessa (intuizione e
metodo)
Progettazione
Metodologie
• Esistono metodologie di modellazione che forniscono
gli strumenti e linguaggi per:
– individuare e rappresentare le componenti
interessanti dell’universo del discorso, al fine di
realizzarne un modello concettuale;
– per successivamente convertire il modello
concettuale in un database relazionale
• Il modello concettuale descrive la realtà in maniera
intuitiva (non informatica) ed è allo stesso tempo
facilmente trasformabile in un database, cioè in un
modello della realtà interpretabile da un computer
Progettazione
Fasi di progettazione
L’informatica offre strumenti per costruire:
– modelli per l’analisi del problema;
– modelli per la progettazione della soluzione;
– modelli per la realizzazione del progetto.
ANALISI DEI REQUISITI
Specifica dei requisiti
PROGETTAZIONE CONCETTUALE
Modello concettuale
PROGETTAZIONE LOGICA e FISICA
Modello relazionale logico e fisico
Prog. della soluzione
Aspetti del problema
Aspetto ontologico
Quale conoscenza dell’universo del discorso si
rappresenta? In quali termini discutiamo la realtà?
Aspetto linguistico
Una volta stabilito in quali termini descrivere la
realtà, quale linguaggio utilizziamo per definirne un
modello?
Aspetto pragmatico
Come si procede per costruire un modello?
Aspetto ontologico
Aspetto ontologico
Cosa si modella
• Conoscenza concreta:
– I fatti
• Conoscenza astratta
– Struttura e vincoli sulla conoscenza concreta
Aspetto ontologico
La conoscenza concreta
Fatti specifici che si vogliono
rappresentare:
– le entità con le loro proprietà,
– le classi (o collezioni) di entità omogenee
– le associazioni fra entità.
Aspetto ontologico
Con. concreta: entità e proprieta’
• Le entità rappresentano fatti concreti o astratti, nel dominio
del discorso, di cui interessa rappresentare l’esistenza.
– Ad esempio, lo studente Mando Lino (la persona) è un fatto
concreto, un esame da lui passato con 30 è un fatto astratto;
entrambi sono interessanti nell’ambito della realtà universitaria che
intendiamo modellare
• Ogni entità è accompagnata da un insieme di proprietà,
che la caratterizzano oltre la sua semplice esistenza
– le proprietà si distinguono dalle entità poiché sono fatti che
interessano solo in quanto descrivono le caratteristiche di entità.
– Ad esempio, il nome di uno studente (es. “Lino Mando”), la data di
un esame
Aspetto ontologico
Con. concreta: proprietà
• Una proprietà è una coppia
(Attributo, valore di un certo tipo)
esempio: (nome, ‘Franca Mente’) dove
‘Franca Mente’ è di tipo string (o char)
• Stabilire quali informazioni possono essere
considerate una proprietà di un’entità è un
processo semantico
• Come conseguenza i nomi degli attributi di
una proprietà devono riflettere il significato
dei valori ad essi associati.
Aspetto ontologico
Con. concreta: proprietà (cont.)
Classificazione delle proprietà:
– primitiva / strutturata
• Es. età e indirizzo
– obbligatoria / opzionale
• Es. nome e telefono
– univoca / multivalore
• Es. matricola e lingueParlate
– costante / variabile
• Es. nome e età
– calcolata / non calcolata
• Es. età e telefono
Aspetto ontologico
Determinare le proprietà
• Esempio, la proprietà Indirizzo di un’entità studente
potrebbe essere intesa come primitiva o strutturata:
(indirizzo, “Via Diotisalvi, 45 56100 Pisa, Italia”)
oppure come,
(indirizzo, {(via, “Via Diotisalvi, 45”), (codice, 56100)
(città, “Pisa”), (stato, “Italia”)})
• Quale è la soluzione migliore?
– per operare sullo stato di residenza di uno studente nel primo
caso è necessario scrivere codice per estrarre il valore
dall’attributo indirizzo, mentre nel secondo caso il valore è reso
esplicito dall’attributo stato.
Aspetto ontologico
Determinare le proprietà (cont.)
• Ci sono casi in cui la scomposizione del valore di una
proprietà non è necessaria o è richiesta solo
parzialmente
• Ad esempio, supponiamo che l’Università, per ragioni
statistiche, sia interessata a trattare solamente lo stato
degli studenti
• Una suddivisione via, città, codice, stato sarebbe troppo
specifica e inutile, basterebbe invece una strutturazione
del tipo indirizzo, stato.
• Se l’unico scopo degli indirizzi fosse invece quello della
spedizione, la soluzione migliore sarebbe quella di un
unico attributo indirizzo.
Aspetto ontologico
Determinare le proprietà (cont.)
• Un altro aspetto da considerare nel
determinare le proprietà di un’entità è quello
di investigare su eventuali future esigenze.
• Ad esempio, potrebbe essere molto probabile
che in futuro sarà necessario mantenere
informazioni riguardo la data di nascita dello
studente.
• In questo caso, anche se l’esigenza non è
rilevata nel momento dell’analisi della realtà,
è bene prevedere una proprietà con attributo
dataNascita.
Aspetto ontologico
Determinare le proprietà (cont.)
• A volte non è semplice distinguere le entità
dalle proprietà.
• Ad esempio, gli indirizzi degli studenti
potrebbero essere interpretati come entità
con proprietà via, città, codice, stato.
• Questo potrebbe essere accettabile solo se
nella realtà Universitaria tutti gli indirizzi
fossero strutturati allo stesso modo e se
fossero previste operazioni sugli indirizzi che
prescindono da altre entità associate ad un
indirizzo.
Aspetto ontologico
Domini delle proprietà e tipi
• Il dominio di una proprietà specifica l’insieme
dei valori che possono essere associati alla
proprietà.
• I domini sono al livello concettuale (modello
dei dati) e non vanno confusi con i tipi, che
sono invece al livello della realtà fisica di un
database
– La proprietà nomeProvincia ha come dominio
l’insieme {Aosta, Aquila,…Milano,….., Venezia},
cioè tutte le possibile provincie
– Il tipo che verrà associato a questo dominio sarà
char(20), cioè l’insieme di tutte le stringhe di
lunghezza minore o uguale a 20.
Aspetto ontologico
Con. concreta: collezioni
• Classe (o collezione): un insieme variabile nel
tempo di entità omogenee, cioè entità
associate a proprietà con gli stessi nomi di
attributi e con gli stessi domini
• Ad esempio, le classi degli Studenti e degli
Esami
Aspetto ontologico
Con. Concreta: esempio
Studenti
nome = “Lino Mando"
Esami
d1
a1
materia = “BD"
voto = 26
matricola = “12345"
d2
Entita’
nome = “Franca Mente"
materia = “ALG"
voto = “27"
a2
d3
matricola = “54321"
materia = “FIS"
voto = “24"
Proprieta’
Collezione
Aspetto ontologico
Con. concreta: gerarchia di classi
• Spesso le classi di entità sono organizzate in una
gerarchia di specializzazione/generalizzazione per
trattare insiemi di entità ad un diverso livello di
dettaglio. Una classe della gerarchia minore di
altre viene detta sottoclasse (le altre sono
superclassi).
• Due importanti caratteristiche delle gerarchie:
– ereditarietà delle proprietà: un’entità di una
sottoclasse eredita le proprietà associate alla
superclasse.
– Le entità di una sottoclasse sono un
sottoinsieme degli elementi della superclasse
Aspetto ontologico
Sottoclassi e superclassi
Matricole
Studenti
a1
nome = “Lino Mando"
nome = “Lino Mando"
votoMaturità = “58”
a1
matricola = “12345"
matricola = “12345"
nome = “Franca Mente"
matricola = “54321"
a2
Laureandi
a2
nome = “Franca Mente"
relatore = “Lina Carto”
matricola = “54321"
Studenti è superclasse
di Laureandi e Matricole, mentre
Laureandi e Matricole sono sottoclassi di Studenti
Aspetto ontologico
Con. concreta: le associazioni
• Un’istanza di associazione è un fatto che correla due o
più entità, stabilendo un legame logico tra di loro. Esempi:
– Lo studente ‘Lino Mando’ ha passato l’esame di basi di
dati con 27;
– L’esame di fisica con voto 24 è stato passato dallo
studente con matricola 54321
• Un’associazione fra due classi di entità è un insieme di
istanze di associazione tra entità della prima e della
seconda classe, che varia in generale nel tempo.
– Associazione esamiPassati-passatoDa tra la classe Studenti e la
classe Esami
Aspetto ontologico
Esempio di associazioni
Associazione
Studenti
nome = “Lino Mando"
esamiPassati-passatoDa
a1
Esami
d1
materia = “BD"
voto = 26
matricola = “12345"
nome = “Franca Mente"
d2
voto = “27"
a2
matricola = “54321"
materia = “ALG"
d3
materia = “FIS"
voto = “24"
Istanza di associazione
Aspetto ontologico
Tipi di associazioni
• Il grado di un’associazione è dato dal numero delle
classi che vi partecipano:
– Grado 1: associazione unaria
– Grado 2: associazione binaria
– Grado 3: associazione ternaria
– Es. esamiPassati-passatoDa è binaria
• Le associazioni binarie si classificano in base alla
– Molteplicità:
• Uno-a-uno (1:1)
• uno-a-molti (1:n)
• molti-a-molti (n:n)
– Totalità o parzialità
Aspetto ontologico
Es. Tipi di associazioni
– (1:n) associazione PassatoDa-EsamiPassati tra Esami e
Studenti: ad ogni esame è sempre associato uno studente
(totale), mentre ogni studente può essere associato a
nessuno, uno o più esami (parziale)
– (1:n) associazione Tesista-Relatore tra Professori e Studenti:
ogni professore può avere uno, nessuno o più tesisti
(parziale), mentre uno studente può avere nessuno o un
relatore (parziale)
– (1:1) associazione CorsiTenuti-TenutoDa tra Professori e
Corsi: ogni professore deve tenere un corso (totale) e ogni
Corso è tenuto da un professore (totale)
– (n:n) associazione CorsiSeguiti-StudentiIscritti tra Studenti e
Corsi: ogni studente segue almeno un corso (totale) e ogni
corso è seguito da almeno uno studente (totale)
Aspetto ontologico
Con. astratta: vincoli d’integrita’
I vincoli d’integrità sulla conoscenza concreta possono essere:
• Statici: definiscono delle condizioni sui valori della conoscenza
concreta che devono essere soddisfatte indipendentemente da come
evolve l’universo del discorso. Le condizioni possono riguardare:
– I valori di una proprietà.
– I valori di proprietà diverse di una stessa entità.
– I valori di proprietà di entità diverse di uno stesso insieme.
– I valori di proprietà di entità di insiemi diversi.
– Caratteristiche di collezioni di entità.
– Le proprietà strutturali delle associazioni.
• Dinamici: definiscono delle condizioni sul modo in cui la conoscenza
concreta può evolvere nel tempo.
Aspetto ontologico
Es. Vincoli d’integrità
• Vincolo d’integrità statico:
–Il voto di un esame non può essere minore di
18 o maggiore di 30
• Vincolo d’integrita dinamico:
– L’età di uno studente non può diminuire nel
tempo
Aspetto linguistico
Formalismo grafico ER
• Grazie al formalismo grafico Entity-Relationship
(ER) è possibile descrivere la natura della
conoscenza concreta in termini di classi,
associazioni e gerarchie di classi
• I vincoli d’integrità dovranno essere invece
descritti a parte, mediante appositi descrittori di
vincoli
• Il modello ER di un universo del discorso è detto
schema
Aspetto linguistico
ER: classi e attributi
Le entità non hanno un corrispondente nell’ER, nel quale
si modellano solo le classi, cioè collezioni di entità
lingueParlate
Persone
telefono
nome
La classe Persone: una collezione di entità persone con
proprietà lingueParlate, telefono, nome
Attributi
totale
strutturato
multivalore
parziale
unione
Aspetto linguistico
ER: associazioni
Le associazioni si rappresentano come un rombo
collegato con degli archi alle classi associate;
esempio:
haInPrestito
inPrestitoA
Libri
Utenti
Data
Le associazioni possono avere delle proprietà
haInPrestito
Utenti
inPrestitoA
Libri
Prestiti
Data
Aspetto linguistico
Es. Associazioni (1:1)
(1:1) associazione CorsiTenuti-TenutoDa tra
Professori e Corsi: ogni professore deve tenere un
corso (totale) e ogni Corso è tenuto da un
professore (totale)
corsoTenuto
Professori
tenutoDa
Corsi
Aspetto linguistico
Es. Associazioni (1:n)
(1:n) associazione Tesista-Relatore tra Professori
e Studenti: ogni professore può avere uno,
nessuno o più tesisti (parziale), mentre uno
studente può avere nessuno o un relatore
(parziale)
relatoreDi
Professori
tesistaDi
Studenti
Aspetto linguistico
Es. Associazioni (n:n)
(n:n) associazione CorsiSeguiti-StudentiIscritti tra
Studenti e Corsi: ogni studente segue almeno un
corso (totale) e ogni corso è seguito da almeno
uno studente (totale)
studentiIscritti
Corsi
corsiSeguiti
Studenti
Aspetto linguistico
Esempio della biblioteca
Specializza
PiùGenerale
PiùSpecifico
Indicizza
Descrizioni
Bibliografiche
Termini
Usa
Descrive
Documenti
Fisici
UsatoPer
E’DatoIn
E’SinonimoDi
HaPreso
HaScritto
Autori
Utenti
Prestiti
Aspetto linguistico
Gerarchia tra classi
• Fra le classi può essere definita una relazione di
sottoclasse (o sottoinsieme), con le seguenti proprietà:
• Se C è sottoclasse di C’, allora le proprietà di C sono un
soprainsieme di quelle di C’
• Se C è sottoclasse di C’, allora le entita’ in C sono un
sottoinsieme delle entita’ in C’
• La gerarchia può essere semplice o multipla
Aspetto linguistico
ER: sottoclassi e superclassi
Persone
nome: string
lingueParlate: seq string
annoNascita: int
possiede: Auto
Studenti
matricola: string
votiEsami: seq string
annoIscrizione: int
Aspetto linguistico
Esempio: gerarchia multipla
Persone
Studenti
Piloti
StudentPiloti
Aspetto linguistico
Relazione tra sottoinsiemi
Studenti
Laureandi
FuoriCorso
Studenti
Laureandi
Sottoinsiemi
indipendenti
Sottoinsiemi
disgiunti
Matricole
Persone
Sottoinsiemi
partizione
Maschi
Femmine
Aspetto linguistico
Esempio della biblioteca con sottoclassi
Testi in
Consultazione
Specializza
PiùGenerale
PiùSpecifico
Indicizza
Descrive
Descrizioni
Bibliografiche
Termini
Usa
Documenti
Fisici
UsatoPer
E’DatoIn
E’SinonimoDi
HaPreso
HaScritto
Utenti
Autori
Regolari
Docenti
Sospesi
Studenti
Prestiti
Aspetto linguistico
Descrittore di classe con vincoli
Classe
Scopo
Vincoli
Esami
Esami sostenuti dagli studenti iscritti
chiave codice;
18 <= self.Voto <= 30;
if self.Lode then self.voto = 30;
Aspetto pragmatico
Progettazione concettuale
• Identificare le classi
• Identificare le associazioni e le loro
proprietà strutturali
• Identificare le proprietà, e i loro tipi,
delle classi e delle associazioni
• Individuare le specializzazioni
• Individuare le generalizzazioni
Scarica

Aspetto ontologico