Les relacions a una base de dades (ACCESS)
Una vegada tenim les taules creades i ben configurades, és la hora de relacionar-les.
Una base de dades relacional té sentit i és útil precisament perquè les dades de les diferentes taules que la componen estan relacionades entre si.
Clau primària i clau aliena
Ja hem comentat que la clau primària és aquell camp que identifica a un registre com a únic i irrepetible a una taula (la taula principal). Doncs la clau aliena és el nom que li donem a aquest mateix camp que també apareix a la taula secundària, el qual utilitzem per a fer la relació amb la taula principal.
Explicació: El camp DNI és el que ens permet identificar als nostres clients com a únics, per això és la clau primària de la taula "Clients", però també és el que ens serveix per a relacionar amb la nostra taula "Comandes" per a saber quin client ha fet una comanda en concret. Per tant, a la taula "Comandes" també haurà d'aparèixer el camp "DNI", però en aquest cas NO com a clau primària, sinó com a clau aliena (que no cal definir-la de cap manera, simplement li direm així perquè és la que es relaciona amb la clau primària de la taula principal, en aquest cas la de "Clients")
Integritat referencial
Quan relacionem un camp de la taula principal amb el seu respectiu camp a la taula secundària tenim la possibilitat d'activar una casella que es diu "Exigir integridad referencial". Aquesta opció és justament la que controla que no es pugui entrar un registre a la taula secundària que no s'hagi introduït prèviament a la principal.
Tipus de relacions
Existeixen tres tipus de relacions entre taules:
-
- Relació 1 a 1 (1:1)
En aquest tipus de relació, cada registre de la taula principal només podrà està relacionat amb un registre de la taula secundària.
-
- Relació 1 a varis (1:∞)
A la relació 1 a varis, cada registre de la taula principal pot estar relacionat amb varis registres de la taula secundària.
-
- Relació varis a varis (∞:∞)
En aquest tipus de relació, cada registre de la taula principal pot estar relacionat amb varis registres de la taula secundària, i al inversa, cada registre de la taula secundària pot estar relacionat amb varis registres de la taula principal.
En aquests casos el programa no ens permet configurar aquesta relació de forma directe, i per tant haurem de crear una tercera taula que contingui les claus alienes de les dues taules. De manera que el que farem és crear dues relacions del tipus 1 a varis amb aquesta tercera taula.