SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Relacciones entre tablas de Access
Cuando relacionamos dos o más tablas en Access, lo que estamos haciendo es combinar
la información de todas las tablas relacionadas de forma que a partir de la información
obtenida en una tabla, podamos acceder a la información de otra, que de algún modo
tiene algo en común con la primera.

Vamos a seguir desarrollando la aplicación de base de datos que ya iniciamos
anteriormente. La base de datos discoteca.

La finalidad de esta base de datos es, en última instancia, disponer de una relación o
lista de los título disponibles, pudiendo aumentar o disminuir el tamaño añadiendo
nuevos títulos o borrándolos de la lista. O simplemente modificando parte de alguno de
los registros que ya existe,

También queremos que nuestra base de datos mantenga un control de los préstamos que
se hace a los socios. Para ello, inicialmente, podríamos pensar en crear un registro para
cada uno de los préstamos y no complicarnos más la vida.

Un registro de estas características podria ser:

Nº Socio     NIF           Nombre       Apellidos   Dirección    Población C. Postal

Provincia    Prestamo1 Prestamo2 Prestamo3 Prestamo4 Fecha                    Devuelto
                                                     Préstamo                 (S/N)

Fecha
devolución

Bueno, pues podría ser. Pero este sistema, que ciertamente es bastante simple, tiene
algunos inconvenientes.
Si el socio en cuestión quiere que se le presten cuatro títulos en vez de máximo tres, que
es lo que soporta el registro tal y como se ha definido, pues hay un problema: habría que
rehacer la tabla y añadir un campo más que albergara ese dato.
Podemos pensar: vale, lo que hacemos es restringir inicialmente el número de títulos a
prestar a cada socio. Pensemos en tres como máximo y así la tabla anterior nos sirve
perfectamente.

Pues vale también. Pero si por costumbre los socios suelen llevar prestados uno o dos
titulos como máximo, pensemos en la cantidad de campos vacíos que vamos a tener que
gestionar más adelante. Y el espacio que ocupan.
Pensemos también en el gran tamaño que vamos a necesitar para introducir toda la
información requerida. Si un socio es muy habitual y visita nuestro negocio cada dos
días en busca de nuevos títulos, por cada préstamo que realicemos a esta persona
tendremos que repetir el nº de socio, nif, nombre, apellidos, dirección completa...
cuando lo único que varía con el registro precedente del mismo socio es el título de los
CD’s que solicita y la fecha de préstamo.
Además la repetición de tanta información nos va a garantizar casi seguro, que vamos a
cometer algún error al cumplimentar tanto dato.



Javier Fernández Castelo                   Pág 1                    6 de mayo de 2012
De todo esto, se desprende que debemos estructurar la información de forma que
podamos evitar todos los inconvenientes arriba expuestos.

La estructura de la que se habla es las relaciones entre tablas.

Podemos establecer tres tipos de relaciones entre tablas y/o consultas:

Relación Uno Uno: es poco probable que utilicemos este tipo de relaciones pero si lo
hacemos, será para dividir en varias una tabla con muchos campos, o bien porque
queremos aislar parte de la información de una tabla creando otra, relacionada de esta
manera por motivos de seguridad o para almacenar datos de una parte de los registros de
la tabla. Piensesé en el subconjunto de empleados de una empresa que además trabajan
                                                en otra: son pluriempleados y
                                                necesitamos       almacenar         esa
                                                información.

                                              La relación uno a uno, otorga a cada
                                              registro de una tabla un único registro
                                              en la otra relacionada y viceversa. Es
                                              decir, las dos tablas tendrán registros
                                              únicos en su seno pero las dos tienen
algún dato común. Los campos relacionados deben ser campos únicos.

En el trabajo que nos ocupa: la base de datos Discoteca, tenemos una relación de socios.
Cada registro corresponde a un único socio, luego cada uno de estos registros es único.
Por otra parte, de estos socios, hay algunos que realizan donaciones de material, pero no
todos ellos. La tabla mecenazgo relaciona mediante un campo idéntico al de la tabla
clientes, aquellos que realizan donaciones. También en esta tabla los mecenas que
aparecen en la relación son únicos, solo aparecen una vez. Fijémonos que no hemos
necesitado repetir el nombre y apellidos de los mecenas, estos ya están en la tabla
Socios.

Relación Varios a Varios: Este tipo de relación, se va a caracterizar porque cada
registro de una tabla A puede estar relacionado con varios registros de la tabla B y cada
registro de la tabla B con varios de la tabla A.
Para conseguir este tipo de relación, en Access es necesario disponer de una tabla
“Puente”:
Pensemos en la siguiente relación: en una fábrica, un pedido puede estar relacionado
con varias piezas (referencias) de producción y, al a vez, una pieza (una referencia),
                                                                            puede estar
                                                                              relacionada
                                                                            con     varios
                                                                            pedidos.

                                                                            Esto que es
                                                                            tan habitual
                                                                            en Access se
                                                                            realiza con
                                                                            una     tabla
                                                                            puente que


Javier Fernández Castelo                   Pág 2                    6 de mayo de 2012
podemos denominar Detalle de pedido.
En nuestro ejemplo, un mismo CD-Rom ha podido ser prestado durante cierto tiempo
en varios domicilios y al mismo tiempo, un solo domicilio ha podido solicitar varios
CD-ROM. La relación en este caso contempla una tabla puente llamada Prestamos, que
hace de nexo.

Relación Uno a Varios.: es la relación más habitual. En esta, un registro perteneciente
a una tabla A está relacionado con varios registros de otra tabla, tabla B. En la imagen
anterior, la tabla Titulos está relacionado con la tabla Prestamos de forma que un Titulo
puede ser solicitado en varios préstamos.
El campo que se va a relacionar con varios, ha de ser un campo llave o único.

Si tratamos de relacionar dos tablas mediante campos en que ninguno de los dos es
clave principal o llave , la relación creada es Indeterminada.

Dentro de las relaciones entre tablas de una base de datos, es necesario conocer que se
entiende por “Exigir integridad referencial.”
Exigir integridad referencial es un mecanismo que evita que se borren registros de
forma accidental.
Debe cumplir varias condiciones:
La tabla principal, contendrá el campo clave y será la parte “uno” de una relación “uno
a varios”. Esto significa que ese campo clave ha de ser único, sin duplicados.
Los campos relacionados de dos tablas han de tener el mismo tipo de datos.
Las tablas han de pertenecer a la misma base de datos. Si son tablas vinculadas no se
puede modificar su estructura desde esta.


   •   No puede introducir un valor en el campo de clave externa de la tabla
       relacionada que no exista en la clave principal de la tabla principal. No obstante,
       puede introducir un valor Nulo en la clave externa, especificando que los
       registros no están relacionados. Por ejemplo, no puede tener un pedido asignado
       a un cliente que no existe, pero puede tener un pedido asignado a nadie mediante
       la introducción de un valor Nulo en el campo Id. de cliente.
   •   No puede eliminar un registro de una tabla principal si existen registros
       coincidentes en una tabla relacionada. Por ejemplo, no puede eliminar un
       registro de empleados de la tabla Empleados si existen pedidos asignados al
       empleado en la tabla Pedidos.
   •   No puede cambiar un valor de clave principal en la tabla principal si ese registro
       tiene registros relacionados. Por ejemplo, no puede cambiar el Id. de un
       empleado en la tabla Empleados si existen pedidos asignados a ese empleado en
       la tabla Pedidos.

En cuanto a la actualización o eliminación de registros en cascada, significa que
eliminando el registro en el que se encuentra la clave principal, eliminamos todos
aquellos registros de la tabla relacionada que contengan esa misma clave externa
relacionada y a la hora de actualiza, lo mismo.

Por último, podemos contemplar tres tipos de combinación:
        Incluir solo las filas donde los campos combinados de ambas tablas sean iguales



Javier Fernández Castelo                 Pág 3                      6 de mayo de 2012
Incluir TODOS los registros de la tabla cuya relación es “uno” y solo aquellos
registros de la tabla cuya relación es “varios” donde los campos combinados sean
iguales.
        Incluir TODOS los registros de la tabla cuya relación es “varios” y solo aquellos
registros de la tabla cuya relación es “uno” donde los campos combinados sean iguales.




Javier Fernández Castelo                 Pág 4                     6 de mayo de 2012
Explicado todo lo anterior, pasemos a realizar un ejemplo que complemente un poco
más nuestra base de datos “Discoteca”.

Centrémonos en las tablas que vamos a necesitar para este ejemplo.

Habíamos creado anteriormente la tabla Títulos y habíamos introducido ya algunos
registros.


Ahora vamos a crear algunas nuevas tablas y vamos a ver como y porqué las
relacionamos unas con otras.

La siguiente tabla a crear va a ser la tabla “Préstamos”.
La estructura de esta tabla será la siguiente:




con esta tabla, se pretende controlar, a quien, cuando, cuanto tiempo han sido prestados
los discos que figuran en la tabla Titulos.
En esta tabla aparece el número de socio como receptor de cada volumen.
Podríamos haber confeccionado la tabla de manera que en ella figurara el nombre del
prestatario pero como ya dijimos en otra ocasión, sería redundante que cada vez que se
preste un disco a una persona tengamos que apuntar sus datos completos.
En vez de todos los datos de la persona que ha recibido un préstamo, hacemos
referencia a la misma mediante un código. Podría ser su DNI, ya que es por si mismo un
código único para cada persona. En este caso, podríamos haber opta optado por crear el
código “Número de socio”., mas corto y fácil de escribir.
De hecho, en un primer momento se optó por esa solución pero, más adelñante nos
surgió la idea de que no era el socio el que estaba directamente relacionado con el
préstamo. Más adelante veremos por qué

Pero lo expuesto hasta ahora, no nos da idea de quien tiene o ha recibido cada disco.
Necesitamos una nueva tabla que nos informe de quien es la persona que recibirá los
CD’s. La tabla a la que hacemos referencia es la que se indica más abajo, que hemos
llamado “Socios”.



Javier Fernández Castelo                  Pág 5                    6 de mayo de 2012
Esta está “indirectamente” relacionada con la anterior, “Prestamos”

Un nuevo vistazo a la tabla recién construída, nos alerta de que es posible que algún
socio decida darnos dos o más domicilios diferentes donde enviar sus pedidos de forma
habitual (nuestro Club entrega a domicilio). Es por esto que modificamos la tabla
Socios, que inicialmente tenía los campos de Domicilio, C.P, Población y Provincia y al
mismo tiempo, vamos a crear otra nueva tabla que englobe estos datos para cada socio,
la tabla “Domicilios”, que quedará de esta forma:




Por último, existe una figura, que llamamos “mecenas” que de forma altruista dona una
cantidad en metálico para la adquisición de títulos o en algunos casos los propios CD’s.
Dada la estructura del negocio, en los estatutos se refleja que está prohibido revelar las
cantidades donadas, por lo que estas no van a aparecer en la base de datos. Solo
aparecerá el donante y las fechas de alta y baja. La estructura de esta nueva tabla la
vemos en la siguiente imagen




Javier Fernández Castelo                  Pág 6                       6 de mayo de 2012
Con esta última tabla, que no tenía otro sentido que explicar las relaciones uno a uno,
concluímos con la creación de tablas necesarias por el momento para nuestro propósito:
crear una aplicación que controle los títulos de una colección y los prestamos efectuados
a los socios del Club.

Es el momento de mstrar con estarán relacionadas unas con otras.

Ya hems adelantado más arriba como irán relacionándose. Ahora vamos a ver como
hacerlo.
                                                       En la barra de herramientas
                                                       de Access, mientras no
                                                       tenemos abierto ningún objeto
                                                       de base de datos, aparece el
                                                       botón “Relaciones”. Pulsando
                                                       sobre él, aparece el cuadro
“Relaciones” donde vamos a “dibujar” aquellas que necesitamos.

                                       En esta nueva imagen vemos el aspecto que
                                       presenta este cuadro, así como la nueva barra de
                                       herramientas que surge con él.
                                       Como siempre, podemos descubrir cual es el
                                       cometido de cada botón que aparece con solo
                                       situar el puntero del ratón sobre el botón elegido
                                       durante unos instantes. Esto hace que aparezca
                                       una etiqueta mostrando la función de cada uno
                                       de los objetos.




Javier Fernández Castelo                 Pág 7                     6 de mayo de 2012
Pulsando sobre el botón “Mostrar Tabla”,
aparece un nuevo cuadro que contiene las
tablas de la base de datos. De estas, podemos
elegir aquellas que deseamos tengan relación
entre sí . para seleccionarlas, solo es
necesario pulsar doble clic sobre las
deseadas o bien seleccionarlas con un clic y
pulsar sobre el botón “Agregar”.

Seleccionadas aquellas que van a intervenir
y “dibujadas “ ya en el cuadro al efecto,
podemos comenzar a establecer cono relacionarlas no sin antes cerrar el cuadro de
diálogo que permanece abierto hasta que se lo indiquemos.

Relacionar dos tablas es tan sencillo como situarse en el campo (por el que deseamos
relacionar) de la representación de una tabla, pulsando con el botón izquierdo del
ratón,sin soltar el botón, arrastrar el puntero hasta el campo de la otra tabla que
relaciona ambas.
En la figura de la derecha, pretendemos
relacionar las tablas “Prestamos1” y
“Titulos1”. Además, queremos hacerlo a
través del campo clave “Indice”.

 Pulsamos con el botón izquierdo del ratón
sobre el campo “Indice” de la tabla
“Prestamos1” y sin soltar, arrastramos hasta situal el puntero sobre el campo “Indice” de
la tabla “Titulos1”. Esta acción despliega un cuadro de dialogo como el que vemos a la
izquierda de este texto donde se nos permitirá gestionar esas relaciones.

                                En este caso, exigiremos integridad diferencial,
                                actualizar y eliminar registros en cascada y además
                                estableceremos el tipo de relación pulsando en el botón
                                “Tipo de combinación”.
                                Tras pulsar este, aparece un nuevo cuadro de dialogo, en
                                esta ocasión, nos muestra tres tipos de relaciones que se
                                pueden dar y que se muestran en la figura. Elegimos la
                                número dos, que es la que se adapta a nuestras
                                necesidades actuales y cerramos pulsando el botón
                                           “Aceptar”.
                                           Mediante esta acción, hemos relacionado las
                                           dos tablas: “Titulos” y “Prestamos” mediante
                                           el campo clave “Indice”.

                                        Haremos notar que al relacionar mediante un
                                        campo, este debe ser del mismo tipo de datos
                                        en ambas tablas. No se relacionarán dos
                                        tablas cuyos campos relacionados sean uno
                                        numérico y el otro de texto, por ejemplo.
De la misma manera que hemos relacionado estas dos tablas, procederemos a relacionar
todas las demás, formando un entramado como el que aparece en la figura siguiente.


Javier Fernández Castelo                 Pág 8                     6 de mayo de 2012
Este es el aspecto que tendrá el diagrama de relacciones.
Con estas, estamos asegurándonos, dadas las indicaciones hechas al programa, que se
exigirá que los datos relativos a campos de combinación, al menos sean correctos. No se
permiten errores al teclearlos. También aseguramos que eliminando un registro que
contiene una clave, eliminamos todos aquellos de otras tablas que esten relacionados
con esta clave. Del mismo modo, no tendremos que teclear el dato de un campo clave en
ambas tablas. Con hacerlo en la principal, el dato se inserta en la secundaris.

Para ver lo que ya hemos conseguido, sigamos con nuestro ejemplo.
Ahora, vamos a crear el formulario que nos permita dar de alta a los socios.

Pasamos, si no lo estamos ya en la pantalla para administrar el objeto Formulario.
Vamos a crear un nuevo formulario con el asistente, así nos vamos familiarizando con
él.
                                            el primer paso del asistente nos va a
                                            solicitar que ingresemos las tablas (o
                                            consultas) que van a formar parte del
                                            formulario.      Para     seleccionarlas,
                                            desplegamos el cuadro desplegable y
                                            vamos seleccionando aquellas que
                                            necesitemos de una en una. Seleccionada
                                            la primera, seleccioinamos ahora los




campos. Para ello, pulsamos el selector señalado
en la imagen porque queremos incluir todos los
campos de la tabla “Socios”.
Nuevamente pasamos a buscar otra tabla,
eligiendo ahora la tabla “Domicilios”. De nuevo
seleccionamos todos los campos y todos ellos
deberán estar en el cuadro “Campos
Seleccionados” del asistente como se muestra en la figura adjunta. Pulsamos el botón
“siguiente” para continuar hacia el siguiente paso.


Javier Fernández Castelo                 Pág 9                     6 de mayo de 2012
En este nuevo cuadro del asistente se nos muestra que para ese formulario, formado por
dos tablas relacionadas existen dos maneras de presentar los datos: o bien por Socios, o
bien por Domicilios.
Como vemos, al presentar los datos por socios, como sabemos que a cada socio le puede
corresponder varios domicilios, el propio programa se prepara para crear un




subformulario o un formulario vinculado (dependiendo de nuestra elección en este
mismo cuadro de diálogo) donde introducir, para cada socio, los domicilios que se
precisen.
Aquí vamos a hacer notar que no hemos tenido que reservar campos para almacenar
cada domicilio que se añada. Con esta estructura, se van añadiendo en la tabla
domicilios sin tener que modificar estructuras anteriores.
Si elegimos presentar los datos por
Domicilios, en vez de por socios, el
programa se prepara para crear un
formulario único, sin subformularios. Esto
es así porque si presentamos los datos por
domicilios, a cada uno de estos le
corresponderá un socio y solo uno, aunque
el mismo socio figure en varios registros.

Teniendo en cuenta las distintas altrnativas,
nosotros elegimos para este ejemplo la
primera de ellas, es decir, ver los datos por Socio y formulario con subformularios.

Pulsamos el botón “Siguiente” para elegir la distribución. Dejamos en esta ocasión la
distribución que nos sugiere Access por defecto y volvemos a pulsar en el botón
                                                         “siguiente”. Ahora se nos
                                                         muestra las opciones de
                                                         estilo. También dejamos el
                                                         estilo por defecto y pulsamos
                                                         “Siguiente”.
                                                         Por último, el paso final del
                                                         asistente nos pregunta por los
                                                         nombres el formulario y
                                                         subformulario         creados,
                                                         dándonos uno para cada
                                                         objeto por defecto. Optamos
                                                         por aceptar los nombres
sugeridos y pulsamos sobre el botón “Finalizar”.




Javier Fernández Castelo                 Pág 10                    6 de mayo de 2012
Aparece por fin el formulario creado. Como vemos, automáticamente se ha creado en su
seno un subformulario. Solo resta dar formato a los espacios que se han ido abriendo en
el formulario para adecuarlos al tamaño de la información que contienen.
Para esto, procedemos dimensionando cada objeto y cuando estemos satisfechos,
pulsamos sobre el botón guardar de la barra de herramientas estandar.
Algunos contenedores no pueden ser redimensionados en modo vista. Entonces,
pasamos a modo diseño y modificamos sus propiedades.

En primer lugar, observamos que el contenedor subformulario no es lo suficientemente
grande como para albergar todos los campos de forma visible.
Este contenedor no se puede modificar masqueen modo diseño. Pasamos a modo diseño
y tiramos del “tirador” central derecho hasta que creamos que es suficiente. Volvemos a
modo vista para ver el resultado y repetimos la operación las veces que sea necesario.
Vemos que también es necesario modificar el tamaño del formulario. Lo hacemos y
pulsamos “Guardar”.
Ahora lo que no está muy bien es el tamaño de las celdas.. por ejemplo, el campo DNI
es un poco pequeño y se ve que no cabe la letra final del DNI. En modo vista lo
podemos redimensionar estirando el campo correspondiente hacia la derecha tanto como
sea necesario. Esta operación se realiza con el ratón sobre la cabecera o titulo de DNI,
se aproxima al margen derecho del campo hasta que el puntero se transforme en una
cruz con flechas en los brazos. En ese momento, sin soltar el botón, se arrastra el ratón
hasta donde sea necesario. Alcanzado el tamaño deseado, se pulsa sobre el botón
“Guardar” y se procede de igual forma con el resto de los campos.
El aspecto final ha de parecerse al de la imagen




Javier Fernández Castelo                 Pág 11                    6 de mayo de 2012

Más contenido relacionado

La actualidad más candente

La actualidad más candente (18)

Relación de uno a varios en access
Relación de uno a varios en accessRelación de uno a varios en access
Relación de uno a varios en access
 
Tema relaciones
Tema relacionesTema relaciones
Tema relaciones
 
Relaciones
RelacionesRelaciones
Relaciones
 
Relaciones
RelacionesRelaciones
Relaciones
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bryan Ipiales
Bryan IpialesBryan Ipiales
Bryan Ipiales
 
Relaciones en Access
Relaciones en AccessRelaciones en Access
Relaciones en Access
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Access Y SUS COMPLEMENTOS
Access Y SUS COMPLEMENTOSAccess Y SUS COMPLEMENTOS
Access Y SUS COMPLEMENTOS
 
Guía de relaciones de tablas
Guía de relaciones de tablasGuía de relaciones de tablas
Guía de relaciones de tablas
 
Relaciones en Access
Relaciones en Access Relaciones en Access
Relaciones en Access
 
Relaciones de Acces 2007
Relaciones de Acces 2007Relaciones de Acces 2007
Relaciones de Acces 2007
 
INTEGRIDAD DE DATOS
INTEGRIDAD DE DATOSINTEGRIDAD DE DATOS
INTEGRIDAD DE DATOS
 
Principios de access carlos barrios angelica moreno luisa ramirez
Principios de access carlos barrios angelica moreno luisa ramirezPrincipios de access carlos barrios angelica moreno luisa ramirez
Principios de access carlos barrios angelica moreno luisa ramirez
 
Tabla relaciones1
Tabla relaciones1Tabla relaciones1
Tabla relaciones1
 
Tarabajo de excel
Tarabajo de excelTarabajo de excel
Tarabajo de excel
 
Tarabajo de las tres unidades de excel2
Tarabajo de las tres unidades de excel2Tarabajo de las tres unidades de excel2
Tarabajo de las tres unidades de excel2
 
Alvarez_carrera_lema-consulta_access
Alvarez_carrera_lema-consulta_accessAlvarez_carrera_lema-consulta_access
Alvarez_carrera_lema-consulta_access
 

Destacado

Transformació model entitat-relació al model relacional
Transformació model entitat-relació al model relacionalTransformació model entitat-relació al model relacional
Transformació model entitat-relació al model relacionalMiquel Boada Artigas
 
Relación de uno a varios en access
Relación de uno a varios en accessRelación de uno a varios en access
Relación de uno a varios en accessAlexander Poma
 
TIPOS DE DATOS QUE MANEJA ACCESS
TIPOS DE DATOS QUE MANEJA ACCESSTIPOS DE DATOS QUE MANEJA ACCESS
TIPOS DE DATOS QUE MANEJA ACCESSCataleya Katt
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacionAngeliik Cortes
 
Pasos para crear una base de datos
Pasos para crear una base de datosPasos para crear una base de datos
Pasos para crear una base de datosyuridia-love
 
Tipos de relacion en access
Tipos de relacion en accessTipos de relacion en access
Tipos de relacion en accessmayrasetquetco
 
Sistemas gestores de base de datos (sgbd)
Sistemas gestores de base de datos (sgbd)Sistemas gestores de base de datos (sgbd)
Sistemas gestores de base de datos (sgbd)Henry Cumbicus Rivera
 

Destacado (8)

Transformació model entitat-relació al model relacional
Transformació model entitat-relació al model relacionalTransformació model entitat-relació al model relacional
Transformació model entitat-relació al model relacional
 
Relación de uno a varios en access
Relación de uno a varios en accessRelación de uno a varios en access
Relación de uno a varios en access
 
TIPOS DE DATOS QUE MANEJA ACCESS
TIPOS DE DATOS QUE MANEJA ACCESSTIPOS DE DATOS QUE MANEJA ACCESS
TIPOS DE DATOS QUE MANEJA ACCESS
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacion
 
Pasos para crear una base de datos
Pasos para crear una base de datosPasos para crear una base de datos
Pasos para crear una base de datos
 
Tipos de relacion en access
Tipos de relacion en accessTipos de relacion en access
Tipos de relacion en access
 
Sistemas gestores de base de datos (sgbd)
Sistemas gestores de base de datos (sgbd)Sistemas gestores de base de datos (sgbd)
Sistemas gestores de base de datos (sgbd)
 
Html Ppt
Html PptHtml Ppt
Html Ppt
 

Similar a Relaciones tablas Access gestión préstamos

Similar a Relaciones tablas Access gestión préstamos (20)

plantilla
plantillaplantilla
plantilla
 
trabajo de clase
trabajo de clasetrabajo de clase
trabajo de clase
 
Plantilla con-normas-icontec (2)
Plantilla con-normas-icontec (2)Plantilla con-normas-icontec (2)
Plantilla con-normas-icontec (2)
 
Plantilla con-normas-icontec
Plantilla con-normas-icontec   Plantilla con-normas-icontec
Plantilla con-normas-icontec
 
Plantilla con-normas-icontec (2)
Plantilla con-normas-icontec (2)Plantilla con-normas-icontec (2)
Plantilla con-normas-icontec (2)
 
Felipe corterd
Felipe corterdFelipe corterd
Felipe corterd
 
Nicolas olivar 6.0
Nicolas olivar 6.0Nicolas olivar 6.0
Nicolas olivar 6.0
 
trabajo
trabajotrabajo
trabajo
 
Nicolas olivar 5.0
Nicolas olivar 5.0Nicolas olivar 5.0
Nicolas olivar 5.0
 
Nicolas olivar 6.1
Nicolas olivar 6.1Nicolas olivar 6.1
Nicolas olivar 6.1
 
Nicolas olivar 6.1
Nicolas olivar 6.1Nicolas olivar 6.1
Nicolas olivar 6.1
 
Plantillaoriginal 150709154917-lva1-app6892-150901002344-lva1-app6892lk
Plantillaoriginal 150709154917-lva1-app6892-150901002344-lva1-app6892lkPlantillaoriginal 150709154917-lva1-app6892-150901002344-lva1-app6892lk
Plantillaoriginal 150709154917-lva1-app6892-150901002344-lva1-app6892lk
 
trabajo access
trabajo access trabajo access
trabajo access
 
Relaciones de Microsoft Access 2007
Relaciones de Microsoft Access 2007Relaciones de Microsoft Access 2007
Relaciones de Microsoft Access 2007
 
RELACIONES DE ACESS
RELACIONES DE ACESSRELACIONES DE ACESS
RELACIONES DE ACESS
 
Andres galvis
Andres galvisAndres galvis
Andres galvis
 
presentacion de base de datos 2 parte
presentacion de base de datos 2 partepresentacion de base de datos 2 parte
presentacion de base de datos 2 parte
 
RELACIONES ACCES 2007
RELACIONES ACCES  2007RELACIONES ACCES  2007
RELACIONES ACCES 2007
 
Guia 3
Guia 3Guia 3
Guia 3
 
PPT_Relaciones_entre_Tablas.ppt
PPT_Relaciones_entre_Tablas.pptPPT_Relaciones_entre_Tablas.ppt
PPT_Relaciones_entre_Tablas.ppt
 

Más de Javier Fernandez Castelo (12)

Funciones de las hojas de cálculo
Funciones de las hojas de cálculoFunciones de las hojas de cálculo
Funciones de las hojas de cálculo
 
Esquemas e indices en word
Esquemas e indices en wordEsquemas e indices en word
Esquemas e indices en word
 
Analisis con excel
Analisis con excelAnalisis con excel
Analisis con excel
 
Vincular e incrustaren word
Vincular e incrustaren wordVincular e incrustaren word
Vincular e incrustaren word
 
Graficos excel
Graficos excelGraficos excel
Graficos excel
 
Formularios e informes en access (continuación)
Formularios e informes en access (continuación)Formularios e informes en access (continuación)
Formularios e informes en access (continuación)
 
Columnas y tablas en word
Columnas y tablas en wordColumnas y tablas en word
Columnas y tablas en word
 
Formularios e informes en acces
Formularios e informes en accesFormularios e informes en acces
Formularios e informes en acces
 
Formulas financieras con excel
Formulas financieras con excelFormulas financieras con excel
Formulas financieras con excel
 
Combinar correspondencia con ms word
Combinar correspondencia con ms wordCombinar correspondencia con ms word
Combinar correspondencia con ms word
 
Operaciones con celdas en hojas de calculo
Operaciones con celdas en hojas de calculoOperaciones con celdas en hojas de calculo
Operaciones con celdas en hojas de calculo
 
El formato condicional en excel
El formato condicional en excelEl formato condicional en excel
El formato condicional en excel
 

Relaciones tablas Access gestión préstamos

  • 1. Relacciones entre tablas de Access Cuando relacionamos dos o más tablas en Access, lo que estamos haciendo es combinar la información de todas las tablas relacionadas de forma que a partir de la información obtenida en una tabla, podamos acceder a la información de otra, que de algún modo tiene algo en común con la primera. Vamos a seguir desarrollando la aplicación de base de datos que ya iniciamos anteriormente. La base de datos discoteca. La finalidad de esta base de datos es, en última instancia, disponer de una relación o lista de los título disponibles, pudiendo aumentar o disminuir el tamaño añadiendo nuevos títulos o borrándolos de la lista. O simplemente modificando parte de alguno de los registros que ya existe, También queremos que nuestra base de datos mantenga un control de los préstamos que se hace a los socios. Para ello, inicialmente, podríamos pensar en crear un registro para cada uno de los préstamos y no complicarnos más la vida. Un registro de estas características podria ser: Nº Socio NIF Nombre Apellidos Dirección Población C. Postal Provincia Prestamo1 Prestamo2 Prestamo3 Prestamo4 Fecha Devuelto Préstamo (S/N) Fecha devolución Bueno, pues podría ser. Pero este sistema, que ciertamente es bastante simple, tiene algunos inconvenientes. Si el socio en cuestión quiere que se le presten cuatro títulos en vez de máximo tres, que es lo que soporta el registro tal y como se ha definido, pues hay un problema: habría que rehacer la tabla y añadir un campo más que albergara ese dato. Podemos pensar: vale, lo que hacemos es restringir inicialmente el número de títulos a prestar a cada socio. Pensemos en tres como máximo y así la tabla anterior nos sirve perfectamente. Pues vale también. Pero si por costumbre los socios suelen llevar prestados uno o dos titulos como máximo, pensemos en la cantidad de campos vacíos que vamos a tener que gestionar más adelante. Y el espacio que ocupan. Pensemos también en el gran tamaño que vamos a necesitar para introducir toda la información requerida. Si un socio es muy habitual y visita nuestro negocio cada dos días en busca de nuevos títulos, por cada préstamo que realicemos a esta persona tendremos que repetir el nº de socio, nif, nombre, apellidos, dirección completa... cuando lo único que varía con el registro precedente del mismo socio es el título de los CD’s que solicita y la fecha de préstamo. Además la repetición de tanta información nos va a garantizar casi seguro, que vamos a cometer algún error al cumplimentar tanto dato. Javier Fernández Castelo Pág 1 6 de mayo de 2012
  • 2. De todo esto, se desprende que debemos estructurar la información de forma que podamos evitar todos los inconvenientes arriba expuestos. La estructura de la que se habla es las relaciones entre tablas. Podemos establecer tres tipos de relaciones entre tablas y/o consultas: Relación Uno Uno: es poco probable que utilicemos este tipo de relaciones pero si lo hacemos, será para dividir en varias una tabla con muchos campos, o bien porque queremos aislar parte de la información de una tabla creando otra, relacionada de esta manera por motivos de seguridad o para almacenar datos de una parte de los registros de la tabla. Piensesé en el subconjunto de empleados de una empresa que además trabajan en otra: son pluriempleados y necesitamos almacenar esa información. La relación uno a uno, otorga a cada registro de una tabla un único registro en la otra relacionada y viceversa. Es decir, las dos tablas tendrán registros únicos en su seno pero las dos tienen algún dato común. Los campos relacionados deben ser campos únicos. En el trabajo que nos ocupa: la base de datos Discoteca, tenemos una relación de socios. Cada registro corresponde a un único socio, luego cada uno de estos registros es único. Por otra parte, de estos socios, hay algunos que realizan donaciones de material, pero no todos ellos. La tabla mecenazgo relaciona mediante un campo idéntico al de la tabla clientes, aquellos que realizan donaciones. También en esta tabla los mecenas que aparecen en la relación son únicos, solo aparecen una vez. Fijémonos que no hemos necesitado repetir el nombre y apellidos de los mecenas, estos ya están en la tabla Socios. Relación Varios a Varios: Este tipo de relación, se va a caracterizar porque cada registro de una tabla A puede estar relacionado con varios registros de la tabla B y cada registro de la tabla B con varios de la tabla A. Para conseguir este tipo de relación, en Access es necesario disponer de una tabla “Puente”: Pensemos en la siguiente relación: en una fábrica, un pedido puede estar relacionado con varias piezas (referencias) de producción y, al a vez, una pieza (una referencia), puede estar relacionada con varios pedidos. Esto que es tan habitual en Access se realiza con una tabla puente que Javier Fernández Castelo Pág 2 6 de mayo de 2012
  • 3. podemos denominar Detalle de pedido. En nuestro ejemplo, un mismo CD-Rom ha podido ser prestado durante cierto tiempo en varios domicilios y al mismo tiempo, un solo domicilio ha podido solicitar varios CD-ROM. La relación en este caso contempla una tabla puente llamada Prestamos, que hace de nexo. Relación Uno a Varios.: es la relación más habitual. En esta, un registro perteneciente a una tabla A está relacionado con varios registros de otra tabla, tabla B. En la imagen anterior, la tabla Titulos está relacionado con la tabla Prestamos de forma que un Titulo puede ser solicitado en varios préstamos. El campo que se va a relacionar con varios, ha de ser un campo llave o único. Si tratamos de relacionar dos tablas mediante campos en que ninguno de los dos es clave principal o llave , la relación creada es Indeterminada. Dentro de las relaciones entre tablas de una base de datos, es necesario conocer que se entiende por “Exigir integridad referencial.” Exigir integridad referencial es un mecanismo que evita que se borren registros de forma accidental. Debe cumplir varias condiciones: La tabla principal, contendrá el campo clave y será la parte “uno” de una relación “uno a varios”. Esto significa que ese campo clave ha de ser único, sin duplicados. Los campos relacionados de dos tablas han de tener el mismo tipo de datos. Las tablas han de pertenecer a la misma base de datos. Si son tablas vinculadas no se puede modificar su estructura desde esta. • No puede introducir un valor en el campo de clave externa de la tabla relacionada que no exista en la clave principal de la tabla principal. No obstante, puede introducir un valor Nulo en la clave externa, especificando que los registros no están relacionados. Por ejemplo, no puede tener un pedido asignado a un cliente que no existe, pero puede tener un pedido asignado a nadie mediante la introducción de un valor Nulo en el campo Id. de cliente. • No puede eliminar un registro de una tabla principal si existen registros coincidentes en una tabla relacionada. Por ejemplo, no puede eliminar un registro de empleados de la tabla Empleados si existen pedidos asignados al empleado en la tabla Pedidos. • No puede cambiar un valor de clave principal en la tabla principal si ese registro tiene registros relacionados. Por ejemplo, no puede cambiar el Id. de un empleado en la tabla Empleados si existen pedidos asignados a ese empleado en la tabla Pedidos. En cuanto a la actualización o eliminación de registros en cascada, significa que eliminando el registro en el que se encuentra la clave principal, eliminamos todos aquellos registros de la tabla relacionada que contengan esa misma clave externa relacionada y a la hora de actualiza, lo mismo. Por último, podemos contemplar tres tipos de combinación: Incluir solo las filas donde los campos combinados de ambas tablas sean iguales Javier Fernández Castelo Pág 3 6 de mayo de 2012
  • 4. Incluir TODOS los registros de la tabla cuya relación es “uno” y solo aquellos registros de la tabla cuya relación es “varios” donde los campos combinados sean iguales. Incluir TODOS los registros de la tabla cuya relación es “varios” y solo aquellos registros de la tabla cuya relación es “uno” donde los campos combinados sean iguales. Javier Fernández Castelo Pág 4 6 de mayo de 2012
  • 5. Explicado todo lo anterior, pasemos a realizar un ejemplo que complemente un poco más nuestra base de datos “Discoteca”. Centrémonos en las tablas que vamos a necesitar para este ejemplo. Habíamos creado anteriormente la tabla Títulos y habíamos introducido ya algunos registros. Ahora vamos a crear algunas nuevas tablas y vamos a ver como y porqué las relacionamos unas con otras. La siguiente tabla a crear va a ser la tabla “Préstamos”. La estructura de esta tabla será la siguiente: con esta tabla, se pretende controlar, a quien, cuando, cuanto tiempo han sido prestados los discos que figuran en la tabla Titulos. En esta tabla aparece el número de socio como receptor de cada volumen. Podríamos haber confeccionado la tabla de manera que en ella figurara el nombre del prestatario pero como ya dijimos en otra ocasión, sería redundante que cada vez que se preste un disco a una persona tengamos que apuntar sus datos completos. En vez de todos los datos de la persona que ha recibido un préstamo, hacemos referencia a la misma mediante un código. Podría ser su DNI, ya que es por si mismo un código único para cada persona. En este caso, podríamos haber opta optado por crear el código “Número de socio”., mas corto y fácil de escribir. De hecho, en un primer momento se optó por esa solución pero, más adelñante nos surgió la idea de que no era el socio el que estaba directamente relacionado con el préstamo. Más adelante veremos por qué Pero lo expuesto hasta ahora, no nos da idea de quien tiene o ha recibido cada disco. Necesitamos una nueva tabla que nos informe de quien es la persona que recibirá los CD’s. La tabla a la que hacemos referencia es la que se indica más abajo, que hemos llamado “Socios”. Javier Fernández Castelo Pág 5 6 de mayo de 2012
  • 6. Esta está “indirectamente” relacionada con la anterior, “Prestamos” Un nuevo vistazo a la tabla recién construída, nos alerta de que es posible que algún socio decida darnos dos o más domicilios diferentes donde enviar sus pedidos de forma habitual (nuestro Club entrega a domicilio). Es por esto que modificamos la tabla Socios, que inicialmente tenía los campos de Domicilio, C.P, Población y Provincia y al mismo tiempo, vamos a crear otra nueva tabla que englobe estos datos para cada socio, la tabla “Domicilios”, que quedará de esta forma: Por último, existe una figura, que llamamos “mecenas” que de forma altruista dona una cantidad en metálico para la adquisición de títulos o en algunos casos los propios CD’s. Dada la estructura del negocio, en los estatutos se refleja que está prohibido revelar las cantidades donadas, por lo que estas no van a aparecer en la base de datos. Solo aparecerá el donante y las fechas de alta y baja. La estructura de esta nueva tabla la vemos en la siguiente imagen Javier Fernández Castelo Pág 6 6 de mayo de 2012
  • 7. Con esta última tabla, que no tenía otro sentido que explicar las relaciones uno a uno, concluímos con la creación de tablas necesarias por el momento para nuestro propósito: crear una aplicación que controle los títulos de una colección y los prestamos efectuados a los socios del Club. Es el momento de mstrar con estarán relacionadas unas con otras. Ya hems adelantado más arriba como irán relacionándose. Ahora vamos a ver como hacerlo. En la barra de herramientas de Access, mientras no tenemos abierto ningún objeto de base de datos, aparece el botón “Relaciones”. Pulsando sobre él, aparece el cuadro “Relaciones” donde vamos a “dibujar” aquellas que necesitamos. En esta nueva imagen vemos el aspecto que presenta este cuadro, así como la nueva barra de herramientas que surge con él. Como siempre, podemos descubrir cual es el cometido de cada botón que aparece con solo situar el puntero del ratón sobre el botón elegido durante unos instantes. Esto hace que aparezca una etiqueta mostrando la función de cada uno de los objetos. Javier Fernández Castelo Pág 7 6 de mayo de 2012
  • 8. Pulsando sobre el botón “Mostrar Tabla”, aparece un nuevo cuadro que contiene las tablas de la base de datos. De estas, podemos elegir aquellas que deseamos tengan relación entre sí . para seleccionarlas, solo es necesario pulsar doble clic sobre las deseadas o bien seleccionarlas con un clic y pulsar sobre el botón “Agregar”. Seleccionadas aquellas que van a intervenir y “dibujadas “ ya en el cuadro al efecto, podemos comenzar a establecer cono relacionarlas no sin antes cerrar el cuadro de diálogo que permanece abierto hasta que se lo indiquemos. Relacionar dos tablas es tan sencillo como situarse en el campo (por el que deseamos relacionar) de la representación de una tabla, pulsando con el botón izquierdo del ratón,sin soltar el botón, arrastrar el puntero hasta el campo de la otra tabla que relaciona ambas. En la figura de la derecha, pretendemos relacionar las tablas “Prestamos1” y “Titulos1”. Además, queremos hacerlo a través del campo clave “Indice”. Pulsamos con el botón izquierdo del ratón sobre el campo “Indice” de la tabla “Prestamos1” y sin soltar, arrastramos hasta situal el puntero sobre el campo “Indice” de la tabla “Titulos1”. Esta acción despliega un cuadro de dialogo como el que vemos a la izquierda de este texto donde se nos permitirá gestionar esas relaciones. En este caso, exigiremos integridad diferencial, actualizar y eliminar registros en cascada y además estableceremos el tipo de relación pulsando en el botón “Tipo de combinación”. Tras pulsar este, aparece un nuevo cuadro de dialogo, en esta ocasión, nos muestra tres tipos de relaciones que se pueden dar y que se muestran en la figura. Elegimos la número dos, que es la que se adapta a nuestras necesidades actuales y cerramos pulsando el botón “Aceptar”. Mediante esta acción, hemos relacionado las dos tablas: “Titulos” y “Prestamos” mediante el campo clave “Indice”. Haremos notar que al relacionar mediante un campo, este debe ser del mismo tipo de datos en ambas tablas. No se relacionarán dos tablas cuyos campos relacionados sean uno numérico y el otro de texto, por ejemplo. De la misma manera que hemos relacionado estas dos tablas, procederemos a relacionar todas las demás, formando un entramado como el que aparece en la figura siguiente. Javier Fernández Castelo Pág 8 6 de mayo de 2012
  • 9. Este es el aspecto que tendrá el diagrama de relacciones. Con estas, estamos asegurándonos, dadas las indicaciones hechas al programa, que se exigirá que los datos relativos a campos de combinación, al menos sean correctos. No se permiten errores al teclearlos. También aseguramos que eliminando un registro que contiene una clave, eliminamos todos aquellos de otras tablas que esten relacionados con esta clave. Del mismo modo, no tendremos que teclear el dato de un campo clave en ambas tablas. Con hacerlo en la principal, el dato se inserta en la secundaris. Para ver lo que ya hemos conseguido, sigamos con nuestro ejemplo. Ahora, vamos a crear el formulario que nos permita dar de alta a los socios. Pasamos, si no lo estamos ya en la pantalla para administrar el objeto Formulario. Vamos a crear un nuevo formulario con el asistente, así nos vamos familiarizando con él. el primer paso del asistente nos va a solicitar que ingresemos las tablas (o consultas) que van a formar parte del formulario. Para seleccionarlas, desplegamos el cuadro desplegable y vamos seleccionando aquellas que necesitemos de una en una. Seleccionada la primera, seleccioinamos ahora los campos. Para ello, pulsamos el selector señalado en la imagen porque queremos incluir todos los campos de la tabla “Socios”. Nuevamente pasamos a buscar otra tabla, eligiendo ahora la tabla “Domicilios”. De nuevo seleccionamos todos los campos y todos ellos deberán estar en el cuadro “Campos Seleccionados” del asistente como se muestra en la figura adjunta. Pulsamos el botón “siguiente” para continuar hacia el siguiente paso. Javier Fernández Castelo Pág 9 6 de mayo de 2012
  • 10. En este nuevo cuadro del asistente se nos muestra que para ese formulario, formado por dos tablas relacionadas existen dos maneras de presentar los datos: o bien por Socios, o bien por Domicilios. Como vemos, al presentar los datos por socios, como sabemos que a cada socio le puede corresponder varios domicilios, el propio programa se prepara para crear un subformulario o un formulario vinculado (dependiendo de nuestra elección en este mismo cuadro de diálogo) donde introducir, para cada socio, los domicilios que se precisen. Aquí vamos a hacer notar que no hemos tenido que reservar campos para almacenar cada domicilio que se añada. Con esta estructura, se van añadiendo en la tabla domicilios sin tener que modificar estructuras anteriores. Si elegimos presentar los datos por Domicilios, en vez de por socios, el programa se prepara para crear un formulario único, sin subformularios. Esto es así porque si presentamos los datos por domicilios, a cada uno de estos le corresponderá un socio y solo uno, aunque el mismo socio figure en varios registros. Teniendo en cuenta las distintas altrnativas, nosotros elegimos para este ejemplo la primera de ellas, es decir, ver los datos por Socio y formulario con subformularios. Pulsamos el botón “Siguiente” para elegir la distribución. Dejamos en esta ocasión la distribución que nos sugiere Access por defecto y volvemos a pulsar en el botón “siguiente”. Ahora se nos muestra las opciones de estilo. También dejamos el estilo por defecto y pulsamos “Siguiente”. Por último, el paso final del asistente nos pregunta por los nombres el formulario y subformulario creados, dándonos uno para cada objeto por defecto. Optamos por aceptar los nombres sugeridos y pulsamos sobre el botón “Finalizar”. Javier Fernández Castelo Pág 10 6 de mayo de 2012
  • 11. Aparece por fin el formulario creado. Como vemos, automáticamente se ha creado en su seno un subformulario. Solo resta dar formato a los espacios que se han ido abriendo en el formulario para adecuarlos al tamaño de la información que contienen. Para esto, procedemos dimensionando cada objeto y cuando estemos satisfechos, pulsamos sobre el botón guardar de la barra de herramientas estandar. Algunos contenedores no pueden ser redimensionados en modo vista. Entonces, pasamos a modo diseño y modificamos sus propiedades. En primer lugar, observamos que el contenedor subformulario no es lo suficientemente grande como para albergar todos los campos de forma visible. Este contenedor no se puede modificar masqueen modo diseño. Pasamos a modo diseño y tiramos del “tirador” central derecho hasta que creamos que es suficiente. Volvemos a modo vista para ver el resultado y repetimos la operación las veces que sea necesario. Vemos que también es necesario modificar el tamaño del formulario. Lo hacemos y pulsamos “Guardar”. Ahora lo que no está muy bien es el tamaño de las celdas.. por ejemplo, el campo DNI es un poco pequeño y se ve que no cabe la letra final del DNI. En modo vista lo podemos redimensionar estirando el campo correspondiente hacia la derecha tanto como sea necesario. Esta operación se realiza con el ratón sobre la cabecera o titulo de DNI, se aproxima al margen derecho del campo hasta que el puntero se transforme en una cruz con flechas en los brazos. En ese momento, sin soltar el botón, se arrastra el ratón hasta donde sea necesario. Alcanzado el tamaño deseado, se pulsa sobre el botón “Guardar” y se procede de igual forma con el resto de los campos. El aspecto final ha de parecerse al de la imagen Javier Fernández Castelo Pág 11 6 de mayo de 2012