Modelli dei dati Modelli e database

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

La modellizzazione dei dati
La progettazione concettuale
Informatica II – Basi di Dati (08/09) – Parte 1
Corso di Laurea in Biotecnologie Informatica (Basi di Dati)
DB - Modello relazionale dei dati
IL MODELLO ENTITÀ-RELAZIONE Gli altri costruttori
IL MODELLO ENTITA’ - RELAZIONE I costruttori di base
Progettazione concettuale
Analisi e progettazione
Progettazione concettuale
Basi di dati: il modello relazionale
DATABASE Sono strumenti informatici con i quali è possibile memorizzare e gestire numerose quantità di informazioni di un’ organizzazione, in modo: Semplice;
1 Sistemi per il recupero delle informazioni PARTE - III COME SI MODELLA.
Laurea magistrale in Editoria e giornalismo
Progettazione Concettuale: Il modello Entità-Relazioni
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Il modello relazionale: strutture e vincoli
Relazioni Relazione: Associazione o legame logico esistente tra due o più entità Socio Prenota Campo.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
L’uso dei database in azienda
ENTITÀ - RELAZIONE MODELLO ENTITÀ E ATTRIBUTI DOMINI RELAZIONI
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Appunti informatica- prof. Orlando De Pietro
Modello E-R Generalizzazioni
Progettazione di una base di dati
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello E-R Generalizzazioni
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Paolo Manghi ISTI-CNR MS Access Paolo Manghi ISTI-CNR
Il Modello Relazionale
Implementare un modello di dati
PROGETTAZIONE DI UN DATA BASE TURCO MERY MAT CPA
Il modello ER Proposto da Peter Chen nel 1976 rappresenta uno standard per la progettazione concettuale (in particolare per le basi di dati) Ha una rappresentazione.
MODELLO LOGICO DEI DATI
Progettare un database
Introduzione a Oracle 9i
LE BASI DI DATI E IL LINGUAGGIO SQL.
MODELLO E/R.
DB- Sistemi Informativi
Modellazione dei Dati Fabio Scanu a.s. 2012/2013.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Diagramma delle Classi
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Progettazione di una base di dati relazionale Vincoli.
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Progettazione di una base di dati relazionale Terza forma normale.
Sistemi di Elaborazione delle Informazioni
Metodologie e modelli per il progetto. 2 Introduzione alla progettazione Il problema: progettare una base di base di dati a partire dai suoi requisiti.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Eprogram informatica V anno.
Cloud informatica V anno.
Prima esercitazione di Basi di Dati Barcelli, Bardine, Loconsole, Manganelli e MIgliorini.
Progettazione concettuale Castagnozzi Savino Ciaramello Massimo Emiliano Galeazzi Federico Guerriero Lorenzo Macauda Giorgio.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
1. CASO BIBLIOTECA ANALISI DEI REQUISITI Si vuole automatizzare la gestione prestiti dei libri di una biblioteca personale. La progettazione deve tener.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Transcript della presentazione:

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

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

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.

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.

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.

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

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?

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

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.

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

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.

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

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, 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.

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à

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.

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.

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

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

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’

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

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

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

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

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à

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)

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.

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

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 multivalore totale parziale unione strutturato Attributi

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

haInPrestito inPrestitoA Utenti 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) 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) Corsi Studenti studentiIscritti corsiSeguiti

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

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

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

Esempio: gerarchia multipla Aspetto linguistico Esempio: gerarchia multipla Persone Studenti Piloti StudentPiloti

Relazione tra sottoinsiemi Aspetto linguistico Relazione tra sottoinsiemi Studenti Sottoinsiemi indipendenti Laureandi FuoriCorso Studenti Sottoinsiemi disgiunti Laureandi Matricole Persone Sottoinsiemi partizione Maschi Femmine

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

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;

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