En álgebra relacional , una proyección es una operación unaria escrita como, dóndees una relación yson nombres de atributos. Su resultado se define como el conjunto obtenido cuando los componentes de las tuplas enestán restringidos al conjunto– descarta (o excluye ) los demás atributos. [ 1 ]
En términos prácticos, si se considera una relación como una tabla, la proyección puede entenderse como la selección de un subconjunto de sus columnas. Por ejemplo, si los atributos son (nombre, edad), la proyección de la relación {(Alice, 5), (Bob, 8)} sobre la lista de atributos (edad) da como resultado {5,8}; hemos descartado los nombres y solo conocemos las edades presentes.
Las proyecciones también pueden modificar los valores de los atributos. Por ejemplo, sitiene atributos,,, donde los valores deson números, entonces es comopero con todoLos valores se redujeron a la mitad. [ 2 ]
Conceptos relacionados
El concepto estrechamente relacionado en la teoría de conjuntos (véase: proyección (teoría de conjuntos) ) difiere del del álgebra relacional en que, en la teoría de conjuntos, se proyecta sobre componentes ordenados, no sobre atributos. Por ejemplo, proyectarsobre el segundo componente da como resultado 7.
La proyección es el equivalente en álgebra relacional a la cuantificación existencial en lógica de predicados . Los atributos no incluidos corresponden a variables cuantificadas existencialmente en el predicado cuya extensión representa la relación del operando. El siguiente ejemplo ilustra este punto.
Debido a la correspondencia con la cuantificación existencial, algunos autores prefieren definir la proyección en términos de los atributos excluidos. En un lenguaje informático, por supuesto, es posible proporcionar notaciones para ambos, como se hizo en ISBL y en varios lenguajes que se inspiraron en ISBL.
Un concepto casi idéntico se da en la categoría de monoides , llamado proyección de cadena , que consiste en eliminar todas las letras de la cadena que no pertenecen a un alfabeto dado .
Cuando se implementa en el estándar SQL, la "proyección predeterminada" devuelve un multiconjunto en lugar de un conjunto, y la proyección π se obtiene mediante la adición de la DISTINCTpalabra clave para eliminar datos duplicados.
Ejemplo
Por ejemplo, consideremos las relaciones representadas en las siguientes dos tablas, que son la relación Persona y su proyección sobre (algunos dicen "sobre") los atributos Edad y Peso :
Supongamos que el predicado de Persona es " Nombre tiene edad años y pesa peso ". Entonces la proyección dada representa el predicado, "Existe Nombre tal que Nombre tiene edad años y pesa peso ".
Nótese que Harry y Peter tienen la misma edad y peso, pero como el resultado es una relación y, por lo tanto, un conjunto, esta combinación solo aparece una vez en el resultado.
Definición formal
De forma más formal, la semántica de la proyección se define de la siguiente manera:
dóndees la restricción de la tuplaal conjuntode modo que
dóndees un valor de atributo,es un nombre de atributo, yes un elemento del dominio de ese atributo — ver Relación (base de datos) .
El resultado de una proyecciónse define solo sies un subconjunto del encabezado de.
Es posible proyectar sobre ningún atributo, lo que da como resultado una relación de grado cero . En este caso, la cardinalidad del resultado es cero si el operando está vacío, y uno en caso contrario. Las dos relaciones de grado cero son las únicas que no pueden representarse como tablas.
Véase también
Referencias
- Álgebra relacional