Vous êtes sur la page 1sur 6

Operadores de seleccin ()

Permite seleccionar un subconjunto de tuplas de una relacin (R), todas aquellas que cumplan la(s) condicin(es) P, esto es:

Ejemplo:

Selecciona todas las tuplas que contengan Gmez como apellido en la relacin Alumnos. Una condicin puede ser una combinacin booleana, donde se pueden usar operadores como: combinndolos con operadores . , ,

Operadores de proyeccin ()
Permite extraer columnas (atributos) de una relacin, dando como resultado un subconjunto vertical de atributos de la relacin, esto es:

Donde Ejemplo:

son atributos de la relacin R.

Selecciona los atributos Apellido, Semestre y NumeroControl de la relacin Alumnos, mostrados como un subconjunto de la relacin Alumnos

Operadores de unin () En lgebra relacional la unin de dos relaciones compatibles A y B es: A UNION B o A B Produce el conjunto de todas las tuplas que pertenecen ya sea a A o a B o a Ambas. Al igual que en teora de conjuntos el smbolo representa aqu la unin de dos relaciones.

Ejemplo:

Devuelve todos los Dueos y los Choferes.

Operadores de interseccin () En lgebra relacional la interseccin de dos relaciones compatibles A y B A INTERSECCION B o A B Produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en teora de conjuntos el smbolo representa aqu la interseccin entre dos relaciones. Ejemplo:

Devuelve todos los dueos que tambin son choferes

Operadores de diferencia (resta) (-) En lgebra relacional la diferencia entre dos relaciones compatibles A y B A MENOS B o A B Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B. Ejemplo:

Devuelve todos los dueos que NO son choferes

Operador join (no es unin, innerjoin en SQL)


Unin natural ( ) (Natural Join)

La operacin unin natural en el lgebra relacional es la que permite reconstruir las tablas originales previas al proceso de normalizacin. Consiste en combinar las proyeccin, seleccin y producto cartesiano en una sola operacin, donde la condicin es la igualdad Clave Primaria = Clave Externa (o Fornea), y la proyeccin elimina la columna duplicada (clave externa). Expresada en las operaciones bsicas, queda

Una reunin theta ( -Join) de dos relaciones es equivalente a:

Donde la condicin Si la condicin

es libre.

es una igualdad se denomina EquiJoin.

Producto cartesiano
El producto cartesiano de dos relaciones se escribe como:

Y entrega una relacin, cuyo esquema corresponde a una combinacin de todas las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a los de R seguidos por los de S. Ejemplo:

Muestra una nueva relacin, cuyo esquema contiene cada una de las tuplas de la relacin Alumnos junto con las tuplas de la relacin Maestros, mostrando primero los atributos de la relacin Alumnos seguidos por las tuplas de la relacin Maestros.

SQL

Unin
Si tenemos dividida la informacin de los profesores antiguos y los nuevos en dos relaciones (por ejemplo, por motivos de rendimiento), pero queremos obtener un listado histrico de todos ellos, podemos utilizar el operador UNION de SQL.

SELECT * FROM PROFESORES UNION SELECT * FROM EX-PROFESORES


El operador UNION requiere que los atributos de las relaciones devueltas por las dos SELECT sean del mismo tipo segn el orden de aparicin. Si en una de las tablas este orden fuese diferente, habra que utilizar una proyeccin que alterase el orden. Los nombres de atributos de la nueva relacin sern los de la primera SELECT.

Interseccin
La siguiente consulta en SQL por tanto debera devolver una relacin vaca:

SELECT * FROM PROFESORES INTERSECT SELECT * FROM EX-PROFESORES

Producto cartesiano
El producto cartesiano de dos relaciones en SQL se obtiene simplemente colocando ms de una tabla en la clusula FROM.

SELECT * FROM PROFESORES, DEPARTAMENTOS

Join
Por ejemplo, si queremos obtener la informacin de profesores y departamentos combinada, utilizaremos como combinacin la igualdad de la clave ajena en PROFESORES con la clave primaria en DEPARTAMENTOS:

DPT:=DEPARTAMENTOS PROFESORES[D_nombre = DPT.nombre]DPT


En SQL, la combinacin se hace incluyendo ms de una relacin en la clusula FROM, y la condicin C se coloca como clusula WHERE.

SELECT * FROM PROFESORES AS P, DEPARTAMENTOS AS D WHERE P.D_nombre = D.nombre

Seleccin
En SQL, la seleccin se especifica mediante la clusula WHERE. Por ejemplo:

SELECT * FROM DEPARTAMENTOS WHERE grado-experimentalidad > 1.0 SELECT * FROM PROFESORES WHERE not es doctor and telfono-mvil IS NOT NULL.

Proyeccin
Por ejemplo, si tuvisemos la siguiente extensin de la tabla PROFESORES:

dni apellidos nombre fecha-nacimiento es-doctor telfono-mvil D_nombre 32323 Prez Juan 30/10/1965 true 65454545 Matemticas 4434343 Dez Jos 30/10/1970 true 65789767 Historia 23423432 Snchez Juan 30/10/1980 false 66789899 Matemticas
La siguiente sentencia SELECT hace una proyeccin del nombre y los apellidos.

SELECT nombre, apellidos FROM PROFESORES


Es importante notar que la siguiente sentencia no devolvera una relacin, ya que tendra dos tuplas repetidas.

SELECT nombre FROM profesores


Para asegurar que el resultado es una relacin en el sentido matemtico, hay que utilizar el modificador DISTINCT.

SELECT DISTINCT nombre FROM profesores

Diferencia
SELECT nombre_cliente FROM prestamo WHERE nombre_sucursal = Principal MINUS SELECT nombre_cliente FROM deposito WHERE nombre_sucursal = Principal O SELECT nombre_cliente FROM prestamo WHERE nombre_sucursal NOT IN(SELECT nombre_cliente FROM deposito WHERE nombre_sucursal = Principal)

Vous aimerez peut-être aussi