Basi di dati con Access '97 >> Definizioni >> Rappresentazione >> Relazioni
Attenzione: Inserisci rappresentazione grafica della relazione. Le relazioni sono la pietra angolare dei database relazionali: consentono una efficace memorizzazione delle informazioni senza la necessità di duplicare dati comuni a più istanze e rendono estremamente duttili i database. In termini semplici sono un insieme di regole che permettono di associare istanze di Entità diverse, di stabilire, cioè, se e quando un record di una tabella corrisponde ad uno o più record di un'altra tabella.
Ad esempio consideriamo la tabella Automobili, vista in precedenza, ed una tabella Persone; una delle informazioni di cui potremmo aver bisogno è di conoscere il proprietario di una certa automobile oppure le auto possedute da una particolare persona. Questo può essere realizzato stabilendo una relazione - Possesso - tra le due tabelle Automobili e Persone.
Le relazioni sono classificate tenendo conto del numero di tabelle che sono correlate per mezzo della relazione. La relazione presentata in precedenza è una relazione binaria, visto che coinvolge due tabelle. Relazioni tra tre tabelle, analogamente, sono dette ternarie.
Ma sono anche possibili relazioni che coinvolgano righe della stessa tabella: considerando la tabella Persone è possibile porre in relazione due righe della tabella con la relazione Coniugato che associa ad ogni persona il proprio coniuge.
La cardinalità di una tabella rispetto ad una certa relazione è l'indicazione del numero minimo e massimo di righe della tabella che possono essere correlate ad un singolo elemento dell'altra tabella. La notazione generalmente usata è (a,b) dove a indica il minimo e b il massimo.
Consideriamo ancora l'esempio della relazione Possesso tra le tabelle Persone ed Automobili:
Nella pratica comune i simboli utilizzati sono:
La cardinalità delle relazioni è la base sulla quale lavorare per rappresentare nel database la relazione stessa. Nel seguito faremo qualche esempio limitandoci a relazioni binarie (tra due sole tabelle).
Se la cardinalità di
entrambe le tabelle coinvolte e del tipo (1,1) si parla di
relazione uno a uno; in pratica ad una riga di una
tabella è correlata una ed una sola riga della seconda
tabella e viceversa. Un esempio di relazione di questo tipo
è quella che si può stabilire, ad esempio, tra la
tabella Quadri ed la tabella
Cornice: ad ogni quadro corrisponde una ed una
sola cornice, così come una cornice è associata ad un
solo quadro.
Per realizzare concretamente la relazione è sufficiente inserire l'attributo chiave di una tabella come ulteriore colonna nellaltra tabella. In pratica per ogni istanza della tabella Quadri il campo id_cornice (vedi figura) conterrà l'identificatore della cornice corrispondente.
Può accadere che la
cardinalità di una tabella rispetto ad una relazione sia
(1,1) mentre la cardinalità dell'altra tabella coinvolta sia
(1,n); in questo caso si parla di relazione uno a molti.
Come esempio possiamo considerare la relazione tra la tabella
Persone e la tabella Comune che
fa corrispondere ad ogni persona il proprio comune di nascita.
Appare evidente che ogni persona è nata in un solo comune -
cardinalità (1,1) - mentre in ogni comune possono essere
nate più persone - cardinalità (1,n).
In casi come questo si inserisce nella tabella che ha cardinalità (1,1) la chiave della seconda tabella. In figura è rappresentata graficamente la situazione descritta; il campo ComuneNascita conterrà, per ogni persona, l'identificatore del comune di nascita.
L'ultimo caso che prendiamo
in esame si presenta quando la cardinalità di entrambe le
tabelle è del tipo (1,n); abbiamo allora una relazione
molti a molti. Ad esempio la relazione di
proprietà di un immobile: un proprietario può
possedere più immobili - cardinalità (1.n) - e,
viceversa, un immobile può essere posseduto anche da
più persona - cardinalità (1,n).
Questa è la
situazione più complessa. La relazione si concretizza
creando una nuova tabella, oltre alle due già coinvolte, in
cui si inseriscono sia la chiave della prima tabella che la chiave
della seconda tabella.
Chiariamo meglio questo punto. Prendiamo come riferimento le due tabelle mostrate in figura: nell'archivio viene aggiunta una nuova tabella che ha due soli campi: id_persona e id_immobile. Supponiamo che in quest'ultima tabella sia presente una riga che contiene i valori 2 e 4 per i campi id_persona e id_immobile rispettivamente: la riga ci dice che Mickey Mouse, presente nella tabella Persone con l'identificatore 2, è proprietario dell'immobile sito in Viale Homes, riportato nella tabella Immobili con identificatore 4.
Concludiamo questa sezione facendo notare che è possibile stabilire relazioni diverse tra due stesse tabelle. Ad esempio le tabelle Persone e Comune: oltre alla relazioneNascita che fa corrispondere ad una persona il comune di nascita è possibile anche la relazione Residenza che associa, invece, ad ogni persona il proprio comune di residenza.
Home | Cos'è ECDL | Tutoraggio | Esami | Iscriversi | Materiale didattico | Link | Mappa