Сохранение регистра символов в файловых системах и базах данных.
Case preservation
Сохранение регистра букв в файловых системах: что это значит? Различия между case-sensitive, case-preserving и case-insensitive системами. Объяснение и примеры.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Обработка текста с сохранением исходного регистра.
Text processing that preserves the original capitalization of text
В файловых системах сохранение регистра означает сохранение регистра букв (прописных или строчных) в именах файлов. Если предпринята попытка создать файл с именем "ThisIsAFile" в файловой системе, сохраняющей регистр, имя файла будет "ThisIsAFile", а не, например, "thisisafile" или "THISISAFILE". В отличие от этого, файловая система, не сохраняющая регистр, обычно хранит буквы в именах файлов либо только в нижнем, либо только в верхнем регистре, и информация о регистре букв, таким образом, теряется. Если предпринята попытка создать файл с именем "ThisIsAFile" в файловой системе, не сохраняющей регистр, имя файла будет "thisisafile", если буквы хранятся только в нижнем регистре, или "THISISAFILE", если буквы хранятся только в верхнем регистре.
In file systems, case preservation is the preservation of the letter case (uppercase or lowercase) of letters in file names. If an attempt is made to create a file named "ThisIsAFile" on a file system that preserves letter case, the file's name will be "ThisIsAFile", rather than, for example, "thisisafile" or "THISISAFILE". In contrast, a file system that does not preserve letter case will typically store letters in file names either as all lowercase or as all uppercase, and the letter case information will thus be lost. If an attempt is made to create a file named "ThisIsAFile" on a file system that does not preserve letter case, the file's name will be "thisisafile" if letters are stored as all lowercase or "THISISAFILE" if letters are stored as all uppercase.
Сохранение формы, нечувствительный к формам
Система может быть нечувствительной к регистру, но при этом сохранять его. Такая комбинация часто считается наиболее естественной для восприятия, поскольку большинство людей предпочитают использовать правильное написание с заглавных букв, но при этом узнают и другие варианты. Например, если кто-то упоминает "uNiTeD states oF AMERICA", это понимается как Соединенные Штаты Америки, даже если регистр написан неправильно. Большинство файловых систем в macOS, современных версиях Microsoft Windows и всех версиях Amiga OS сохраняют регистр и нечувствительны к нему. Поскольку они нечувствительны к регистру, при обращении к файлу можно использовать любую комбинацию прописных и строчных букв, так что файл с именем "ThisIsAFile" можно указывать как "thisisafile", "THISISAFILE", "thisISaFILE" и так далее. Однако, поскольку они сохраняют регистр, при создании файла его имя будет сохранено в том виде, в котором оно было указано, то есть если файл создан как "ThisIsAFile", его имя останется "ThisIsAFile", а не, например, "thisisafile" или "THISISAFILE". Это означает, что нельзя сохранить два файла с одинаковым именем в одном месте, если единственное различие между их именами – регистр букв. Например, нельзя иметь файлы с именами readme.txt и Readme.tXT в одной папке.
It is possible and common for a system to be case insensitive, yet case preserving. This combination is often considered most natural for people to understand, because most people prefer using the correct capitalization but will still recognize others. For example, if someone refers to the "uNiTeD states oF AMERICA," it is understood to mean the United States of America, even though the capitalization is incorrect. Most of the file systems in macOS, current versions of Microsoft Windows, and all versions of Amiga OS are case preserving and case insensitive. Since they are case insensitive, any combination of lowercase or uppercase letters can be used when referring a file, so that a file named "ThisIsAFile" can be referred to as "thisisafile", "THISISAFILE", "thisISaFILE", and so on. However, since they are case preserving, when a file is created, the file name will be stored in the combination of lower and upper case letters specified, so that if a file is created as "ThisIsAFile", the name of the file will be "ThisIsAFile" rather than, for example, "thisisafile" or "THISISAFILE". This means that one cannot save two files with the same name in the same place if the only difference in their file names is capitalization (lowercase or uppercase letters). For example, one cannot have files named readme. txt and Readme. tXT in the same folder.
Не сохраняющий случай, нечувствительный к случаю
Система, не сохраняющая регистр, обязательно также нечувствительна к регистру. Это относится, например, к идентификаторам (именам столбцов и таблиц) в некоторых реляционных базах данных (например, DB2, Interbase/Firebird, Oracle и Snowflake), если только идентификатор не указан в двойных кавычках (в этом случае идентификатор становится чувствительным к регистру). В системе, не сохраняющей регистр, система может использовать произвольный регистр для хранения и отображения, например, все буквы могут храниться в нижнем регистре (или, альтернативно, все в верхнем). Например, в базе данных Oracle таблица, созданная с именем CustomersRegion1, будет храниться как CUSTOMERSREGION1 (если она не создана под именем "CustomersRegion1", что означает, что идентификатор будет рассматриваться как чувствительный к регистру и, следовательно, должен ссылаться на него в точности с таким же регистром).
A system that is non case preserving is necessarily also case insensitive. This applies, for example, to Identifiers (column and table names) in some relational databases (for example DB2, Interbase/Firebird, Oracle and Snowflake), unless the identifier is specified within double quotation marks (in which case the identifier becomes case sensitive). In a non case preserving system, arbitrary capitalization may be used by the system for storage and display, such as for example all letters being store in lowercase (or alternatively all in uppercase). For example, in Oracle Database, a table created with the name CustomersRegion1 will be stored as CUSTOMERSREGION1 (unless it is created under the name "CustomersRegion1", which means that the identifier will be treated as case sensitive, and therefore must be referenced with that exact casing).
Определенность случаев (результаты сохранения случаев)
Большинство файловых систем в Unix-подобных системах, за исключением macOS, например, файловые системы в Linux, чувствительны к регистру. Это означает, что в одной папке могут существовать два файла, отличающихся только регистром символов. Например, readme.txt и Readme.tXT могут находиться в одной и той же папке.
Most of the file systems in Unix like systems other than macOS, such as file systems in Linux, are case sensitive. This means that there can be two files in the same folder whose only difference is capitalization. For example, readme. txt and Readme. tXT can be found in the same folder.