web-dev-qa-db-ja.com

プロジェクションとは何ですか?

SetProjection()を使用する場合のデータベース理論とNHibernateの観点から、Projectionとは何ですか?

38
DaveDev

投影は、リレーショナル代数の基本操作の1つです。リレーションと、そのリレーションの属性の(空の場合もある)リストを入力として受け取ります。指定された属性リストのみを含むリレーションを出力します重複するタプルを削除して。つまり、出力もリレーションでなければなりません。

たとえば、リレーションR {A、B}に3つのタプル{1,10}、{2,10}、{3,20}が含まれる場合、属性リスト{B}上のRの射影には2つのタプルが含まれます。{ 10}、{20}。

要するに、射影はSQLのSELECT DISTINCTとほぼ同等です(NULLと重複列のあるケースを除く)。

34
nvogel

非常に簡単に言えば、入力(データベースの行など)を受け取り、出力(行の列の1つ、または複数の列に基づく計算など)を生成する関数です。

31
Jon Skeet

投影とは、クエリ内の列のサブセットを意味します。

select x, y, z from YourTable 

x、y、zはここでの投影です。

12
Bilal Anees

SQLまたはデータベーステーブルに精通している場合:投影は、返されるフィールド/列/属性の数を指します。選択は、返される行/レコードの数を処理します。良いビデオの説明があります herehere

2
dave Ozoalor

休止状態に関しては、選択する列を指定するようなものです。マッピングにフェッチする列を決定させるのとは対照的に。これは、ProjectionListを使用して、SQL関数、サブクエリ、単一の列、または上記のすべてを指定できることを意味します。たとえば、テーブルSetProjection(Projections.RowCount())の行をカウントする場合。

2
dotjoe