domingo, 2 de diciembre de 2007

Consultas Multitablas

Reunión de tablas es el proceso de la formación de pares de filas correponden al contenidode las columnas relacionadas

Reunión de dos tablas. Contiene datos de tablas originales

Equirreunión. Es la correpondencia exacta entre dos reuniones.

Las reuniones es un proceso de consulta multitabla que maneja SQL en la condición de búsqueda con la instrucción SELECT especificando el encaje la correspondencia de columnas.

La base de datos relacional almacena datos de las columnas de las relaciones entre tablas haciendo corresponder los contenidos de las columnas relacionadas incorporadas en la base de datos no tienen mecanismos para relación de filas, el único mecanismo es la relación de datos entre tablas .

Las consultas multitablas mas comúnes involucran dos tablas que una relación natural Padre/Hijo.

La relación Padre/Hijo en una consulta debe especificarse con una condición de búsqueda comparando la clave (es el hijo de la relación) y primaria(Padre) de la relación de base de datos de SQL.

La consulta multitabla especifica las columnas conicidentes de una condición de búsqueda que pueden combinarse con otras condiciones de búsqueda para limitar el contenido de los resultados .

Las reuniones multicolumnaque incluyen dos tablas son menos comunes que las reuniones de una única collumna incluyendo también claves externas en una consulta, no hay limite para el número de columnas incluida en la condición de encaje, pero las reuniones de las entidades representadas en las tablas de base de datos que se encuentra en una o sólo algunas columnas de las tablas.

SQL puede combinar datos de tres o más tablas usando técnicas básicas de las consultas de dos tablas .

La relación varios a varios y uno a varios es diferente de la relación creada las columnas coincidentes de la clave primaria y externa, la instrucción SELECT debe escribir la expresión correcta de la columna.

  • Las reuniones que encajan las claves primarias sonlas claves esternas siempre producen relaciones padre/hijo uno a varios.

  • Otras reuniones también pueden generar relaciones uno a varios si la columna coincide en al menos una de las tablas únicos en todas las filas de las tablas.
  • En general la reunión de las columnas coincidentes albitrarias generan relaciones varios a varios.

SQL permite reunir tablas en términos de otros operadores de comparación. La relación de igualdad no son comunes son útiles para la toma de decisiones y otras aplicaciones mas complejas en la base de datos.

En la siguiente sección se expresan algunas caracteristicas de las consultas multitabla del lenguaje SQL.

    • Los nombres calificados de las columnas se necesitan a veces en consultas multitabla para eliminar referencias ambiguas a columnas.

    • Las selecciones de todas las columnas (SELECT*) tienen un significado especial para las consultas multitablas.

    • Las autoreuniones se pueden usar para crear consultas que la relacione una tabla consigo misma.

    • Las alias de tablas se pueden usar en la cláusula FROM para simplificar los nombres calificados de columnas y permite referencias no ambiguas o columnas en las autocorrecciones.

El nombre calificado de columnas se puede usar en cualquier lugar de la instrucción SELECT que permite un nombre de columna, la tbla especificada en la columna calificada debe coincidir con algunas de las tablas especificadas en la lista FROM.

La desventaja es que el texto de la consulta sea mayor. SQL interactivo hace una consulta sin nombres calificados, y deja que SQL encuentre columnas ambiguas, si SQL informa de un error se edita la consulta para calificar las columnas ambiguas.

SELECT se puede usar para las colum,nas de la tabla nombrada en la cláusula FROM. SQL trata el asterisco(*) como una clase especial de nombre de columna comodín o un nombre de una tabla calificada.

Las consultas multitablas incluyen una relación de una tabla que tiene consigo misma, no permite duplicar contenido de las tablas, SQL solamente hace refencia de un nombre diferente denominado alias de tablas.En las consultas con autoreuniones son requeridas las aliasde tablas.

  • La cláusula FROM identifica todas las tablas que aportan datos a los resultados de la consultas . Cualquier columna referenciada en la instrucción SELECT puede venir de una de las tablas listadas en la consulta de la cláusula FORM.

  • La cláusula FROM especifica la etiqueta que se usa para identificar las tablas en las referencias calificada a columnas dentro de la instruccion SELECT. Si se especificaen las alias de la tabla, se convierte en una etiqueta de la tabla, en caso contrario el nombre de la tabla, tal como aparece en la clausula FROM es el que se convierte en una etiqueta. El requisito para las etiquetas de las tablas es que sean distintas entre si.SQL permite que la clave AS aparezca entre el nombre de la tabla y su alias.

El lenguaje SQL noimpone un número de tablas reunidas en consulta, algunos productos de SQL, si limitan el número de tablas. Las aplicaciones de procesamiento interactivo de transacciones (OLTP,ONLINE TRANSATION PROCESSING) es común que contenga solo una o dos tablas. El usuario introduce uno o dos tablas y necesita una respuesta de la bse de datos en segundo o dos para tener una buena toma de decisiones en las aplicaciones de los resultados de la´consulta que se lleva mas tiempo requiere de minutos o incluso hasta de horas debido a las complejas relaciones de la base de datos.

La estructura de un join es saber determinar el uso de la instrución SELECT saber que es una reunión que deberia usarse en la reunion de varias tablas, las condiciones de búsqueda, los resultados producidos y conocer la teoria de la base de datos realcionales sobre las reuniones.

La multiplicación de las tablas es el producto de dos tablas es otra tabla que consiste en todos los posibles pares de filas de dos tablas. Se podria decir que las filas eliminadas son precisamente las que cumplen con la condición de las columnas coincidentes en la reunión, el producto es parte de la definición formal del procesamiento de SQL de una consulta multitabla

Reglas para el procesamiento consultas multitablas,

  • Si la instrucción es una UNION de instrucciones SELECT aplica los pasos 2 al 5 a cada una de las instrucciones para generar sus resultados individuales.

  • Si se especifica SELECT DISTINCT, elimina todas las filas duplicadas del resultado que se hubiera producido.

  • Si la instrucción es una UNION de instrucciones SELECT, mezcla los resultados de la instrucciones individuales en una única tabla de resultados. Eliminando las filas duplicadas a menos que se especifique UNION ALL.

  • Si hay una cláusula ORDEN BY, ordena los resultados como se especifique

Esto es lo que produciria una consulta multitabla de resulatdos.

La reunión externa (outer join ) denominada a veces reunion interna, es una parte bien asimilada y útil del modelo de datos relacional, y expresión a cierto tipo de consulta se implemento en muchos productos de SQL de marcas diferentes de IBM com Microsoft, Sybase, Oracle e Informix.

Procedimiento para la construcción de la reunion externa:

  • Empezar con la reunion interna de las dos tablas usando las columnas coincidentes de la forma usual.

  • Para cada fila de la primera tabla que no coincida con ninguna de la segunda. anñadir una fila alos resultados los valores de las columnas de la primera tabla y asumir un valor NULL para todas las columnas de la segunda tabla.

  • Para cada fila de la segunda tabla que no coincide con ninguna de la fila de la primera tabla, añadir una fila de resultado usando los valores de las columnas de la segunda tabla y asumiendo un valor NULL para todas las columnas de la primera tabla.

  • La tabla resultante es la union externa de dos tablas.

La unión externa por la izquierda de dos tablas se puden producir los siguientes pasos 1 y 2 de la lista enumerada anterior. pero omitiendo el paso 3., incluyendo copias rellenas con valores NULL de las filas que no encajan en la primera tabla (izquierda), pero incluyendo las filas que no encajen de la segunda (derecha).


La unión externa de la derecha de las dos tablas se produce siguiendo los pasos, y omitiendo los pasos 2, incluyendo copias con los valores NULL de las filas que no encajan de la segunda tabla (derecha) , pero no incluyen las filas que no encajan de la primera tabla (izquierda). L a notación de la unión externa (outer join) indica una condición de reunión con un test de comparación añadiendo un asterisco "*=*" en la cláusula WHERE usando reuniones externas de las tablas.También Oracle tiene una notación pero diferente en la reunión externa inicia con la cláusula WHERE incluyendo entre paréntesis un signo (+) las reuniones externas para la izquierda y derecha usadas también en Oracle.

1 comentario:

José Daniel Guerrero Gálvez dijo...

El contenido esta bien pero la argumentación no es muy clara. Recuerda cuestionar lo que escribes. Con el software también se puede...