relacional database nhibernate relational-algebra

database - relacional - ¿Qué es una proyección?



relational algebra database (6)

¿Qué es una Proyección, en términos de la teoría de la base de datos y NHibernate al usar SetProjection ()?


En términos de hibernación, es como especificar qué columnas seleccionar. A diferencia de dejar que las asignaciones determinen qué columnas se obtienen. Esto significa que puede especificar funciones sql, subconsultas, una sola columna, o tal vez todo lo anterior a través de una ProjectionList. Por ejemplo, si desea contar las filas en una tabla SetProjection(Projections.RowCount()) .


La proyección es una de las operaciones básicas de álgebra relacional. Toma una relación y una lista (posiblemente vacía) de atributos de esa relación como entrada. Emite una relación que contiene solo la lista de atributos especificada con tuplas duplicadas eliminadas . En otras palabras, la salida también debe ser una relación.

Ejemplo, si la relación R {A, B} contiene tres tuplas {1,10}, {2,10}, {3,20}, entonces la proyección de R sobre la lista de atributos {B} contendría 2 tuplas: { 10}, {20}.

En resumen, la proyección es más o menos equivalente a SELECT DISTINCT en SQL (excluyendo casos con nulos y columnas duplicadas).


Muy simplemente, es una función que toma una entrada (por ejemplo, una fila de la base de datos) y produce una salida (por ejemplo, una de las columnas de la fila, o quizás algún cálculo basado en múltiples columnas).


Proyección significa subconjunto de columnas en una consulta.

select x, y, z from YourTable

x, y, z es la proyección aquí.


Si está familiarizado con las tablas SQL o de base de datos: Proyección se refiere a la cantidad de campos / columnas / atributos que debe devolver. La selección se refiere a la cantidad de filas / registros que se devolverán. Hay buenas explicaciones en video here y here


También es proyección de llamada, por favor verifique el diagrama

La proyección reacciona a los eventos en el sistema

Proyecto es simple oyente .