Informatica Generale (AA 07/08) Corso di laurea in “Scienze della Comunicazione” Facoltà di Lettere e Filosofia Università degli Studi di Salerno UD 2.2b:Modello Relazionale (2)-Relazioni e DB, valori nulli Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno RELAZIONI E BASI DI DATI Atzeni, cap. 2.1.4 1 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Il modello è basato su valori e ne Una Base di Dati è generalmente costituita da più di una zio a nic Tabella mu om aC l l e ed z n Le corrispondenze fra dati presenti incietabelle diverse S i sono rappresentate per mezzo di tvalori comuni che od n e compaiono in tuple appartenenti a tali tabelle. im rt pa i D In altri modelli (Gerarchico e Reticolare) le corrispondenze tra i dati presenti in strutture diverse è fatta tramite riferimenti espliciti (i puntatori) UD 2.2b # 3 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Esempio STUDENTI e i on z Data di Nascita ica Codice Titolo unDocente m 25/11/1971 o 01 Analisi Giani aC l l e 23/04/1972 d 03 ze Chimica Melli 12/02/1972 ien Chimica Belli c04 S 10/10/1971 di to n 01/12/1971ime rt pa i D CORSI Matricola Cognome Nome 276545 Rossi Maria 485745 Neri Anna 200768 Verdi Fabio 587614 Rossi Luca 937653 Bruni Mario ESAMI Studente Voto Corso UD 2.2b # 4 276545 28 01 276545 27 04 937653 25 01 200768 24 04 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 2 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Esempio STUDENTI ne zio a nic Data di Nascita Codice Titolo uDocente m o C 25/11/1971 01 Analisi Giani lla e 23/04/1972 03 e dChimica Melli z n e i 12/02/1972 Chimica Belli c04 iS d 10/10/1971 o nt 01/12/1971ime rt pa Di CORSI Matricola Cognome Nome 276545 Rossi Maria 485745 Neri Anna 200768 Verdi Fabio 587614 Rossi Luca 937653 Bruni Mario ESAMI Studente Voto Corso 28 27 25 24 UD 2.2b # 5 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Vantaggi della struttura basata su valori Si rappresenta solo ciò che è rilevante dal punto di zione ica vista dell’applicazione un m Co ¾ i puntatori sono “aggiuntivi“ rispetto ai dati veri e propri a l el ed z n cie S La rappresentazione logica dei dati non fa riferimento a di to quella fisica, che può cambiare nelentempo, permettendo im t r quindi di ottenere l‘indipendenza fisica dei dati pa Di ¾ E‘l‘assenza di puntatori che permette al modello relazionale il raggiungimento dell‘indipendenza fisica I dati sono portabili facilmente da un sistema ad un altro ¾ i puntatori (che, alla fine, non sono che indirizzi di memoria) sono spesso legati al singolo computer UD 2.2b # 6 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 3 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Schema di Relazione e di Database ne zio a ¾ un nome R con un insieme di (nomi di) attributi A1,A2,...,A nic n mu o C R(A1,A2,...,An) lla e d ¾ A ciascun attributo è associato un dominio ze n e ci SCHEMA DI DATABASE (RELAZIONALE) iS d o ¾ insieme di tutti gli schemi di relazione: nt e im R = {R1(A1,A2,...,An), R2(B1,B2a,...,B rt m), ..., Rk(K1,K2,...,Kr)} p i D SCHEMA DI RELAZIONE Lo Schema della Base di Dati dell’esempio precedente è la seguente: R={STUDENTI(Matricola, Cognome, Nome, Data di Nascita), ESAMI(Studente, Voto, Corso), CORSI (Codice, Titolo, Docente)} UD 2.2b # 7 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Istanza di Relazione e di Database e ne ISTANZA DI RELAZIONE su uno schema R(A1,A2,...,A zion) ica un m o aC l l de ze n ISTANZA DI BASE DI DATI su uno schema ie Sc i R = {R1(A1,A2,...,An), R2(B1,B2,...,Bm),to...,d Rk(K1,K2,...,Kr)} en ¾ insieme di tutte le tuple presentirnelle tim Relazioni all’interno del pa Database Di ¾ insieme r di tuple su A1,A2,...,An Una tupla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio di A t[A] denota il valore della tupla t sull'attributo A UD 2.2b # 8 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 4 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Tabelle con un solo attributo e Presente in DB con più tabelle, in cui la tabella con unzion e ica solo attributo contiene valori che appaiono comemvalore un o aC di attributo di un’altra tabella l l e e ed z n studenti cie S i Matricola Cognome Nome dData di nascita o nt 6554 Rossi Mario 05/12/1978 e im t r 8765 Neri Paolo 03/11/1976 pa Di 9283 3456 Verdi Rossi Luisa Maria 12/11/1979 01/02/1978 studenti lavoratori Matricola 6554 3456 UD 2.2b # 9 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Tabelle con struttura nidificata Da Filippo Via Roma 2, Roma Ricevuta Fiscale 1235 del 18/11/2002 3 2 3 2 Coperti Antipasti Primi Bistecche 3,00 6,20 12,00 18,00 Totale 39,20 UD 2.2b # 10 e i on z a Da Filippo unic m Co Via Roma 2,laRoma l de Ricevuta ze Fiscale n cie 19/11/2002 1240i Sdel d 2 ento Coperti 2,00 im t r Antipasti 7,00 pa 2 Di 2 2 2 Primi Orate Caffè 8,00 20,00 2,00 Totale 39,00 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 5 Ultima modifica: 20/11/2007 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Tabelle con struttura nidificata Frasi Prestampate Informazioni Fisse ne zio a Da Filippo nic u Via Roma 2,CRoma om a ll Ricevuta de Fiscale e z en 18/11/2002 1235cidel iS 3 to d Coperti 3,00 n e im Antipasti 6,20 rt 2 pa i D 3 Primi 12,00 Informazioni variabili (ognuna relativa a un insieme di portate omogenee) 2 Bistecche 18,00 Totale 39,20 UD 2.2b # 11 Ultima modifica: 20/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Tabelle con struttura nidificata e Poiché le Tabelle hanno un numero fisso di attributi zion e ca ic ¾ non è possibile rappresentare l’informazione contenuta nelle un m o ricevute utilizzando una sola tabella … aC l l de ¾ … a meno di non sprecare una quantità enorme di ze“spazio” creando n ie un numero di colonne pari al numero massimo Sc di portate i od nt e tim ar E’ possibile rappresentare leipinformazioni per mezzo di D due tabelle, la prima contenente i dati fissi e la seconda quelli variabili (un record per ogni elemento) UD 2.2b # 12 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 6 Ultima modifica: 20/11/2007 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Tabelle con struttura nidificata Ricevute Dettaglio Numero 1235 1240 Numero 1235 1235 1235 1235 1240 … UD 2.2b # 13 Ultima modifica: 20/11/2007 ne zio a nic Data Totale omu C lla 12/10/2000 39,20 e d ze n e 13/10/2000 ci 39,00 iS od t en Qtà 3,00 im Coperti t r a 3 Di p Coperti 3,00 2 3 2 Antipasti Primi Bistecche 6,20 12,00 18,00 2 … Coperti … 2,00 … Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Tabelle con struttura nidificata e e Abbiamo rappresentato veramente tutti gli aspetti delle i on z a nic ricevute? mu om aC l l de ze n ¾ l'ordine delle righe è rilevante? ie Sc i ¾ possono esistere linee ripetute in una ricevuta? od nt e im rt a p Basta aggiungere un ulteriore Di attributo che indica la Dipende da che cosa ci interessa! posizione della riga sulla ricevuta I DATI DA RAPPRESENTARE NELLA BASE DI DATI POSSONO ESSERE DIVERSI A SECONDA DEGLI OBIETTIVI CHE CI SI PREFIGGE DI RAGGIUNGERE UD 2.2b # 14 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 7 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Rappresentazione alternativa di strutture ne zio a nic Ricevute Numero Data Totale omu C lla 1235 12/10/2000 39,20 e d ze n e 1240 13/10/2000 ci 39,00 iS od t Dettaglio Numero Riga Qtàmen Descrizione Importo ti ar p i 1235 1 D 3 Coperti 3,00 UD 2.2b # 15 1235 1235 1235 2 3 4 2 3 2 Antipasti Primi Bistecche 6,20 12,00 18,00 1240 … 1 … 2 … Coperti … 2,00 … Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno INFORMAZIONE INCOMPLETA E VALORI NULLI Atzeni, cap. 2.1.5 8 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Ultima modifica: 20/11/2007 Informazione incompleta e ne ll modello relazionale impone ai dati una struttura rigida: zio a nic ¾ le informazioni sono rappresentate per mezzo di tuple u om a C di ¾ sono ammesse solo le tuple che corrispondono agli schemi l l e ed relazione z ien Sc i d to I dati effettivamente disponibilienpossono non im t corrispondere esattamente ipalar formato previsto D Ad esempio, in una relazione sullo schema PERSONE (Cognome, Nome, Indirizzo, Telefono) il valore di Telefono potrebbe non essere disponbile per tutte le tuple. UD 2.2b # 17 Ultima modifica: 20/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Informazione incompleta: soluzioni? e e non è opportuno usare valori del dominio (0, stringa vuota, i on z a nic “99”, ...) perchè si potrebbe generare confusione. Infatti: mu om aC ¾ potrebbero non esistere valori del dominio “non utilizzati” l l de (come nel caso delle date) ze n cie ¾ i programmi che accedono alla Base di Datii Sdevono poter d o distinguere i valori effettivi da quelli t fittizi, e questo implica en im una complicazione degli stessi software. t r pa Di ¾ valori “non utilizzati” potrebbero, con il tempo, diventare significativi UD 2.2b # 18 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 9 Ultima modifica: 20/11/2007 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Informazione incompleta nel relazionale ne zio a ic ¾ valore nullo: denota l’assenza di un valore del dominio un m o C ¾ Non è un valore del dominio, ma è un valore aggiuntivo lla rispetto a e d quelli del dominio ze n e ci iS d o nt e im rt pa i D Si adotta una tecnica semplice ma efficace: UD 2.2b # 19 Ultima modifica: 20/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Tipi di valore nullo e i on z ica un Roma Via Quattro Novembre m o aC Firenze NULL l l de Tivoli NULL ze n ie Prato NULL Sc i d to n e (almeno) tre casi differenti im rt a p ¾ valore sconosciuto (Firenze certamente ha una Prefettura. Se non Di compare nella Relazione significa che al momento non ci è nota) Città Indirizzo Prefettura ¾ valore inesistente (Tivoli non è capoluogo di provincia e quindi non ha Prefettura. In questo caso il valore è inesistente) ¾ valore senza informazione (Prato è stata da poco istituita come Provincia per cui non si sa se già esiste una Prefettura. Siamo in uno dei due casi precedenti, ma non sappiamo quale) UD 2.2b # 20 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 10 Ultima modifica: 20/11/2007 Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Valori Nulli e I DBMS non distinguono i tipi di valore nullo, in praticazion e ica per un DBMS il valore nullo è sempre del terzo mtipo un o aC (assenza di informazione, cioè non si sa se è inesistente o l l de e z sconosciuto) en ci e iS d o nt e ATTENZIONE im rt pa i ¾ Non sempre è possibile inserire D un valore nullo in una relazione. ¾ Bisogna controllare attentamente la presenza di valori nulli in una relazione ¾ I Vincoli di Integrità ci vengono in aiuto. UD 2.2b # 21 Ultima modifica: 20/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli) Troppi valori nulli (errore nelle tuple) studenti Matricola Cognome AMMISSIBILE 276545 Rossi NULL Neri NULL Verdi esami Rende INUTILIZZABILE la tupla (che non fornisce alcuna informazione utile) PROBLEMATICA (l’attributo stabilisce una correlazione tra tuple direlazioni diverse) corsi Le due tuple potrebbero essere addirittura identiche UD 2.2b # 22 ne zio Nome Data di nascita ica n u Maria NULL om C Anna lla e23/04/1972 d Fabio nze 12/02/1972 cie S Studente Voto di o 276545 ment 28 i rt NULL 27 pa i D 200768 24 Codice 01 03 NULL Corso 01 NULL NULL Titolo Docente Analisi Gianni Chimica NULL Chimica Belli Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 11