2.2b: RELAZIONI E BASI DI DATI Atzeni, cap. 2.1.4
Il modello è basato su valori Una Base di Dati è generalmente costituita da più di una Tabella Le corrispondenze fra dati presenti in tabelle diverse sono rappresentate per mezzo di valori comuni che compaiono in tuple appartenenti a tali tabelle. In altri modelli (Gerarchico e Reticolare) le corrispondenze tra i dati presenti in strutture diverse è fatta tramite riferimenti espliciti (i puntatori)
Esempio ESAMI Studente Voto Corso CORSI 276545 28 01 Codice Titolo Docente 276545 27 04 01 Analisi Giani 937653 25 01 03 Chimica Melli 200768 24 04 04 Chimica Belli STUDENTI Matricola Cognome Nome Data di Nascita 276545 Rossi Maria 25/11/1971 485745 Neri Anna 23/04/1972 200768 Verdi Fabio 12/02/1972 587614 Rossi Luca 10/10/1971 937653 Bruni Mario 01/12/1971
STUDENTI Esempio Matricola 276545 Cognome Rossi Nome Maria 485745 Neri Anna 200768 Verdi Fabio 587614 Rossi Luca 937653 Bruni Mario Data di Nascita 25/11/1971 23/04/1972 12/02/1972 10/10/1971 01/12/1971 CORSI Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli ESAMI Studente Voto 28 27 25 24 Corso
Vantaggi della struttura basata su valori Si rappresenta solo ciò che è rilevante dal punto di vista dell applicazione i puntatori sono aggiuntivi rispetto ai dati veri e propri La rappresentazione logica dei dati non fa riferimento a quella fisica, che può cambiare nel tempo, permettendo quindi di ottenere l indipendenza fisica dei dati 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
Schema di Relazione e di Database SCHEMA DI RELAZIONE un nome R con un insieme di (nomi di) attributi A 1,A 2,...,A n R(A1,A2,...,An) A ciascun attributo è associato un dominio
Schema di Relazione e di Database SCHEMA DI DATABASE (RELAZIONALE) insieme di tutti gli schemi di relazione: R = { R 1 (A 1,A 2,...,A n ), R 2 (B 1,B 2,...,B m ),..., R k (K 1,K 2,...,K r )}
Schema di Relazione e di Database 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)}
Istanza di Relazione e di Database ISTANZA DI RELAZIONE su uno schema R(A 1,A 2,...,A n ) insieme r di tuple su A 1,A 2,...,A n ISTANZA DI BASE DI DATI su uno schema R = {R 1 (A 1,A 2,...,A n ), R 2 (B 1,B 2,...,B m ),..., R k (K 1,K 2,...,K r )} insieme di tutte le tuple presenti nelle Relazioni all interno del Database
Istanza di Relazione e di Database 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
Tabelle con un solo attributo Presente in DB con più tabelle, in cui la tabella con un solo attributo contiene valori che appaiono come valore di attributo di un altra tabella studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 studenti lavoratori Matricola 6554 3456
Tabelle con struttura nidificata Da Filippo Via Roma 2, Roma Ricevuta Fiscale del 18/11/2002 3 Coperti 3,00 2 Antipasti 6,20 3 Primi 12,00 2 Bistecche 18,00 Totale 39,20 Da Filippo Via Roma 2, Roma Ricevuta Fiscale 1240 del 19/11/2002 2 Coperti 2,00 2 Antipasti 7,00 2 Primi 8,00 2 Orate 20,00 2 Caffè 2,00 Totale 39,00
Tabelle con struttura nidificata Frasi Prestampate Informazioni Fisse Informazioni variabili (ognuna relativa a un insieme di portate omogenee) Da Filippo Via Roma 2, Roma Ricevuta Fiscale del 18/11/2002 3 Coperti 3,00 2 Antipasti 6,20 3 Primi 12,00 2 Bistecche 18,00 Totale 39,20
Tabelle con struttura nidificata Poiché le Tabelle hanno un numero fisso di attributi non è possibile rappresentare l informazione contenuta nelle ricevute utilizzando una sola tabella a meno di non sprecare una quantità enorme di spazio creando un numero di colonne pari al numero massimo di portate E possibile rappresentare le informazioni per mezzo di due tabelle, la prima contenente i dati fissi e la seconda quelli variabili (un record per ogni elemento)
Tabelle con struttura nidificata Ricevute Numero Data Totale 12/10/2000 39,20 1240 13/10/2000 39,00 Dettaglio Numero Qtà Descrizione 3,00 3 Coperti 3,00 2 Antipasti 6,20 3 Primi 12,00 2 Bistecche 18,00 1240 2 Coperti 2,00
Tabelle con struttura nidificata Abbiamo rappresentato veramente tutti gli aspetti delle ricevute? Dipende da che cosa ci interessa! l'ordine delle righe è rilevante? possono esistere linee ripetute in una ricevuta? Basta aggiungere un ulteriore attributo che indica la 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
Rappresentazione alternativa di strutture Ricevute Numero Data Totale 12/10/2000 39,20 Dettaglio 1240 13/10/2000 39,00 Numero Riga 1 2 3 4 Qtà Descrizione Importo 3 Coperti 3,00 2 Antipasti 6,20 3 Primi 12,00 2 Bistecche 18,00 1240 1 2 Coperti 2,00