Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Consulta sobre relaciones SQL BD

Estas en el tema de Consulta sobre relaciones SQL BD en el foro de SQL Server en Foros del Web. Buenas que tal, Tengo una duda que tanto puede "influir" poner exactamente las relaciones entre tablas es decir.... de 1 a 1 . o de ...
  #1 (permalink)  
Antiguo 03/02/2015, 09:27
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Consulta sobre relaciones SQL BD

Buenas que tal,

Tengo una duda que tanto puede "influir" poner exactamente las relaciones entre tablas es decir.... de 1 a 1 . o de muchos a 1.. o 1 a mucho.

Es decir al final la data entra igual a cada tabla y las consultas son las mismas... verdad?

para que se usan entonces.. y porque es necesario saber de cuanto va su relación.?

Agradeceré la respuesta. Disculpen si es una pregunta tonta.
  #2 (permalink)  
Antiguo 03/02/2015, 09:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta sobre relaciones SQL BD

Integridad referencial.

Es un tema crítico de las bases de datos. te sugiero leer los fundamentos de las bases de datos relacionales. Alli se describe el sentido de todo eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/02/2015, 10:01
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Consulta sobre relaciones SQL BD

Cita:
Iniciado por gnzsoloyo Ver Mensaje
[URL="http://es.wikipedia.org/wiki/Integridad_referencial"]Integridad referencial.
[/URL]

Es un tema crítico de las bases de datos. te sugiero leer los fundamentos de las bases de datos relacionales. Alli se describe el sentido de todo eso.
Gracias, acabo de revisarlo... y por lo que entiendo habla de la entidad - relación.

el uso de tablas relacionas (eso lo sé). pero aún tengo la duda sobre la "identificación" de los valores de relación .. 1 - muchos , etc. Lo consulto aquí porque cuando busco información la mayoria deja de lado ese tema o no lo explica bien.

Yo uso tablas relacionadas y sé identificar los valores de relación pero mi duda esta...en practica de que nos sirve.?


Por ahi alguien que haya visto el tema en la practica?
  #4 (permalink)  
Antiguo 03/02/2015, 10:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta sobre relaciones SQL BD

Cita:
Gracias, acabo de revisarlo... y por lo que entiendo habla de la entidad - relación.
¿Y por qué crees que existen las relaciones entre tablas?
En serio... ¿No ves cuál es el paso de una cosa a la otra?

Las tablas son las representaciones físicas de las entidades, luego de realizar las transformaciones necesarias para normalización, por ejemplo. Es el modelo físico que cumple las relgas del modelo lógico E-R.

Una de las consecuencias de esa transformación está en la definición de las relaciones por medio de PK<-FK, que precisamente crea restricciones a nivel físico para asegurar la integridad de la información, además de implementar las resitricciones de integridad de datos definidas por las reglas de negocio.
Sin esas relaciones y sin esas restricciones no podrías diseñar sistemas de funcionamiento consistente. Simplemente, por ejemplo, los bancos no podrían trabajar, la administración publica tampoco, y las empresas ni siquiera podrían vender un alfiler.
Ese tipo de cosas existe en TODAS las bases de datos.

En serio, desconocer esto es grave.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 03/02/2015, 10:33
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Consulta sobre relaciones SQL BD

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Y por qué crees que existen las relaciones entre tablas?
En serio... ¿No ves cuál es el paso de una cosa a la otra?

Las tablas son las representaciones físicas de las entidades, luego de realizar las transformaciones necesarias para normalización, por ejemplo. Es el modelo físico que cumple las relgas del modelo lógico E-R.

Una de las consecuencias de esa transformación está en la definición de las relaciones por medio de PK<-FK, que precisamente crea restricciones a nivel físico para asegurar la integridad de la información, además de implementar las resitricciones de integridad de datos definidas por las reglas de negocio.
Sin esas relaciones y sin esas restricciones no podrías diseñar sistemas de funcionamiento consistente. Simplemente, por ejemplo, los bancos no podrían trabajar, la administración publica tampoco, y las empresas ni siquiera podrían vender un alfiler.
Ese tipo de cosas existe en TODAS las bases de datos.

En serio, desconocer esto es grave.
Creo que no me deje entender yo sé de lo que indicas, uso tablas relacionas con PK y FK.
sé también que con los indices cluster que me dan las PK apoya que las consultas se realicen mas rápido (para no entrar en detalles). Sé también que las tablas relacionadas apoyan con la integridad de los datos y etc.

mi consulta es o era: De que me sirve saber si una tabla relacionada a otra tiene por relación de 1 a muchos o de muchos a 1?. es necesario identificar esta "cantidad" de relación?.

Si igual es PK Y FK.
  #6 (permalink)  
Antiguo 03/02/2015, 10:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta sobre relaciones SQL BD

Cita:
mi consulta es o era: De que me sirve saber si una tabla relacionada a otra tiene por relación de 1 a muchos o de muchos a 1?. es necesario identificar esta "cantidad" de relación?.
Por supuesto que sirve...
Si no defines correctamente la relación, podrías entrar N veces en la tabla dependiente un registro que sólo debe entrar una vez, o viceversa, 1 vez, uno que corresponde a una relación debería poder ingresar varios.

Miralo en un ejemplo práctico: Si tienes una tabla de cargas sociales de un emeplado, donde sólo puedes indicar un único hijo a su cargo ¿cómo harías para registrar cuando tiene más de uno?
A su vez, si un usuario sólo puede tener un único perfil asignado por seguridad informática, ¿como evitas que aparezcan multiples perfiles asociados al mismo?

Este tipos de restricciones son las que se deben definri al crear las tablas y para evitar errores de parte de la interfaz silla-teclado (el inútil a cargo de ingresar los datos, y el otro inutil que programa algo espantosamente).
Te sorprendería las metidas de pata que llegan a hacer los programadores y que sólo protegiendo la estructura de la base se evitan.

TE doy otro ejemplo: Supongamos que manejas la base de datos de una aseguradora, si no restringes la relación entre polizas y siniestros, pordrías relacionar tranquilamente una msima póliza de un asegurado, con dos informes de destrucción total de un vehículo, permitiendo que el asegurado cobre dos veces el segudo por el mismo vehiculo.

¿Te parece sensato? ¿Qué? ¿El fulano detruyó dos veces el mismo auto completamente? ¿Cömo hizo?

No creas que lo que te digo es un invento, he visto casos de seguros con errores de esa clase, y no "algunos" en una base. Miles. Todo porque un ignorante no validó correctamente las restricciones a nivel tabla para evitar el problema.
Y hasta que salta, pasa tiempo. La plata se pierde y tu, pierdes el trabajo.

También fui testigo de un caso una empresa de medicina prepaga donde por un error de ese tipo (restricciones de unicidad) se perdieron dieciocho meses de facturación registrada, cuando se corrieron procesos de consolidación de datos. Se tardó mas de seis meses en rehacer la información.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/02/2015 a las 11:03
  #7 (permalink)  
Antiguo 03/02/2015, 11:04
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Consulta sobre relaciones SQL BD

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Por supuesto que sirve...
Si no defines correctamente la relación, podrías entrar N veces en la tabla dependiente un registro que sólo debe entrar una vez, o viceversa, 1 vez, uno que corresponde a una relación debería poder ingresar varios.

Miralo en un ejemplo práctico: Si tienes una tabla de cargas sociales de un emeplado, donde sólo puedes indicar un único hijo a su cargo ¿cómo harías para registrar cuando tiene más de uno?
A su vez, si un usuario sólo puede tener un único perfil asignado por seguridad informática, ¿como evitas que aparezcan multiples perfiles asociados al mismo?

Este tipos de restricciones son las que se deben definri al crear las tablas y para evitar errores de parte de la interfaz silla-teclado (el inútil a cargo de ingresar los datos, y el otro inutil que programa algo espantosamente).
Te sorprendería las metidas de pata que llegan a hacer los programadores y que sólo protegiendo la estructura de la base se evitan.

TE doy otro ejemplo: Supongamos que manejas la base de datos de una aseguradora, si no restringes la relación entre polizas y siniestros, pordrías relacionar tranquilamente una msima póliza de un asegurado, con dos informes de destrucción total de un vehículo, permitiendo que el asegurado cobre dos veces el segudo por el mismo vehiculo.

¿Te parece sensato? ¿Qué? ¿El fulano detruyó dos veces el mismo auto completamente? ¿Cömo hizo?

No creas que lo que te digo es un invento, he visto casos de seguros con errores de esa clase, y no "algunos" en una base. Miles.
Totalmente claro amigo, muchas gracias por la explicación... Tenia una idea vaga de para que servia, pero con lo que acabas de explicar .... entiendo la importancia que tiene. Porque apesar de las restricciones que pueden usar los "programadores" de algunas interfaz... pueden saltarse algo.

esa era mi duda y la resolviste. saludos!

Etiquetas: bd, relaciones, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.