RELACIONS. PRÀCTIQUES


NOTA: Per realitzar aquestes pràctiques recordeu que al directori C:\D50 hi ha el fitxer Dades1.mdb, que heu d'utilitzar en aquest tema de Relacions.

L'objectiu d'aquestes pràctiques és aconseguir, fent les modificacions oportunes, una estructura de les taules que obeeixi a l'esquema següent:

ProvínciesCaracterístiques ComarquesMunicipis i comarca a la qual pertanyenMuseus
CODI_PROVÍNCIACODI_COMARCAPOBLACIÓNOMMUSEU
NOM_PROVÍNCIANOM_COMARCACODI_COMARCAPOBLACIÓ
CODI_PROVÍNCIADESCRIPCIÓ
CAPITAL
EXTENSIÓ
HABITANTS
CLIMA
PLUGES
VEGETACIÓ
HIVERN
ESTIU
CONREUS
RAMADERIA
INDÚSTRIA
PRODUCTES CARACTERÍSTICS
IMATGE

Amb aquest esquema s'aconsegueixen tres coses fonamentals:
  1. La definició, per a cada taula, de la CLAU PRINCIPAL (els camps que formen la clau principal estan marcats en negreta), que serveix per identificar de manera inequívoca cada un dels seus elements i que, a més a més, és necessari per poder establir les relacions entre taules.
  2. La definició dels camps (CLAUS FORÀNIES O EXTERNES), subratllats, que possibiliten la relació entre taules gràcies a que contenen informació existent en camps d'altres taules. Així,
    • Entre la taula Províncies i la taula Característiques comarques es pot establir una relació gràcies al camp CODI_PROVÍNCIA de la primera taula (que és clau principal) i al camp CODI_PROVÍNCIA de la segona taula (on és una clau externa).
    • Entre la taula Característiques comarques i la taula Municipis de Catalunya i comarca a la qual pertanyen es pot establir una relació gràcies al camp CODI_COMARCA de la primera taula (que és clau principal) i al camp CODI_COMARCA de la segona taula (on és una clau externa).
    • Entre la taula Municipis de Catalunya i comarca a la qual pertanyen i la taula Museus es pot establir una relació gràcies al camp POBLACIÓ de la primera taula (que és clau principal) i al camp POBLACIÓ de la segona taula (on és una clau externa).
      Nota: el camp POBLACIÓ, a la taula Museus, forma part de la clau principal i és també clau externa per poder establir relació entre la taula Municipis de Catalunya i comarca a la qual pertanyen amb la taula Museus
  3. La possibilitat d'establir relacions entre les taules de forma que es puguin respondre preguntes com ara:
    • Quines poblacions pertanyen a la província de Girona?
    • Quants museus té la comarca del Bages?
    • Quins són els museus d'art de la província de Lleida?
    • Quines comarques no tenen museu?
      Nota: observeu que aquestes preguntes es poden fer entre taules que no estan directament relacionades però que, gràcies a les altres taules, SI que es poden relacionar de forma indirecta.

Així, en aquestes pràctiques, En la relació que s'estableix entre dues taules (gràcies a les claus principals i a les externes), cal tenir present que es poden donar quatre situacions (dues d'elles equivalents):
  1. Relacions on les taules relacionades tenen ambdues una clau principal coincident. En aquest cas, cada registre d'una de les taules ha de coincidir amb un sol registre de l'altra taula. Aquesta relació s'anomena relació d'un a un i s'indica amb l'expressió:
    1 ---> 1. Per exemple,
    Una taula de països del món i una taula de països on s'han celebrat olimpíades. Les dues taules tenen una clau principal (identificatiu del país) que serveix també com a clau externa per establir la relació entre les dues taules. Cada registre d'una taula pot tenir un sol element relacionat a l'altra taula. La característica principal d'aquest tipus de relació consisteix en que les claus principals són iguals i són, també, les claus externes.
  2. Relacions on per a cada un dels registres de la taula que conté la clau principal hi poden haver diversos registres de la taula que conté la clau externa. Aquesta relació s'anomena relació d'un a diversos i s'indica amb l'expressió:
    1 ---> n. Per exemple:
    Una taula de països i una taula de ciutats. Cada país té diverses ciutats. Diem que cada registre de la taula Països té diversos registres a la taula de Ciutats.
  3. Relacions on per a diversos registres d'una taula només hi ha un registre a l'altra taula. Aquest és un cas equivalent a l'anterior. Aquesta relació s'anomena relació de diversos a un i s'indica amb l'expressió:
    n ---> 1. Per exemple:
    Una taula de països del món i una taula de continents. Diversos països pertanyen a un sol continent. Aquesta relació (n --->1) és equivalent a una relació (1 ---> n) si s'intercanvia l'ordre de les dues taules.
  4. Relacions on per a cada registre d'una taula hi poden haver diversos registres relacionats a l'altra taula i a l'inrevés. Aquesta relació s'anomena relació de varis a varis o diversos a diversos i s'indica amb l'expressió:
    n ---> n. Per exemple:
    Una taula de professorat i una taula d'alumnes. Un professor/a té diversos alumnes i un alumne té diversos professors. (n ---> n). Per poder establir una relació d'aquest tipus cal crear una taula auxiliar.
    Aquesta taula contindrà dos camps, un per als professors i un altre per als alumnes, de forma que cada registre conté el nom d'un professor/a i el nom d'un alumne. Així, es poden establir dues relacions:
    1 ---> n entre la taula de profesorat i aquesta taula auxiliar
    1 ---> n entre la taula d'alumnes i aquesta taula auxiliar

Pràctica 1: estructura de les taules.

  • Obriu la base de dades C:\D50\Dades1.MDB. Observeu que conté quatre taules
  • Cliqueu la pestanya Tablas i observeu les taules que conté la base de dades:
    • CARACTERÍSTIQUES COMARQUES: aquesta és una taula de comarques. Hi ha característiques de cada una d'elles. Caldrà definir la clau principal, que permetrà fer relacions amb d'altres taules i, a més, evitar duplicats de les dades.
    • MUNICIPIS DE CATALUNYA I COMARCA A LA QUAL PERTANYEN: és una taula que, en aquest cas, serveix per establir relacions entre la taula de municipis i la comarca a la qual pertanyen.
    • MUSEUS, taula de museus. Observeu que el camp NOM_MUSEU no és suficient per identificar registres diferents. Caldrà, doncs, definir una clau principal composta per més d'un camp.
    • PROVÍNCIES. Per comoditat, només conté el nom de la província i el codi abreujat. Es podríen afegir camps com ara: capital de la província, renda per càpita, terreny de conreu, terreny urbanitzat, nombre de diputats al parlament, etc.
    • Obriu cada una d'aquestes taules i analitzeu els camps que defineixen cada un dels registres de forma única.

tabla principal
Alternar entre las vistas de una tabla

Nota: podeu observar que la taula Museus de la BD Dades1.MDB no conté moltes dades. Això obeeix al fet que en aquestes primeres pràctiques heu d'enviar aquesta base de dades al vostre/a tutor/a i millor facilitar aquesta transmissió reduïnt tant com es pugui la grandària d'aquesta BD. Una vegada completades les pràctiques on intervé directament aquesta BD (Dades1.mdb) i al començament del tema Consultes treballareu amb unes BD noves (Dades.mdb i TrebD50.mdb).

Pràctica 2: establir les claus principals i les claus externes de les taules

  • Cada una de les taules esmentades al paràgraf anterior tindrà una clau principal.
  • Obriu la taula Característiques comarques i observeu l'ordre com es presenten les dades del camp CODI_COMARCA. Premeu, tot seguit, la icona per canviar al mode Diseño.
  • Ara que esteu en mode Diseño, definiu la clau principal: seleccioneu la primera fila, corresponent al camp CODI_COMARCA i premeu la icona . Observeu el canvi aparegut a la fila marcada.
  • Tanqueu la taula i obriu-la de nou. Observeu l'ordre com apareixen els registres de la taula: la definició de la clau principal (el camp CODI_COMARCA) implica una ordenació per aquest camp.

Establecer o cambiar la clave principal


Pràctica 3: establir les claus de les tres taules restants de Dades1.MDB

  • Seleccioneu cada una de les taules i establiu les claus principals. Tingueu en compte que, per a una d'elles (la taula Museus), la clau principal és composta (per dos camps), mentre que per a les altres dues és una clau simple
  • Visualitzeu cada una de les taules i observeu l'ordre en què apareixen els registres

¿Qué tipo de clave principal debo utilizar?


Pràctica 4: establir les relacions que hi haurà entre les taules que componen la base de dades.

  • Cliqueu, sense tenir cap taula oberta, la icona per activar la finestra d'establiment de les relacions entre les taules. També podeu, si voleu, activar l'opció Relaciones del menú Herramientas
  • Escolliu, a la finestra que us apareix tot seguit, les quatre taules de la base de dades
  • Establiu la relació que hi haurà entre les taules Característiques comarques i Municipis de Catalunya i comarca a la qual pertanyen. Cal que tingueu present:
    • La taula Característiques comarques té com a clau principal el camp CODI_COMARCA.
    • La taula Municipis de Catalunya i comarca a la qual pertanyen té el camp POBLACIÓ com a clau principal, i el camp CODI_COMARCA fa de clau externa per establir relació amb la taula CARACTERÍSTIQUES COMARQUES.
    • Per cada element de la taula Característiques comarques hi poden haver diversos municipis. Aquesta és una relació del tipus 1 --> n
    • La "integritat referencial" és un concepte per al qual, a la taula Municipis de Catalunya i comarca a la qual pertanyen, no és possible que hi hagi una referència equivocada a cap comarca. Qualsevol valor que hi hagi al camp CODI_COMARCA de la taula Municipis de Catalunya i comarca a la qual pertanyen ha de ser un dels valors que hi ha al camp CODI_COMARCA de la taula Característiques comarques. Aquest concepte evita errors a les bases de dades
  • Per establir la relació entre ambdues taules, heu de seleccionar amb el ratolí el camp CODI_COMARCA de la taula Característiques comarques. Sense deixar de prémer el ratolí, arrossegueu-lo fins al camp CODI_COMARCA (clau externa) de la taula MUNICIPIS DE CATALUNYA I COMARCA A LA QUAL PERTANYEN. Observeu la finestra de definició de relacions que serà semblant a aquesta:



    Activeu el quadre Exigir integridad referencial, observeu com s'activen les dues caselles inferiors, premeu el botó Tipo de combinación per definir la relació del tipus
    1 ------>n, cliqueu el ratolí a la segona casella de la finestra mostrada i valideu la relació prement el botó Crear.

Acerca de las relaciones de una base de datos
Definir relaciones entre tablas
Ver relaciones existentes
¿Qué es la integridad referencial?
¿Por qué debo utilizar actualizaciones o eliminaciones en cascada?
Utilitzeu aquesta ajuda directa a la finestra de definició de relacions entre dues taules

SOLTREL.MDB

Exercicis

Abans de fer aquests exercicis us presentem un petit exemple de disseny d'una base de dades que serveixi per gestionar una tutoria d'un curs. Heu de tenir present que aquest exemple no pretén aconseguir un disseny molt rigorós i exhaustiu, sinó mostrar els passos que cal fer. En aquest procés cal donar resposta a un seguit de qüestions:
  1. Per a què servirà la base de dades?
    Per gestionar una tutoria de curs.
  2. Quina informació hi ha d'haver a la base de dades?
    La informació relativa als crèdits de la tutoria en qüestió, la dels alumnes i la de les notes dels alumnes.
  3. Què es podrà fer amb aquesta informació?
    • Consultar les notes dels alumnes.
    • Treure càlculs: mitjana, var, etc.
    • Correspondència.
    • Informes diversos, etc.
  4. Quines agrupacions (taules) semblen les més adients?
    • CRÈDITS DEL CURS
    • ALUMNES DEL CURS
    • NOTES DELS ALUMNES
  5. Quina estructura tindrà cada taula?
    Per a CRÈDITS DEL CURS:
    • ID_CRÈDIT: textual. Grandària: 7 caràcters.
    • NOM_CRÈDIT: textual. Grandària: 40 caràcters.
    • NOM_I_COGNOMS_PROFESSOR__IMPARTEIX_CRÈDIT: textual. Grandària: 60 caràcters.
    • TIPUS_CRÈDIT: textual. Grandària: 10 caràcters.
    • TRIMESTRE_IMPARTICIÓ: numèric (tipus Entero).
    • HORARI: textual. Grandària: 15 caràcters.
    Per a ALUMNES DEL CURS:
    • NOM_ALUMNE: textual. Grandària: 15 caràcters.
    • COGNOMS_ALUMNE: textual. Grandària: 35 caràcters.
    • DATA_NAIXEMENT: data.
    • NOMBRE DE GERMANS: numèric (tipus Entero).
    • OBSERVACIONS: memo.Grandària: >255 caràcters.
    • FOTO: Gràfic. Imatge *.pcx, *.bmp.
    Per a NOTES DELS ALUMNES:
    • NOM_ALUMNE: textual. Grandària: 15 caràcters.
    • COGNOMS_ALUMNE: textual. Grandària: 35 caràcters.
    • ID_CRÈDIT: textual. Grandària: 7 caràcters.
    • NOTA_CRÈDIT: textual. Grandària: 3.
      Aquestes estructures són indicatives i, per tant, es poden modificar com es consideri pertinent. Per exemple, pot ser que el camp FOTO no us interessi. Elimineu-lo de la taula si ho creieu oportú.
  6. Quines són les claus principals de cada taula:
    • Per a CRÈDITS DEL CURS: el camp que identifica unívocament cada crèdit és ID_CRÈDIT.
    • Per a Alumnes del curs: els camps NOMALUMNE i COGNOMALUMNE identifiquen cada registre. Aquests dos camps seran la clau principal. Si es donés el cas d'alumnes amb DNI, aleshores s'afegiria un camp anomenat DNI i, a més, seria la clau principal. No hem posat DNI expressament per indicar que una clau principal pot estar formada per més d'un camp.
    • Per a Notes dels alumnes: en aquesta taula hi ha notes de tots els alumnes i, per a cada un d'ells, la nota de cada crèdit. La clau principal, si es vol establir, seria la formada pels camps NOM_ALUMNE, COGNOMS_ALUMNE, ID_CRÈDIT i NOTA_CRÈDIT.
  7. Quines són les relacions entre les taules anteriors?
    Entre la taula Crèdits del curs i la taula Notes dels alumnes:
    ID_CRÈDIT ----------------------->ID_CRÈDIT
    (clau principal) (clau externa)

    Aquesta relació serà del tipus un a molts perquè cada crèdit té diversos alumnes que el fan i, per tant, diverses notes.
    Entre la taulaAlumnes del curs i la taula Notes dels alumnes:
    NOMALUMNE ------>NOMALUMNE
    COGNOMALUMNE ------>COGNOMALUMNE
    (camps que formen la clau principal) (camps que formen la clau externa)

    Aquesta relació també serà del tipus un a molts perquè cada alumne té tantes notes com assignatures fa.
  8. Quin és el disseny final?
  9. Cal fer alguna rectificació i/o modificació?
    Si el disseny aconseguit fins ara es creu que no és l'esperat o que es pot millorar, cal repassar el procés de disseny de la base de dades.

Exercici 5: establiu les relacions entre totes les taules de Dades1.MDB.

Ja teniu la relació existent entre dues d'elles. Ara només cal definir les restants.

Exercici 6: analitzeu parells de taules entre les quals calgui establir una relació
1 a 1,
1 a n,
n a 1,
n a n.
Per exemple,

  • Entre una taula de PAÏSOS DEL MÓN i una taula de PAÏSOS PERTANYENTS A UNICEF es pot crear una relació 1 a 1. Aquest tipus de relacions s'utilitza per a elements que es poden agrupar en funció de l'àmbit en què es consideri. En aquest exemple, la taula PAÏSOS podria contenir dades de tots els països del món, sense cap excepció, i la taula PAÏSOS PERTANYENTS A UNICEF només els que pertanyen a dita organització.
  • Entre una taula de PAÏSOS I una altra de PROVÍNCIES es pot establir una relació 1 a n perquè un país pot tenir diverses províncies, mentre que una província no pertany a més d'un país.
  • Una relació n a 1 és equivalent a una relació 1 a n. Per exemple, en el cas anterior, entre PROVÍNCIES I PAÏSOS hi hauria una relació n a 1, perquè diverses províncies poden pertànyer a un sol país.
  • Entre una possible taula de PAÏSOS i una altra d'OCEANS I MARS es pot establir una relació n a n perquè un país pot estar banyat per diversos mars o oceans i, a l'inrevés, un mar o oceà pot banyar diversos països. Per representar aquest tipus de relació, caldrà afegir una taula PAÏSOS I MARS O OCEANS auxiliar.

Exercici 7: vincular les taules de la base de dades Dades1.MDB a una base de dades de nova creació que anomenareu TREBALL1.MDB (tal com es va explicitar a la pràctica 4 del tema anterior). Observeu doncs, com es poden utilitzar dades d'altres bases de dades.

  • Copieu el fitxer TREBALL.MDB mitjançant l'explorador de Windows, en el directori C:\D50\Treball. Anomeneu el fitxer creat TREBALL1.MDB. Aquesta còpia la feu per tal de no perdre la informació que se us demana esborrar una mica més avall.
  • Obriu la base de dades TREBALL1.MDB (corresponent al fitxer esmentat al paràgraf anterior). Elimineu les taules que conté i vinculeu les de Dades1.MDB (recordeu la pràctica 5 del tema anterior). També podeu vincular les taules activant Vincular tablas de l'opció Obtener datos externos del menú Archivo.
  • Comproveu que la vinculació de les taules ha estat bona.
Nota: aquest procés de vinculació de taules és força interessant quan es comparteixen dades. Tots els usuaris que comparteixen aquestes dades utilitzen una BD que té vinculades les taules "d'ús general" que són a la BD "compartida".

Exercici 8: afegiu un camp a la taula Característiques comarques (aquesta operació l'heu de fer a la base de dades Dades1.mdb, que conté les dades, i no a la base de dades Treball1.mdb ja que aquesta té les dades vinculades) que sigui del tipus Sí/No i anomeneu-lo LITORAL? Observeu que al canviar al mode de presentació de dades només podeu fer clic als quadradets típics dels camps Sí/No. Introduïu els valors escaients a cada comarca.

Nota: el valor Sí és equivalent al valor numèric -1. El valor No és equivalent al valor numèric 0.
Propiedad Formato (Format) - Tipos de datos Sí/No

Seguiment de la vostra tasca

Heu de lliurar al vostre tutor/a:
  1. La base Dades1.MDB, compactada i comprimida, per tal de comprovar la resolució que heu donat als exercicis anteriors.
  2. La base de dades Treball1.mdb, amb les taules vinculades.
  3. La resposta a l'exercici 6.És a dir, quatre exemples dels diversos tipus de relacions.
  4. Els exercicis addicionals que corresponguin.
Indiqueu el tema: Taules-Relacions