elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  ¿Para que sirven las relaciones en las bases de datos?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Para que sirven las relaciones en las bases de datos?  (Leído 6,872 veces)
skan


Desconectado Desconectado

Mensajes: 1.351


Ver Perfil
¿Para que sirven las relaciones en las bases de datos?
« en: 30 Octubre 2013, 21:55 pm »

Buenas

Supongo que esta pregunta os parecerá un poco tonta pero...

Sé cual es la definición de relación, y hace tiempo me estudié la teoría de las BD, y se como se crean en MySQL y en alguna otra base de datos, pero...

Además de para comprobar la integridad referencial y para indicarle al usuario que existe una relación entre campos,  ¿Para qué se usan las relaciones en las bases de datos?

Por ejemplo para hacer JOINS no necesito relaciones, simplemente indicando los campos para la condición de igualdad ON, es suficiente.

¿Podríais darme algún ejemplo de uso de las relaciones, en el que sea necesario las relaciones?

Gracias


« Última modificación: 30 Octubre 2013, 21:59 pm por skan » En línea

DanteInfernum

Desconectado Desconectado

Mensajes: 60


Ver Perfil
Re: ¿Para que sirven las relaciones en las bases de datos?
« Respuesta #1 en: 2 Noviembre 2013, 00:53 am »

Que dos tablas estén relacionadas entre si significa que una de ellas tiene una clave foránea que referencia a la clave principal de la otra.

No creo que sirvan para algo más que para prevenir posibles errores de integridad referencial como bien dijiste.

Pero, como dice el dicho: ¡Más vale prevenir que curar!
Así que siempre es bueno usar relaciones.


En línea

skan


Desconectado Desconectado

Mensajes: 1.351


Ver Perfil
Re: ¿Para que sirven las relaciones en las bases de datos?
« Respuesta #2 en: 2 Noviembre 2013, 01:45 am »

Que dos tablas estén relacionadas entre si significa que una de ellas tiene una clave foránea que referencia a la clave principal de la otra.

No creo que sirvan para algo más que para prevenir posibles errores de integridad referencial como bien dijiste.

Pero, como dice el dicho: ¡Más vale prevenir que curar!
Así que siempre es bueno usar relaciones.

OK, gracias.

Pregunté en otro foro y me trataron de burro por preguntarlo, me dijeron que debería estudiar.

De todos modos, ¿Podrías poner un ejemplo SQL simple de alguna operación que no se pueda hacer (o sí) según tenga definida una foreign key (o no)?
« Última modificación: 2 Noviembre 2013, 01:47 am por skan » En línea

DanteInfernum

Desconectado Desconectado

Mensajes: 60


Ver Perfil
Re: ¿Para que sirven las relaciones en las bases de datos?
« Respuesta #3 en: 2 Noviembre 2013, 02:48 am »

Considera las tablas:
Personas, Vehículos y Viviendas, todas ellas relacionadas con una tabla Seguros
(son los distintos tipos de seguros que ofrece la empresa)

Ahora tengo que crear un procedimiento que elimine un seguro determinado.

Gracias a que las tablas están relacionadas mediante foreign keys, lo que hice fue añadirles a cada foreign key la restricción ON DELETE CASCADE, la cual me asegura que al eliminar un registro de la tabla padre (seguros), se eliminarán automáticamente todos los registros relacionados en las tablas hijas (tipos de seguro).

El haber utilizado foreign keys me ahorró muchísimo tiempo. Ni sé cuantas vueltas habría tenido que dar para poder eliminar completamente un seguro de no ser por la restricción ON DELETE CASCADE propia de las foreign keys.


A lo que voy, siempre (al menos eso creo...) puedes trabajar sin utilizar ninguna foreign key, pero a la hora de andar haciendo actualizaciones, eliminando registros, etc., desearás haberlo hecho.


PD: En cuanto a las típicas respuestas de forero aburrido y prepotente, ya me he topado con esa clase de individuos. Dale la espalda a los soberbios, son estúpidos, pues no son capaces de comprender su propia ignorancia. No existe nadie en el mundo que "se las sepa todas", siempre nos va faltar algo por conocer, en todos los órdenes de la vida. Aparte que por algún lado se empieza; y haciendo preguntas es un muy buen comienzo.

A mi ya me han tratado de "jodido vago" y "parásito" en otro lado ;D
Las cosas que se pueden llegar a leer por acá son increíbles... jaja
En línea

skan


Desconectado Desconectado

Mensajes: 1.351


Ver Perfil
Re: ¿Para que sirven las relaciones en las bases de datos?
« Respuesta #4 en: 2 Noviembre 2013, 03:36 am »

Considera las tablas:
Personas, Vehículos y Viviendas, todas ellas relacionadas con una tabla Seguros
(son los distintos tipos de seguros que ofrece la empresa)

Ahora tengo que crear un procedimiento que elimine un seguro determinado.

Gracias a que las tablas están relacionadas mediante foreign keys, lo que hice fue añadirles a cada foreign key la restricción ON DELETE CASCADE, la cual me asegura que al eliminar un registro de la tabla padre (seguros), se eliminarán automáticamente todos los registros relacionados en las tablas hijas (tipos de seguro).

El haber utilizado foreign keys me ahorró muchísimo tiempo. Ni sé cuantas vueltas habría tenido que dar para poder eliminar completamente un seguro de no ser por la restricción ON DELETE CASCADE propia de las foreign keys.


A lo que voy, siempre (al menos eso creo...) puedes trabajar sin utilizar ninguna foreign key, pero a la hora de andar haciendo actualizaciones, eliminando registros, etc., desearás haberlo hecho.


PD: En cuanto a las típicas respuestas de forero aburrido y prepotente, ya me he topado con esa clase de individuos. Dale la espalda a los soberbios, son estúpidos, pues no son capaces de comprender su propia ignorancia. No existe nadie en el mundo que "se las sepa todas", siempre nos va faltar algo por conocer, en todos los órdenes de la vida. Aparte que por algún lado se empieza; y haciendo preguntas es un muy buen comienzo.

A mi ya me han tratado de "jodido vago" y "parásito" en otro lado ;D
Las cosas que se pueden llegar a leer por acá son increíbles... jaja

OK, ¿Y si usas el foreign key  pero sin "ON DELETE CASCADE"  (ni  ON UPDATE CASCADE) Entonces que efectos se observan?
En línea

DanteInfernum

Desconectado Desconectado

Mensajes: 60


Ver Perfil
Re: ¿Para que sirven las relaciones en las bases de datos?
« Respuesta #5 en: 2 Noviembre 2013, 19:20 pm »

Tendría que eliminar el seguro manualmente. Primero buscarlo en cada una de las tablas persona, vehículo y vivienda (ya que no conozco de antemano que tipo de seguro es), borrarlo de ahí, y luego eliminarlo de la tabla seguros. Habría que utilizar un montón de if (if seguro esta acá, borrarlo, si no, seguir buscando en otro lado...).

Imaginate todo el código que tendría que agregar si sigo añadiendo distintos tipos de seguro a la empresa.

Pero los efectos más que nada son esos, las foreign keys te previenen que no vayas a andar haciendo referencia a datos que no existen. Si querés eliminar un registro, antes vas a tener que eliminar todas las foreign keys que hacen referencia a él.
En línea

skan


Desconectado Desconectado

Mensajes: 1.351


Ver Perfil
Re: ¿Para que sirven las relaciones en las bases de datos?
« Respuesta #6 en: 3 Noviembre 2013, 20:49 pm »

OK, gracias, DanteInfernum
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bases de datos recomendadas para .Net « 1 2 »
.NET (C#, VB.NET, ASP)
Skeletron 12 8,390 Último mensaje 13 Septiembre 2009, 03:24 am
por seba123neo
Bases de datos para llamadas telefonicas « 1 2 »
Bases de Datos
leliCabello 10 12,437 Último mensaje 9 Enero 2010, 18:38 pm
por ^Tifa^
Framework para bases de datos?
Bases de Datos
Cergath 2 2,320 Último mensaje 21 Febrero 2011, 17:45 pm
por Franki
Ejercicio para Bases de datos
Bases de Datos
KaRaLLo 3 11,940 Último mensaje 12 Julio 2016, 06:53 am
por edith-tec-programacion
Los adúlteros tienen un segundo móvil para sus relaciones extramatrimoniales
Noticias
wolfbcn 0 729 Último mensaje 15 Noviembre 2013, 02:42 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines