Modificar y eliminar relaciones
Una vez establecidas las relaciones entre las distintas tablas, es posible modificar
las mismas o incluso eliminarlas. Ambas operaciones se realizan desde la Ventana de
relaciones, como ya se ha comentado anteriormente.
Para modificar una relación los pasos a seguir son:
- Hacer clic sobre la línea de la relación que se quiere modificar, ésta se
visualizará con un trazo más grueso, indicando que está seleccionada.
- Seleccionar la opción Modificar relación del menú Relaciones. Se muestra el mismo
cuadro de diálogo que aparecía al crear la relación.
- Realizar las modificaciones necesarias.
- Hacer clic sobre el botón Aceptar.
Para eliminar una relación, basta con seleccionar la relación que se quiere eliminar
y pulsar a continuación la tecla Supr (o seleccionar la opción Eliminar del menú
Edición).
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Access Aplicaciones y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Integridad referencial
La integridad referencial es un conjunto de reglas de Access que garantizan que las relaciones
entre los registros de tablas relacionadas son válidas y que no se eliminan ni modifican
accidentalmente datos relacionados que satisfacen dicha relación. Sirve para
aumentar la seguridad en el tratamiento de los datos que coexisten entre dos
tablas relacionadas.
Se puede establecer integridad referencial cuando se cumplen todas las condiciones
siguientes:
- El campo que relaciona ambas tablas tiene que ser en la tabla principal un
campo clave (indexado si y sin duplicados) y en la otra tabla, también
indexado (con o sin duplicados según proceda).
- Los campos relacionados tienen el mismo tipo de datos, a excepción de que
la relación se establezca entre un campo de tipo Autonumérico y un campo de
tipo Numérico, siempre y cuando este último sea un Entero largo (por lo tanto
los dos campos con la misma longitud: entero largo). No se pueden relacionar
un campo de texto con uno de fecha, uno numérico con uno de texto...
- Ambas tablas deben pertenecer a la misma base de datos de Access (estar
dentro del mismo archivo .mdb).
Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Access Aplicaciones y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Establecer integridad referencial
Cuando se establece la integridad referencial (marcando la casilla pertinente
en el panel de modificar relaciones) se van a cumplir obligatoriamente, las
siguientes reglas:
- No podemos introducir un valor para ese campo en la tabla relacionada si antes no ha sido
introducido en la tabla principal, es decir, no podemos tener en la tabla
de pedidos un pedido realizado por un código de cliente que no exista.
Otro ejemplo: no podemos tener o anotar en la tabla de
participantes un participante con un número de socio que no exista en la tabla
relacionada de socios (habría que dar de alta al participante previamente en
la tabla socios. Una buena opción sería colocar en el formulario de
inscripciones un botón de comando que nos "lleve" y abra el formulario de
socios para poderle dar de alta. Al cerrar el formulario de socios una vez
dado de alta, regresaríamos al formulario de inscripciones y como ese nuevo
socio ya existe en la tabla de socios, nos permitiría su entrada). No
podremos introducir tampoco a un empleado un código de entidad bancaria si no se ha
introducido esa entidad previamente en la tabla entidades. No se puede asignar
a un trabajador un código de categoría si esa categoría no está dada de alta
en la tabla categorías. No se puede añadir un pedido en una tabla de pedidos
de un artículo si el artículo no existe previamente en la tabla de
artículos...
- No se puede eliminar un registro de una tabla principal si existen
registros coincidentes en la tabla relacionada, no podemos eliminar un
cliente que está en la tabla de pedidos, es decir está realizando un pedido.
Otro ejemplo: No podemos eliminar
un socio que está en la tabla de participaciones. No podremos eliminar una
entidad bancaria mientras existe un empleado que domicilie su nómina por ella,
no podremos eliminar una categoría profesional de la empresa mientras algún
empleado la tenga asignada. No se podría borrar un artículo mientras existen
pedidos de ese artículo en la tabla de pedidos. no se podría dar de baja un
vehículo (de una base de datos de un ayuntamiento) mientras en la tabla
relacionada multas existan multas sobre ese vehículo...
- No se puede cambiar un valor de clave principal en la tabla principal si
el registro tiene registros relacionados, siguiendo el ejemplo, no
podríamos cambiar el número de cliente en la tabla de clientes si este cliente
en este momento esta realizando un pedido, es decir está en la tabla pedidos.
Otro ejemplo: No podríamos
cambiar el número de socio en la tabla de socios si este socio en este momento
esta participando en un torneo, es decir está en la tabla participaciones.
Para el resto de ejemplos propuestos, exactamente igual.
Si se quiere exigir el cumplimiento de estas reglas, hay que seleccionar la casilla de
verificación Exigir integridad referencial al crear la relación (paso 3).

Al hacerlo se activarán las dos
opciones que aparecen debajo:
- Actualizar en cascada los campos relacionados: si se activa esta opción, al modificar
el valor del campo común a ambas tablas en un registro de la tabla principal, se
actualizará dicho valor en todos los registros relacionados en la tabla relacionada.
(Si cambiamos el número de cliente en la tabla clientes, de forma automática se
cambia en todos los registros de la tabla pedidos)
- Eliminar en cascada los registros relacionados: si se activa esta opción, al borrar un
registro de la tabla principal, se borrarán todos los registros dependientes en la tabla
relacionada. (Si se elimina un cliente en la tabla clientes se eliminan de forma
automática todos los registros que tengan que ver con ese cliente en la tabla
pedidos). Esta opción es muy peligrosa ya que en Access una vez que se
elimina un registro ya no se puede volver a recuperar.
| Muy Importante: Esta opción es muy arriesgada ya que en
Access una vez que se elimina un registro ya no se puede volver a recuperar.
Es fundamental llevar una buena política de copias de seguridad. |
Al establecer la integridad referencial en la figura siguiente se observa que la relación es uno (1) a varios (¥), un cliente (cuyos datos se encuentran en la tabla
Clientes) puede haber realizado varios pedidos (los datos de éstos se encuentran en la tabla
Pedidos).

Inscríbete ahora y accede a 3 unidades gratis
Evalua el curso de Access Aplicaciones y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....
Si desea obtener un acceso sin restricciones a los contenidos del curso de Access Aplicaciones y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede
inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.