Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Термины символ и байт

Термины символ и байтИ здесь возникают некоторые сложности. До сих пор термины “символ” и “байт” мы использовали как синонимы. Байт состоит из 8 битов и способен хранить 256 (28) различных значений (или 256 различных символов, представленных этими числами). На первый взгляд это число кажется большим, но на самом деле это не так. Во-первых, нужно сопоставлять разным числам строчные и прописные буквы. Во-вторых, нужно хранить цифры, знаки пунктуации и специальные символы (в частности, математические). К этому нужно добавить буквы, не сопоставимые с латинским алфавитом, в частности кириллицу. В мире существует более 3000 разных языков, живых или вымерших, а мир фентези заставляет нас прислушиваться даже к голосам эльфов и троллей; и у каждого из этих языков существует свой алфавит. Выход из этой ситуации вполне тривиален: использовать для хранения одного символа не один, а 2 байта, что позволяет закодировать 65535 (216-1) различных символов. Этого вполне достаточно для всех основных алфавитов, существующих на Земле. В SQL существуют два типа данных, специально предназначенных для хранения строк с национальными символами: постоянной и переменной длины. Они практически не отличаются от типов, описанных в двух предыдущих разделах, но позволяют реализовывать различные национальные наборы символов. Большинство производителей СУБД движутся в направлении создания единого специального типа NATIONAL CHARACTER, являющегося аналогом стандарта Unicode в проекции на SQL. Таким образом, если столбец DATABASE определить как поле с национальными символами длины 13, в нем так же, как и в обычном, можно будет хранить 13 символов, однако для каждого из них будет зарезервировано по 2 байта (в соответствии со стандартом Unicode), что в совокупности составит 26 байтов. Различие в том, что теперь в этом поле можно будет хранить слова на любом языке, в том числе и на русском. На рис. 3.3 продемонстрирована эта концепция.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *