120 likes | 260 Views
Dati su più tabelle. Basi di Dati - 3. impiegati. dipartimenti. Separare i dati su più tabelle. Quando è necessario? Empiricamente, quando gli stessi dati si ripetono su molti record Es. i dipartimenti degli impiegati, i corsi di laurea degli studenti,
E N D
Dati su più tabelle Basi di Dati - 3
Informatica 1 SCICOM - a.a. 2010/11 impiegati dipartimenti Separare i dati su più tabelle • Quando è necessario? • Empiricamente, quando gli stessi dati si ripetono su molti record • Es. i dipartimenti degli impiegati, • i corsi di laurea degli studenti, • gli indirizzi di un cinema multisala
Informatica 1 SCICOM - a.a. 2010/11 Relazioni tra tabelle • relazione tra i record • facendo corrispondere codici uguali nelle due tabelle chiave primaria chiave esterna
Informatica 1 SCICOM - 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 SCICOM - 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 SCICOM - 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 SCICOM - 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 SCICOM - 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 SCICOM - 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 SCICOM - 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 SCICOM - a.a. 2010/11 Maschere su due tabelle • Quando le tabelle sono in relazione uno-a-molti, si può fare una maschera con sottomaschera • Es. inserisci un autore (maschera principale) • e alcuni/tutti i suoi libri (sottomaschera) cognome Calvino nome Italo
Informatica 1 SCICOM - a.a. 2010/11 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)