Está en la página 1de 10

Leccin 7 Relaciones Access 2007

ESQUEMA DE UNA BASE DE DATOS ACCES:

Lic. Roel Rodrguez R.

Una base de datos de Acces aparece en el disco duro como un fichero de extensin .mdb. Este fichero contiene todos los objetos, elementos y datos. Se trata de una estructura compleja que puede simplificarse de la siguiente manera:

1. TABLAS RELACIONALES:

Las tablas son los datos propiamente dichos. De estas surgen las consultas, formularios e informes. Si no tenemos tablas con datos no podemos crear otros objetos. Las tablas estn formadas por filas (registros) y columnas (campos) de datos. Son ejemplos de tablas los siguientes: clientes, productos, empleados, facturas, pedidos,...
2. CONSULTAS:

Las consultas son subconjuntos de una o varias tablas. Nos permiten seleccionar los datos con los que queremos trabajar. Tambin podemos aadir, borrar, actualizar y realizar otros procesos con los datos de las tablas. Tal vez queramos imprimir (con un informe) una carta slo para los clientes de cierta ciudad que compran ciertos productos...
3. FORMULARIOS:

Los formularios permiten visualizar los datos por la pantalla. Definen la forma en la que deben aparecer y lo que debe aparecer. Tambin sirven para aadir, borrar, actualizar y realizar otros procesos...
4. INFORMES:

Los informes definen los datos para imprimir... CONCEPTOS SOBRE TABLAS RELACIONALES: Una tabla es una matriz de filas y columnas de datos de distintos tipos. Esta definicin es poco precisa y muy amplia, puesto que una lista de Excel, o unas tabulaciones de Word tambien se pueden definir de la misma manera. Para precisar vamos a exponer las siguientes definiciones:

1. CAMPO 2. REGISTRO 3. TABLA 4. TABLA RELACIONAL

Leccin 7 Relaciones Access 2007


1. CAMPO:

Lic. Roel Rodrguez R.

Un campo es cada una de las mnimas informaciones que disponemos de un item o elemento. Por ejemplo el DNI de una persona. A partir de ahora campo DNI. No debemos confundir el nombre del campo (DNI), que ser siempre el mismo, con el contenido del campo que podr variar para cada elemento. DNI podr contener valores distintos, pero siempre sern del mismo tipo. Segn el tipo de dato que contenga el campo tendremos tipos de campos de texto, numricos, para imgenes, etc. En el siguiente enlace tienes informacin sobre tipos de campo...

2. REGISTRO:

Si unimos tadas las informaciones mnimas (campos) disponibles de un elemento, obtenemos el registro de ese elemento. El registro podr contener un solo campo o muchos

3. TABLA:

Una tabla estar formada por un solo registro o por muchos...

4. TABLAS RELACIONALES:

Sin embargo, esta idea de tabla de Access es igualmente vlida para una lista de Excel: un conjunto de una o ms columnas del mismo tipo de datos que forman un rectngulo en el que la primera fila son el encabezado o nombres de columnas y el resto de filas los datos. Qu diferencia una tabla de Access de una lista de Excel?. Se almacenan los datos de la misma manera? Vamos a tratar de responder las preguntas anteriores. Las listas de Excel tienen claros inconvenientes cuando se trata de grandes cantidades de filas:

1. Su gestin y proceso se hace complicado y lento. 2. Ocupa demasiado espacio. 3. El nmero de filas en Excel se limita a algo mas de 65.000 filas 4. Existen muchos datos repetidos (redundancias)...
La diferencia est en las tablas relacionales. Las tablas de Access no se crean como rectngulos de datos aislados, sino como rectngulos relacionados con otros mediante algn un campo (clave). De esta forma se optimiza su gestin y mantenimiento. En el ejemplo anterior se

Leccin 7 Relaciones Access 2007

Lic. Roel Rodrguez R.

observan datos duplicados (redundancias) que podran eliminarse de la siguiente manera: cramos tres tablas NOMBRES, CIUDADES Y DEPARTAMENTOS y definimos relaciones entre ellas. El grfico siguiente representa el resultado:

La tablas de Access forman una estructura relacional en la que ninguna tabla se encuentra aislada y en la que se pueden incorporar nuevas tablas con nuevos datos de forma coherente. Access representa las tablas con un rectngulo en el aparece el nombre de la tabla y dentro todos los nombres de los campos que posee la tabla. Los nombres de campos que aparen en negrita son claves principales mediante las cuales se definen las relaciones.

RELACIONES ENTRE TABLAS: Para que los datos de las tablas se puedan seleccionar, encontrar y procesar de forma rpida y eficaz, es necesario que las talas no se encuentren aisladas unas de otras. Las tablas tienen que

Leccin 7 Relaciones Access 2007

Lic. Roel Rodrguez R.

estar relacionadas con otras formando estructuras relacionales. La relacin es una asociacin establecida entre campos comunes (columnas) en dos tablas. Los campos que entran en relacin pueden llamarse de distinta manera, pero tienen que ser del mismo tipo de datos. La relacin permite al motor de Access, encontrar datos relacionados en ambas tablas. Por ejemplo podemos encontrar NOMBRE, APELLIDO (de la tabla EMPLEADO_PERSONAL), SALARIO, y DEPART (de la tabla EMPLEADO_LABORAL) de uno o varios empleados. Las relaciones pueden ser de tres tipos:

1. De uno a uno. 2. De uno a varios. 3. De varios a varios.

Antes de hablar de las relaciones hay que entender lo que son los campos clave o llave. Son campos clave los que intervienen en la relacin. Es clave principal un campo (o ms de uno para claves de campo mltiple) cuyo valor o valores identifican de manera exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulos o repetidos. Por ejemplo, pueden ser calve principal campos como DNI en una tabla de personas, o CODIGO en una tabla de productos. Una clave principal se utiliza para relacionar una tabla con claves externas de otras tablas. Un campo autonumrico tambin puede funcionar como clave principal. La combinacin de dos o ms campos pueden dar una clave principal...

1. Relacin de uno a uno:

Por cada registro de la tabla principal (tabla que contiene la clave principal) puede existir un slo registro en la tabla relacionada (tabla que contiene la clave externa). La tabla relacionada no puede contener un registro que no est relacionado con uno de la tabla principal: no puede existir un registro con FECHA_ALTA, SALARIO, etc., si no hay un empleado con el que se relacione. Ms informacin en uno a uno. Esta relacin se utiliza para simplificar y organizar las tablas con muchos campos. Ver el ejemplo siguiente:

Leccin 7 Relaciones Access 2007


nota: esta relacin se indica:

Lic. Roel Rodrguez R.

2. Relacin de uno a varios:

Por cada registro de la tabla principal (tabla de la clave principal o lado uno de la relacin) pueden existir muchos (infinitos) registros en la tabla relacionada (tabla de la clave externa o lado infinito de la relacin). La tabla relacionada no puede contener un registro que no est relacionado con uno de la tabla principal, pero pueden haber muchos registro que estn relacioandos con el mismo registro de la tabla principal: varios (infinitos) empleados de la tabla EMPLEADO_LABORAL, pueden estar en el mismo departamento de la tabla DEPARTAMENTO...

nota: esta relacin se indica:


3. Relacin de varios a varios:

Debes tener claro las llaves primarias y una tabla de unin para que se produzca la relacin varios a varios entre PRODUCTOS y NUM_VENTA. Un registro de la tabla NUM_VENTA puede estar relacionado con varios registros de la tabla PRODUCTOS y un registro de la tabla PRODUCTOS puede estar relacionado con varios registros de la tabla NUM_VENTA. Explicacin: cuando realizamos una venta le asignamos un nmero (N_VENTA) y lo almacenamos en la tabla NUM_VENTA; esa venta puede estar formada por uno o varios productos identificados con un numero de producto (N_PRODUCTO) de la tabla PRODUCTOS. Ms informacin. Pero, cmo podemos relacionar varios registros de la tabla NUM_VENTA con varios de PRODUCTOS, y viceversa?. En realidad esta relacin est formada por dos relaciones de uno a muchos. Una tabla intermedia (tabla de unin VENTAS) contiene la clave principal mltiple que se forma con la conbinacin de dos (o ms) claves externas: N_VENTA y N_PRODUCTO. La combinacin de estos dos campos forma un campo que no se repite. Por ejemplo: la venta 200 (N_VENTA vale 200) se realiz con los productos 12, 14 y 36 (N_PRODUCTO). Si formamos con N_VENTA y N_PRODUCTO una clave principal obtenemos 20012, 20014 y 20036, valores no repetidos. Con otros valores de N_VENTA se procedera igual.

Leccin 7 Relaciones Access 2007


HERRAMIENTA PARA CREAR LAS RELACIONES
INRODUCCION

Lic. Roel Rodrguez R.

Una base de datos puede contener numerosas tablas sin relacionar, pero perderemos toda la potencia y posibilidades que las bases de datos relacionales ofrecen. La B.D. (base de datos) se convierte en simple contenedor de datos sin relacin. Dara igual tener los datos en otras estructuras no relacionales como tablas de Word, hojas de clculo o simples ficheros de texto. Cuando esto ocurre en Access, las tablas no son ms que islas de datos sin relacin. En la imagen inferior tenemos una base de datos de tablas aisladas sin relacin.

En esta situacin no podemos consultar ni seleccionar de forma automtica. Por ejemplo, en la tabla EMPLEADO_LABORAL tenemos el campo SALARIO que supuestamente corresponde al salario de un empleado de la tabla EMPLEADO_PERSONAL. Si quisieramos saber el nombre y apellido correspondiente a un salario cualquiera Access no podra encontrar esos datos puesto que EMPLEADO_PERSONAL y EMPLEADO_LABORAL no tienen ningn tipo de relacin establecida. No obstante, podramos encontrar esos datos manualmente anotando el valor del campo N_EMPLE de EMPLEADO_LABORAL y buscando en el campo N_EMPLE de EMPLEADO_PERSONAL el valor anotado, siempre y cuando los valores de N_EMPLE de ambas tablas se correspondieran. Si se cambia por error el valor de N_EMPLE de un registro de EMPLEADO_LABORAL el registro correspondiente quedar absolutamente aislado e incoherente: cmo saber a quien corresponde ese salario?, estar ahora el salario asignado a otro empleado?... Es evidente que en estas circunstancias Access deja de tener utilidad y sentido. La base de datos tiene utilidad si las tablas se encuentran relacionadas, como en la imagen inferior. Ahora Access podr encontrar el nombre y apellido correspondiente a cualquier salario o el telfono del empleado que realiz la venta "x" (N_VENTA de la tabla NUM_VENTA)... La bsqueda de datos se realiza en Access mediante las consultas de seleccin que trataremos en otro artculo.

Leccin 7 Relaciones Access 2007


PANTALLA DE RELACIONES DE ACCES

Lic. Roel Rodrguez R.

Una vez que tenemos la estructura de tablas y las claves definidas, el establecimiento de las relaciones es extremadamente fcil, siempre que los campos (claves) que se van a relacionar no tengan incoherencias ni errores... Para accede a la pantalla de relaciones pulsamos: Herramientas de Base de Datos > Relaciones Aparace una pantalla como muestra la imagen inferior. Muestra una lista con todas las tablas (y consultas) que existen en la B.D. El usuario puede elegir una o varias Tablas (o consultas) para aadirla a la pantalla de relaciones. Una vez que hemos agregado varias tablas (o consultas) aparecern aisladas y sin relacin. Para relacionar simplemente se arrastra el campo que querremos relaciaonar sobre el campo relacionado...

EJERCICIOS: RELACIONES UNO A UNO


EJEMPLO DE UNO A UNO:
Primer paso: en la pantalla de relaciones agregamos las dos tablas que vamos a relacionar (puedes descargar la base de datos empleado-tablas.mdb, la cual contiene las tablas sin relaciones que puedes ver en la imagen de abajo) . Los dos campos a relacionar son N_EMPLE que aparecen en negrita ya que son clave pricipal...

Leccin 7 Relaciones Access 2007

Lic. Roel Rodrguez R.

Segundo paso: arrastramos N_EMPLE de EMPLEADO_PERSONAL hacia N_EMPLE de EMPLEADO_LABORAL. Aparecer un pequeo cursor como ste ( ) que colocamos encima del campo de destino y soltamos...

Es importante el sentido del arrastre: en toda relacin hay siempre una tabla principal y una tabla relacionada (incluso en la relacin uno uno). La tabla principal se sita en la parte 1 y es la que arrastramos. La tabla relacionada se sita en el lado muchos (o el segundo lado 1 en una relacin uno a uno) y es donde soltamos el cursor.

Tercer

paso: al soltar el cursor en el campo destino, aparece automticamente la pantalla "modificar relaciones". En la parte superior izquierda aparece el ttulo " Tabla o consulta ", debajo el nombre de la tabla o consulta principal y ms abajo el campo (o campos) de relacin. En la parte superior centro aparece el ttulo "Tabla o consulta relacionada" que indica tabla y campo relacionado... El botn "Exigir integridad referencial" debe activarse. Con ello Access controlar la coherencia de los datos que existan o introduzcamos en las tablas. En la parte inferior Access indicar automticamente el tipo de relacin que se va a crear.

Una tabla principal (con integridad referencial) tendr un comportamiento distinto a una tabla relacionada. En nuestro ejemplo EMPLEADO_PERSONAL es la tabla principal, EMPLEADO_LABORAL es la tabla relacionada. Podemos insertar nuevos registros (altas) en EMPLEADO_PERSONAL sin que existan registros relacionados en EMPLEADO_LABORAL. Pero no podemos insertar ningn registro en EMPLEADO_LABORAL sino existe un registro en EMPLEADO_PERSONAL con el que se pueda relacionar. La lgica es la siguiente: puedo insertar

Leccin 7 Relaciones Access 2007

Lic. Roel Rodrguez R.

los datos personales de un nuevo empleado sin que todava tenga asignado SALARIO, DEPART, etc. Pero no puedo insertar datos como SALARIO, DEPART, etc de un empleado que tadava no existe... Cuarto paso: queda pulsar el botn Crear del paso anterior. Si todo fu correcto la relacin se habr establecido como muestra la imagen siguiente...

EJEMPLO DE UNO A VARIOS:

Para crear una relacin de uno a varios se procede de la misma manera. Supongamos que tenemos la tabla DEPARTAMENTO que contiene los nombre de los departamentos de la empresa. El campo COD es un cdigo arbitrario (texto o numrico) que es clave principal, puesto que no hay dos departamentos con el mismo cdigo. El campo Departamento puede ser una descripcin del departamento. La relacin se establece entre COD y DEPART. La tabla principal es DEPARTAMENTO y tendr el lado 1. La relacionada es EMPLEADO_LABORAL y tendr el lado muchos (smbolo de infinito)...

Leccin 7 Relaciones Access 2007

Lic. Roel Rodrguez R.

10

También podría gustarte