Modelli di Base Dati 1 I Database a.a. 2001/2002 1.1
I Data base 1.2 Sono collezioni di dati organizzati in modo da poter definire delle relazioni. Da una base dati, attraverso opportuni criteri di selezione, si possono estrarre le informazioni necessarie a un determinato utilizzo. I Data base permettono l'utilizzo da parte di più soggetti di risorse comuni memorizzate in dispositivi diversi. a.a. 2001/2002 1.2
Esempio 1.3 Un tipo di organizzazione è quella tabellare. Un foglio Excel, per esempio, può essere visto come un elenco di righe su cui operare selezionandone alcune in base ai criteri definiti in un filtro. a.a. 2001/2002 1.3
Esempio 1.4 Dati gli archivi: A) Studenti, B) Corsi di laurea, C) Personale docente, D) Contabilità supponiamo che il programma P1 gestisca le carriere studenti, il programma P2 l'attività dei docenti, il programma P3 gli stipendi. Sono necessari i seguenti accessi: P1 richiede e aggiorna dati in A e B P2 richiede dati da B e C ma aggiorna solo C P3 richiede dati da C, D ma aggiorna solo D a.a. 2001/2002 1.4
Le proprietà 1.5 consistenza: i dati contenuti in una base dati devono essere significativi ed essere effettivamente utilizzabili sicurezza: impedire che il data base venga danneggiato da interventi accidentali o non autorizzati integrità: garantire che le operazioni effettuate sul Data Base da utenti autorizzati non provochino una perdita di consistenza ai dati a.a. 2001/2002 1.5
Per esempio 1.6 In azienda alcuni archivi di dati sono: Anagrafica dei dipendenti (CodDip, Cognome, Nome, Indirizzo, Data di nascita, CodRep, Stipendio) Reparti (CodRep, Ubicazione, CodDir) Prodotti (CodProd, Descrizione, Quantità in magazzino, Prezzo,CodRep) a.a. 2001/2002 1.6
Livelli di analisi Realtà Livello Concettuale Livello logico Entità/Associazione Entity/Relationship E/R 1.7 Livello Fisico Database La base di dati diventa un modello del mondo reale. Il contenuto della base di dati rappresenta lo stato della realtà modellata. I cambiamenti nella base di dati rappresentano gli eventi che accadono nella realtà modellata. Per arrivare alla costruzione di una base di dati si passa attraverso tre livelli di analisi. Il livello concettuale rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema. Il livello logico rappresenta il modo attraverso il quale i dati sono organizzati negli archivi elettronici: descrive quindi la composizione ed il formato dei dati nel loro aspetto di struttura logica di dati. Il livello logico viene derivato dal livello concettuale applicando alcune regole molto semplici. il livello fisico rappresenta l'effettiva installazione degli archivi elettronici: esso indica l'ubicazione dei dati nelle memorie di massa (dischi). Il livello fisico è quindi l'implementazione del livello logico sui supporti per la registrazione fisica dei dati. a.a. 2001/2002 1.7
Modello E/R 1.8 Il modello entità/associazioni (in inglese E/R = Entity/Relationship), introdotto nel 1976 da Peter P. Chen,, è uno strumento per analizzare le caratteristiche di una realtà in modo indipendente dagli eventi che in essa accadono, cioè per costruire un modello dei dati (a livello concettuale) indipendente dalle applicazioni. Gli elementi di un modello E/R sono: le entità (sostantivi), le associazioni (verbi), gli attributi (aggettivi). Solitamente i sostantivi che compaiono nelle frasi del linguaggio naturale corrispondono alle entità, mentre i verbi corrispondono alle associazioni. a.a. 2001/2002 1.8
Modello E/R: entità 1.9 L entità è un oggetto (concreto o astratto) che ha un significato anche quando viene considerato in modo isolato. Esempi di entità sono: le persone, un modello di automobile, i movimenti contabili, gli studenti, le facoltà. Studente Facoltà Ciascuno studente rappresenta un istanza del tipo entità Studente L entità è un oggetto (concreto o astratto) che ha un significato anche quando viene considerato in modo isolato ed è di interesse per la realtà che si vuole modellare. Esempi di entità sono: le persone, un modello di automobile, i movimenti contabili, le prove sostenute da uno studente. Per esempio gli studenti sono classificabili nel tipo entità Studente, i diversi modelli di automobile sono classificabili nel tipo entità Automobile. Ciascuno studente rappresenta un istanza del tipo entità Studente. a.a. 2001/2002 1.9
Modello E/R: associazioni 1.10 L associazione (in inglese relationship) ) è un legame che stabilisce un interazione tra le entità. Attenzione: Non sono da confondere le parole relationship e relazione. Studente iscritto a scelta da Facoltà Per esempio tra l entità Persona e l entità Automobile esiste un associazione che può essere descritta nel linguaggio naturale secondo due versi: una persona possiede una o più automobili e un automobile è posseduta da una persona. Quindi si può dire che tra l entità Persona e l entità Automobile esiste l associazione Possiede; tra l entità Automobile e l entità Persona esiste l associazione Posseduta da. L'associazione fra le entità Studente e Facoltà è espressa dai predicati in figura. a.a. 2001/2002 1.10
Modello E/R: attributi 1.11 Le proprietà delle entità e delle associazioni vengono descritte attraverso gli attributi. Per esempio l'entità Studente: Matricola,Nome, Indirizzo. Studente Matricola NomeIndirizzo Esempi di attributi per l entità Automobile sono: Modello, Produttore, Cilindrata, PrezzoListino, per l'entità Studente sono: Nome, Cognome, Matricola. a.a. 2001/2002 1.11
ttributi Caratteristiche degli attributia 1.12 Il formato di un attributo indica il tipo di valori che assume. Formati base: carattere, numerico, data/ora La dimensione indica la quantità massima di caratteri o cifre inseribili. L'opzionalità (facoltativo) Il valore nullo: Null Il dominio è l insieme dei valori che può assumere l attributo. Le caratteristiche di ogni attributo sono: Il formato di un attributo indica il tipo di valori che assume; i tre formati base sono: carattere, numerico, data/ora. La dimensione indica la quantità massima di caratteri o cifre inseribili. L'opzionalità indica la possibilità di non essere sempre valorizzato: l attributo è obbligatorio se deve avere valore non nullo (per esempio il nome di una persona in un anagrafica), facoltativo se sono accettabili valori nulli (per esempio il titolo di studio di una persona). Il valore nullo, in inglese Null, (da non confondere con la stringa di caratteri blank o con un numero di valore zero) rappresenta un informazione mancante, inapplicabile o sconosciuta. I diversi valori assunti dagli attributi determinano le diverse istanze dell entità. L'insieme dei possibili valori assunti da un attributo si chiama dominio dell'attributo. a.a. 2001/2002 1.12
Chiave o chiave primaria 1.13 L'insieme di uno o più attributi che consentono di distinguere un istanza dall'altra. Esempi di chiavi sono il codice di un prodotto o la matricola di uno studente. Studente Matricola NomeIndirizzo a.a. 2001/2002 1.13
Rappresentazione grafica dello schema E/R Entità: : un rettangolo contenente all'interno il nome dell'entità: 1.14 Studente Attributi: : linea che parte dall'entità e termina con il nome ed un piccolo cerchio: Studente Matricola Nome Indirizzo a.a. 2001/2002 1.14
Rappresentazione grafica dello schema E/R (continua) Associazione: : linea di congiunzione tra due entità. Versi dell associazione: : descrizione accanto alla linea e all entità di partenza del verso: 1.15 Studente iscritto a scelta da Facoltà a.a. 2001/2002 1.15
Rappresentazione grafica dello schema E/R (continua) Esiste un simbolismo diverso per descrivere un'associazione: 1.16 Studente iscritto Facoltà in questo caso è possibile specificare gli attributi che intervengono nell associazione: Persona acquista Automobile DataAcquisto PrezzoAcquisto ATTENZIONE: Gli attributi DataAcquisto e PrezzoAcquisto non sono attributi né dell entità Persona, né dell entità Automobile, ma sono attributi dell associazione tra le due entità. a.a. 2001/2002 1.16
Come leggere un associazione 1.17 1. partenza 4. 3. arrivo 2. verso OGNI nome dell'entità di partenza DEVE / PUÒ ESSERE nome del verso dell associazione UN SOLO / UNO O PIÙ nome dell'entità di arrivo Per esprimere con frasi del linguaggio naturale la struttura del modello si usa la seguente terminologia per entrambi i versi di ciascuna associazione : Ogni <nome dell'entità di partenza> deve essere / può essere <nome del verso dell'associazione> un solo / uno o più <nome dell'entità di arrivo> linea continua che inizia dall entità di partenza del verso: deve essere linea tratteggiata che inizia dall'entità di partenza del verso: può essere linea unica che termina nell'entità di arrivo del verso:un solo linea multipla che termina nell'entità di arrivo del verso:uno o più N.B. Convertire al plurale il nome dell'entità di arrivo nel caso in cui si utilizzino le parole uno o più. Un associazione tra le entità può essere : obbligatoria quando il legame tra le entità deve essere sempre presente, opzionale quando può essere presente. Queste caratteristiche possono naturalmente riguardare anche i versi dell associazione tra le entità. Verso obbligatorio = linea continua Verso opzionale = linea tratteggiata ESEMPIO: Associazione tra l entità Persona e l entità ContoCorrente : verso Titolare di = opzionale (non tutte le persone possiedono un conto corrente) ; a.a. 2001/2002 verso Intestato a = obbligatorio (ogni conto corrente deve essere intestato a qualcuno). 1.17
Esempio 1 1.18 Studente Iscritto a Scelta da Facoltà Ogni Studente deve essere iscritto a una sola Facoltà. Ogni Facoltà può essere scelta da uno o più Studenti. a.a. 2001/2002 1.18
Esempio 2 1.19 Prodotto fornito da abbinato a Fornitore Ogni Prodotto deve essere fornito da uno o più Fornitori Ogni Fornitore può essere abbinato a uno o più Prodotti a.a. 2001/2002 1.19
Grado del verso di un associazione 1.20 Il grado di un verso dell'associazione è la caratteristica che indica quante istanze dell'entità di arrivo si associano all'istanza dell'entità di partenza. Il grado può essere : a uno, a molti. a.a. 2001/2002 1.20
Associazione 1:1 1.21 Associazione 1:1 (uno a uno) o biunivoca pilota alla guida di guidata da monoposto OGNI pilota deve essere alla guida di una sola monoposto. OGNI monoposto deve essere guidata da un solo pilota. a. Associazione 1:1 (uno a uno) o biunivoca Ogni istanza della prima entità si deve associare ad una sola istanza della seconda entità e viceversa. Il simbolismo che indica il grado a uno nell associazione tra le entità è la linea stessa. a.a. 2001/2002 1.21
Associazione 1:n 1.22 Associazione 1:n (uno a molti) o semplice squadra composta da di proprietà di calciatore OGNI squadra deve essere composta da uno o più calciatori. OGNIcalciatore deve essere di proprietà di una sola squadra. b. Associazione 1:N (uno a molti) o semplice Ogni istanza della prima entità si può associare a una o più istanze della seconda entità, mentre ogni istanza della seconda entità si deve associare ad una sola istanza della prima. Il grado a molti si rappresenta con l'aggiunta di altre due linee in prossimità dell'entità di arrivo. a.a. 2001/2002 1.22
Associazione n:n 1.23 Associazione n:n (molti a molti) o complessa Cliente fornito da abbinato a Fornitore Cliente Ordine Fornitore Numero Data c. Associazione N:N (molti a molti) o complessa Ogni istanza della prima entità si può associare a una o più istanze della seconda entità e viceversa. L associazione molti a molti può essere facilmente scomposta in due associazioni uno a molti, anche per consentire di rappresentare gli attributi dell associazione. Per esempio Ogni Studente può essere valutato in uno o più Corsi. Ogni Corso può essere frequentato da uno o più Studenti. Si introduce la nuova entità Prova d'esame Ogni Studente può essere sottoposto a una o più Prove d esame. Ogni Prova d esame deve essere riferita a un solo Studente. Ogni Corso può essere controllato con una o più Prove d esame. Ogni Prova d esame deve essere riferita ad un solo Corso. L associazione molti a molti è stata trasformata in due associazioni uno a molti, con l'aggiunta di una terza entità. a.a. 2001/2002 1.23
Esercizi. Individuare le entità, gli attributi, le associazioni e le chiavi. Disegnare il modello E/R con i versi delle associazioni. Verificare lo schema con le regole di lettura. 1.24 1.1. Clienti, Fatture emesse. 1.2. Soci di una Biblioteca e prestiti di libri. 1.3. Reparti, Dipendenti che lavorano in diversi reparti. 1.4. Videoteca suddivisa per soggetti. 1.5. Prenotazione di visite specialistiche presso gli uffici del Servizio Sanitario. 1.6. Materie prime per fare prodotti finiti 1.1 OGNI Cliente(codice, nome, indirizzo) PUO ESSERE intestatario di UNA O PIU Fatture OGNI Fattura(numero, data, prodotto, importo, codice_cliente) PUO ESSERE intestata a UN SOLO Cliente 1.2 OGNI Socio(tessera, nome, telefono) PUO ESSERE in possesso di UNO O PIU Libri OGNI Libro(codice, titolo, autore, prestito, data, tessera_socio ) PUO ESSERE in prestito a UN SOLO Socio 1.3 OGNI Dipendente(matricola, nome) PUO ESSERE occupato in UNO O PIU Reparti OGNI Reparto(codice, nome) PUO ESSERE fatto funzionare da UNO O PIU Dipendenti scomponibile in OGNI Dipendente(matricola, nome) PUO ESSERE occupato in UNA O PIU Mansioni OGNI Mansione(tipo di mansione, matricola_dipendente, codice_reparto) DEVE ESSERE riferita a UN SOLO Dipendente OGNI Reparto(codice, nome) PUO ESSERE fatto funzionare con UNA O PIU Mansioni OGNI Mansione(tipo di mansione, matricola_dipendente, codice_reparto) DEVE ESSERE riferita a UN SOLO Reparto 1.4 OGNI Videocassetta(codice, titolo, durata) DEVE ESSERE abbinata a UN SOLO soggetto OGNI Soggetto(codice, descrizione) PUO ESSERE relativo a UNA O PIU videocassette 1.5 OGNI Cittadino(tessera sanitaria) PUO ESSERE in prenotazione per UNA O PIU Visite OGNI Visita(codice, descrizione) PUO ESSERE prenotata da UNO O PIU Cittadini scomponibile in OGNI Cittadino(tessera sanitaria) PUO ESSERE in prenotazione di UNO O PIU Appuntamenti OGNI Appuntamento(data, ora, tessera sanitaria, codice visita) DEVE ESSERE relativo a UN SOLO Cittadino OGNI Visita(codice, descrizione) PUO ESSERE prenotata con UNO O PIU Appuntamenti OGNI Appuntamento(data, ora, tessera sanitaria, codice visita) DEVE ESSERE relativo a UNA SOLA Visita 1.6 OGNI MateriaPrima(nome) PUO ESSERE impiegata per UNO O PIU Prodotti OGNI Prodotto(nome) DEVE ESSERE composto da UNA O PIU MateriePrime scomponibile in OGNI MateriaPrima(nome) PUO ESSERE impiegata per UNA O PIU Lavorazioni OGNI Lavorazione(codice, nome_materiaprma, nome_prodotto) DEVE ESSERE riferita a UNA SOLA MateriaPrima OGNI Prodotto(nome) DEVE ESSERE composto con UNA O PIU Lavorazioni OGNI Lavorazione(codice, nome_materiaprma, nome_prodotto) DEVE ESSERE riferita a UN SOLO Prodotto a.a. 2001/2002 1.24