Basi di Dati - 3 Dati su più tabelle Informatica 1 (SAM) - a.a. 2010/11 Relazioni tra tabelle • relazione tra i record – facendo corrispondere codici uguali nelle due tabelle Nome Alessandro Giacomo Giorgio Ken Italo Primo Giobbe Alberto Magdi Sigmund Cognome Manzoni Leopardi Forattini Follett Calvino Levi Covatta Asor Rosa Allam Freud Nazione Italia Italia Italia Inghilterra Italia Italia Italia Italia Egitto Germania chiave primaria ID_autore 1 2 3 4 5 6 7 8 9 10 Link_Autore 2 3 2 4 5 6 7 1 1 8 1 5 9 8 6 4 4 4 10 10 10 Titolo Canti Kosferatu Operette Morali Codice a zero Il cavaliere inesistente La Tregua Pancreas I Promessi Sposi Il Conte di Carmagnola La guerra Adelchi Collezione di sabbia Saddam La sinistra alla prova La chiave a stella Il codice Rebecca La cruna dell'ago Il pianeta dei bruchi Psicoanalisi dell'isteria Totem e tabù Il sogno Genere Poesia Satira politica Letteratura Narrativa Narrativa Letteratura Narrativa Letteratura Letteratura Saggistica Letteratura Narrativa Attualità Saggistica Letteratura Narrativa Narrativa Narrativa Saggistica Saggistica Saggistica Data pubblicazione 1993 2002 1995 2002 2000 1997 1989 1960 1990 2002 1988 1994 2002 2002 1992 1997 1996 2002 1991 1989 1990 chiave esterna Informatica 1 (SAM) - a.a. 2010/11 Relazioni • Ci sono tre tipi di relazioni: – uno-a-molti (la più frequente) – uno-a-uno – molti-a-molti Informatica 1 (SAM) - a.a. 2010/11 Diversi tipi di relazione -1 • Relazione uno-a-molti – Es. tra corso di laurea e studenti • Ogni corso di laurea può avere molti studenti, ma ogni studente può essere iscritto ad uno solo dei corsi di laurea – Es precedente: tra libri e autori • Supponendo per semplicità che ogni libro sia scritto da un solo autore • E' la relazione più frequente Informatica 1 (SAM) - a.a. 2010/11 Diversi tipi di relazione -2 • Uno-a-uno – es. tra studenti che sostengono esami e persone che pagano le tasse universitarie • Ad ogni studente corrisponde una ed una sola persona, e viceversa • Relazione molto rara • Le due tabelle potrebbero essere combinate insieme, senza ripetizioni dei dati – Utile quando si vogliono separare gli archivi Informatica 1 (SAM) - a.a. 2010/11 Diversi tipi di relazione -3 • Molti-a-molti – Es. studenti - appelli • Uno studente può essere iscritto a molti appelli, ed un appello può contenere molti studenti • Relazione frequente, ma difficile da gestire – Ci vuole una tabella intermedia • Es. una tabella prenotazioni che lega studenti ed appelli di una disciplina Informatica 1 (SAM) - a.a. 2010/11 Query • "interrogazione" sulla base di dati – combina più tabelle (al contr. dei filtri) – seleziona solo alcuni record (criteri) – ordina il risultato secondo una o più colonne • può essere salvata (al contr. dei filtri) Informatica 1 (SAM) - a.a. 2010/11 Query su più tabelle • Una query può coinvolgere più tabelle in relazione tra loro – Nella composizione guidata di Access, è sufficiente scegliere le relazioni da cui prendere i dati – Es. per autori e libri "dammi tutti i libri scritti da autori italiani, facendomi vedere il titolo del libro e il nome dell'autore" Informatica 1 (SAM) - a.a. 2010/11 Esempio di query • "trova tutti i libri scritti da autori italiani che costano più di 20 euro" • combina le tabelle autori e libri • seleziona gli autori italiani • seleziona i libri con costo >20 • il risultato è "come" una tabella (ma non lo é) Informatica 1 (SAM) - a.a. 2010/11 Maschere su due tabelle • Quando le tabelle sono in relazione unoa-molti, si può fare una maschera con sottomaschera – Es. inserisci un autore (maschera principale) – e alcuni/tutti i suoi libri (sottomaschera) cognome Calvino Titolo Il cavaliere inesistente Lezioni Americane nome Italo Informatica 1 (SAM) - a.a. 2010/11 genere anno Narrativa 1981 Saggistica 1989 Report su più tabelle e query • si possono scegliere: – campi di tabelle diverse, in relazione – campi delle query salvate • si sceglie una query quando il report deve contenere solo alcuni record selezionati • (quelli selezionati dalla query) Informatica 1 (SAM) - a.a. 2010/11