Curso Access Básico 2010 Propiedades de las relaciones entre tablas Vídeo 8

pildorasinformaticas
11 Sept 201224:23

Summary

TLDREste tutorial de Access 2010 básico se enfoca en las propiedades de las relaciones entre tablas en una base de datos de gestión de pedidos. Se explica cómo establecer una relación de uno a varios entre las tablas de clientes y pedidos, y se ejemplifica con la inserción de registros y la visualización de las restricciones que impone la integridad referencial. Además, se exploran las opciones de 'actualizar en cascada' y 'eliminar en cascada', demostrando cómo afectan a los registros relacionados en diferentes tablas. El video proporciona una guía práctica para entender y gestionar las relaciones de datos en Access, preparando al espectador para trabajar con consultas en futuras lecciones.

Takeaways

  • 😀 El curso de Access 2010 básico continúa explorando las relaciones entre tablas y sus propiedades.
  • 🔗 Se analiza la base de datos 'gestión de pedidos', que simula la gestión de un almacén con clientes, productos, pedidos y productos pedidos.
  • 📚 Se describe la estructura de las tablas: clientes, productos, pedidos y productos pedidos, y cómo se relacionan entre sí.
  • 👥 La relación de 'uno a varios' entre las tablas clientes y pedidos se explica, donde cada cliente puede tener múltiples pedidos.
  • 🔍 Se accede a las propiedades de la relación entre las tablas a través de la ventana de relaciones y se modifica la relación.
  • 🔒 La 'integridad referencial' se explica como una propiedad que asegura que cada pedido tenga un cliente existente en la tabla de clientes.
  • 🔄 Se presenta la opción 'actualizar en cascada', que permite que los cambios en la tabla principal se reflejen automáticamente en las tablas secundarias.
  • 🗑️ La 'eliminación en cascada' se describe como una propiedad que elimina automáticamente los registros relacionados en las tablas secundarias al eliminar un registro en la tabla principal.
  • ⚠️ Se enfatiza la importancia de entender las propiedades de las relaciones para evitar errores y mantener la coherencia de la información en la base de datos.
  • 🚀 Se invita a los estudiantes a seguir el próximo tutorial para aprender sobre consultas en Access, un tema crucial para extraer información de la base de datos.

Q & A

  • ¿Qué se discute en el curso de Access 2010 básico mencionado en el guion?

    -El curso de Access 2010 básico discute principalmente las relaciones entre las tablas en una base de datos, cómo se relacionan dos tablas desde la ventana de relaciones y las propiedades de estas relaciones.

  • ¿Qué es la base de datos 'gestión de pedidos' que se utiliza como ejemplo en el guion?

    -La base de datos 'gestión de pedidos' es un ejemplo que simula ser la base de datos de un almacén, donde se registran clientes, productos y pedidos, y se relaciona la información de estos para su gestión.

  • ¿Cuáles son las tablas principales en la base de datos 'gestión de pedidos'?

    -Las tablas principales en la base de datos 'gestión de pedidos' son: clientes, productos, pedidos y productos pedidos.

  • ¿Qué tipo de relación existe entre las tablas 'clientes' y 'pedidos' según el guion?

    -Entre las tablas 'clientes' y 'pedidos' existe una relación de uno a varios, lo que significa que cada cliente puede realizar varios pedidos.

  • ¿Qué es la 'integridad referencial' y por qué es importante en las bases de datos?

    -La 'integridad referencial' es una propiedad de las relaciones entre las tablas que asegura que no existan registros en la tabla secundaria (por ejemplo, pedidos) que no tengan un registro correspondiente en la tabla principal (por ejemplo, clientes). Es importante para mantener la consistencia y la precisión de los datos.

  • ¿Qué ocurre si se desactiva la 'integridad referencial'?

    -Si se desactiva la 'integridad referencial', no se pueden utilizar las propiedades 'actualizar en cascada' y 'eliminar en cascada', y se pueden introducir registros en la tabla secundaria que no estén vinculados a ningún registro en la tabla principal.

  • ¿Qué es 'actualizar en cascada' y cómo afecta la modificación de registros en una tabla?

    -'Actualizar en cascada' es una propiedad que permite que los cambios realizados en un registro de la tabla principal se actualicen automáticamente en todos los registros relacionados en la tabla secundaria. Esto ayuda a mantener la coherencia de los datos entre las tablas relacionadas.

  • ¿Qué significa 'eliminar en cascada' y cómo afecta la eliminación de registros en una tabla?

    -'Eliminar en cascada' es una propiedad que permite que, al eliminar un registro de la tabla principal, se eliminen automáticamente todos los registros relacionados en la tabla secundaria. Esto asegura que no queden registros huérfanos en la tabla secundaria.

  • ¿Cómo se puede tener un historial de pedidos si no se desea trabajar con un cliente actualmente?

    -Para mantener un historial de pedidos de un cliente que actualmente no se está trabajando, no se debe activar la 'integridad referencial'. De esta forma, es posible eliminar al cliente de la tabla de clientes sin que se eliminen los pedidos anteriores que ha realizado.

  • ¿Cuáles son las consecuencias de tener activada la opción 'eliminar en cascada' en una relación de una a varios?

    -Si se tiene activada la opción 'eliminar en cascada' en una relación de uno a varios, al eliminar un registro de la tabla principal (por ejemplo, un cliente), también se eliminarán todos los registros relacionados en la tabla secundaria (por ejemplo, los pedidos), lo que puede resultar en la pérdida de información importante si se desea mantener un historial de transacciones.

Outlines

00:00

😀 Introducción al curso de Access 2010 básico y revisión de relaciones de tablas

El primer párrafo presenta una introducción al curso de Access 2010 básico, enfocándose en las relaciones entre tablas como se vio en el último video. Se menciona la base de datos 'gestión de pedidos', que simula una base de datos de un almacén con clientes, productos, pedidos y una tabla de productos pedidos que une información importante de ambas tablas. Se describe brevemente la estructura de la base de datos y se señala la importancia de entender estas relaciones para el tema del día: las propiedades de las relaciones entre las tablas.

05:03

🔗 Explorando las propiedades de las relaciones entre las tablas 'Clientes' y 'Pedidos'

En el segundo párrafo, se aborda en detalle cómo acceder y manipular las propiedades de las relaciones entre las tablas 'Clientes' y 'Pedidos'. Se describe el proceso de hacer doble clic sobre la línea que une ambas tablas o seleccionar 'Modificar relación' desde el menú contextual para acceder a las propiedades. Se mencionan tres propiedades clave: 'Exigir integridad referencial', 'Actualizar en cascada' y 'Eliminar en cascada', destacando que las últimas dos propiedades solo están disponibles si la primera está activada. Se ilustra la importancia de la integridad referencial con un ejemplo práctico, mostrando que no se pueden agregar pedidos para un cliente que no existe en la tabla 'Clientes'.

10:05

🚫 Desactivación y consecuencias de la integridad referencial

El tercer párrafo explora lo que sucede cuando se desactiva la integridad referencial. Se muestra que, sin esta restricción, es posible agregar un pedido para un cliente que no existe en la tabla 'Clientes'. Sin embargo, al intentar reactivar la integridad referencial después de haber introducido un registro de pedido para un cliente inexistente, Access advierte que no es posible. Esto demuestra la importancia de activar la integridad referencial desde el principio cuando las tablas están vacías para evitar errores en la integridad de los datos.

15:07

⚙️ Funcionamiento de las actualizaciones y eliminaciones en cascada

El cuarto párrafo se centra en las propiedades 'Actualizar en cascada' y 'Eliminar en cascada'. Se explica que 'Actualizar en cascada' permite que los cambios en un registro de la tabla 'Clientes' se reflejen automáticamente en los registros relacionados en la tabla 'Pedidos', mientras que 'Eliminar en cascada' asegura que al eliminar un cliente, todos sus pedidos relacionados también se eliminen. Se proporcionan ejemplos prácticos para ilustrar cómo estas propiedades funcionan y las decisiones que se deben tomar en función de las necesidades de la base de datos, como conservar un historial de pedidos o no.

20:07

🗂️ Consideraciones finales sobre las relaciones en cadena y la importancia de la gestión de datos

El último párrafo concluye el tutorial destacando la importancia de comprender las relaciones en cadena en una base de datos y cómo la eliminación de un registro en una tabla principal puede tener efectos en varias tablas secundarias. Se menciona la necesidad de tener en cuenta estas relaciones al gestionar datos, especialmente al eliminar registros, ya que una eliminación en cascada puede afectar a múltiples tablas. Se cierra el video tutorial con una referencia a los próximos temas que se abordarán, como las consultas en Access, y se desea un buen día a los espectadores.

Mindmap

Keywords

💡Integridad referencial

La integridad referencial es un concepto fundamental en bases de datos que asegura que las relaciones entre tablas se mantienen coherentes. En el video, se explica que si se activa la integridad referencial, no se pueden agregar registros en la tabla de pedidos que no tengan un cliente correspondiente en la tabla de clientes. Esto garantiza que cada pedido esté asociado a un cliente existente, lo cual es esencial para mantener la precisión de los datos en la base de datos de gestión de pedidos.

💡Actualización en cascada

La actualización en cascada es una propiedad de relación de tablas que permite que los cambios en un registro principal se reflejen automáticamente en los registros relacionados en una tabla secundaria. En el script, se ilustra cómo, al cambiar el código de un cliente en la tabla de clientes, si la actualización en cascada está activada, ese cambio se propaga a la tabla de pedidos, asegurando que las referencias a ese cliente sean consistentes en toda la base de datos.

💡Eliminación en cascada

La eliminación en cascada es una opción que, cuando está activada, provoca la eliminación automática de registros relacionados en una tabla secundaria cuando se elimina un registro en una tabla principal. En el video, se menciona que si se activa esta opción, al eliminar a un cliente en la tabla de clientes, todos los pedidos asociados a ese cliente en la tabla de pedidos también se eliminarían, lo que es útil para mantener la integridad de los datos sin dejar registros huérfanos.

💡Relaciones de tablas

Las relaciones de tablas son conexiones establecidas entre datos de diferentes tablas para mostrar cómo los datos se relacionan entre sí. En el contexto del video, se discuten relaciones de 'uno a varios' entre las tablas de clientes y pedidos, lo que significa que un cliente puede tener múltiples pedidos. Estas relaciones son cruciales para la estructura y la navegación de la base de datos.

💡Tablas principales y secundarias

Las tablas principales y secundarias definen la dirección de la relación en una base de datos. En el script, se hace referencia a la tabla de clientes como la principal y la tabla de pedidos como la secundaria, lo que indica que cada registro en la tabla de pedidos está asociado con un registro en la tabla de clientes. Esta distinción es importante para entender cómo se aplican las propiedades de integridad referencial, actualización y eliminación en cascada.

💡Consultas en Access

Las consultas son herramientas en Access utilizadas para extraer y manipular datos de la base de datos. Aunque no se discuten en profundidad en el script proporcionado, se menciona que el próximo tutorial se enfocará en las consultas, lo que implica que son un tema importante para el manejo de información en Access.

💡Hoja secundaria de datos

La hoja secundaria de datos es una característica en Access que permite mostrar registros de una tabla relacionada directamente desde otra tabla. En el video, se utiliza para ilustrar cómo se puede ver información de pedidos y productos pedidos directamente desde la tabla de clientes, lo que demuestra cómo Access permite la navegación entre tablas relacionadas.

💡Campos clave

Los campos clave son columnas en una tabla de base de datos que tienen un valor único para cada registro y son utilizados para identificar de manera única cada fila en la tabla. En el script, se menciona que la tabla de productos pedidos tiene dos campos clave, lo que permite establecer relaciones con ambas tablas de pedidos y productos.

💡Base de datos de gestión de pedidos

La base de datos de gestión de pedidos es el ejemplo utilizado a lo largo del video para explicar conceptos relacionados con tablas, relaciones y consultas en Access. Simula la administración de un almacén, con tablas para clientes, productos, pedidos y productos pedidos, y es utilizada para demostrar cómo se aplican las propiedades y relaciones en un contexto práctico.

💡Ventana de relaciones

La ventana de relaciones en Access es el lugar donde se visualizan y modifican las relaciones entre tablas. En el script, se describe cómo se utiliza esta ventana para establecer y manipular las propiedades de las relaciones, como la integridad referencial, la actualización y la eliminación en cascada, que son fundamentales para mantener la coherencia de los datos en la base de datos.

Highlights

Introducción al curso de Access 2010 básico y revisión de relaciones entre tablas.

Explicación de cómo se relacionan dos tablas en la ventana de relaciones de Access.

Descripción de la base de datos 'gestión de pedidos' que simula un almacén.

Detalle de las tablas de clientes, productos, pedidos y productos pedidos en la base de datos.

Demostración de la relación de uno a varios entre las tablas de clientes y pedidos.

Procedimiento para insertar una hoja secundaria de datos en la tabla de clientes.

Visualización de cómo cada cliente puede realizar múltiples pedidos.

Enfoque en las propiedades de las relaciones entre las tablas clientes y pedidos.

Descripción de las tres propiedades de las relaciones: integridad referencial, actualizar en cascada y eliminar en cascada.

Importancia de activar la integridad referencial para garantizar la relación entre registros de tablas.

Ejemplo práctico de cómo la integridad referencial evita la inserción de pedidos de clientes no registrados.

Consecuencias de desactivar la integridad referencial y su efecto en la relación de tablas.

Procedimiento para activar y desactivar la integridad referencial en la ventana de relaciones.

Funcionalidad de la opción 'Actualizar en cascada' y su efecto en la actualización de registros relacionados.

Demostración de cómo 'Eliminar en cascada' afecta a los registros relacionados en varias tablas.

Consideraciones sobre la activación de 'Eliminar en cascada' y su impacto en el historial de pedidos.

Conclusión del tutorial y previsión del tema siguiente: consultas en Access.

Transcripts

play00:01

Hola Bienvenidos a otra entrega del

play00:03

curso de Access 2010 básico Estuvimos

play00:07

viendo en el último vídeo si recordáis

play00:09

las relaciones entre las tablas Qué tipo

play00:11

de relaciones

play00:12

existen la ventana de relaciones de

play00:14

Access ver cómo se relacionaban dos

play00:17

tablas entre sí desde la ventana de

play00:19

relaciones y alguna cosilla más Vamos a

play00:22

continuar a partir de ahí y vamos a ver

play00:24

en el vídeo de hoy eh las propiedades de

play00:27

las relaciones entre las tablas entonces

play00:29

para para ello he abierto la base de

play00:31

datos gestión de pedidos que si por si

play00:33

acaso alguno de vosotros todavía no la

play00:35

tiene en la descripción del vídeo de hoy

play00:38

en la parte de abajo volveré a pasar un

play00:40

link para que os la podáis Descargar

play00:42

Bueno vamos a recordar un poquito porque

play00:45

es imprescindible para lo que voy a

play00:46

comentar hoy para lo que voy a explicar

play00:48

eh conocer un poquito la estructura de

play00:50

esta base de datos gestión de pedidos

play00:52

aquellos que seguís el curso desde el

play00:54

videotutorial número uno ya tendréis más

play00:56

o menos Clara la estructura pero por si

play00:58

acaso la volvemos a repetir gestión de

play01:00

pedidos es una base de datos que simula

play01:02

a ser la base de datos de un almacén

play01:05

donde tenemos una serie de clientes eh

play01:07

registrados en una tabla de clientes que

play01:09

se supone que son los clientes que me

play01:11

van haciendo pedidos no en este almacén

play01:13

hay una serie de productos que son los

play01:15

productos que se supone que el almacén

play01:17

suministra que el almacén vende Entonces

play01:20

los clientes van haciendo una serie de

play01:21

pedidos que quedan registrados en la

play01:23

tabla de pedidos sobre unos productos

play01:25

que quedan registrados en la tabla de

play01:27

productos y luego tenemos una cuarta

play01:29

tabla que es la tabla de de productos

play01:30

pedidos que es una suma una Unión de la

play01:33

información más importante de la tabla

play01:34

de productos junto con la tabla de

play01:36

pedidos no vamos a echar un vistazo

play01:38

abrimos la tabla de clientes recordamos

play01:41

pues estos son los clientes que se

play01:42

supone trabajan con nosotros en este

play01:44

almacén ficticio tenemos un código

play01:47

cliente un código interno una empresa

play01:49

que es la empresa cliente una dirección

play01:51

una población un teléfono y Un

play01:54

responsable tenemos la tabla de

play01:56

productos que se supone que son los

play01:58

productos que tenemos en el almacén pues

play02:00

cada producto con su código interno

play02:02

código artículo pertenece cada artículo

play02:04

a una sección en concreto deporte

play02:05

ferretería confección etcétera un nombre

play02:07

un precio una fecha si ha sido importado

play02:10

o no y un país de origen tenemos la

play02:13

tabla de pedidos que refleja los pedidos

play02:15

que me van haciendo los clientes por

play02:16

ejemplo el pedido uno pues me lo ha

play02:18

hecho el cliente ct01 el pedido 3 me lo

play02:21

ha hecho el cliente c23 tal fecha me

play02:23

pagó de tal forma Le hice un descuento y

play02:26

se le envió o no se le envió y luego la

play02:28

tabla de productos pedidos que es una

play02:30

suma Pues de pedidos y de productos por

play02:32

ejemplo el pedido uno o en el pedido uno

play02:35

viajaban los artículos ar01 el 4 el 15 y

play02:38

el 22 no 11 unidades del artículo 01 10

play02:42

del 4 4 del 15 etcétera Bueno más o

play02:46

menos Esta es la información que

play02:48

almacenaba esta base de datos en cuanto

play02:49

a las relaciones existentes entre las

play02:51

tablas estaban relacionadas unas con

play02:53

otras una relación en cadena para ver

play02:55

las relaciones había que ir a la pestaña

play02:57

herramientas de bases de datos ventana

play03:02

relaciones y efectivamente Bueno pues

play03:04

aquí están las relaciones que existen

play03:06

entre estas tablas vamos a centrarnos

play03:08

para el tema de hoy en las dos tablas

play03:11

clientes y pedidos nos vamos a olvidar

play03:13

de momento de productos pedidos y de

play03:14

productos y nos centramos en la relación

play03:16

que existe entre estas dos tablas si os

play03:19

podéis fijar de momento pues tenemos una

play03:21

relación de uno a varios esto ya lo

play03:23

vimos en vídeos anteriores así lo

play03:25

reflejan los símbolos de la relación Eso

play03:27

quiere decir que por cada registro que

play03:29

tengo la tabla de clientes Podría tener

play03:31

varios registros relacionados en la

play03:33

tabla de pedidos traducido a esta base

play03:36

de datos que nos ocupa cada cliente

play03:39

puede realizar varios pedidos y así es

play03:41

el cliente por ejemplo ct01 pues puede

play03:44

haber hecho el pedido un el pedido tres

play03:46

y el pedido si en diferentes fechas es

play03:48

decir ha podido hacerme varios pedidos

play03:51

tiene sentido que así sea si fuera una

play03:53

relación de uno a uno estaríamos

play03:55

obligando a que cada cliente solo

play03:56

pudiera hacer un pedido y eso pues no T

play03:59

ía tanto sentido Bueno voy a cerrarla un

play04:03

segundito me dice que si deseo guardar

play04:05

cambios porque en cuanto mueves

play04:06

cualquier cosita pues ya detecta que es

play04:08

un cambio y vamos a hacer una cosa que

play04:10

ya hicimos en días anteriores voy a

play04:12

abrir la tabla de clientes y en esta

play04:14

tabla de clientes voy a insertar la hoja

play04:16

secundaria de datos esto lo hacíamos

play04:18

desde la pestaña inicio botón más hoja

play04:21

secundaria de datos y voy a insertar la

play04:22

hoja secundaria de pedidos para que

play04:24

veáis que efectivamente cada cliente

play04:25

puede haberme hecho varios pedidos por

play04:27

ejemplo el cliente c01 me ha hecho 1 2 3

play04:30

4 5 6 7 8 nu pedidos no el cliente ct02

play04:35

me ha hecho dos pedidos el cliente ct03

play04:38

no me ha hecho ningún pedido bueno

play04:40

relación uno a varios visto esto no

play04:43

guardo cambios en el diseño de la tabla

play04:44

volvemos a la relaciones vamos a

play04:47

centrarnos hoy en lo que son las

play04:49

propiedades de las relaciones entre las

play04:51

tablas y como digo nos vamos a fijar

play04:52

únicamente en clientes y pedidos cómo

play04:55

accedemos a las propiedades que existen

play04:57

en la relación entre clientes y pedidos

play04:59

y qué son estas propiedades bueno para

play05:02

acceder a las propiedades lo que hay que

play05:04

hacer es situarse justo encima de la

play05:06

línea que une ambas tablas y hacer doble

play05:08

clic o bien clic con el botón derecho y

play05:11

en el menú contextual modificar relación

play05:13

da igual entonces las relaciones entre

play05:15

las tablas las propiedades perdón de las

play05:18

relaciones entre las tablas las tenemos

play05:20

en la ventana de modificar relaciones en

play05:22

las opciones que os estoy señalando en

play05:24

pantalla y son tres exigir integridad

play05:27

referencial actualizar en cascada y

play05:29

eliminar en cascada los registros

play05:32

relacionados solo es posible utilizar

play05:35

estas dos propiedades siempre y cuando

play05:36

la primera exigir integridad referencial

play05:39

esté activada es decir si desactivo

play05:41

exigir integridad referencial se

play05:42

desactivan las otras dos y no es posible

play05:44

utilizarlas sin haber activado

play05:46

previamente la integridad referencial

play05:49

eso para empezar bueno vamos a ver vamos

play05:51

a centrarnos en la primera Qué es exigir

play05:54

integridad referencial que como podéis

play05:55

ver se puede activar o Desactivar a

play05:58

gusto de el usuario o del desarrollador

play06:01

que esté creando esta base de datos todo

play06:04

depende de tus necesidades la integridad

play06:06

referencial si la activas voy a darle a

play06:09

cancelar si tienes activada la

play06:10

integridad referencial estás obligando a

play06:13

que por cada registro que tenga en la

play06:16

tabla de clientes exista su registro

play06:20

relacionado en la tabla de pedidos o

play06:23

mejor dicho al revés Perdón por cada

play06:25

registro que tengo en la tabla

play06:26

secundaria que en este caso sería

play06:28

pedidos estoy obligando a que haya

play06:30

siempre un registro relacionado en la

play06:32

tabla de clientes dicho esto así puede

play06:34

ser un poco confuso pero traduciéndolo a

play06:36

esta base de datos para que por fin se

play06:38

entienda quiere decir

play06:39

que cada pedido tiene que tener su

play06:43

correspondiente cliente y en este caso

play06:46

pues tiene sentido porque se supone que

play06:48

no puedo tener un pedido de un cliente

play06:50

que no existe Y eso es la integridad

play06:53

referencial si activo la integridad

play06:55

referencial no podré agregar a la tabla

play06:58

de pedidos

play07:00

un pedido de un cliente que previamente

play07:02

no esté registrado antes en la tabla de

play07:05

clientes vamos a verlo con un ejemplo

play07:07

práctico es como mejor se

play07:10

entiende bien voy a cerrar No creo que

play07:13

no he modificado ninguna Es decir para

play07:15

que quede claro están activadas las tres

play07:17

opciones sobre todo exigir integridad

play07:19

referencial entre clientes y pedidos y

play07:21

vamos a ver qué significa esto sobre la

play07:23

práctica porque es un poco complejo de

play07:25

de entender creo yo si no se ve con un

play07:28

ejemplo no abrimos la tabla de pedidos

play07:31

evidentemente en la tabla de pedidos

play07:32

pues podemos insertar un nuevo registro

play07:34

Pues nada vamos a ello y voy a decir que

play07:37

por ejemplo el pedido

play07:41

86 este campo creo que tenía una máscara

play07:43

00

play07:45

86 vale me lo ha hecho el cliente ct

play07:51

95 y me lo ha hecho por ejemplo pues el

play07:54

23 del 12 las fechas son un poco

play07:56

antiguas Pero bueno es lo de menos del

play07:58

2002 bien me ha pagado esto es un

play08:01

asistente para búsquedas al contado

play08:03

bueno no le he hecho descuento y ya se

play08:05

lo he enviado este cliente ya os

play08:07

anticipo que no está registrado en la

play08:10

tabla de clientes y para que lo veáis la

play08:11

abro un segundo los clientes llegan

play08:13

hasta el ct40 c95 no existe muy bien

play08:18

como tengo activada la integridad

play08:20

referencial entre clientes y pedidos si

play08:22

yo intento agregar este registro en la

play08:25

tabla de pedidos no me va a dejar porque

play08:27

está activada la integridad referencial

play08:29

y eso exige que por cada registro en la

play08:31

tabla secundaria donde nos encontramos

play08:33

ahora en pedidos eh tengo que tener su

play08:36

correspondiente registro relacionado en

play08:38

la tabla primaria o principal esto es en

play08:40

la tabla de clientes traducido por cada

play08:42

pedido tiene que tener su

play08:43

correspondiente cliente Si intento pasar

play08:44

al registro siguiente para que se grabe

play08:47

el dato Pues aquí está el eh mensaje de

play08:50

advertencia o error que me indica

play08:53

precisamente Esto no se puede agregar O

play08:55

cambiar el registro porque se necesita

play08:57

un registro relacionado en la tabla de

play08:58

clientes me está está diciendo que no

play09:00

está ese cliente no existe entonces voy

play09:02

a borrar el registro vale Ya sabéis que

play09:04

Access es un poco pesado con estas

play09:06

opciones Cierro la tabla como digo yo a

play09:08

capón vulgarmente

play09:10

y de esta forma para que lo veáis no ha

play09:13

quedado agregado de acuerdo Bueno pues

play09:16

esto es gracias a que tengo activada la

play09:18

integridad referencial vamos a

play09:20

desactivarla durante un instante me voy

play09:22

a la ventana relaciones entro dentro de

play09:25

las relaciones entre clientes y pedidos

play09:26

desactivo integridad referencial acepto

play09:29

y Cierro la ventana de relaciones ahora

play09:31

mismo ya no hay integridad referencial

play09:33

entre clientes y pedidos voy a intentar

play09:35

repetir la misma operación abro la tabla

play09:38

de pedidos me voy al último registro

play09:40

vamos a introducir el 0086 de

play09:45

c95 estoy poniendo TT 95 que me lo hizo

play09:50

el 5 del 5 del 2002 le pagué al contado

play09:54

y ahora como no hay integridad

play09:56

referencial si intento pasar al

play09:58

siguiente registro para reducirlo

play09:59

debería de

play10:01

dejarme buen este error es por otro tipo

play10:04

me dice que los cambios solicitados en

play10:06

la tabla duplicados en el índice vamos a

play10:09

ver z95 86 el pedido 86 tiene que estar

play10:13

mirar el error que está dando nos

play10:15

confunda es por el número de pedido eh

play10:18

número de pedido es campo clave con lo

play10:19

cual no se puede repetir me está

play10:21

diciendo que me va a crear un valor

play10:22

duplicado en el campo clave como podéis

play10:24

observar cuando activas varias cosas es

play10:26

complicado Vamos a ponerle en vez del

play10:28

pedido 86 el 89 89 no está verdad espero

play10:32

que no intento pasar al registro

play10:34

siguiente Pero hay que poner la máscara

play10:37

demasiadas

play10:38

cosas vale Ya está es decir el cliente

play10:42

z95 lo ha dejado introducir

play10:44

perfectamente para que lo veáis Cierro

play10:46

la tabla la vuelvo a

play10:48

abrir el

play10:53

pedido el

play10:55

pedido Aquí está 89 correspondiente al

play10:58

ct9 25 Ahí está introducido de acuerdo

play11:02

Bueno qué ocurre si ahora después de

play11:05

haber introducido este registro activo

play11:07

la integridad referencial Bueno pues que

play11:10

Access nos va a advertir seguramente al

play11:12

respecto Me voy a la ventana relaciones

play11:14

entramos otra vez en las propiedades

play11:16

activo exigir integridad referencial y

play11:19

acepto y me dice que no puede crear la

play11:22

integridad referencial no la puede crear

play11:24

porque es que hemos introducido un

play11:26

pedido de un cliente que no existe

play11:27

Access detecta y me dice que no es

play11:30

posible eh utilizar la integridad

play11:32

referencial esto que nos viene a decir

play11:34

Bueno pues que se puede activar después

play11:36

de haber introducido la información en

play11:37

las tablas la integridad referencial

play11:40

pero es mucho más recomendable activar

play11:42

esta opción cuando las tablas están

play11:44

vacías Además así eh Te aseguras De que

play11:47

al introducir la información no estás

play11:48

cometiendo ningún error de este tipo de

play11:50

introducir un pedido de un cliente que

play11:52

no exista No si lo haces a posterior

play11:54

pues puedes tener este tipo de problemas

play11:56

si yo quisiera volver a activar la

play11:57

integridad referencial estoy obligado a

play12:00

de momento cerrar la ventana de

play12:02

relaciones y dejarlo como está irme a

play12:04

pedidos Localizar el número de pedido

play12:07

del cliente que no existe que tiene que

play12:09

estar por aquí que era ct 95 creo a ver

play12:13

si lo encuentro aquí está tenemos que

play12:16

borrar este registro está a punto de

play12:20

eliminar un registro aceptamos Cierro la

play12:22

tabla y ahora sí vuelvo a la ventana de

play12:25

relaciones y activo la integridad

play12:27

referencial ahora sí me deja activarla

play12:29

perfectamente no hay ningún problema

play12:31

porque ya ha sido eliminado Bueno espero

play12:33

que haya sido comprendido más o menos

play12:35

Qué es la integridad referencial eh

play12:37

resumo sin querer ser pesado No puede

play12:39

haber un registro en la tabla secundaria

play12:41

que no tenga su correspondiente registro

play12:43

en la tabla principal entendiendo como

play12:46

tabla secundaria pedidos tabla principal

play12:47

clientes No puede haber un pedido de un

play12:49

cliente que no exista Bueno pues esto no

play12:51

es que haya que activarlo siempre esto

play12:53

depende de las necesidades que tengas en

play12:55

tu base de datos Porque otra situación

play12:58

que yo planteo es

play12:59

Y si yo en el pasado he tenido clientes

play13:02

que me hicieron pedidos y esos clientes

play13:05

ya los borré porque no trabajo más con

play13:07

ellos pero quiero conservar un histórico

play13:09

de los pedidos no sé si entendéis bien

play13:11

el planteamiento que hago es decir a lo

play13:13

mejor yo ahora mismo tengo al cliente

play13:15

ct01 que me ha ido haciendo un montón de

play13:17

pedidos pero mañana dejo de trabajar con

play13:19

él si dejo de trabajar con él por el

play13:21

motivo que sea a lo mejor deseo eliminar

play13:23

al cliente z01 de la tabla de clientes

play13:26

Bueno si yo quiero eliminar al cliente

play13:29

01 pero quiero conservar un histórico de

play13:32

todos los pedidos que me ha hecho no

play13:34

puedo activar la integridad referencial

play13:37

Porque si elimino al cliente

play13:39

automáticamente deberían de ser

play13:40

eliminados todos los pedidos que me ha

play13:43

hecho ese cliente debido a la integridad

play13:45

referencial no entonces en el caso de

play13:47

que quisieras tener un histórico pues

play13:49

por ejemplo no podrías tener activada la

play13:50

integridad referencial si no quieres

play13:52

tener un histórico pues entonces sí si

play13:54

yo quiero eliminar al cliente ct01 y

play13:57

junto con él el Eliminar todos los

play13:59

pedidos que me hizo en el pasado pues

play14:01

ningún problema dej des activada la

play14:02

integridad referencial vale bueno

play14:05

siguiente propiedad actualizar en

play14:07

cascada los campos relacionados esto Qué

play14:09

es que como podéis ver Solo se puede

play14:11

activar y Desactivar siempre y cuando

play14:13

como requisito previo se haya activado

play14:15

la integridad referencial

play14:17

Bueno si no se activa voy a hacerlo con

play14:20

un ejemplo práctico para que se entienda

play14:22

si no está activada la opción de

play14:24

actualizar en cascada que no lo está

play14:26

pues ocurre lo siguiente abro la de

play14:29

clientes bien imaginaos que por el

play14:32

motivo que sea el código del primer

play14:35

cliente que ya me ha hecho siete pedidos

play14:37

si no recuerdo mal Beltrán e hijos el

play14:39

código por el motivo que sea lo voy a

play14:41

cambiar y yo digo que este cliente en

play14:44

vez de ser el ct01 pues va a ser el

play14:47

cliente ct

play14:49

98 por el motivo que sea bueno pues si

play14:52

no tienes activada la opción de

play14:54

actualizar en cascada cuando intentas

play14:57

hacer esta

play14:58

operación después de escribir lo pasas

play14:59

al siguiente registro o pinchas en

play15:01

cualquier otra zona te dice que no puede

play15:03

no puede porque eh la tabla de clientes

play15:06

tiene sus correspondientes registros

play15:09

relacionados en pedidos me está diciendo

play15:11

que los clientes han hecho pedidos que

play15:13

actualizar en cascada no está activado

play15:15

con lo cual el cambio del código cliente

play15:18

no lo puede realizar en la tabla de

play15:20

pedidos eso es lo que quiere decir

play15:22

actualizar en cascada si yo cambio la

play15:25

información de un registro en la tabla

play15:27

de clientes que automáticamente se

play15:29

cambie en la tabla de pedidos si lo

play15:30

tengo desactivado no lo puede cambiar

play15:32

automáticamente en la tabla de pedidos

play15:34

es decir en la tabla de pedidos si yo

play15:37

cambio ct 01 en clientes aquí debería de

play15:40

cambiar también porque este cliente ya

play15:42

no existe y está activada la integridad

play15:44

referencial No pues eso me está diciendo

play15:46

si quieres hacer operaciones de este

play15:47

tipo es decir poder cambiar la

play15:50

información de un registro y que

play15:51

automáticamente cambie también en las

play15:54

tablas relacionadas estás obligado a que

play15:57

tengas activada la opción de actualizar

play15:58

en cascada vamos a verlo voy a cerrar la

play16:01

tabla sin guardar cambios Mirad có se

play16:03

quedó c01 al final no hizo el cambio

play16:05

entro en la ventana de relaciones activo

play16:08

actualizar en cascada acepto cierro y

play16:11

repito la operación para que veáis que

play16:13

ahora sí deja es decir en vez de ct01

play16:16

c98 pincho en otro lado paso al campo

play16:18

siguiente no hay ningún problema no sale

play16:20

mensaje de error Cierro la tabla de

play16:22

clientes y ahora al abrir la tabla de

play16:24

pedidos el cliente ct01 ya no debe de

play16:27

estar y en su lugar debe de apare el c98

play16:30

con sus correspondientes pedidos abro la

play16:32

tabla y mirar como efectivamente el

play16:34

pedido uno lo hizo

play16:36

c98 Y seguramente haya más pedidos por

play16:39

ahí de mira aquí está por ejemplo el

play16:41

pedido 8o también lo hizo c98 Bueno pues

play16:44

esto es actualizar en cascada para dejar

play16:47

las tablas como estaban voy a volver a

play16:49

cambiar z98 que ahora lo tengo en último

play16:51

lugar por

play16:52

z01 Cierro la tabla vuelvo a abrir

play16:55

pedidos y lo vuelvo a tener como estaba

play16:56

el uno y el 8 los ha hecho C 01 Bueno

play16:59

pues esto es posible gracias a que tengo

play17:01

activada la opción de actualizar en

play17:04

cascada última propiedad de la

play17:06

relaciones eliminar en cascada los

play17:08

registros relacionados Qué quiere decir

play17:10

esto Bueno pues quiere decir que si yo

play17:13

lo tengo activado al eliminar un cliente

play17:17

automáticamente tienen que eliminarse

play17:19

todos sus pedidos y si lo tengo

play17:21

desactivado si me intento cargar un

play17:23

cliente que tiene hechos ya unos cuantos

play17:25

pedidos no me debe de dejar vamos a ver

play17:27

si es cierto voy a dejarlo desactivado

play17:29

para empezar aceptamos Cierro la ventana

play17:31

de relaciones abro clientes hemos visto

play17:34

que ct01 tiene unos cuantos pedidos voy

play17:37

a abrir pedidos para que lo veáis tiene

play17:38

el pedido uno tiene el pedido 8o tiene

play17:41

el pedido 77 tiene unos cuantos entonces

play17:43

si yo intento eliminar en la tabla de

play17:45

clientes a este cliente me va a salir un

play17:48

mensaje de error diciendo que no puede

play17:49

porque no he activado la opción de

play17:51

eliminar en cascada y efectivamente

play17:54

cuando le di a la tecla suprimir para

play17:55

eliminar el registro me dice que no se

play17:57

puede eliminar porque la tabla de os

play17:59

incluye registros relacionados entonces

play18:01

todo esto depende de lo que tú necesites

play18:03

en tu base de datos si tú no quieres

play18:05

conservar histor histórico de pedidos

play18:08

Pues si eliminas el cliente que se

play18:10

eliminen también los pedidos si este es

play18:13

el comportamiento que deseas para tu

play18:14

base de datos pues te vas a la ventana

play18:16

relaciones activas eliminar en

play18:20

cascada vuelves a la tabla de clientes y

play18:22

si yo ahora elimino al cliente ct01

play18:25

recordar voy a abrirlo antes de

play18:27

eliminarlo en la tabla de pedido el

play18:29

pedido uno tendrá que desaparecer el

play18:31

pedido 8o tendrá que desaparecer y

play18:34

alguno más que esté viendo el pedido 77

play18:37

también tendrá que desaparecer porque

play18:38

son pedidos que me ha hecho el cliente

play18:39

ct01 que lo voy a eliminar no Entonces

play18:41

cierro pedidos elimino este cliente me

play18:45

dice que esto es un mensaje de

play18:46

advertencia no de error me está diciendo

play18:48

que ojo que no solamente voy a eliminar

play18:50

registros de esta tabla sino que también

play18:52

voy a eliminar registros de otras tablas

play18:53

Bueno pues le decimos que sí Y si yo

play18:56

ahora abro la tabla de pedidos ya ni

play18:57

tengo el uno ni tengo el pedido 8 ni

play19:00

tengo el pedido 77 que eran entre otros

play19:02

los que había hecho el cliente ct01

play19:04

Bueno pues esto es eliminar en

play19:08

cascada bueno no hay vuelta atrás a la

play19:12

hora de eliminar información en las

play19:13

tablas de Access es decir si eliminas

play19:15

registros y confirmas con las preguntas

play19:17

de advertencia que por eso te las hace

play19:18

Access porque no hay vuelta atrás Si

play19:21

confirmas esta eliminación Pues no hay

play19:24

nada que hacer vale bien más cosas

play19:27

Cierro la tabla de centes el cliente

play19:29

ct01 pues ya no existe vamos a examinar

play19:32

un poquito Cómo están las relaciones

play19:34

vamos ahora ya a ir un poco más allá Es

play19:36

decir nos vamos a fijar también en la

play19:38

tabla de productos pedidos no entonces

play19:41

vemos que entre clientes y pedidos

play19:43

tenemos activadas las tres opciones que

play19:45

actualice que elimine por supuesto

play19:47

integridad referencial y entre pedidos y

play19:49

productos pedidos Pues también están las

play19:51

tres como hay una relación en cadena

play19:54

entre las tres tablas están relacionadas

play19:55

entre sí con una relación de uno a

play19:57

varios quiere decir que Y esto

play20:00

es muy potente pero también peligroso si

play20:03

me cargo un registro de la tabla de

play20:05

clientes no solo estaré eliminando

play20:07

información de la tabla de clientes sino

play20:08

que estaré eliminando información de la

play20:10

tabla de pedidos como acabamos de ver

play20:12

pero ojo También estamos eliminando

play20:14

información de la tabla de productos

play20:15

pedidos vamos a hacer una última prueba

play20:18

para ver esto no Entonces vamos a

play20:22

ver en clientes voy a insertar la hoja

play20:26

secundaria de datos para poder ver desde

play20:29

la tabla de clientes pues la información

play20:31

que tengo en pedidos muy bien Vamos a

play20:33

ver qué pedidos me ha hecho por ejemplo

play20:35

el cliente ct02 Pues el cliente ct02 me

play20:39

ha hecho el pedido 30 y el pedido 103

play20:41

fijaros que a su vez la tabla de pedidos

play20:43

tiene también insertada la hoja

play20:45

secundaria de datos para ver la

play20:46

información que hay en productos pedidos

play20:48

como hemos visto antes en la ventana de

play20:50

relaciones si yo despliego la hoja

play20:52

secundaria vemos

play20:55

que me ha hecho el

play20:59

cliente ct02 el número de pedido 30 me

play21:01

ha pedido el artículo 23 33 unidades voy

play21:04

a abrir un segundito la tabla de

play21:06

productos pedidos entonces vemos que a

play21:10

ver que ya se me está olvidando el

play21:13

cliente ct02 el número de pedido 30

play21:15

localizamos el pedido 30 Mirad Este es

play21:17

el registro 30 correspondiente al

play21:21

artículo 23 33 unidades No ese es el

play21:24

registro que estamos señalando

play21:25

directamente desde la tabla de clientes

play21:29

Bueno pues como está eh activada la

play21:31

opción de eliminar en cascada si yo

play21:33

elimino al cliente ct02 no solo voy a

play21:35

eliminar al cliente c02 voy a eliminar

play21:38

en la tabla de pedidos el pedido 30 y en

play21:40

la tabla de productos pedidos que es lo

play21:42

que quiero que vierais voy a eliminar

play21:44

concretamente este número de pedido el

play21:46

30 no que corresponde al artículo 23 33

play21:50

unidades vamos a ver si es cierto

play21:52

cerramos todo guardamos algún cambio no

play21:54

hace

play21:55

falta abro la tabla de clientes y me

play21:58

cargo al cliente

play22:00

ct02 ojo que puede haber registros

play22:02

relacionados en otras tablas Estás

play22:03

seguro sí Bueno pues me acabo de cargar

play22:06

voy a abrir productos pedidos el pedido

play22:08

30 que ya no está fijaros que pasa del

play22:11

29 al 31 eso que quiere decir pues que

play22:15

ha llegado la eliminación hasta la

play22:16

tercera tabla yo he eliminado el

play22:18

registro aquí pero como está activado

play22:19

eliminar en cascada ahí y ahí se eliminó

play22:23

también el pedido correspondiente y se

play22:25

eliminó también el producto pedido

play22:27

correspondiente se ha eliminado también

play22:29

el producto correspondiente no el

play22:31

producto correspondiente no se ha

play22:32

eliminado porque fijaros que el sentido

play22:34

de la relación entre las tablas de

play22:36

productos pedidos y productos va al

play22:38

revés es decir mientras que aquí en

play22:40

clientes y pedidos uno a varios el uno

play22:42

está a la izquierda el varios está a la

play22:44

derecha aquí ocurre lo mismo entre

play22:45

pedidos y productos pedidos el uno está

play22:47

a la izquierda tabla principal El varios

play22:50

tabla secundaria está en productos

play22:51

pedidos aquí es al revés la tabla

play22:53

principal entre la relación productos

play22:56

productos pedidos es productos y la

play22:57

tabla secundaria es productos pedidos

play22:59

como cambia el sentido de la relación no

play23:01

se ha eliminado el producto en concreto

play23:04

y esta base de datos Está diseñada así a

play23:07

propósito tú te puedes cargar un cliente

play23:10

también te puedes cargar porque tiene

play23:11

sentido el pedido que te ha hecho ese

play23:13

cliente te puedes cargar Pues el número

play23:16

de unidades que se le mandó pero lo que

play23:17

no te puedes cargar en ningún momento es

play23:18

el producto que tú puedes tener en el

play23:20

almacén luego entonces en este caso sí

play23:22

que tiene sentido que entre estas dos

play23:24

tablas la relación vaya al

play23:25

revés otra cosa que ya correspondería

play23:28

quizás un poquito acces avanzado es que

play23:29

como podéis comprobar la tabla de

play23:31

productos pedidos tiene dos Campos clave

play23:33

es posible esto perfectamente esto nos

play23:35

permite relacionar pues eh pedidos con

play23:38

productos pedidos y además con productos

play23:40

no y pues si tú necesitas por otros

play23:43

motivos que en tu tabla dos o más Campos

play23:45

sean campo clave ningún problema Lo

play23:48

único que ocurre es que no se podrá

play23:50

repetir ni quedar vacía la información

play23:51

como ya sabéis no Bueno pues vamos a

play23:55

dejar este vide tutorial aquí ya hemos

play23:56

visto las propiedades de las relaciones

play24:00

entre las tablas exigir integridad

play24:02

referencial actualizar en cascada y

play24:03

eliminar en cascada de acuerdo Bueno

play24:06

pues espero que os haya gustado ya en el

play24:08

siguiente V tutorial empezaremos de

play24:10

lleno con el tema de las consultas en

play24:12

Access un tema importantísimo Cómo

play24:15

extraer información de una base de datos

play24:17

de Access os invito a que lo veáis hasta

play24:19

entonces que os vaya bien Hasta la

play24:21

próxima

Rate This

5.0 / 5 (0 votes)

Related Tags
Access 2010bases de datosrelacionesintegridad referencialactualizar en cascadaeliminar en cascadatablascursogestión de pedidostutorial
Do you need a summary in English?