web-dev-qa-db-ja.com

データがスカラーの場合、どういう意味ですか?

スカラーの正確な意味はわかりませんが、スカラーについて正しく考えているかどうかを確認しようとしています。スカラーは、データのタイプが任意のタイプである可能性がある任意性に関連していますか、またはシステムはデータが何であるかを事前に知ることができません。

87
Ryan M

「スカラー」という用語は 線形代数 に由来し、単一の数値をベクトルまたは行列と区別するために使用されます。コンピューティングにおける意味は似ています。整数や浮動小数点のような単一の値を配列のようなデータ構造と区別します。この違いはPerlで非常に顕著で、$ sigil( 's'に似ています)はスカラー変数を示し、@ sigil( 'a'に似ています)は配列を示します。要素自体のタイプとは何の関係もありません。数値、文字、文字列、オブジェクトのいずれかです。スカラーと呼ばれるべき重要なことは、それらのoneがあることです。

123
Karl Bielefeldt

スカラーは単純に 個別の値を保持する変数 です。この説明の目的のために、スカラーが数値のコレクションではなく単一の数値であると仮定しましょう。

たとえば、タプルではなく数値を返すSQLクエリの結果、ExecuteScalar()メソッド の場合 SQLCommand class 。クエリによって返された結果セットの最初の行の最初の列の値を返します。通常は、COUNTやAVERAGEなどの集計値、新しいレコードのID、またはクエリで処理されたレコード数を取得するために使用されます。

29
Robert Harvey

カールビーレフェルトの素晴らしい答えに対する補足のニーモニック:

簡単な考え方としては、「これは大規模にできるのか」ということです。

整数はスケールにできます。

固定サイズの整数は、たとえば、 -2147483648から2147483647まで。

実数はスケールにできます。

文字、ブール、または固定精度の小数はすべてスケール上にあります。文字列でさえ、スケール上に置くことができます(ソートで使用します)。

したがって、「スカラー」です。

データベースの行をスケールに含めることはできません。複素数をスケールにすることはできません。電子メールメッセージを表すオブジェクトをスケール上に置くことはできません。配列、ベクトル、行列はスケール上に置くことはできません。

23
Jon Hanna

コンピューティングにおける多くの用語の場合と同様に;言葉の起源は、より多くの物理的特性に関連しています。スカラーという用語は、コンピューティングでは比較的古いものです。最近ではその定義はそれほど厳密ではありません。コンピュータのメモリにデータを保存する場合、このデータは1つのアドレス(1バイト*)に収まるか、収まらないかのどちらかです。あるときはスカラーと呼ばれ、ないときはコンポジットと呼ばれていました。主に、CPUは一度に1つのアドレス/データ(= 1バイト)しか処理できないためです。 @Karl Bielefeldtが述べたように;用語は確かに代数から取られました。

文字列は文字列なので、文字列と呼びます。文字はスカラーですが、文字列はコンポジットです。 1つのデータ(データム)を複数のアドレスに格納すると、ラインが多少不鮮明になります。次のように考えてください。CPUが1つの命令でデータを処理できるとき、それはスカラーでした。

最近のスカラーは任意の特異値であり、特異値とは言語によって定義が異なる場合があります。整数、浮動小数点数、文字、文字列、ブール値、および列挙型は、最近ではほとんどの場合スカラーと見なされます。配列、リスト、ツリー、オブジェクトなどはそうではありません。

(*わかりやすくするために1バイトと言いますが、技術的には、パンチカードなどで磁気ビットで6ビットがより一般的に使用されていた時代について話しています)

免責事項:インターネット上でこれに関する参考文献を見つけることはできません。学校や古い本から情報を得ました。そのうちの1つ(と思います):1944年からの数学の表とその他の計算の補助。それが以前の状態ではなかったので、誰かが私の答えを修正/確認または拒否できれば、それは素晴らしいでしょう。

12
Evert

スカラーは、配列、構造体、オブジェクト、複素数ベクトル(1、2/3、3.14など)のような単純な単一の数値で、通常は整数、固定小数点、または浮動小数点(単数または倍数)です。実数と虚数またはマグニチュードと角度のコンポーネント)、複数の単一の数値を含む高次元のベクトルまたは行列(など)データ型。

ただし、フラット化してコンピューターメモリの8ビットバイトで表すこともできる種類の非常に複雑な大規模なデータ型は、1つの非常に長い/大きなバイナリスカラー数値としても表すことができることに注意してください。チューリングはこの手法を使用して、コンピュータープログラム全体を1つのスカラー数として表しました。

9
hotpaw2

単語スカラーは、ラテン語の単語スカラリス、つまりscala(「ラダー」のラテン語)の形容詞形式です。英語の単語「スケール」もスカラに由来します。 Source =

スカラーは、個々の値を保持する変数です。

例えば:

スカラー変数:さまざまな学生の名前を変数のセットとして表現しようとしているとしましょう。個々の変数はそれぞれ、次のようにスカラー変数です

NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

スカラー関数:SQLスカラー関数は、入力値に基づいて単一の値を返します。

UCASE() - Converts a field to upper case
LCASE() - Converts a field to lower case
1
Premraj