Las UNIONES son importantes porque le permiten mantener una única fuente de verdad y acceder fácilmente a datos dispares.
En teoría, JOIN me permite conectar cualquier dato en la base de datos a cualquier otro dato relacionado simplemente conectando las tablas. Esto significa que puedo crear una estructura completamente normalizada y almacenar cada pieza de datos exactamente una vez en exactamente un lugar. es decir, una base de datos completamente normalizada
Un buen efecto secundario de esto es que no tengo que preocuparme por cosas como sincronizar los datos. Solo hay una entrada y una fuente de verdad. Los números devueltos por una consulta dada son “tan correctos” como pueden ser.
- ¿Cuál sería el código para un texto fijo flotante en el sitio de WordPress?
- ¿Por qué Quora eligió Python para su desarrollo? ¿Qué desafíos tecnológicos enfrentaron los fundadores antes de decidirse por Python en lugar de PHP?
- ¿Se puede construir un navegador web usando C #?
- ¿Cuál es la mejor manera de aprender HTML CSS en MacBook?
- ¿Con qué 10 API de Bitcoin debe comenzar un desarrollador?
El otro efecto secundario es que puedo consultar datos de partes dispares del sistema y reunirlos de una manera que quizás no haya planeado de antemano.
El problema clave aquí es que las uniones no se escalan muy bien en varias computadoras. Se puede hacer, pero es difícil y no es fácil generalizar. La mayoría de las bases de datos “orientadas a documentos” específicamente desean escalar en múltiples computadoras. Por lo tanto, simplemente sueltan las UNIONES y algunas otras funciones de consulta y, de repente, escalar a través de múltiples nodos se vuelve dramáticamente más fácil.
Pero luego también pierdes esos agradables efectos secundarios que enumeré anteriormente.
Por ejemplo, si envía correos electrónicos a los usuarios pero los almacena en diferentes “colecciones”, ¿cómo puede averiguar qué usuarios hacen clic en qué correos electrónicos? No puede unir a los usuarios a los correos electrónicos. Los correos electrónicos probablemente tengan ID de usuario, pero eso no tiene sentido para cualquiera que use el sistema. Puede poner el Nombre para mostrar del usuario en el correo electrónico junto con el ID de usuario, pero ¿y si cambia? Ahora debe asegurarse de que los cambios en el Nombre para mostrar del usuario sucedan en ambos lugares.
O bien, termina escribiendo uniones “ad-hoc” donde extrae todos los correos electrónicos relevantes y extrae a todos los usuarios relevantes y los une manualmente en su código.
Hay una compensación aquí. SQL es dramáticamente más poderoso que la mayoría de los lenguajes de consulta para bases de datos orientadas a documentos. Pero SQL tiene problemas / se vuelve costoso más allá de un solo nodo.
Nota extra
Algunas bases de datos “NoSQL” tienen uniones. De hecho, las bases de datos Graph son explícitamente buenas para hacer combinaciones. También hay un mundo de “bases de datos de objetos” que normalmente también admiten alguna forma de unión.