Case sensitivity

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Case-sensitivity (engl. case Fach, abgeleitet von den Fächern (type cases), in denen Drucker die verschiedenen Drucklettern aufbewahrten, (in)sensitivity (Un-)Abhängigkeit) bezeichnet in der elektronischen Datenverarbeitung allgemein die Art und Weise, wie eine Rechenmaschine oder formale Sprache (insbesondere Programmiersprachen) die Unterscheidung von Groß- und Kleinschreibung handhaben. Dabei bedeutet case-sensitive (dt. wenn durch Kontext gegeben sensitiv), dass Versalien und Minuskeln als verschieden angesehen werden, case-insensitive (im Kontext nicht-sensitiv) hingegen das Gegenteil. Dies ist vor allem für die Unterscheidung ansonsten gleicher Zeichenfolgen interessant.

Sollen Daten nicht-sensitiv bearbeitet werden, so bedeutet das einen höheren Programmier- und Rechenaufwand, da beispielsweise die Buchstaben a und A für die Maschine dasselbe Zeichen bedeuten sollen. So sind zusätzliche Abfragen und Konvertierung oder Unifikation nötig.

Zur Anschauung dienen die Zeichenfolgen name, Name, NAME und naMe.

In diesen vier Zeichenfolgen sind vier Varianten desselben Wortes zu erkennen. Für den Menschen unterscheiden sie sich nur nach Großschreibung und Kleinschreibung, ansonsten sind sie gleich. Dieser Deutung liegt eine kulturelle Konvention zugrunde, nämlich das Wissen um die Verwandtschaft zwischen großen und kleinen Buchstaben.

In Rechensystemen werden unterschiedliche Zeichen auf der maschinellen Ebene durch unterschiedliche Zahlen repräsentiert. In der Zeichenkodierung ASCII beispielsweise hat das große A den Dezimalwert 65, das kleine a den Dezimalwert 97. Eine beiden Zahlenwerten innewohnende Verwandtschaft zueinander gibt es auf maschineller Ebene nicht, da es auch keine maschinelle Konvention analog zur erwähnten kulturellen Konvention gibt. Die beiden Werte und damit die beiden Zeichen sind für die Maschine ohne zusätzliche Verarbeitung ungleich.

Allerdings sei erwähnt, dass ASCII wie auch andere Zeichenkodierungen, zwecks maschinell möglichst effizienter Umwandlung von kleinen zu großen Zeichen, diese im Zahlenraum so anordnen, dass hierzu nur ein einzelnes Bit umgesetzt werden muss.

Um also auch eine nicht-sensitive Behandlung von Textdaten auf Rechensystemen verfügbar zu machen, muss durch Einsatz programmiertechnischer Mittel eine Abstraktionsschicht über das native Datenverständnis der Maschine gelegt werden, die das oben angesprochene menschliche Textverständnis nachahmt. Diese Abstraktion blendet Unterschiede zwischen großen und kleinen Buchstaben aus. Aus Anwendersicht kann dieses Verhalten wünschenswert sein. Das bedeutet einen gewissen Mehraufwand an Rechenleistung bei der Verarbeitung von Textdaten, was aber bei der heutzutage verfügbaren Technik für die meisten Anwendungen unerheblich ist.

Ein bekanntes Beispiel für die unterschiedliche Behandlung von Textdaten sind die auf den Betriebssystemen UNIX und Microsoft Windows jeweils vorherrschenden Dateisysteme. Während die für UNIX typischen Dateisysteme sensitiv sind, wurde Windows über längere Zeit mit Dateisystemen ausgeliefert, die nicht-sensitiv sind. Zum Beispiel sind im Windows-Dateisystem FAT32 Name.txt und NAME.TXT gleich, in ext3 unter Linux verschieden. Das Dateisystem NTFS nimmt hierbei eine Sonderstellung ein. Dieses ist von der Struktur her sensitiv, allerdings ist es unter Windows nicht möglich, Dateien anzulegen, die sich ausschließlich in Groß-Kleinschreibung unterscheiden, da dies die Kompatibilität mit bestehenden Anwendungen einschränken könnte.[1]

Dieses unterschiedliche Verhalten kann zu Problemen beim Datenaustausch auf Dateiebene führen. Dazu gehören sowohl physische Datenträger wie USB-Sticks als auch gemischte Netzwerke, etwa wenn man versucht, zwei Dateien mit gleichem Dateinamen, aber unterschiedlicher Schreibung von einem UNIX-System in dasselbe Verzeichnis eines Windows-Systems zu kopieren.

Ob Case-sensitivity vorliegt, ist in der Informatik bei der Benennung generell von Bedeutung. So sind die Symbole mancher Programmiersprachen (C, Perl) abhängig von Groß- und Kleinschreibung, die anderer hingegen (Pascal, Visual Basic) nicht. Wieder andere Sprachen (PHP) vermischen beide Prinzipien.

Weblinks[Bearbeiten]

Englisch:

Einzelnachweise[Bearbeiten]

  1. Filenames are Case Sensitive on NTFS Volumes. Support.microsoft.com. 1. November 2006. Abgerufen am 24. Oktober 2013.