Vous êtes sur la page 1sur 9

Integrantes:

Miguel Prez
Francis Durn
Yohannys Arrieche
Seccin: IN2121
Prof.: Simn Ramos
PNF en Informtica
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 travs de sus atributos
comunes, formularemos la siguiente instruccin:
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 AMBIGEDAD


Un atributo es informacin que se puede aadir a los metadatos de un
mdulo de cdigo. Esta informacin puede ser referente tanto al propio mdulo o
el ensamblado al que pertenezca como a los tipos de datos definidos en l, sus

miembros, los parmetros de sus mtodos, 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
informacin a los metadatos de un mdulo. Por ejemplo, con los modificadores
public, protected, private, internal o protected internal podemos aadir informacin
sobre la visibilidad de los tipos del mdulo 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 podra ser uno llamado Ayuda que pudiese prefijar
las definiciones de miembros de tipos e indicase cul es la URL donde se pudiese
encontrar

informacin

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 seleccin de registros de tabla.
QUERY modifica la seleccin actual de tabla para el proceso actual y vuelve el
primer registro de la nueva seleccin el registro actual.
Si omite el parmetro 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 parmetro *, QUERY muestra la caja
de dilogo del editor de bsquedas para tabla (excepto cuando es la ltima fila de
una bsqueda mltiple):
El usuario construye la bsqueda, luego hace clic en el botn Buscar o
Buscar en la seleccin. Si la bsqueda 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 bsqueda y la variable OK toma el valor 0
(cero).

UNION INTERSECCIONN Y DIFERENCIAS DE CONSULTAS


Unin
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

Interseccin
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 relacin que no estn 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 ms sencilla, una subconsulta es una subconsulta escalar que
retorna un nico valor. Una subconsulta escalar es un operando simple, y puede
usarlo prcticamente en cualquier sitio en que un valor de columna o literal sea
legal, y puede esperar que tenga las caractersticas que tienen todos los
operandos: un tipo de datos, una longitud, una indicacin de si puede ser NULL,
etctera. 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 relacin no vaca
2. s IN R : TRUE si s esta en R, Sea s un escalar , R debe ser una relacin
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 clusula FROM hemos introducido un alias al nombre para cada relacin
porque hay atributos con nombre comn (SNO y PNO) en las relaciones. Ahora
podemos distinguir entre los atributos con nombre comn simplificando la adiccin
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 clusula WHERE (es decir, los atributos con nombre comn 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 relacin resultado. Es la
base indispensable para poder escribir buenas consultas en SQL.

Las operaciones ms importantes disponibles en lgebra relacional son:

Las

operaciones

de

conjunto

aplicadas

relaciones:

unin(),

interseccin() y diferencia(-)
Operaciones que eliminan una parte de las relaciones: seleccin() y
proyeccin()
Operaciones que combinan las tuplas de dos relaciones: producto
cartesiano(x), combinacion natural (><) y theta
Operacin que cambia el nombre de los atributos relacin: renombre()

A continuacin vamos a dar una breve introduccin sobre estas operaciones:

Unin [RS]

La unin de R y S es el conjunto de elementos que existen en R, en S, en las


dos. Un elemento que existe tanto en R como en S aparece solamente una vez en
la unin. En el lenguaje SQL este tipo de operacin se puede realizar con la
clusula UNION
Interseccin [RS]
La interseccin de R y S es el conjunto de elementos que existen en R y en S. En
el lenguaje SQL este tipo de operacin se puede realizar con la clusula
INTERSECT

Diferencia [R-S]
La diferencia de R y S es el conjunto de elementos que existen en R pero no en S.
R-S es diferente a S-R, S-R seria el conjunto de elementos que existen en S pero
no en R. En el lenguaje SQL este tipo de operacin se puede realizar con la
clusula EXCEPT

Seleccin [c(R)]
Esta operacin aplicada a una relacion R, produce una nueva relacin con un
subconjunto de tuplas de R. Este subconjunto de tuplas satisface y cumple cierta
condicin(c)
Proyeccin [a1, a2,..., an (R)]
Esta operacin aplicada a una relacin R, produce una nueva relacin con
solamente los atributos (columnas) especificados por a1, a2,...,an

Producto cartesiano [RxS]


El producto cartesiano de dos relaciones R y S es la relacin que se obtiene de la
combinacin de todas las tuplas de R con todas las tuplas de S. Las tuplas de la
relacin que se obtiene estn formadas por todos los atributos de R seguidos de
todos los atributos de S. En el lenguaje SQL este tipo de operacin se puede
realizar con la clusula CROSS JOIN o separando las relaciones usadas en el
producto con comas, en el FROM de la sentencia SQL.

Combinaciones
Por medio del operador combinacin (JOIN) podemos combinar dos relaciones
segn una condicin para obtener tuplas compuestas por atributos de las dos
relaciones combinadas.

AGRUPACION Y AGREGACION EN SQL


Las funciones de agrupacin y agregacin operan sobre conjuntos de filas para
dar un resultado por grupo.

GROUP BY permite agrupar informacin por columnas SUM suma los valores

Mediante la clusula GROUP BY se dividen las filas que devuelve una consulta en
pequeos grupos. Cuando hagamos uso de esta clusula hay que tener en cuenta

que todas las columnas que pongamos en el SELECT y que NO estn en la


clusula GROUP BY, debern estar en una funcin de agrupacin.

==INCORRECTO==
SELECT FECHA, MONTOFROM INGRESOS
GROUP BY FECHA

==CORRECTO==
SELECT FECHA, SUM (MONTO)
FROM INGRESOS
GROUP BY FECHA

A Continuacin un ejemplo de cmo podemos obtener los ingresos


generados por cada uno de los conceptos correspondientes a cada da.

Las funciones de agrupacin son utilizadas por Sistemas Gestores de


Bases de Datos de manera que operen sobre conjuntos de filas para dar un
resultado por grupo. Existen dos tipos de funciones: funciones de fila nica (single
row functions) y funcionesde agrupacin (aggregate functions). La diferencia
fundamental es que mientras las primeras realizan la accin sobre una nica fila
cada vez, las de agrupacin obtienen un resultado a partir de un conjunto de
elementos. Se trata de seleccionar un conjunto de elementos, filtrarlos por las
condiciones que creamos oportunas y obtener un resultado a partir de l.
Funciones de agregacin primitivas

avg: calcula la media aritmtica de un atributo o una expresin numrica.

min: devuelve el mnimo de un atributo o expresin numrica.

max: calcula el valor mximo de un atributo o expresin numrica.

sum: devuelve la suma total de atributos o expresiones numricas.

count (*): contador de tuplas.

count(distinct): es un contador de tuplas parcial, no tiene en cuenta valores


nulos ni duplicados

CLAUSULA HAVING
La clusula HAVING trabaja de forma muy parecida a la clusula WHERE,
y se utiliza para considerar slo aquellos grupos que satisfagan la cualificacin
dada en la misma. Las expresiones permitidas en la clusula HAVING deben
involucrar funcionen agregadas. Cada expresin que utilice slo atributos planos
deber recogerse en la clusula WHERE. Por otro lado, toda expresin que
involucre funciones agregadas debe aparecer en la clusula HAVING.

Ejemplo Having
Si queremos solamente los proveedores que venden ms de un artculo,
utilizaremos la consulta:
SELECT S.SNO, S.SNAME, COUNT(SE.PNO)
FROM SUPPLIER S, SELLS SE
WHERE S.SNO = SE.SNO
GROUP BY S.SNO, S.SNAME
HAVING COUNT(SE.PNO) > 1;

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

Vous aimerez peut-être aussi