Что такое проекция?

Что такое Projection с точки зрения теории баз данных и NHibernate при использовании SetProjection ()?

39
задан nvogel 6 September 2013 в 09:34
поделиться

3 ответа

Проще говоря, это функция, которая принимает ввод (например, строку базы данных) и производит вывод (например, один из столбцов в строке или, возможно, некоторые вычисления, основанные на нескольких столбцах).

31
ответ дан 27 November 2019 в 02:26
поделиться

Проекция - одна из основных операций реляционной алгебры. Она принимает на вход отношение и (возможно, пустой) список атрибутов этого отношения. На выходе получается отношение, содержащее только указанный список атрибутов с удаленными дублирующими кортежами. Другими словами, выходной результат также должен быть отношением.

Пример, если отношение R{A,B} содержит три кортежа {1,10}, {2,10}, {3,20}, то проекция R на список атрибутов {B} будет содержать 2 кортежа: {10},{20}.

Короче говоря, проекция более или менее эквивалентна SELECT DISTINCT в SQL (исключая случаи с нулями и дублирующимися столбцами).

36
ответ дан 27 November 2019 в 02:26
поделиться

С точки зрения гибернации, это все равно что указать, какие столбцы следует выбирать. Вместо того, чтобы позволять сопоставлениям определять, какие столбцы выбираются. Это означает, что вы можете указать функции sql, подзапросы, отдельный столбец или, возможно, все вышеперечисленное через ProjectionList. Например, если вы хотите подсчитать строки в таблице SetProjection (Projection.RowCount ()) .

2
ответ дан 27 November 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: