Der SQL Anywhere-Kollatierungsalgorithmus bietet angemessene Möglichkeiten für Vergleiche, Sortierungen und Groß-/Kleinschreibungskonvertierungen von Einbyte- und Mehrbyte-Zeichensätzen. Der Algorithmus ist platzsparend und schnell. Die zugeordnete Form einer Zeichenfolge, wie z.B. ein Index, hat dieselbe Länge wie die ursprüngliche Zeichenfolge. Die Zuordnungen für Vergleiche, Sortierungen und Groß-/Kleinschreibungskonvertierungen schlagen für jeden Bytewert in der Zeichenfolge einfach in der Tabelle nach.
Der SACA-Algorithmus wird seit der Anfangszeit von SQL Anywhere, damals noch als Watcom SQL bezeichnet, zur Verfügung gestellt.
In einer typischen Kollatierung für einen Einbyte-Zeichensatz werden alle Formen eines Zeichens mit bzw. ohne Akzente demselben Wert zugeordnet, wodurch die Kollatierung Akzente nicht berücksichtigt. Formen desselben Buchstabens mit bzw. ohne Akzente werden als genau gleich erkannt und zusammen sortiert.
Die Kollatierung bietet auch eine Konvertierung zwischen Groß- und Kleinbuchstaben, wobei Akzente bewahrt werden.
In Mehrbyte-Zeichensätzen werden die Führungsbyte den 256 unterschiedlichen Werten zugeordnet. Folgebytes werden unter Verwendung ihres Binärwerts verglichen.
Bei den meisten Kollatierungen für Mehrbyte-Zeichensätze bietet diese Zuordnungstechnik eine annehmbare Sortierung, weil die Zeichensatzkodierung Zeichen in 256-Byte-Seiten gruppiert, die durch das Führungsbyte identifiziert werden. Die Seiten und die Zeichen auf den einzelnen Seiten sind im Zeichensatz in einer vernünftigen Reihenfolge angeordnet. Die Kollatierungen bewahren üblicherweise die Sortierung der Seiten (Führungsbyte) innerhalb des Zeichensatzes. Einige Seiten können anhand anderer Merkmale sortiert werden. Die 932JPN-Kollatierung für die japanische Codepage 932 z.B. gruppiert die Langzeichen (Kanji) und die Kurzzeichen (katakana).
Groß-/Kleinschreibungskonvertierung steht nur für englische 7-Bit-Zeichen zur Verfügung.
UTF-8 ist ein Mehrbyte-Zeichensatz. Jedes Zeichen enthält ein bis vier Bytes. SQL Anywhere stellt die UTF8BIN-Kollatierung für die Sortierung von UTF-8-Zeichen zur Verfügung.
In UTF8BIN werden Führungsbytes 256 unterschiedlichen Werten zugeordnet, und Folgebytes werden anhand ihrer Binärwerte verglichen. Aufgrund der Darstellung von Zeichen in UTF-8 und der Begrenzung auf 256 unterschiedliche Zuordnungswerte ist es nicht möglich, verwandte Zeichen wie Formen desselben Buchstabens mit Akzent bzw. ohne Akzent zu gruppieren. Die Reihenfolge ist im Grunde binär.
Groß-/Kleinschreibungskonvertierung wird nur für englische 7-Bit-Zeichen unterstützt.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |