30/10/2013, 10:39
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: ¿Para que sirven las relaciones en las Bases de Datos? Es una pregunta algo asombrosa, ya que estás preguntando el por qué de algo que es el fundamento de las bases de datos relacionales, sin lo cual todo lo que puedas conocer sobre BBDD no tiene ningún sentido. Es decir: Es el cimiento de todo...
Hay dos conceptos que sin duda te están faltando: Consistencia de Datos e Integridad Referencial. Son temas largos, con muchas cosas para explicar, pero te lo daré en un ejemplo simple:
Supongamos que tienes una base de datos que administra los recursos humanos de una empresa, y que en esa base de datos existe una tabla donde se registran las Cargas Sociales de los empleados, entendiendo por tales a los familiares o personas que ellos tienen a cargo, y por los cuales reciben (por ley) ciertas bonificaciones.
¿Cómo haces para saber a qué empleado pertenecen ciertas personas registradas allí?
Obviamente hay una relación 1:N entre el empleado y las posibles cargas familiares que tenga.
Bueno, entonces, ¿como haces para asegurarte que no exista ninguna posibilidad de que algún programador inútil e incapaz, deje una carga social sin asociarla efectivamente al empleado correspondiente?
...
Simple: FOREIGN KEY entre la carga y el empleado...
¿Se entiende?
Lo que también es evidente es que no has entendido el concepto de JOIN. No es simplemente "juntar" campos. Esos campos deben estar relacionados, si o sí. Si no lo están tienes una bolsa de datos basura, pero no tienes una base de datos.
Eso desde el punto de vista conceptual. Desde el punto de vista de los DBMS, la existencia de una FK genera un índice que administra la relación declarada, y que se usa internamente cuando realizas un INNER JOIN entre dos tablas relacionadas por FK, lo que evidentemente facilita la optimización de las consultas.
Consejo: Ponte a leer en profundidad los fundamentos del modelo E-R y de las bases de datos relacionales, porque este conocimientos es crítico para hacer desarrollos que realmente sirvan.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |