プログラマーではない人(PC初心者)にわかるように説明していただけますでしょうか。
また余裕のある方は「検索クエリ」とは何かも説明していただけるとうれしいです。
"IT用語辞典"や"はてなキーワード"の説明ではよくわかりませんでした。
IT用語辞典
http://e-words.jp/w/E382AFE382A8E383AAE383BC.html
<引用>
"データベース管理システムに対する処理要求(問い合わせ)を文字列として表したもの。データの検索や更新、削除などの命令をシステムに発行するのに使われる。検索クエリーでは、対象となるテーブルやデータの抽出条件、並べ方などを指定する。一度作成したクエリーは保存しておいて何度も使うことができるようになっているものが多い。リレーショナルデータベースでは、クエリーの記述にSQLという言語を使うことがほとんどである。"
はてなキーワード
http://d.hatena.ne.jp/keyword/%A5%AF%A5%A8%A5%EA
<引用>
"データベースの分野においては、データベースに対して与える検索条件のことをいう。"
もしコンピュータに馴染みの薄い人に説明するとしたら、こんな感じにします。
-
コンピュータ用語としてだけでなく一般的に言えば、クエリ (query) とは質問や問い合わせのことです。乱暴に言えばquestionとほぼ同じで、誰か(あるいは何か)に対して、回答を期待して行う問い合わせ、と思えば間違いありません。昔は「質問語」と呼ばれたこともあります。
問い合わせを受ける対象によって、質問のしかたを変えるのは誰でもよくあることだと思いますが、人間の場合は、ふつうの言葉 (自然言語) で問い合わせても、あるいは曖昧な尋ね方をしても、相手の意を汲んで回答してくれることが多いですよね。
これがコンピュータの場合、曖昧な尋ね方をすると、期待した回答が返ってくることはまずありません。そのため、ある決まった特殊な文法で問い合わせることで、厳密な問い合わせを行うことになります。
たとえばデータベースについて考えてみます。データベースはデータを保存するという基本的な仕組みしか持っていないので、自然言語を聞いてどんなデータを返せばよいか、なんて解釈はしてくれません。データベースに問い合わせるためには、ふつうはSQLという、データベースに対する問い合わせ専用の文法を持った言語を使います(*1)。だから、データベースに対しては、SQLを使ってクエリを発行することになります(*2)。
(*1) リレーショナルデータベースの場合
(*2) 「selectだけじゃなくinsertやupdateもクエリと呼ぶのはおかしい」という意見もあるかもしれませんが、DBに対する問い合わせって、ようするにデータの操作のことだから、データ操作をまとめて、「クエリ」という言葉に代表させたんだろう、と(僕は)理解することにしています
例えば検索エンジンについて考えてみます。(よくある)検索エンジンは、キーワードの集合を受け取って、それに関連したページのリストを返すように作られています。だから、検索エンジンに対しては、キーワードを空白で区切るなどしたリストをクエリとして与えることになります。
これらを総称して「人間がコンピュータに対して、主に情報を得るために入力する質問や問い合わせ」がクエリだと理解して、その形式は対象によっていろいろ異なることが分かれば良いと思います。
それは、しじまもさんがPC初心者ということなのでしょうか。
僕のプログラマーとしての知識が浅いのかもしれませんが、僕は「クエリー」とは何か、ということを意識したことは、正直、あんまりありません。
日本語なら「問い合わせ」ぐらいに置き換えて読んでます。
ユーザーからすれば、プログラムは入力と出力があるブラックボックスみたいなものです。
入力:Webブラウザに入力した文字列 -> [Google] -> 出力:検索結果
入力:SQL文の文字列 -> [データベース] -> 出力:テーブルから抽出、テーブルを操作した結果
ただ、その入力はプログラムに理解できるものである必要があります。
それがクエリです。
Googleに入力する文字列(検索クエリ)はスペースで区切って書きますし、SQLも文法とかルールがあります。
説明になってるか自信がないのですが、とりあえずマニュアル読んだり、使えるのであれば、あまり言葉の定義とか気にするほどのこともない用語のような気もします。
PC初心者について、追記をさせていただきました。
質問が良かったため、30ポイントを付けさせていただきました。
あの書き方だと伝わりにくいという事がわかり勉強になりました。
ありがとうございます!
質問があったため追記します。
わたし自身はPCにある程度は理解があるつもりですが、
専門用語が出てきた際に、理解で着る自信ががないため、
できるだけ平坦で簡素なわかりやすい説明がほしかったため「PC初心者」という表現をしようしています。
はてなで遊べるくらいにはPCを理解しているつもりですが、はてなで遊んでる方々は、レベルが非常に高いので、自意識過剰に記載すると、いい答えが返ってこない気がしてます・・・。
だとしたら、自分で使ってみるのが一番だと思います。
データベースであれば、MySQLやPostgresSQLでもいいですし、もっと小さくて簡素なSQLiteやHSQLDBでも、何でもいいです。持っていればMS Accessでもいいです。
それの入門記事とかマニュアルを読んで、「クエリー」という言葉に違和感がなければ、それで問題ないと思います。
そもそも「クエリー」だけだと、範囲が広すぎて、「何かの"問い合わせ"に使う文字列か何かかな」ぐらいしか僕には分からないです。
あと、書いてて思い出したのですが、jQueryなんかの場合は文字列とかじゃなくて、JavaScriptのライブラリなので、DOM(HTMLの中身)を検索したり、操作する命令自体をクエリーと言っているのだと思います。
うーん、やっぱり、クエリーだけだと範囲が広すぎるので、「プログラムに何らかの問い合わせ」としか言えない気がします。
ごめんなさい。
良い例えなのか分かりませんけど、音楽で「Cというコードの音は何ですか」と聞かれて、「(和音で)ドミソです」と答えるのは勿論正しいのですが、それを知ってるだけなのと、ピアノやギターでそれがすぐ弾けるのと、更に演奏の中の前後関係でCコードを弾くというのは、かなり理解のレベルが違います。
自分が使ってもいない技術をWikipedia読むだけで理解するとか、誰かに分かりやすく説明するというのは、かなり無理があります。
他人に説明したら知ったかぶりになりかねません。
自分が問題なく使えているのであれば、言葉足らずでも、色々やってるうちに初心者の人にも伝えられるものだと思います。
と説教臭い偉そうなことを言える身分でもないのですが、「考えるな!感じろ!」みたいなオチです。申し訳ない。
いずれにしても、ネット上に素晴らしいリソースは一杯あるので、活用すれば色々遊べると思います。
「クエリーという言葉の定義は何か?」よりも、データーベースでSQLが使えたり、JavaScriptが書けたり、Googleに的確な検索文字列を与えることが重要なはずです。
遊んで、体感して、理解していってください。
では。
ありがとうございます。
「使ってみるのが理解が早い」というのは理解しているのですが、
今の所、私が実装する予定はなく言葉の定義を理解したく、
その手間を省く意図でポイント付きの質問をさせていただいております。
とはいえ、丁寧な返答とても助かります。いつかここで目にした情報が役立つ日がくるのは間違いないと思います。ありがとうございます。
ポイントは上記の書き込みに含ませていただきました。
もしコンピュータに馴染みの薄い人に説明するとしたら、こんな感じにします。
-
コンピュータ用語としてだけでなく一般的に言えば、クエリ (query) とは質問や問い合わせのことです。乱暴に言えばquestionとほぼ同じで、誰か(あるいは何か)に対して、回答を期待して行う問い合わせ、と思えば間違いありません。昔は「質問語」と呼ばれたこともあります。
問い合わせを受ける対象によって、質問のしかたを変えるのは誰でもよくあることだと思いますが、人間の場合は、ふつうの言葉 (自然言語) で問い合わせても、あるいは曖昧な尋ね方をしても、相手の意を汲んで回答してくれることが多いですよね。
これがコンピュータの場合、曖昧な尋ね方をすると、期待した回答が返ってくることはまずありません。そのため、ある決まった特殊な文法で問い合わせることで、厳密な問い合わせを行うことになります。
たとえばデータベースについて考えてみます。データベースはデータを保存するという基本的な仕組みしか持っていないので、自然言語を聞いてどんなデータを返せばよいか、なんて解釈はしてくれません。データベースに問い合わせるためには、ふつうはSQLという、データベースに対する問い合わせ専用の文法を持った言語を使います(*1)。だから、データベースに対しては、SQLを使ってクエリを発行することになります(*2)。
(*1) リレーショナルデータベースの場合
(*2) 「selectだけじゃなくinsertやupdateもクエリと呼ぶのはおかしい」という意見もあるかもしれませんが、DBに対する問い合わせって、ようするにデータの操作のことだから、データ操作をまとめて、「クエリ」という言葉に代表させたんだろう、と(僕は)理解することにしています
例えば検索エンジンについて考えてみます。(よくある)検索エンジンは、キーワードの集合を受け取って、それに関連したページのリストを返すように作られています。だから、検索エンジンに対しては、キーワードを空白で区切るなどしたリストをクエリとして与えることになります。
これらを総称して「人間がコンピュータに対して、主に情報を得るために入力する質問や問い合わせ」がクエリだと理解して、その形式は対象によっていろいろ異なることが分かれば良いと思います。
あー!なるほど。クエリに種類があるように見えたのは、その受け取る対象に合わせて、文法(言葉?フォーマット?テンプレート?)を合わせてあげる必要があったためですね。
とてもわかりやすく理解できました。
平坦でわかりやすく書いていただけたため、この回答をベストアンサーとさせていただきました。
ありがとうございました。
あー!なるほど。クエリに種類があるように見えたのは、その受け取る対象に合わせて、文法(言葉?フォーマット?テンプレート?)を合わせてあげる必要があったためですね。
2013/02/04 00:30:27とてもわかりやすく理解できました。
平坦でわかりやすく書いていただけたため、この回答をベストアンサーとさせていただきました。
2013/02/04 00:38:45ありがとうございました。