modelli e database in generale un modello è la rappresentazione di idee e conoscenze relative a un...
Post on 02-May-2015
215 Views
Preview:
TRANSCRIPT
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 RelazionaleIl 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
Modelli dei dati
Esempio: relazione StudentiRelazione
Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int)
Istanza di Studenti
1980PI175649Bonini
1078LI179856Bianchi
1975LU167459Rossi
1980PI171523Isaia
AnnoNascitaProvinciaMatricolaNome
Una tabella si rappresenta graficamente come una tabella con una colonna per ogni attributo e una riga per ogni record dell’istanza della tabella.
record
attributo
Valoredi attributo
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.
Modello relazionale
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 progettazioneL’informatica offre strumenti per costruire:
– modelli per l’analisi del problema;
– modelli per la progettazione della soluzione;
– modelli per la realizzazione del progetto.
Progettazione
ANALISI DEI REQUISITI
PROGETTAZIONE CONCETTUALE
PROGETTAZIONE LOGICA e FISICA
Specifica dei requisiti
Modello concettuale
Modello relazionale logico e fisico
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?
Prog. della soluzione
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 Esami
a1
a2
nome = “Lino Mando"
matricola = “12345"
materia = “BD"
voto = 26
d1
d2
d3
materia = “ALG"
voto = “27"
materia = “FIS"
voto = “24"
nome = “Franca Mente"
matricola = “54321"
Collezione
Entita’
Proprieta’
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 superclassiStudenti
a1
a2
nome = “Lino Mando"
matricola = “12345"
matricola = “54321"
nome = “Franca Mente"
Matricole
Laureandi
a2
matricola = “54321"
nome = “Franca Mente"
a1 nome = “Lino Mando"
matricola = “12345"
votoMaturità = “58”
relatore = “Lina Carto”
Studenti è superclassedi Laureandi e Matricole, mentreLaureandi 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
esamiPassati-passatoDa
Istanza di associazione
Aspetto ontologico
Studenti Esami
a1
a2
nome = “Lino Mando"
matricola = “12345"
materia = “BD"
voto = 26
d1
d2
d3
materia = “ALG"
voto = “27"
materia = “FIS"
voto = “24"
nome = “Franca Mente"
matricola = “54321"
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 ontologico
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
nome
telefono
lingueParlate
multivalore
totale
parzialeunione
strutturato
Attributi
Persone
Le entità non hanno un corrispondente nell’ER, nel quale si modellano solo le classi, cioè collezioni di entità
La classe Persone: una collezione di entità persone con proprietà lingueParlate, telefono, nome
Aspetto linguistico
ER: associazioni
Le associazioni si rappresentano come un rombo
collegato con degli archi alle classi associate;
esempio:
Le associazioni possono avere delle proprietà
Utenti Libri
haInPrestito
Aspetto linguistico
Data
inPrestitoA
Utenti Libri
haInPrestito
Data
inPrestitoA
Prestiti
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)
Professori Corsi
corsoTenuto tenutoDa
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)
Professori Studenti
relatoreDi tesistaDi
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)
Aspetto linguistico
Corsi Studenti
studentiIscritti corsiSeguiti
Esempio della biblioteca
Aspetto linguistico
DescrizioniBibliografiche
Autori
DocumentiFisiciTermini
Utenti Prestiti
Indicizza Descrive
HaScritto
E’DatoIn
HaPresoE’SinonimoDi
Specializza
PiùGenerale PiùSpecifico
Usa UsatoPer
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
nome: string
lingueParlate: seq string
annoNascita: int
possiede: Auto
matricola: stringvotiEsami: seq string
annoIscrizione: int
Aspetto linguistico
Studenti
Persone
Esempio: gerarchia multiplaAspetto linguistico
StudentPiloti
PilotiStudenti
Persone
Relazione tra sottoinsiemi
Studenti
FuoriCorsoLaureandi
Studenti
MatricoleLaureandi
Persone
FemmineMaschi
Sottoinsiemiindipendenti
Sottoinsiemidisgiunti
Sottoinsiemipartizione
Aspetto linguistico
Esempio della biblioteca con sottoclassiTesti in
Consultazione
Regolari Sospesi
Docenti Studenti
Aspetto linguistico
DescrizioniBibliografiche
Autori
DocumentiFisiciTermini
Utenti Prestiti
Indicizza Descrive
HaScritto
E’DatoIn
HaPresoE’SinonimoDi
Specializza
PiùGenerale PiùSpecifico
Usa UsatoPer
Descrittore di classe con vincoli
Classe Esami
Scopo Esami sostenuti dagli studenti iscritti
Vincoli chiave codice;
18 <= self.Voto <= 30;
if self.Lode then self.voto = 30;
Aspetto linguistico
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
Aspetto pragmatico
top related