stringtranslate.com

Proyección (álgebra relacional)

En álgebra relacional , una proyección es una operación unaria escrita como , donde es una relación y son nombres de atributos. Su resultado se define como el conjunto obtenido cuando los componentes de las tuplas en se restringen al conjunto – descarta (o excluye ) los otros atributos. [1]

En términos prácticos, si se piensa en una relación como una tabla, entonces se puede pensar en la proyección como la selección de un subconjunto de sus columnas. Por ejemplo, si los atributos son (nombre, edad), entonces la proyección de la relación {(Alice, 5), (Bob, 8)} sobre la lista de atributos (edad) da como resultado {5,8}: descartamos los nombres y solo sabemos qué edades están presentes.

Las proyecciones también pueden modificar los valores de los atributos. Por ejemplo, si tiene atributos , , , donde los valores de son números, entonces es como , pero con todos los valores de a la mitad. [2]

Conceptos relacionados

El concepto estrechamente relacionado de 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, al proyectar sobre el segundo componente se obtiene 7.

La proyección es la contraparte del álgebra relacional de la cuantificación existencial en la lógica de predicados . Los atributos no incluidos corresponden a variables cuantificadas existencialmente en el predicado cuya extensión representa la relación de operandos. El ejemplo siguiente ilustra este punto.

Debido a la correspondencia con la cuantificación existencial, algunas autoridades 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, y eso se hizo en ISBL y en varios lenguajes que se han inspirado en ISBL.

Un concepto casi idéntico ocurre en la categoría de los monoides , llamado proyección de cadena , que consiste en eliminar todas las letras de la cadena que no pertenecen a un alfabeto determinado .

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

Como ejemplo, considere las relaciones representadas en las dos tablas siguientes, 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

Más formalmente, la semántica de la proyección se define de la siguiente manera:

¿Dónde está la restricción de la tupla al conjunto de modo que

donde es un valor de atributo, es un nombre de atributo y es un elemento del dominio de ese atributo — ver Relación (base de datos) .

El resultado de una proyección se define solo si es un subconjunto del encabezado de .

No es posible realizar proyecciones 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 se pueden representar como tablas.

Véase también

Referencias

  1. ^ "Álgebra relacional". cs.rochester.edu . Consultado el 28 de julio de 2014 .
  2. ^ http://www.csee.umbc.edu/~pmundur/courses/CMSC661-02/rel-alg.pdf Consulte el problema 3.8.B en la página 3