Está en la página 1de 4

ACCESS

RELACIONES ENTRE TABLAS

ACTIVIDAD NÚMERO 12
El tutorial dedica 3 vídeos (6, 7 y 8) a explicar lo que son las RELACIONES ENTRE TABLAS.
El vídeo 6 (26 minutos) ofrece una visión global del tema, está muy bien explicado pero tiene cierta
complejidad. No hay preguntas sobre el tema pero sí que debéis verlo para que os hagáis una idea de
esta parte importante de Access.
Pensad que para hacer “consultas” en Access es necesario relacionar antes las tablas.
En los ejercicios que hagamos de consultas, yo os daré las bases de datos con las tablas ya relacionadas.
El vídeo 7 (21 minutos) explica cómo se hace una relación sencilla del tipo uno a uno entre dos tablas.
También explica el concepto de “clave principal”
El vídeo 8 (24 minutos) explica las relaciones entre tablas del tipo uno a varios y el concepto de
“integridad referencial”. No es necesario que lo veáis porque es complejo y no vamos a verlo este curso.

CREAR RELACIONES ENTRE TABLAS

1.- Vamos a practicar como se crean relaciones entre tablas siguiendo el tutorial (vídeo 7).
Abre la base que COLEGIO DE (tu nombre y apellidos). Modifica la tabla Datos académicos según
se indica en el tutorial. Tienes que eliminar el campo Nombre y el campo Apellidos y crea el campo
N_alumno del tipo Número y campo “Clave principal”.
Como ayuda estas son las características:
Nombre del campo Tipo de dato Propiedades
Número Al ser clave principal se convierte en
N_Alumno Indexado sí (sin duplicados)
Aula Texto
A_extraescolares Texto
Repite_curso Sí/No

2.- La tabla, Datos personales, queda como está salvo el campo N_Alumno que lo convertimos en
campo “Clave principal”:
Nombre del campo Tipo de dato Propiedades
Autonumérico Al ser clave principal se convierte en
N_Alumno Indexado sí (sin duplicados)

3.- Crea la relación entre las dos tablas según se muestra en el tutorial. Comprueba que no hay registros
en las tablas antes de hacer las relaciones. No es necesario que incluyas después los registros que dice el
tutorial pues la importante de la actividad es que veas las relaciones entre las tablas.

4.- En las bases de datos adjuntas, abre la base Alumnos y asignaturas y observa como están
relacionadas sus tres tablas con relaciones del tipo uno a varios.

5.- Elimina todas las relaciones actuales. Después crea de nuevo las relaciones entre las tablas.

6.- Establece las relaciones entre las tablas de la base de datos CochesLocos, del siguiente modo:
A. Javier Cárdenas
Tabla Fabricante con tabla Coches.
Tabla Clientes con tabla Compras.
Tabla Concesionario con tabla Compras
Tabla Coches con tabla Compras.
Notas: Todas las relaciones son del tipo uno a varios. Marcar la casilla “Exigir integridad referencial”.

7.- Establece las relaciones entre las dos tablas de la base de datos Personas del siguiente modo:
Tabla Personas con tabla Afiliados. (Tipo de relación uno a uno. Exigir integridad referencial).
Nota: Para que la relación sea uno a uno es necesario que el campo DNI en la tabla afiliados (clave
ajena) tenga la propiedad Indexado Sí (Sin duplicados).

8.- Establece las relaciones entre las dos tablas de la base de datos Suministros Cano del siguiente
modo:
Tabla Clientes con tabla Pedidos. (Tipo de relación uno a varios. Exigir integridad referencial).

9.- En el ejercicio anterior ¿Cómo sería el tipo de relación si relacionamos los campos Id de ambas
tablas?

10.- Establece las relaciones en la base de datos Artículos, teniendo en cuenta que:
La base de datos tiene dos tablas, artículos y fabricantes.
Cada artículo puede fabricarlo más de un fabricante y a la vez cada fabricante puede fabricar más de un
artículo, por tanto es una relación varios a varios, que no es posible definir.
La solución consiste en crear una nueva tabla, que podemos llamar Artículos por fabricantes, que
tendrá un campo (clave ajena) para relacionarse con el campo clave principal de la tabla Artículos y
otro campo (clave ajena) para relacionarse con el campo clave principal de la tabla Fabricantes.

11.- En una Base de datos con las tablas:


Dueños (DNI, Nombre, Apellidos, Dirección, Ciudad y Teléfono)
Mascotas (IdMascota, Nombre, Raza, DNI)
a) ¿Qué campo serán la clave primaria en cada una de las tabla?

b) ¿Qué campo será la clave ajena en la relación?

c) ¿Qué campos se relacionarán? Y ¿Cómo será el tipo de relación?

d) Si la tabla principal es Dueños y en la relación exigimos integridad referencial, ¿qué debemos hacer
antes de dar de alta a una nueva mascota?

LA CLAVE PRINCIPAL

A. Javier Cárdenas
La "clave principal" (clave primaria o primary key o PK) es un campo que identifica de forma única a
cada registro de la tabla. No podrá haber dos registros con la "clave principal" igual, es siempre única
para cada registro.
Hay que tener en cuenta que el campo clave principal no debe contener datos susceptibles de repetirse,
por ejemplo, si creamos como clave principal el campo "nombre", no podrá haber en la tabla dos
personas con el mismo nombre. El campo "clave principal" puede ser el D.N.I., matrícula de coche,
código cliente (alfanumérico, numérico o autonumérico).
Si cuando creamos una tabla no definimos un campo "clave principal", Access nos mostrará un cuadro
de diálogo para informarnos de la conveniencia de definir uno. Si pulsamos "Si", se creará uno
automáticamente, si contestamos "No" se cierra sin definir ningún campo "clave principal", lo que
podremos hacer posteriormente y si hacemos clic sobre "Cancelar", volveremos a la tabla y así
podremos definir el campo "clave principal" que deseemos.
CREAR UN CAMPO DE CLAVE PRINCIPAL
 Se selecciona el campo o campos que se desean definir como clave principal.
 Se pulsa el botón con el icono de una llave, Clave principal, en la pestaña Diseño, o clic botón
derecho de ratón dentro del campo deseado y en el menú contextual que aparece se selecciona el
comando "Clave principal".
Junto al campo aparece un icono con el dibujo de llave y en la ficha de propiedades del campo
cambia automáticamente la propiedad "Indexado" a Si (sin duplicados) y la propiedad "Requerido"
se pone automáticamente en "Si".

LA CLAVE AJENA
La “clave ajena” (externa o foreign key o FK) es el campo de una tabla que estará relacionado con el
campo clave principal de otra tabla. Este campo aparecerá en otra tabla como clave principal. Debe ser
un campo del mismo tipo (salvo autonumérico que en la tabla relacionada será numérico) que el del
campo que contiene la clave principal de la otra tabla (con el mismo o diferente nombre), al margen de
que la tabla puede tener su propia clave principal. Ejemplo:
Tabla Compras (Tabla principal) Tabla proveedores (Tabla secundaria)
 NIF Nª DE ORDEN
NOMBRE FECHA
DIRECCIÓN IMPORTE
TELÉFONO NIF PROVEEDOR (Clave ajena o externa)

DEFINICIÓN DE RELACIONES
La relación entre las tablas permite trabajar con datos de varias tablas a través de uno o varios campos
comunes. La relación entre tablas es fundamental en las bases de datos relacionales.
Proceso: Pestaña Herramientas de la base de datos / Grupo Relaciones / Botón Relaciones / Botón
Mostrar tabla / Se seleccionan las tablas que queremos relacionar / "Agregar" o con doble clic. Al
finalizar se pulsa "Cerrar" / Aparece la ventana Relaciones que muestra todas las tablas antes
seleccionadas.
Las relaciones se realizan entre dos campos del mismo tipo en tablas distintas, no es necesario que
tengan el mismo nombre. Salvo en campo autonuméricos que en la tabla relacionada debe ser
numérico. En una de las tablas será clave principal y en la otra clave ajena o externa.
Se hace clic con el botón izquierdo en el campo clave principal de una de las tablas y sin soltarlo
arrastramos hasta el campo, clave externa, de la otra tabla con el que queremos relacionarlo. Al soltar el
botón aparecerá en pantalla el cuadro de diálogo Modificar relaciones en el que aparecen los nombres de
los campos que se han relacionado. Pueden añadirse nuevos campos en las restantes líneas.
Se marcan las casillas que se deseen (Integridad referencial, …) y por último se pulsa crear.

LA INTEGRIDAD REFERENCIAL

A. Javier Cárdenas
La "Integridad referencial" es una propiedad de las relaciones entre las tablas que no permite la
existencia en el campo con la clave ajena de valores que no existan previamente en el campo con la
clave principal. Es decir, se está diciendo al programa que no permita introducir datos en la tabla
secundaria si no se han incluido previamente en la tabla principal. Ejemplo, para anotar un pedido de un
cliente es necesario que el cliente esté dado de alta en la tabla de clientes.
Dispone de dos acciones asociadas:
Actualizar registros en cascada. Cuando se cambia el valor del campo de la tabla principal,
automáticamente cambian los valores en los registros relacionados de la tabla secundaria.
Eliminar registros en cascada. Cuando se elimina un registro en la tabla principal, automáticamente se
eliminan los registros relacionados de la tabla secundaria.

TIPOS DE RELACIONES
De uno a uno: Cada registro de la tabla A (principal) sólo puede tener un registro coincidente en la tabla
B (secundaria) y viceversa. Ejemplos: Cliente -- DNI. Factura --- Pedido. Se produce cuando
relacionamos dos campos de clave principal o campos que tienen un índice único (sin duplicados).
De uno a varios: Cada registro de la tabla A (principal) puede tener varios registros relacionados en la
tabla B (secundaria), pero un registro de la tabla B solo tiene un registro coincidente en la tabla A.
Ejemplos: un cliente puede tener varios pedidos, pero un pedido solo es de un cliente. Un proveedor
puede vender varios productos pero cada producto solo lo vende un proveedor.
Se produce cuando el campo con clave principal de la tabla A (principal) se relaciona con un campo de
la tabla B (secundaria) que no es clave principal y no tiene un índice único (con duplicados).
De varios a varios: Cada registro de la tabla A (principal) puede tener varios registros relacionados en
la tabla B (secundaria) y viceversa. Esta relación solo es posible si se crea una tercera tabla (tabla de
intersección) que consta de al menos dos campos que recogen las dos claves ajenas (externas) con que
se relacionan las claves principales de las otras dos tablas. Varios a varios se convierten en dos
relaciones de uno a varios. Ejemplo. Un pedido puede incluir varios productos y a la vez un producto
puede aparecer en varios pedidos.

VER Y MODIFICAR LAS RELACIONES EXISTENTES EN UNA BASE DE DATOS Y LAS


PROPIEDADES DE DICHAS RELACIONES
Proceso: Pestaña Herramientas de la base de datos / Grupo Herramientas / Botón Modificar
relaciones o doble clic o clic botón derecho en la línea de unión entre dos campos relacionados.
Aparece el cuadro de diálogo Modificar Relaciones con las propiedades del enlace establecido entre los
campos.
Si hay muchas tablas en la ventana relaciones, podemos ocultar las que no nos interesen para ello se
pulsa en borrar diseño (esto no elimina relaciones) y después se muestran las tablas que deseemos y las
relaciones directas.

A. Javier Cárdenas

También podría gustarte