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


78

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


楽しい事実:最近(XQueryを使用して)私が日々過ごしているXMLプラットフォームは、これらのAtomic値を呼び出すのが好きです。これは密接に関連しており、参照/検索用語にコメントを追加していると思います。
チャールズロス

回答:


112

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


6
これは、同じ用語が異なるコンテキストで異なるものを意味する方法の良い例です。CやPascalなどの言語では、スカラーは、オブジェクトのような構造化された型ではなくintまたはなどの単純な「ビルディングブロック」型を指します(1つしかない場合でも)。char
カレブ

2
また、配列に加えて、スカラーは構造体やクラスなどの複合データ構造ではありません。配列であることの違いは、同じタイプの複数の要素ですが、構造体は任意のタイプの複数の要素です。

1
また、文字列非スカラー値である可能性があります。Perlなどの言語はそれをスカラーとして扱いますが、Cベースの言語では配列またはオブジェクトであると主張します。

1
@Karl私はPerlを知らないが、あなたは何であるか明確にしてくださいすることができ印章
オタク

2
@Geek、これはのような変数の前に置くシンボルです$variable。参照してくださいウィキペディアのページを
カールビーレフェルト

27

スカラーは、個々の値を保持する単純な変数です。この説明の目的上、スカラーは数字の集合ではなく、単一の数字であると仮定しましょう。

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


19

補足的なニーモニック、カールビーレフェルトの素晴らしい答え:

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

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

固定サイズの整数は、-2147483648から2147483647などのスケールにすることができます。

実数はスケールである場合があります。

文字、ブール、または固定精度の小数はすべてスケール上にある可能性があります。文字列でさえスケールになります(ソートで使用します)。

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

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


10
文字列がスケール上にある場合、なぜ配列ではないのですか?「これは大規模にできますか?」少なくとも私にとっては、直感的な結果は得られません。
VBCPP

2
@VBCPP {1、2}を含むスケールで、{2、1}はどこにありますか?前か後か?これで、順序を強制することができますが、明確な順序はありません。また、私はそれについて簡単に考える方法を提供しようとしていることにも留意してください(Karl Bielefeldtの答えは、より正確な答えをIMOに与える上で良い仕事をします。とはいえ、ここにはコンテキストの要素があります。文字列は、コンテキストに応じてスカラーと見なされる場合とされない場合があります。SQLでは正当な理由でスカラーですが、Cでは正当な理由でそうではありません。
ジョンハンナ

7
これは間違っています。
アンドリューメディコ

2
カール・ビーレフェルトにはダニがあるはずだとは思いますが、明らかに「間違っている」ことに同意しません。これは、コメントするには長すぎるニーモニックであり、より良い答えです。
ジョンハンナ

2
「間違っている」というコメントは、答えが意味を成さず、@ VBCPPの質問に対するあなたの応答が彼の質問に答えないという考えから来ていると思います。ニーモニックのアイデアは確かに好きですが、例えば、整数がスケール上にあることの重要性を説明する必要があります。テレビに猫を入れることについても話しているかもしれません。
-turboladen

10

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

文字列は文字列であるため、文字列を文字列と呼びます。文字はスカラーで、文字列はコンポジットです。1つのデータ(データ)を複数のアドレスに保存すると、行が多少ぼやけます。CPUが1つの命令でデータを処理できる場合、それはスカラーでした。

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

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

免責事項:これについての言及はインターネット上で見つけることができません。学校や古い本から情報を入手しました。以前はそうではなかったので、誰かが私の答えを修正/確認または拒否できるなら、それはいいでしょう。


9

スカラーは、配列、構造、オブジェクト、複素数ベクトル(1、2 / 3、3.14など)、通常整数、固定小数点、または浮動小数点(単一または二重)などの単純な単一の数値です(実数+虚数または大きさ+角度成分)、複数の単一の数値を含む高次元のベクトルまたは行列などのデータ型。

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


これにより、違法な数字違法な素数などの概念が可能になります-「不正な」プログラムの数値表現。
アンドリュー

スカラーは数値である必要はありません。文字列、ブール値、または日付/時刻もスカラーです。
david.pfx

では、複数のスカラーのフィールドに基づいて日付の複雑なクラスを作成するとどうなりますか(たとえば、月のint、年の1つ、日の1つ)。
ピエールアラード

1
@ david.pfx:文字の配列として表示される文字列はスカラーではありません。
MSalters

1
@MSalters:もちろん、ビットの配列として見られる整数もそうではありません。単一の不変の匿名値として格納および取得できるものはすべてスカラーであり、ほとんどの言語では、他の方法で表示できる場合でも、文字列、日付、複素数、ポイントなどでそれを行うことができます。
david.pfx

1

単語スカラーは、スカラの形容詞形式であるラテン語スカラリス(「ラダー」のラテン語)に由来します。英語の「scale」という言葉もscalaから来ています。ソース

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

例えば:

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

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.