„Case sensitivity“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Milu~dewiki (Diskussion | Beiträge)
Mein Artikel ist nicht für dieses Lemma gedacht. Schreibt euch einen eigenen.
K Änderungen von Milu (Beiträge) rückgängig gemacht und letzte Version von Mnh wiederhergestellt
Zeile 1: Zeile 1:
'''Case sensitivity''' ([[Englische Sprache|engl.]] ''case'' = Fach, abgeleitet von den Fächern (''type cases''), in denen [[Drucker (Beruf)|Drucker]] die verschiedenen [[Letter|Drucklettern]] aufbewahrten, ''sensitivity'' = Abhängigkeit).
'''Case sensitivity''' ([[Englische Sprache|engl.]] ''case'' = Fach, abgeleitet von den Fächern (''type cases''), in denen [[Drucker (Beruf)|Drucker]] die verschiedenen [[Letter|Drucklettern]] aufbewahrten, ''sensitivity'' = Abhängigkeit) bezeichnet in der [[Elektronische Datenverarbeitung|elektronischen Datenverarbeitung]] zwei grundsätzlich unterschiedliche Verfahren zur Behandlung der [[Großschreibung]] bzw. [[Kleinschreibung]] ansonsten gleicher [[Zeichenkette|Zeichenfolgen]] hinsichtlich der Frage ihrer Gleichheit oder Ungleichheit im Umgang mit Textdaten. Man kann im Grundsatz der ''Case insensitivity'' eher das menschliche Textverständnis berücksichtigt sehen, im Grundsatz der ''Case sensitivity'' dagegen eher das maschinelle Datenverständnis.

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

In diesen vier Zeichenfolgen sind vier Varianten ein und 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]] ([[Majuskel|Majuskeln]] und [[Minuskel|Minuskeln]]), also zwischen „N“ und „n“ oder „A“ und „a“.

In [[Computer|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 ungleich.

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

Die Ungleichbehandlung von Zeichenfolgen, die dem Menschen als gleich gelten mögen, ist daher der natürliche oder besser gesagt: der native Umgang der Maschine mit Textdaten. Unterschiede in der Schreibung eines Wortes sieht die Maschine auch dann als Ungleichheit, wenn sie nur die Schreibung des Buchstabens betreffen. Hier liegt im Hinblick auf die Gleichheit von Zeichenfolgen ''case sensitivity'' vor.

Um auch ''Case insensitivity'' auf Rechensystemen als Grundsatz der Behandlung von Textdaten 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 dies 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|UNIX]] und [[Microsoft Windows]] jeweils vorherrschenden [[Dateisystem]]e. Während die für UNIX typischen Dateisysteme schreibungsabhängig sind, wird Windows mit Dateisystemen ausgeliefert, die ''case insensitive'' sind. Zum Beispiel sind im Windows-Dateisystem [[NTFS]] ''Name.txt'' und ''NAME.TXT'' gleich, in [[ext3]] unter [[Linux]] verschieden.

Dieses unterschiedliche Verhalten kann zu Problemen bei gemischten [[Rechnernetz|Netzwerken]] führen, etwa wenn man versucht, zwei Dateien mit gleichem Dateinamen, aber unterschiedlicher Schreibung von einem UNIX-System auf ein Windows-System 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 ==
== Weblinks ==
Englisch:
* [http://xahlee.org/UnixResource_dir/_/fileCaseSens.html xahlee.org: ''On Unix File System's Case Sensitivity'']
* [http://blogs.msdn.com/brada/archive/2005/10/28/486215.aspx Brad Abrams: ''Framework Design Guidelines: Case Sensitivity'']
* [http://blogs.msdn.com/michkap/archive/2006/06/04/616904.aspx Sorting It All Out: ''Intuitivosity (intuitivality?) of case insensitivity'']


[[Kategorie:Betriebssystemtheorie]]
[[Kategorie:Betriebssystemtheorie]]

Version vom 29. November 2007, 18:37 Uhr

Case sensitivity (engl. case = Fach, abgeleitet von den Fächern (type cases), in denen Drucker die verschiedenen Drucklettern aufbewahrten, sensitivity = Abhängigkeit) bezeichnet in der elektronischen Datenverarbeitung zwei grundsätzlich unterschiedliche Verfahren zur Behandlung der Großschreibung bzw. Kleinschreibung ansonsten gleicher Zeichenfolgen hinsichtlich der Frage ihrer Gleichheit oder Ungleichheit im Umgang mit Textdaten. Man kann im Grundsatz der Case insensitivity eher das menschliche Textverständnis berücksichtigt sehen, im Grundsatz der Case sensitivity dagegen eher das maschinelle Datenverständnis.

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

In diesen vier Zeichenfolgen sind vier Varianten ein und 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 (Majuskeln und Minuskeln), also zwischen „N“ und „n“ oder „A“ und „a“.

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 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 dergestalt anordnen, dass hierzu nur ein einzelnes Bit umgesetzt werden muss.

Die Ungleichbehandlung von Zeichenfolgen, die dem Menschen als gleich gelten mögen, ist daher der natürliche oder besser gesagt: der native Umgang der Maschine mit Textdaten. Unterschiede in der Schreibung eines Wortes sieht die Maschine auch dann als Ungleichheit, wenn sie nur die Schreibung des Buchstabens betreffen. Hier liegt im Hinblick auf die Gleichheit von Zeichenfolgen case sensitivity vor.

Um auch Case insensitivity auf Rechensystemen als Grundsatz der Behandlung von Textdaten 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 dies 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 schreibungsabhängig sind, wird Windows mit Dateisystemen ausgeliefert, die case insensitive sind. Zum Beispiel sind im Windows-Dateisystem NTFS Name.txt und NAME.TXT gleich, in ext3 unter Linux verschieden.

Dieses unterschiedliche Verhalten kann zu Problemen bei gemischten Netzwerken führen, etwa wenn man versucht, zwei Dateien mit gleichem Dateinamen, aber unterschiedlicher Schreibung von einem UNIX-System auf ein Windows-System 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.

Englisch: