web-dev-qa-db-fra.com

Qu'est-ce qu'une projection?

Qu'est-ce qu'une projection, en termes de théorie de base de données et NHibernate lors de l'utilisation de SetProjection ()?

38
DaveDev

La projection est l'une des opérations de base de l'algèbre relationnelle. Il prend en entrée une relation et une liste (éventuellement vide) d'attributs de cette relation. Il génère une relation contenant uniquement la liste d'attributs spécifiée avec les tuples en double supprimés. En d'autres termes, la sortie doit également être une relation.

Exemple, si la relation R {A, B} contient trois tuples {1,10}, {2,10}, {3,20} alors la projection de R sur la liste d'attributs {B} contiendrait 2 tuples: { 10}, {20}.

En bref, la projection est plus ou moins équivalente à SELECT DISTINCT en SQL (hors cas avec null et colonnes en double).

34
nvogel

Très simplement, c'est une fonction qui prend une entrée (par exemple une ligne de base de données) et produit une sortie (par exemple une des colonnes de la ligne, ou peut-être un calcul basé sur plusieurs colonnes).

31
Jon Skeet

La projection signifie un sous-ensemble de colonnes dans une requête.

select x, y, z from YourTable 

x, y, z est la projection ici.

12
Bilal Anees

Si vous êtes familier avec les tables SQL ou de base de données: La projection fait référence au nombre de champs/colonnes/attributs à renvoyer. La sélection porte sur le nombre de lignes/enregistrements à renvoyer. Il y a de bonnes explications vidéo ici et ici

2
dave Ozoalor

En termes de mise en veille prolongée, c'est comme spécifier quelles colonnes sélectionner. Au lieu de laisser les mappages déterminer quelles colonnes sont récupérées. Cela signifie que vous pouvez spécifier des fonctions sql, des sous-requêtes, une seule colonne ou peut-être tout ce qui précède via une ProjectionList. Par exemple, si vous souhaitez compter les lignes d'une table SetProjection(Projections.RowCount()).

2
dotjoe