Articulo de referencia

Proyección (álgebra relacional)

En álgebra relacional , una proyección es una operación unaria escrita como Π a 1 , . . . , a norte ( R ) {\displaystyle \Pi _{a_{1},...,a_{n}}(R)} , dónde R {\displaystyle R} e...

En álgebra relacional , una proyección es una operación unaria escrita comoΠa1,...,anorte(R){\displaystyle \Pi _{a_{1},...,a_{n}}(R)}, dóndeR{\displaystyle R}es una relación ya1,...,anorte{\displaystyle a_{1},...,a_{n}}son nombres de atributos. Su resultado se define como el conjunto obtenido cuando los componentes de las tuplas enR{\displaystyle R}están restringidos al conjunto{a1,...,anorte}{\displaystyle \{a_{1},...,a_{n}\}}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, siR{\displaystyle R}tiene atributosa{\displaystyle a},b{\displaystyle b},do{\displaystyle c}, donde los valores deb{\displaystyle b}son números, entonces Πa, b×0,5, do(R){\displaystyle \Pi _{a,\ b\times 0.5,\ c}(R)} es comoR{\displaystyle R}pero con todob{\displaystyle b}Los valores se redujeron a la mitad. [ 2 ]

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, proyectar(3,7){\displaystyle (3,7)}sobre 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:

Πa1,...,anorte(R)={ t[a1,...,anorte]: tR },{\displaystyle \Pi _{a_{1},...,a_{n}}(R)=\{\ t[a_{1},...,a_{n}]:\ t\in R\ \},}

dóndet[a1,...,anorte]{\displaystyle t[a_{1},...,a_{n}]}es la restricción de la tuplat{\displaystyle t}al conjunto{a1,...,anorte}{\displaystyle \{a_{1},...,a_{n}\}}de modo que

t[a1,...,anorte]={ (a,v) | (a,v)t, a{a1,...,anorte}},{\displaystyle t[a_{1},...,a_{n}]=\{\ (a',v)\ |\ (a',v)\in t,\ a'\in \{a_{1},...,a_{n}\}\},}

dónde(a,v){\displaystyle (a',v)}es un valor de atributo,a{\displaystyle a'}es un nombre de atributo, yv{\displaystyle v}es un elemento del dominio de ese atributo — ver Relación (base de datos) .

El resultado de una proyecciónΠa1,...,anorte(R){\displaystyle \Pi _{a_{1},...,a_{n}}(R)}se define solo si{a1,...,anorte}{\displaystyle \{a_{1},...,a_{n}\}}es un subconjunto del encabezado deR{\displaystyle R}.

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

  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 Véase el problema 3.8.B en la página 3