2 Jul 2019

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.

Exemple: Si a una base de dades tenim una taula anomenada "Clients" i una que es diu "Comandes", entre d'altres, si la base de dades està ben feta no ens hauria de deixar entrar una comanda d'un client que no existeixi a la nostra taula "Clients". Primer haurem d'enregistrar el nostre client a la taula "Clients" per poder-li assignar comandes a la taula "Comandes".

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.

Exemple: Si el DNI és el camp que definim com a clau primària a la taula "Clients", el camp DNI a la taula "Comandes" serà la "clau aliena".
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.

Exemple: És la propietat que controla que no puguem entrar una comanda (Taula secundària) si no està associada a un client existent a la taula "Clients" (Taula 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.

Exemple: Si tenim la taula "Persones" i la taula "Dades de la Seguretat Social", per a cada registre de la taula "Persones" només podrà existir un registre relacionat amb la taula "Dades de la Seguretat Social". El motiu és que cada persona només té un número de la seguretat social i cada número de la seguretat social només pot pertànyer a una persona. Aquesta relació la farem amb el camp DNI, el qual serà clau principal a la taula "Persones" i serà clau aliena a la taula "Dades de la Seguretat Social".
    • 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.

Exemple: Si tenim la taula "Clients" i la taula "Comandes", per a cada registre de la taula "Clients" podran existir varis registres relacionats amb la taula "Comandes". El motiu és que un mateix client pot fer varies comandes, però una comanda només pertany a un client. Aquesta relació també la podem fer amb el camp DNI, el qual serà clau principal a la taula "Clients" i serà clau aliena a la taula "Comandes".
    • 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.

Exemple: A la base de dades d'una escola, dues de les taules que podríem tenir són la de "Alumnes" i la de "Assignatures". En aquest cas ens trobarem que un mateix alumne cursa varies assignatures i que a una mateixa assignatura hi ha inscrits varis alumnes, per tant, hauríem de crear una tercera taula que es podria dir "Notes", la qual ens podria servir per relacionar cada alumne amb una assignatura concreta i a la vegada enregistrar-hi la nota que ha obtingut.
error: Contingut protegit. No està permesa la impressió. Disculpi les molèsties.