2011-09-20 11 views
23

新しいデータベースを作成するとき、照合タイプを設定するか、デフォルトの.... fineを設定する必要がありました。Kanatype Sensitive KSとwidth sensitiveの意味

実際に私はKanatype Sensitive(KS)と幅に敏感な手段が何であるかを知る必要があります。例えば、大文字と小文字の区別は大文字と小文字に敏感であるということです。センシティブな??

答えて

31

どちらもソートと関係がありますが、通常はこの2つのオプションを選択しません。ここでは、Microsoftの説明couresyです。 ひらがなとカタカナ:

Kanatype敏感

は、かな文字の2種類を区別します。このオプションが選択されていない場合

、SQL Serverは、ひらがなと カタカナ文字が目的

幅敏感

シングルバイト文字と同じ文字を区別をソートするための同等であると考えて の場合、2バイト文字で表されます。

このオプションが選択されていない場合、SQL Serverは、同じ文字のシングルバイト と2バイト表現が並べ替えの目的で同じ とみなします。

+4

Kanatypeは日本語のみのためであれば、なぜそのようなペルシャ語やアラビア語など他の言語で提供されていますか? – Breeze

+0

@Hossein:ドイツ語やフランス語にも存在します。これは、典型的な西洋のアドレス帳にいくつかの日本の名前を持つことができるという事実と関係しています。 SQL Serverは、指定された言語に関してソートする方法を知る必要があります。 –

+0

@Hossein:ありがとうございます。しかし、それは西洋言語では論理的かもしれませんが、アラビア語やペルシア語(Farsi)など、右から左、中東の言語はどうですか?これらの言語の特定のアドレス帳では、日本語のキャラクター(言葉だけではありません)が登場します。 – Breeze

7

通常、並べ替える必要がある日本語のテキストを保存する場合は、おそらくカナタイプを区別しないでください。なぜあなたはこれを好きですか?それは、日本語の面でより直感的なソートを行うからです。

英語で書くシステムは1つしかないので、アルゴリズム的にソートするのは簡単です。文字コード(アルファベット順)で文字を並べるだけで済みます。しかし、日本語では、同等の音を書く方法が複数あるので、並べ替えはややこしいことがあります。ひらがなとカタカナのアルファベットは別々のUnicodeブロックに分かれているので、 "Kanatype sensitivity"でソートすると完全に直感的ではない結果に終わります。

あなたが並べ替えたいと思った名前のリストを持っていたと想像:

{ "ピカチュウ"、 "さとし"、 "マリオ"、 "まちだ"、 "はるか"} リストにローマ字と等価です:

{ "ピカチュウ"、 "智"、 "マリオ"、 "町田"、 "春香"} ソートkanatype敏感、あなたは次のような結果になるだろう時:

{ "さとし"、」はるか"、"まちだ "、"ピカチュウ "、"マリオ "} {"聡 "、"はっか "、"町田 "、"ピカチュウ "、"マリオ "} kanatype小文字を区別しないソートされたときに、あなたの代わりにこのような結果になるだろう:

{ "さとし"、 "はるか"、 "ピカチュウ"、 "まちだ"、 "マリオ"} { "智"、 "春香"、 "ピカチュウ"、" Machida "、" Mario "} 日本語のスピーカーには、結果が実際に文字セットに基づいてではなく音声でソートされるので、2番目の並べ替えはより直観的です。「まちだ」と「マリオ」はどちらも同じ音で始まりますが、ひらがな「ma」を使用し、もう片方はカタカナ「ma」を使用するため、カナタイプの感度を有効にすると分割されます。 kanatype insensitivityでは、リストの適切なソートを行うことができます。その結果、2つの単語は、筆記体の違いにもかかわらず、リストの隣に表示されます。

英語の類義語は大文字と小文字を区別します。あなたが辞書のための単語のリストを並べ替えることを想像してみてください。それらのうちのいくつかは固有名詞ではありません。

{"New York"、 "new"、 "jet"、 "Japan"、 "squirm" "SQL"} 大文字と小文字が同じ文字を表し、文字コードに基づいて並べ替えるという事実を無視した場合、次のようになります。

{"日本"、 "ニューヨーク"、 "SQL "、" jet "、" new "、" squirm "} このようにソートされた辞書は、特に大文字か小文字かどうかを知らずに単語を検索したい場合には、ほとんど役に立ちません。最後の部分を他のすべての単語でチェックする前に、すべての固有名詞で辞書の最初の部分をチェックする必要があります。

「A」と「a」を別々の文字コードを使用していても同じ文字として扱う、大文字と小文字を区別しない並べ替えを実行した場合。

{"日本"、 "ジェット"、 "新"、 "ニューヨーク"、 "スクラム"、 "SQL"} 一般的に、あなたがKanatypeの機密性を常に無効にする必要があります。電話帳検索ではカナタイプに敏感です。日本語では、作業する必要がある追加の文字タイプ、漢字もあります。漢字は、ほとんどの場合、それぞれの漢字を読む方法が複数あり、漢字にはアルファベット順がありません。日本人を対象としたほとんどのフォームには通常、通常は書き込まれるユーザーの名前と、カタカナで完全に書き込まれたユーザーの名前の2つのフィールドがあります。これにより、漢字ではあいまいな名前を正しく発音する方法だけでなく、ソートカナタイプを区別しないように、明確なカタカナのみのフィールドでソートすることができます。

詳細については、この優秀な記事をチェックすることをお勧めします。これは、日本語でのソートの問題を私よりもはるかに優れています。

TL; DR:カナタタイプの非感受性により、日本語のテキストをより直感的にソートできます。そうしないと理由がない限り、通常は常に有効にする必要があります。

参考:https://japanese.stackexchange.com/questions/29612/what-do-you-need-kanatype-sensitivity-for