Entendre el concepte de relació

Microsoft Access 2010 pertany a la modalitat de programes de Base de dades relacionals.

Aquesta característica ens assenyala que conté un grup de taules relacionades entre sí per camps comuns. Aquest aspecte és el que es tractarà en el present mòdul, i és, sens dubte, d’un dels més importants del curs.

Treballarem el concepte de relació entre dues taules amb el fitxer d’exemple, anomenat biblioteca_m1.rar, el descomprimim i després l’obrim. D'aqeuesta forma hi podrem observar que conté diferents taules:


Si considerem que en una Base de dades d'una biblioteca el concepte més important serà el llistat de llibres, i està representat per una taula: Llibres. Doncs bé, aquesta és la taula central del nostre exemple i al seu voltant giraran la majoria de la resta de taules de la base de dades.

Un segon aspecte important és el que gira al voltant de la taula Préstecs. Aquesta també serà un altra taula central al voltant de la qual aniran altres: Llibres i Alumnes bàsicament.

Per entendre què és una relació analitzem dues taules: Llibres i Llengua.

En primer lloc caldrà explicar per què es va crear la taula Llengua diferent de la taula Llibres. Els motius que justifiquen la seva existència són:

  • Estalviar espai a la taula llibres i a la Base de dades en general escrivint el codi de la llengua per tots els que hi hagi en català, essent més fàcil a la taula llibres escriure 48 vegades cat que no pas els mateixos cops la paraula Català (en aquest cas és una paraula curta, però seria el mateix per al cas de català-castellà-anglès o bé francès-castellà, etc.).
  • Evitarem errades d'escriptura, com català, Català, catalá, etc., ens assegurem que sempre escrivim un codi “cat”, el qual fins i tot podrem introduir mitjançant un desplegable per evitar les errades.
  • Per tant, ens facilita la feina per al moment de la introducció de nova informació i fa que aquesta sigui més correcta i uniforme.

És per això que la taula Llengua s'ha creat com a taula diferent de la taula Llibres, però, això sí, relacionades les dues entre sí:



Aquesta imatge representa la relació ja feta entre ambdues taules, procediment que s'explicarà més endavant.

En la imatge següent, la taula Llengua conté dos camps, el primer amb el codi de llengua “cat” i el segon amb la descripció “català”.

Quan fem la relació entre les dues taules, la paraula “català” només la caldrà escriure un sol cop, i serà dins de la taula Llengua, a l'altra taula, cada cop que triem “cat” equivaldrà de forma inequívoca a la descripció esmentada: “català”.



Per completar l'explicació de les relacions, s’ha de parlar dels aspectes que cal tenir en compte a l'hora de fer la relació, les modalitats de relacions:

  • Relacions 1 a 1.
  • Relacions 1 a n o bé n a 1 (és el mateix) Aquesta és la modalitat que interessa aplicar.
  • Relacions n a n.

Cal recalcar que el que realment importa és aplicar la modalitat 1 a n per ser la que crea més consistència a les dades i integritat.

Estudiem l'exemple de les taules Llibres i Llengua:

  • Un llibre qualsevol de la nostra biblioteca pot tenir més d'una llengua? En principi, la resposta és no, i si en té més d'una, ja li posarem català-castellà, és a dir, cada llibre només tindrà un registre relacionat de la taula Llengua.
  • Una llengua, “català”, per exemple, pot tenir més d'un llibre a la nostra biblioteca? La resposta és sí.

Per tant, això ens dóna que hi ha una relació 1 a n en el sentit de Llengua (costat 1 de la relació) a llibres (costat n de la relació).

Aquest és el concepte de relació entre dues taules. Aquest mateix raonament es pot fer amb les taules següents:

  • Llibres i Autors
  • Llibres i Estatus
  • Llibres i Nivell
  • Llibres i País
  • Llibres i Lloc edició
  • Llibres i Procedència
  • Llibres i Material
  • Llibres i Editor
  • Llibres i Detalls

Per al cas de les taules Préstecs i Alumnes, la cosa és diferent i la cal valorar-ho a part:

  • Un llibre pot tenir diversos préstecs? La resposta és sí, si és que el tornen, és clar.
  • Un préstec pot afectar a diversos llibres a l'hora? Diguem que no, i si s'emporta més d'un, anotarem com a dos préstecs diferents.

Aquest raonament ens dóna una relació 1 a n també, essent el costat 1 els llibres i el costat n els préstecs: un llibre pot tenir diversos préstecs però un préstec només pot tenir un llibre (1 a n per tant).

Quant la resposta és afirmativa en els dos sentits, llavors tindríem una relació n a n. Un exemple d'aquest tipus es pot donar entre la taula Llibres i la taula Autors, en el cas de que aquestes dues preguntes fossin afirmatives:

  • Un llibre pot tenir diversos autors?
  • Un autor pot tenir diversos llibres?

La resposta pot ser afirmativa a les dues preguntes alhora. Això produiria una relació n a n.

En el nostre cas, ho hem evitat creant un registre nou a la taula autors que sigui semblant a “varis” i així la primera de les preguntes anteriors és negativa i la relació es converteix en 1 a n (un autor o grup d’autors, n llibres).

Per últim, una altra modalitat de relació que hi ha és la 1 a 1.

Aquesta relació està pensada per a relacionar dades de taules iguals o que contenen el mateix tipus de dades. Solen ser relacions que fem per un fet puntual i que després no conservem.

Cal recalcar que el tipus més correcte i al que caldria tendir sempre és la modalitat de Relació tipus 1 a n.

El procés de creació de les relacions s'explicarà en el pràctica 8 d’aquest mòdul.