La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Modelli e database In generale un modello è la rappresentazione di idee e conoscenze relative a un fenomeno espressa in un certo linguaggio formale –Es.

Presentazioni simili


Presentazione sul tema: "Modelli e database In generale un modello è la rappresentazione di idee e conoscenze relative a un fenomeno espressa in un certo linguaggio formale –Es."— Transcript della presentazione:

1 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

2 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 = (A 1 : T 1, A 2 : T 2,…, A n : T n ), dove A 1, A 2,…, A n sono detti attributi T 1, T 2,…, T n sono tipi elementari –lo schema di una base di dati è un insieme di schemi di relazione R 1 (T 1 ), R 2 (T 2 ), …, R k (T k ); –unistanza di una tabella R(T) è un insieme finito di record di tipo T della forma (A 1 : v 1, A 2 : v 2,…, A n : v n ), dove v i è di tipo T i Modelli dei dati

3 Esempio: relazione Studenti Relazione 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 dellistanza della tabella. record attributo Valore di attributo Modello relazionale

4 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 lordine dei record in esse contenute, sono uguali. Modello relazionale

5 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 unoperazione può essere utilizzato come input per unaltra operazione. Modello relazionale

6 Progettazione di database Supponiamo di voler modellare luniverso del discorso dellUniversità, in particolare il contesto della gestione della carriera universitaria degli studenti È improponibile progettare un database sulla base del solo universo del discorso e senza ladozione di metodologie di modellazione –Passare direttamente dalla realtà dellUniversità a tabelle relazionali sulla base della sola intuizione è unoperazione 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 è unoperazione complessa (intuizione e metodo) Progettazione

7 Metodologie Esistono metodologie di modellazione che forniscono gli strumenti e linguaggi per: –individuare e rappresentare le componenti interessanti delluniverso 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

8 Fasi di progettazione Linformatica offre strumenti per costruire: –modelli per lanalisi 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

9 Aspetti del problema Aspetto ontologico Quale conoscenza delluniverso 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

10 Aspetto ontologico Cosa si modella Conoscenza concreta: – I fatti Conoscenza astratta – Struttura e vincoli sulla conoscenza concreta Aspetto ontologico

11 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

12 Con. concreta: entità e proprieta Le entità rappresentano fatti concreti o astratti, nel dominio del discorso, di cui interessa rappresentare lesistenza. –Ad esempio, lo studente Mando Lino (la persona) è un fatto concreto, un esame da lui passato con 30 è un fatto astratto; entrambi sono interessanti nellambito 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

13 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 unentità è un processo semantico Come conseguenza i nomi degli attributi di una proprietà devono riflettere il significato dei valori ad essi associati. Aspetto ontologico

14 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

15 Determinare le proprietà Esempio, la proprietà Indirizzo di unentità 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 dallattributo indirizzo, mentre nel secondo caso il valore è reso esplicito dallattributo stato. Aspetto ontologico

16 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 lUniversità, 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 lunico scopo degli indirizzi fosse invece quello della spedizione, la soluzione migliore sarebbe quella di un unico attributo indirizzo. Aspetto ontologico

17 Determinare le proprietà (cont.) Un altro aspetto da considerare nel determinare le proprietà di unentità è 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 lesigenza non è rilevata nel momento dellanalisi della realtà, è bene prevedere una proprietà con attributo dataNascita. Aspetto ontologico

18 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

19 Domini delle proprietà e tipi Il dominio di una proprietà specifica linsieme 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 linsieme {Aosta, Aquila,…Milano,….., Venezia}, cioè tutte le possibile provincie –Il tipo che verrà associato a questo dominio sarà char(20), cioè linsieme di tutte le stringhe di lunghezza minore o uguale a 20. Aspetto ontologico

20 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

21 Con. Concreta: esempio StudentiEsami 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

23 Sottoclassi e superclassi Studenti 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 è superclasse di Laureandi e Matricole, mentre Laureandi e Matricole sono sottoclassi di Studenti Aspetto ontologico

24 Con. concreta: le associazioni Unistanza di associazione è un fatto che correla due o più entità, stabilendo un legame logico tra di loro. Esempi: –Lo studente Lino Mando ha passato lesame di basi di dati con 27; –Lesame di fisica con voto 24 è stato passato dallo studente con matricola Unassociazione 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

25 Esempio di associazioni Associazione esamiPassati-passatoDa Istanza di associazione Aspetto ontologico StudentiEsami 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"

26 Tipi di associazioni Il grado di unassociazione è 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

27 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

28 Con. astratta: vincoli dintegrita I vincoli dintegrità sulla conoscenza concreta possono essere: Statici: definiscono delle condizioni sui valori della conoscenza concreta che devono essere soddisfatte indipendentemente da come evolve luniverso 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

29 Es. Vincoli dintegrità Vincolo dintegrità statico: –Il voto di un esame non può essere minore di 18 o maggiore di 30 Vincolo dintegrita dinamico: – Letà di uno studente non può diminuire nel tempo Aspetto ontologico

30 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 dintegrità dovranno essere invece descritti a parte, mediante appositi descrittori di vincoli Il modello ER di un universo del discorso è detto schema Aspetto linguistico

31 ER: classi e attributi nome telefono lingueParlate multivalore totale parziale unione strutturato Attributi Persone Le entità non hanno un corrispondente nellER, 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

32 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

33 UtentiLibri haInPrestito Data inPrestitoA Prestiti

34 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 corsoTenutotenutoDa Aspetto linguistico

35 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 relatoreDitesistaDi Aspetto linguistico

36 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 studentiIscritticorsiSeguiti

37 Esempio della biblioteca Aspetto linguistico Descrizioni Bibliografiche Autori Documenti Fisici Termini Utenti Prestiti Indicizza Descrive HaScritto EDatoIn HaPreso ESinonimoDi Specializza PiùGeneralePiùSpecifico UsaUsatoPer

38 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

39 ER: sottoclassi e superclassi nome: string lingueParlate: seq string annoNascita: int possiede: Auto matricola: string votiEsami: seq string annoIscrizione: int Aspetto linguistico Studenti Persone

40 Esempio: gerarchia multipla Aspetto linguistico StudentPiloti PilotiStudenti Persone

41 Relazione tra sottoinsiemi Studenti FuoriCorsoLaureandi Studenti MatricoleLaureandi Persone FemmineMaschi Sottoinsiemi indipendenti Sottoinsiemi disgiunti Sottoinsiemi partizione Aspetto linguistico

42 Esempio della biblioteca con sottoclassi Testi in Consultazione RegolariSospesi DocentiStudenti Aspetto linguistico Descrizioni Bibliografiche Autori Documenti Fisici Termini Utenti Prestiti Indicizza Descrive HaScritto EDatoIn HaPreso ESinonimoDi Specializza PiùGeneralePiùSpecifico UsaUsatoPer

43 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

44 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


Scaricare ppt "Modelli e database In generale un modello è la rappresentazione di idee e conoscenze relative a un fenomeno espressa in un certo linguaggio formale –Es."

Presentazioni simili


Annunci Google