Ce qui est une Projection?
Qu'est-ce Qu'une Projection, en termes de théorie des bases de données et de NHibernate lorsqu'on utilise SetProjection()?
6 réponses
Projection est l'une des opérations de base de l'Algèbre Relationnelle. Il prend une relation et une liste (éventuellement vide) d'attributs de cette relation comme entrée. Il produit un rapport contenant uniquement la liste des attributs avec des doublons de tuples supprimé. En d'autres termes, le résultat doit aussi ê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 à choisir DISTINCT en SQL (à l'exclusion des cas avec nulls et doubles colonnes).
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).
Projection signifie sous-ensemble de colonnes dans une requête.
select x, y, z from YourTable
x, y, z est la projection ici.
en termes d'hibernation, c'est comme spécifier quelles colonnes sélectionner. Plutôt que de laisser les mappages de déterminer quelles colonnes sont récupérées. Cela signifie que vous pouvez spécifier des fonctions sql, des sous-séries, une colonne simple, ou peut-être tout ce qui précède via une ProjectionList. Par exemple, si vous voulez compter les lignes dans une table SetProjection(Projections.RowCount())
.
si vous êtes familier avec le SQL ou les tables de base de données: Projection désigne le nombre de champs/colonnes/attributs retourner. La sélection traite du nombre de lignes/enregistrements à retourner. Il y a une bonne vidéo d'explications ici et ici
C'est aussi l'appel de projection, veuillez consulter le diagramme
Projection réagit à des événements dans le système
le projet est simple écouteur.