Sei sulla pagina 1di 14

TEMA TRES

RELACIONES ENTRE
TABLAS EN ACCESS
Albeiro Ramos
Instructor Técnico – SENA
Centro de Servicios Financieros
Bogotá – Colombia
TEMAS
• Bases de Datos Relacionales
• Conceptos Básicos de Diseño en
una BBDD en Access
• Clave Principal y Clave Foránea
• Tipos de Relaciones
• Uno a uno (1 - 1)
• Uno a Varios (1 - ∞)
• Varios a Varios (∞ - ∞)
• Bibliografía
BASES DE DATOS RELACIONALES
Una base de datos relacional es una colección de
elementos de datos organizados en un conjunto de
tablas formalmente descritas desde la que se puede
acceder a los datos o volver a montarlos de muchas
maneras diferentes sin tener que reorganizar las tablas
de la base. La base de datos relacional fue inventada
por E.F. Codd en IBM en 1970.

La base de datos relacional (BDR) es un tipo de base de


datos (BD) que cumple con el modelo relacional (el
modelo más utilizado actualmente para implementar
las BD ya planificadas). Permite establecer
interconexiones o relaciones entre los datos (que están
guardados en tablas), y a través de dichas conexiones
relacionar los datos de ambas tablas, de ahí proviene su
nombre: "modelo relacional".
CONCEPTOS BÁSICOS DE DISEÑO
EN UNA BBDD DE ACCESS
1. Determinar la finalidad de la base de datos: Esto le ayudará a estar preparado
Una base de datos correctamente diseñada permite obtener para los demás pasos.
acceso a información exacta y actualizada. Puesto que un 2. Buscar y organizar la información necesaria: Reúna todos los tipos de
diseño correcto es esencial para lograr los objetivos fijados información que desee registrar en la base de datos, como los nombres de
para la base de datos, parece lógico emplear el tiempo que sea productos o los números de pedidos.
necesario en aprender los principios de un buen diseño ya que, 3. Dividir la información en tablas: Divida los elementos de información en
en ese caso, es mucho más probable que la base de datos entidades o temas principales, como Productos o Pedidos. Cada tema pasará a
ser una tabla.
termine adaptándose a sus necesidades y pueda modificarse
4. Convertir los elementos de información en columnas: Decida qué
fácilmente.
información desea almacenar en cada tabla. Cada elemento se convertirá en
un campo y se mostrará como una columna en la tabla. Por ejemplo, una tabla
PROCESO DE DISEÑO Empleados podría incluir campos como Apellido y Fecha de contratación.
5. Especificar claves principales: Elija la clave principal de cada tabla. La clave
El proceso de diseño de una base de datos se guía por algunos principal es una columna que se utiliza para identificar inequívocamente cada
principios. El primero de ellos es que se debe evitar la fila, como Id. de producto o Id. de pedido.
información duplicada o, lo que es lo mismo, los datos 6. Definir relaciones entre las tablas: Examine cada tabla y decida cómo se
redundantes, porque malgastan el espacio y aumentan la relacionan los datos de una tabla con las demás tablas. Agregue campos a las
probabilidad de que se produzcan errores e incoherencias. El tablas o cree nuevas tablas para clarificar las relaciones según sea necesario.
segundo principio es que es importante que la información sea 7. Ajustar el diseño: Analice el diseño para detectar errores. Cree las tablas y
correcta y completa. Si la base de datos contiene información agregue algunos registros con datos de ejemplo. Compruebe si puede obtener
incorrecta, los informes que recogen información de la base de los resultados previstos de las tablas. Realice los ajustes necesarios en el
datos contendrán también información incorrecta y, por tanto, diseño.
las decisiones que tome a partir de esos informes estarán mal 8. Aplicar las reglas de normalización: Aplique reglas de normalización de los
datos para comprobar si las tablas están estructuradas correctamente. Realice
fundamentadas.
los ajustes necesarios en las tablas.
CLAVE PRINCIPAL Y CLAVE FORÁNEA
CLAVE PRINCIPAL
Una tabla sólo puede tener una clave principal. Una clave
principal es un campo que: 1. Clave principal
• Tiene un valor único para cada registro 2. Clave externa
• Se indiza (Indexar, se utiliza para buscar, tener acceso a los
registros y relacionar tablas)
• Identifica el registro
Una clave externa, en pocas palabras, es la clave principal de otra tabla. Los valores de un campo de clave externa deben
Una clave principal correcta debe tener varias características:
coincidir con los valores de la clave principal, así se pueden relacionar los registros de las dos tablas
• Identifica inequívocamente cada fila.
• Nunca debe estar vacía ni ser nula (siempre debe REQUISITOS PARA RELACIONAR DOS TABLAS
contener un valor).
• Los valores que contiene no suelen cambiar (lo ideal es 1. Ambas tablas deben tener un campo en común
que no cambien) (Aunque no necesariamente con el mismo nombre)

CLAVE EXTERNA (FORÁNEA) 2. El campo común ha de ser clave al menos en una de


las tablas
Una clave externa, en pocas palabras, es la clave principal de
otra tabla. Los valores de un campo de clave externa deben 3. El tipo de datos ha de ser el mismo (Ejp,
coincidir con los valores de la clave principal, así se pueden Autonumérico y numérico)
relacionar los registros de las dos tablas
Ejemplo Gestión de Pedidos
Clave Principal y Clave Foránea
1. Abra la BBDD GESTIÓN DE PEDIDOS en Access
2. De clic derecho sobre la tabla CLIENTES / Vista de
Diseño
3. Clic al lado izquierdo del Campo Código Cliente para
seleccionar la Fila
4. Vaya a Diseño / Herramientas / Clave Principal
5. Guarde los Cambios y cierre la tabla NOTA: En la Tabla PRODUCTOS – PEDIDOS, seleccione al
6. Repita los mismos pasos con las demás Tablas como mismo tiempo los campos NÚMERO DE PEDIDO Y
se muestra en la imagen CÓDIGO DEL ARTÍCULO y coloque la llave principal
TIPOS DE RELACIONES

• Uno a uno (1 - 1)
• Uno a Varios (1 - ∞)
• Varios a Varios (∞ - ∞)
• Ejemplo1. Gestión de Pedidos
UNO A UNO (1 - 1)
A B
O dicho de otro modo,

UN Empleado sólo puede tener UNA información Laboral y


UNA información Laboral pertenece solamente a UN Empleado

OTRO EJEMPLO:

Cuando se necesita registrar información complementaria sobre


productos que apenas va a necesitar o que sólo se aplica a unos
pocos productos. Como no necesita la información con frecuencia,
Por CADA registro que se tiene en la Tabla «A», hay
solamente UN registro relacionado en la Tabla «B»,
y como almacenar la información en la tabla Productos crearía un
espacio vacío para todos los productos que no necesitan esa
es decir, información, la coloca en una tabla distinta. Al igual que en la tabla
Productos, utiliza el identificador de producto como clave
Por CADA registro de la Tabla EMPLEADO_PERSONAL principal. La relación entre esta tabla complementaria y la tabla
(Datos Personales del Empleado), hay solamente UN Productos es una relación de uno a uno. Para cada registro de la
registro relacionado con la Tabla EMPLEADO_LABORAL tabla Productos hay un único registro coincidente en la tabla
(Datos Laborales del Empleado) complementaria.
UNO A VARIOS (1 - ∞)
B

A
O dicho de otro modo,

UN Departamento puede tener VARIOS Empleados, pero


UN Empleado pertenece solamente a UN Departamento

OTRO EJEMPLO:

Un proveedor puede suministrar cualquier número de productos y,


Por CADA registro que se tiene en la Tabla «A», hay
por consiguiente, para cada proveedor representado en la tabla
VARIOS registros relacionados en la Tabla «B»,
Proveedores, puede haber muchos productos representados en la
es decir, tabla Productos. La relación entre la tabla Proveedores y la tabla
Productos es, por tanto, una relación de uno a varios.
Por CADA registro de la Tabla DEPARTAMENTO
(Departamentos en los que se divide la Compañía), hay
VARIOS registros relacionados con la Tabla
EMPLEADO_LABORAL (Datos Laborales del Empleado)
VARIOS A VARIOS (∞ - ∞)
A AB B O dicho de otro modo,

UN Cliente puede comprar VARIOS Libros, y


UN Libro puede ser comprado por VARIOS Clientes
a través de UNA orden

Además de la relación de varios a varios entre la tabla «A» y «B», se crea


una tercera tabla «AB» que sirve como puente para establecer dicha
relación. Esta Tabla cuenta con un campo único, que permite registrar
(contar) las relaciones que se dan entre «A» y «B». Por ejemplo la tabla
ORDENES, cuenta (o registra) los cambios relacionados entre CLIENTES y
Por CADA registro que se tiene en la Tabla «A», hay
VARIOS registros relacionados en la Tabla «B», y LIBROS a través del campo Orden_ID, y otro campo adicional, Fecha de la
viceversa Orden.

es decir, OTRO EJEMPLO:


Por CADA registro de la Tabla CLIENTES (Usuarios de la Considere la relación entre la tabla Productos y la tabla Pedidos. Un solo
Librería), hay VARIOS registros relacionados con la Tabla
LIBROS (Información sobre los Libros) pedido puede incluir varios productos. Por otro lado, un único producto
puede aparecer en muchos pedidos. Por tanto, para cada registro de la
pero también, tabla Pedidos puede haber varios registros en la tabla Productos. Y para
cada registro de la tabla Productos puede haber varios registros en la tabla
Por CADA registro de la Tabla LIBROS (Información Pedidos. Para un producto puede haber varios pedidos, y para un pedido
sobre los Libros) hay VARIOS registros relacionados con
la Tabla CLIENTES (Usuarios de la Librería) puede haber varios productos.
Ejemplo Gestión de Pedidos
Relaciones entre Tablas
1. Cierre las tablas que aun estén abiertas 5. Aparece el cuadro de dialogo Modificar relaciones /
2. Vaya a Herramientas de Bases de Datos / Relaciones Active las casillas: Exigir integridad referencial, Actualizar
/ Relaciones en cascada los campos relacionados y Eliminar en cascada
3. Seleccione todas las Tablas (Shift + Tecla de los registros relacionados
dirección hacia abajo) / Agregar / Cerrar 6. Repita los mismos pasos para las demás tablas como se
4. De un clic sostenido sobre el campo clave principal muestra en la imagen.
de la tabla clientes (Código Cliente) / Arrástrelo
hasta la clave foránea de la tabla pedidos (Código
Cliente)
Ejemplo Gestión de Pedidos
Hoja Secundaria e Integridad Referencial
1. Abrir tabla PEDIDOS
2. Registrar un pedido. Ejemplo: 0089, CT95, 30/04/2016,
HOJA SECUNDARIA DE DATOS contado, 0.0%
3. Ir a: Herramientas de bases de datos / Relaciones /
1. Abra la Tabla Clientes Relaciones
2. Ir a: Inicio / Registros / Más  / Hoja Secundaria de 4. Clic derecho sobre la relación entre clientes y pedidos /
Datos / Hoja Secundaria de Datos Modificar Relación
3. Seleccionar PEDIDOS / Aceptar 5. Desactivar la casilla: Exigir Integridad Referencial / Aceptar
4. Dar clic al + que está ubicado al lado izquierdo de 6. Repetir los pasos del 1 y 2
cada registro 7. Repetir los pasos 3 y 4
8. Activar la casilla: Exigir Integridad Referencial / Aceptar
INTEGRIDAD REFERENCIAL 9. Eliminar registro (ver paso 2)
10. Repetir los pasos 6 al 8
Obliga a que por cada registro que tenga en la tabla
«A», exista un registro relacionado en la tabla «B». Casos en los que no se utilizaría. Si en el pasado se han tenido
clientes que hicieron pedidos y se quisieran eliminar uno porque
En el caso del ejemplo, cada pedido debe tener su ya no se trabaja mas con él, sin embargo, quisiera conservar el
correspondiente cliente, porque no se puede tener un histórico de sus pedidos. Si hay integridad referencial no se
pedido de un cliente que no existe. podría hacer, porque al eliminar el cliente, se eliminan los
pedidos que hizo
Ejemplo Gestión de Pedidos
Actualizar y eliminar en Cascada
Actualizar en Cascada los campos relacionados. Si se Eliminar en Cascada los campos relacionados. Si se
cambia la información de un registro en la tabla «A», elimina la información de un registro en la tabla «A»,
automáticamente se actualiza en la Tabla «B». En el automáticamente se eliminan los registros relacionados
Ejemplo si se cambia la información de un registro en la en la Tabla «B».
tabla CLIENTES, también se cambia en la tabla PEDIDOS.
1. Ir a: Herramientas de bases de datos / Relaciones /
1. Ir a: Herramientas de bases de datos / Relaciones / Relaciones
Relaciones 2. Clic derecho sobre la relación CLIENTES – PEDIDOS /
2. Clic derecho sobre la relación CLIENTES – PEDIDOS / Modificar relaciones / Aceptar
Modificar relaciones / Aceptar 3. Activar la casilla: Eliminar en cascada los campos
3. Activar la casilla: Actualizar en cascada los campos relacionados
relacionados 4. Eliminar el primer registro de la tabla CLIENTES y
4. Modificar el primer registro de la tabla CLIENTES, comprobar la eliminación en el la tabla PEDIDOS
cambiar de CT01 por CT98 y ver cómo se actualiza en
el la tabla PEDIDOS Cuidado: Relación CLIENTES – PRODUCTOS_PEDIDOS. Si
se elimina un registro de la tabla CLIENTE, no solo se
eliminan sus registros en la tabla PEDIDOS, sino también,
se eliminan los registros relacionados en la tabla
PRODUCTOS_PEDIDOS. Hacer la prueba.
BIBLIOGRAFÍA
• https://cideca.wikispaces.com/file/view/TALLER+ACCESS.pdf
• http://searchdatacenter.techtarget.com/es/definicion/Base-de-
datos-relacional

Potrebbero piacerti anche