OPERADORES PRIMITIVOS
- A) Unarios Los operadores unarios tienen como operando una única relación; para su definición utilizaremos la siguiente notación: q Restricción o selección La restricción, también llamada selección, de una relación mediante una expresión lógica da como resultado una relación formada por el subconjunto de tuplas que satisface dicha expresión lógica. Se denota mediante la letra s. s condicion_de_seleccion (nombre_de_relacion) Ejemplo: Dada la tabla AUTOR:
AUTOR
| Nombre | Nacionalidad | Institucion |
| Pepe | España | O.N.U. |
| John | EE.UU. | O.M.S. |
| Perez | España | I.N.I. |
| Suárez | España | I.N.E. |
| Pierre | Francia | N.A.S.A. |
AUTOR
| Nombre | Nacionalidad | Institucion |
| John | EEUU | I1 |
| Juan | España | I2 |
| Pedro | España | I3 |
| Luigi | Italia | I4 |
EDITOR
| Nombre | Nacionalidad | Institucion |
| Juan | España | I2 |
| Chen | EEUU | I5 |
| Smith | EEUU | I6 |
| Pedro | España | I3 |
AUTOR U EDITOR
| Nombre | Nacionalidad | Institucion |
| John | EEUU | I1 |
| Juan | España | I2 |
| Pedro | España | I3 |
| Luigi | Italia | I4 |
| Chen | EEUU | I5 |
| Smith | EEUU | I6 |
Nota: Si la correspondencia de los nombres de los atributos de las relaciones R y R' no fuese 1: 1 sería preciso aplicar la operación de renombrado de atributo en la relación resultante.
Relacion1 - Relacion2
Ejemplo de diferencia de dos relaciones.
AUTOR
| Nombre | Nacionalidad | Institucion |
| John | EEUU | I1 |
| Juan | España | I2 |
| Pedro | España | I3 |
| Luigi | Italia | I4 |
EDITOR
| Nombre | Nacionalidad | Institucion |
| Juan | España | I2 |
| Chen | EEUU | I5 |
| Smith | EEUU | I6 |
| Pedro | España | I3 |
AUTOR - EDITOR
| Nombre | Nacionalidad | Institucion |
| John | EEUU | I1 |
| Luigi | Italia | I4 |
q Producto cartesiano
Producto cartesiano de dos relaciones de cardinalidades m y n es una relación cuyo esquema estará definido sobre la unión de los atributos de ambas relaciones, y cuya extensión estará constituida por las m x n tuplas formadas concatenando cada tupla de la primera relación con cada una de las tuplas de la segunda. Se denota por la letra x. Relacion1 x Relacion2
SOCIO
| Codigo | Nombre | Direccion |
| 1 | Elena | Madrid |
| 2 | Manuel | Bilbao |
LIBRO
| Libro | Autor | Editorial |
| BD | Gardarin | McGraw |
| INFORMIX | Zeroual | Ra-Ma |
SOCIO x LIBRO
| Codigo | Nombre | Direccion | Libro | Autor | Editorial |
| 1 | Elena | Madrid | BD | Gardarin | McGraw |
| 1 | Elena | Madrid | INFORMIX | Zeroual | Ra-Ma |
| 2 | Manuel | Bilbao | BD | Gardarin | McGraw |
| 2 | Manuel | Bilbao | INFORMIX | Zeroual | Ra-Ma |
OPERADORES DERIVADOS
Los operadores derivados son aquellos que se pueden expresar siempre en función de operadores primitivos, pero su introducción tiene por fin la simplificación de las consultas.
La llamada combinación natural (o join natual) es una combinación por igualdad donde se ha eliminado en la relación resultante uno de los atributos idénticos. Es el caso más utilizado de combinación para relaciones que tienen un atributo común (se suele hablar de join para referirse a esta posibilidad por ser el caso más usual). Se denota mediante el símbolo
Relacion1 Relacion2
Relacion1 Relacion2 Ejemplo:
AUTOR
| Nombre | Nacionalidad | Institucion |
| A1 | N1 | I1 |
| A2 | N2 | I2 |
| A3 | N3 | I3 |
| A4 | N4 | I4 |
LIBRO
| Libro | Autor | Editorial |
| L1 | A1 | E1 |
| L2 | A4 | E2 |
| L3 | A1 | E1 |
| L4 | A2 | E3 |
Õ Nombre, Nacionalidad, Institucion, Libro, Editorial (sAUTOR.Nombre=LIBRO.Autor (AUTOR x LIBRO))
| Nombre | Nacionalidad | Institucion | Libro | Editorial |
| A1 | N1 | I1 | L1 | E1 |
| A1 | N1 | I1 | L3 | E1 |
| A2 | N2 | I2 | L4 | E3 |
| A4 | N4 | I4 | L2 | E2 |
La combinación es un producto
AUTOR
| Nombre | Nacionalidad | Institucion |
| A1 | N1 | I1 |
| A2 | N2 | I2 |
| A3 | N3 | I3 |
| A4 | N4 | I4 |
EDITOR
| Nombre | Nacionalidad | Institucion |
| A2 | N2 | I2 |
| A5 | N1 | I5 |
| A6 | N1 | I6 |
| A3 | N2 | I3 |
AUTOR I EDITOR
| Nombre | Nacionalidad | Institucion |
| A2 | N2 | I2 |
| A3 | N2 | I3 |
q División
La división de dos relaciones otra relación cuya extensión estará formada por las tuplas que al completarse con las tuplas de la segunda relación permiten obtener la primera. Se denota por el símbolo :
Relacion1 : Relacion2 = PA(Relacion1) - PA[(PA(Relacion1) x Relacion2) - Relacion1]
A = { Atributos Relacion1 – Atributos Relacion 2}
Ejemplo de división de dos relaciones.
VINO
| Tipo | Cosecha | Calidad |
| Albariño | 1977 | Bueno |
| Ulla | 1978 | Malo |
| Condado | 1977 | Bueno |
| Condado | 1978 | Bueno |
| Amandi | 1978 | Bueno |
CALIDAD_BUENA
| Cosecha | Calidad |
| 1977 | Bueno |
| 1978 | Bueno |
Vinos con calidad buena en todas las cosechas:
AUTOR : CALIDAD_BUENA
| Tipo |
| Condado |
Es un operador muy útil para simplificar consultas como en el ejemplo donde se desea obtener los vinos con buena calidad en todas las cosechas
Los operadores de consulta estándar son los métodos que forman el modelo de Language-Integrated Query (LINQ). La mayoría de estos métodos funciona en secuencias, donde una secuencia es un objeto cuyo tipo implementa la interfaz IEnumerable<(Of <(T>)>)o la interfaz IQueryable<(Of <(T>)>). Los operadores de consulta estándar proporcionan capacidades de consulta que incluyen filtrado, proyección, agregación, ordenación y otras.
Hay dos conjuntos de operadores de consulta estándar de LINQ, uno que funciona sobre objetos de tipo IEnumerable<(Of <(T>)>) y otro que funciona sobre objetos de tipo IQueryable<(Of <(T>)>). Los métodos que constituyen cada conjunto son miembros estáticos de las clases Enumerable y Queryable, respectivamente. Se definen como métodos de extensión del tipo sobre el que operan. Esto significa que se pueden llamar utilizando sintaxis del método estático o sintaxis del método de instancia.
Además, varios métodos de operador de consulta estándar funcionan con tipos distintos de los que se basan en IEnumerable<(Of <(T>)>) o IQueryable<(Of <(T>)>). El tipo Enumerable define dos de esos métodos, que operan sobre objetos de tipo IEnumerable. Estos métodos, Cast<(Of <(TResult>)>)(IEnumerable) y OfType<(Of <(TResult>)>)(IEnumerable), permiten que una colección no parametrizada, o no genérica, pueda ser consultada en el modelo de LINQ. Esto lo consiguen creando una colección de objetos con establecimiento inflexible de tipos. La clase Queryable define dos métodos similares, Cast<(Of <(TResult>)>)(IQueryable) y OfType<(Of <(TResult>)>)(IQueryable), que operan sobre objetos de tipo Queryable.
Los operadores de consulta estándar difieren en el momento de su ejecución, dependiendo de si devuelven un valor singleton o una secuencia de valores. Los métodos que devuelven un valor singleton (por ejemplo, Average y Sum) se ejecutan inmediatamente. Los métodos que devuelven una secuencia retrasan la ejecución de la consulta y devuelven un objeto enumerable.
En el caso de los métodos que operan sobre colecciones en memoria, es decir, aquellos métodos que extienden IEnumerable<(Of <(T>)>), el objeto enumerable devuelto captura los argumentos que se pasaron al método. Cuando se enumera ese objeto, se emplea la lógica del operador de consulta y se devuelven los resultados de la consulta.
En contraste, los métodos que extienden IQueryable<(Of <(T>)>) no implementan cualquier comportamiento de consulta, sino que generan un árbol de expresión que representa la consulta que se va a realizar. El procesamiento de la consulta es administrado por el objeto IQueryable<(Of <(T>)>) del origen.
Las llamadas a métodos de consulta se pueden encadenar juntas en una sola consulta, lo cual permite hacer consultas arbitrariamente complejas.
- Los operadores primitivos se dividen en:
Unarios
Restricción o selección
Proyección
Binarios
Unión
Diferencia
Producto cartesiano
Los operadores derivados tienen por fin simplificar las consultas, se expresan en función de los operadores primitivos.
Combinación o Join.
Combinación por igual.
Combinación natural
Intersección
División: las Duplas que al completarse con las Duplas de la segunda relación permiten obtener la primera, simplifica las consultas.
Operadores de consulta