Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
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
2
Il Modello Relazionale
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
3
Esempio: relazione Studenti
Modello relazionale Esempio: relazione Studenti Relazione Studenti(Nome: string, Matricola: string, Provincia: string, AnnoNascita:int) attributo Istanza di Studenti record 1980 PI 175649 Bonini 1078 LI 179856 Bianchi 1975 LU 167459 Rossi 171523 Isaia AnnoNascita Provincia Matricola Nome 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.
4
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.
5
Operazioni sulle relazioni
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.
6
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)
7
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
8
PROGETTAZIONE CONCETTUALE PROGETTAZIONE LOGICA e FISICA
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 PROGETTAZIONE CONCETTUALE PROGETTAZIONE LOGICA e FISICA Specifica dei requisiti Modello concettuale Modello relazionale logico e fisico
9
Aspetti del problema Aspetto ontologico
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?
10
Aspetto ontologico Cosa si modella Conoscenza concreta: I fatti
Conoscenza astratta Struttura e vincoli sulla conoscenza concreta Osserviamo che i primi tre aspetti si possono interpretare come creazione di un modello del dominio del discorso che è guidata dall’utilizzo che si vuol fare della base di dati ma che è indipendente da
11
La 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à. Tipi e classi: i tipi rappresentano una conoscenza di tipo “descrittivo”, mentre le classi rappresentano una parte della conoscenza concreta? Una classe è, in un certo senso, un’entità anch’essa, ma non atomica.
12
Con. concreta: entità e proprieta’
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
13
Con. concreta: proprietà
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.
14
Con. concreta: proprietà (cont.)
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
15
Determinare le proprietà
Aspetto ontologico Determinare le proprietà Esempio, la proprietà Indirizzo di un’entità studente potrebbe essere intesa come primitiva o strutturata: (indirizzo, “Via Diotisalvi, 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.
16
Determinare le proprietà (cont.)
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. più struttura, più rigidità
17
Determinare le proprietà (cont.)
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.
18
Determinare le proprietà (cont.)
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.
19
Domini delle proprietà e tipi
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. sottolineare tipo diverso da dominio
20
Con. concreta: collezioni
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
21
Con. Concreta: esempio Aspetto ontologico Studenti Esami
materia = “BD" d1 nome = “Lino Mando" a1 voto = 26 matricola = “12345" d2 materia = “ALG" Entita’ voto = “27" nome = “Franca Mente" a2 materia = “FIS" d3 matricola = “54321" voto = “24" Collezione Proprieta’
22
Con. concreta: gerarchia di classi
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
23
Sottoclassi e superclassi
Aspetto ontologico Sottoclassi e superclassi Matricole Studenti nome = “Lino Mando" a1 votoMaturità = “58” nome = “Lino Mando" a1 matricola = “12345" matricola = “12345" Laureandi nome = “Franca Mente" a2 matricola = “54321" a2 nome = “Franca Mente" relatore = “Lina Carto” matricola = “54321" Studenti è superclasse di Laureandi e Matricole, mentre Laureandi e Matricole sono sottoclassi di Studenti
24
Con. concreta: le associazioni
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
25
Esempio di associazioni
Aspetto ontologico Esempio di associazioni Associazione esamiPassati-passatoDa Studenti Esami materia = “BD" nome = “Lino Mando" d1 a1 voto = 26 matricola = “12345" d2 materia = “ALG" nome = “Franca Mente" voto = “27" a2 materia = “FIS" d3 matricola = “54321" voto = “24" Istanza di associazione
26
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à
27
Es. Tipi di associazioni
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)
28
Con. astratta: vincoli d’integrita’
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.
29
Es. Vincoli d’integrità
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
30
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
31
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 multivalore totale parziale unione strutturato Attributi
32
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à haInPrestito inPrestitoA Utenti Libri Data
33
haInPrestito inPrestitoA Utenti Libri Prestiti Data
34
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) Professori Corsi corsoTenuto tenutoDa
35
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
36
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) Corsi Studenti studentiIscritti corsiSeguiti
37
Esempio della biblioteca
Aspetto linguistico Esempio della biblioteca Specializza PiùGenerale PiùSpecifico Indicizza Descrive Descrizioni Bibliografiche Documenti Fisici Termini Usa UsatoPer E’DatoIn E’SinonimoDi HaPreso HaScritto Autori Utenti Prestiti
38
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
39
ER: sottoclassi e superclassi
Aspetto linguistico ER: sottoclassi e superclassi nome: string Persone lingueParlate: seq string annoNascita: int possiede: Auto matricola: string Studenti votiEsami: seq string annoIscrizione: int
40
Esempio: gerarchia multipla
Aspetto linguistico Esempio: gerarchia multipla Persone Studenti Piloti StudentPiloti
41
Relazione tra sottoinsiemi
Aspetto linguistico Relazione tra sottoinsiemi Studenti Sottoinsiemi indipendenti Laureandi FuoriCorso Studenti Sottoinsiemi disgiunti Laureandi Matricole Persone Sottoinsiemi partizione Maschi Femmine
42
Esempio della biblioteca con sottoclassi
Aspetto linguistico Esempio della biblioteca con sottoclassi Testi in Consultazione Descrizioni Bibliografiche Autori Documenti Fisici Termini Utenti Prestiti Indicizza Descrive HaScritto E’DatoIn HaPreso E’SinonimoDi Specializza PiùGenerale PiùSpecifico Usa UsatoPer Regolari Sospesi Docenti Studenti
43
Descrittore di classe con vincoli
Aspetto linguistico 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;
44
Progettazione concettuale
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.