Consultas Que Involucran Mas de Una Relacion

Integrantes: Miguel Pérez Francis Durán Yohannys Arrieche Sección: IN2121 Prof.: Simón Ramos PNF en Informática Barquisi

Views 53 Downloads 0 File size 350KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Integrantes: Miguel Pérez Francis Durán Yohannys Arrieche Sección: IN2121 Prof.: Simón Ramos PNF en Informática Barquisimeto; Mayo 2015

CONSULTAS QUE INVOLUCRAN MAS DE UNA RELACION

PRODUCTOS Y JOIN Joins (Cruces) El siguiente ejemplo muestra como las joins (cruces) se realizan en SQL. Para cruzar tres tablas SUPPLIER, PART y SELLS a través de sus atributos comunes, formularemos la siguiente instrucción: SELECT S.SNAME, P.PNAME FROM SUPPLIER S, PART P, SELLS SE WHERE S.SNO = SE.SNO AND P.PNO = SE.PNO;

y obtendremos la siguiente tabla como resultado: SNAME | PNAME -------+------Smith | Tornillos Smith | Tuercas Jones | Levas Adams | Tornillos Adams | Cerrojos Blake | Tuercas Blake | Cerrojos Blake | Levas

ATRIBUTOS SIN AMBIGÜEDAD Un atributo es información que se puede añadir a los metadatos de un módulo de código. Esta información puede ser referente tanto al propio módulo o el ensamblado al que pertenezca como a los tipos de datos definidos en él, sus

miembros, los parámetros de sus métodos, los bloques set y get de sus propiedades e indizadores o los bloques add y remove de sus eventos. En C# se incluyen numerosos modificadores que nos permiten asociar información a los metadatos de un módulo. Por ejemplo, con los modificadores public, protected, private, internal o protected internal podemos añadir información sobre la visibilidad de los tipos del módulo y de sus miembros. Pues bien, los atributos pueden verse como un mecanismo mediante el cual el programador puede crear sus propios modificadores. Un ejemplo de atributo podría ser uno llamado Ayuda que pudiese prefijar las definiciones de miembros de tipos e indicase cuál es la URL donde se pudiese encontrar

información

detallada

con

ayuda

sobre

el

significado

del

miembro prefijado.

INTERPRETACION DE QUERIES MULTIRELACION El comando QUERY busca los registros que corresponden al criterio especificado en criterioBusqueda y devuelve una selección de registros de tabla. QUERY modifica la selección actual de tabla para el proceso actual y vuelve el primer registro de la nueva selección el registro actual. Si omite el parámetro tabla, el comando se aplica a la tabla por defecto. Si no se ha definido una tabla por defecto, se genera un error. Si no especifica criterioBusqueda ni el parámetro *, QUERY muestra la caja de diálogo del editor de búsquedas para tabla (excepto cuando es la última fila de una búsqueda múltiple): El usuario construye la búsqueda, luego hace clic en el botón Buscar o Buscar en la selección. Si la búsqueda se realiza sin interrupciones, la variable sistema OK toma el valor 1. Si el usuario hace clic en Cancelar, el comando QUERY es interrumpido sin realizar la búsqueda y la variable OK toma el valor 0 (cero).

UNION INTERSECCIONN Y DIFERENCIAS DE CONSULTAS Unión Permite combinar datos de dos relaciones. (SELECT * FROM PROFESOR) UNION (SELECT * FROM ESTUDIANTE)

SELECT * FROM (TABLE PROFESOR UNION TABLE ESTUDIANTE) UNION ALL no elimina filas duplicadas

Intersección Permite identificar las tuplas comunes a dos relaciones. (SELECT * FROM PROFESOR) INTERSECT (SELECT * FROM ESTUDIANTE) SELECT * FROM (TABLE PROFESOR INTERSECT TABLE ESTUDIANTE) INTERSECT ALL no elimina filas duplicadas

Diferencia Identifica las tuplas de una relación que no están en otra. (SELECT * FROM PROFESOR) EXCEPT (SELECT * FROM ESTUDIANTE) SELECT * FROM (TABLE PROFESOR EXCEPT TABLE ESTUDIANTE) EXCEPT ALL no elimina filas duplicadas

SUB-CONSULTAS QUE PRODUCEN VALORES ESCALARES En su forma más sencilla, una subconsulta es una subconsulta escalar que retorna un único valor. Una subconsulta escalar es un operando simple, y puede usarlo prácticamente en cualquier sitio en que un valor de columna o literal sea legal, y puede esperar que tenga las características que tienen todos los operandos: un tipo de datos, una longitud, una indicación de si puede ser NULL, etcétera. Por ejemplo:

CREATE TABLE t1 (s1 INT, s2 CHAR(5) NOT NULL); INSERT INTO t1 VALUES(100, 'abcde');

SELECT (SELECT s2 FROM t1);

CONDICIONES QUE INVOLUCRAN RELACIONES 1. EXISTS R : TRUE sii R es una relación no vacía 2. s IN R : TRUE si s esta en R, Sea s un escalar , R debe ser una relación compuesta por un único atributo 3. s op ALL R , op = {,,=, …}: TRUE si s es mayor, menor, etc que TODOS los valores de R. 4. s op ANY R : TRUE si s es mayor, menor, … que al menos un valor de R

SUB-CONSULTAS EN CLAUSULA FRON En la cláusula FROM hemos introducido un alias al nombre para cada relación porque hay atributos con nombre común (SNO y PNO) en las relaciones. Ahora podemos distinguir entre los atributos con nombre común simplificando la adicción de un prefijo al nombre del atributo con el nombre del alias seguido de un punto. La join se calcula de la misma forma, tal como se muestra en Una Inner Join (Una Join Interna). Primero el producto cartesiano: SUPPLIER × PART × SELLS Ahora seleccionamos únicamente aquellas tuplas que satisfagan las condiciones dadas en la cláusula WHERE (es decir, los atributos con nombre común deben ser iguales). Finalmente eliminamos las columnas repetidas (S.SNAME, P.PNAME).

OPERACIONES SOBRE RELACIONES COMPLEJAS

Algebra relacional El álgebra relacional es un tipo de álgebra con una serie de operadores que trabajan sobre una o varias relaciones para obtener una relación resultado. Es la base indispensable para poder escribir buenas consultas en SQL.

Las operaciones más importantes disponibles en álgebra relacional son:

 Las

operaciones

de

conjunto

aplicadas

a

relaciones:

unión(∪),

intersección(∩) y diferencia(-)  Operaciones que eliminan una parte de las relaciones: selección(σ) y proyección(Π)  Operaciones que combinan las tuplas de dos relaciones: producto cartesiano(x), combinacion natural (> 1;

y obtendremos: SNO | SNAME | COUNT -----+-------+------1 | Smith | 2 3 | Adams| 2 4 | Blake | 3