Лабиринты сумбура

Что такое тип данных?

Когда говорят о типах данных, то понять что-либо из того, о чем идет речь, можно только из контекста, т.к. для этого термина не существует пока однозначного определения. Да и, естественно, не может существовать до тех пор, пока настолько же однозначно не определено понятие "данные" ("КВ" №3), которое, в свою очередь, выводится из понятия "модель" ("КВ" №2) как структурной характеристики любого источника информации ("КВ" №6). Разумеется, что в данном случае менее всего существенна лингвистическая сторона вопроса, поскольку тип данных - это технологический термин, который по своей природе должен быть точным, иначе просто нет никаких шансов на длительную перспективу у той системы, которая его применяет, не имея при этом никакого представления, откуда он взялся.

Именно так и происходит, например, с СУБД, развитие которых длится уже третий десяток лет, не оправдывая ни связанных с ними надежд, ни затраченных средств, поскольку эти системы так и не стали универсальным средством для разработки КТ и существуют только потому, что для решения на компьютерах прикладных задач ничего лучшего пока не придумали. Этап развития компьютерных технологий, связанный с применением СУБД, хотя уже и исчерпал свои возможности, является, тем не менее, необходимым и во многом полезным как для практического освоения компьютерных методов обработки данных, так и для накопления достаточного опыта по выявлению ресурсов дальнейшего развития КТ.

Исторически так сложилось, что именно в СУБД тип данных должен указываться разработчиком КТ в рамках заранее известного списка, иначе система будет неправильно функционировать (например, числа в символьном представлении будут неправильно сортироваться). Однако создатели СУБД так и не смогли справиться с задачей однозначного определения всех (!) возможных типов данных, переложив эту проблему на разработчиков КТ путем введения нестандартного варианта (type - пользовательский тип данных). Тем самым они молча наделили собственное детище свойством невозможности обмена данными между системами, создаваемыми разными, т.е. не связанными между собой разработчиками КТ.

И вот под развитие такой ущербной еще от рождения системы вложены огромные средства! Чего стоит только, например, создание универсального языка запросов SQL, хотя какой же прок от того, что данные будут найдены, но не смогут быть однозначно идентифицированы? Нагромождение лабиринтов сумбура на уровне данных компенсируется достаточно большой производительностью компьютеров, ресурсы которых все более и более затрачиваются на соответствующее нагромождение систем, без которых эти данные не могут существовать. В свою очередь, сами эти системы неуклонно превращаются в супергиганты, количество инструментария в которых растет быстрее, чем это физически доступно пользователю.

 

Перспектива своеобразного коллапса такой вот "наукоемкой" продукции, как результат развития традиционных КТ, похоже, уже становится реальностью, и она может стать совершенно неотвратима, т.к. ресурсы общества не беспредельны. Но, с другой стороны, КТ - это один из самых мощных источников увеличения этих самых ресурсов, который может функционировать только при участии науки, образования и культуры ("КВ" №№36-40, 2000 г.). Тогда становится понятно, почему создателям СУБД пришлось просто смириться с ущербностью своего творения, причем не только в части определения типов данных, но и в способах представления этих данных, не позволяющих создавать источники информации универсального типа ("КВ" №11). Причина - отсутствие необходимых знаний, которые могут быть получены только в сфере научных исследований, а не при разработке коммерческих продуктов, где эти знания лишь находят себе практическое применение.

Если бы создатели СУБД получили доступ к новым знаниям, касающимся прежде всего законов систем, то они уже давно отказались бы от табличного способа представления данных в пользу иерархического ("КВ №6), а что касается типов данных, то применение к накопленному опыту основного закона систем ("КВ" №№25-29, 2000 г.) позволило бы им без особого труда справиться с этой задачей. Вот как может выглядеть ее решение:

Тип данных:

  1. Смысловой
    1. Строка
    2. Число
    3. Время
  2. Операционный
    1. Кодировка
    2. Идентификация
    3. Сортировка

В представленной системе конкретный тип данных образуется как комбинация основных типов по смысловому и операционному полюсам. Если, например, тип данных определен как "Строка", то необходимо указать также, какая должна применяться кодировка символов (например, ASCII), а также идентификатор (например, английский язык) и сортировка (по возрастанию или убыванию, по факту или дате создания). Аналогично осуществляется привязка компонентов операционного полюса системы, если типы данных определены как "Число" (например, кодировка - двоичная побайтовая, в этом случае набор символов не имеет значения; идентификация - целое число; сортировка - по убыванию) или "Время" (например, кодировка - ASCII; идентификация - день/месяц/год; сортировка - по факту).

Совершенно очевидно, что явно избыточно регламентированные типы данных в СУБД в то же время не позволяют стандартными способами реализовать даже малую долю возможностей, предоставляемых пользователю данной системой, которая не только не избыточна, но и обеспечивает однозначное определение всех без исключения (!!!) возможных типов данных. Это утверждение может быть настолько же верным, насколько верна, скажем, возможность разложения любого достаточно большого целого числа на сумму четырех квадратов, поскольку основной закон систем куда более очевиден, чем знаменитая теорема Лагранжа, для доказательства которой нужен математический гений.

Казалось бы, что же мешает применить новые знания и избавиться от проблем, поставивших общество на грань очередного глобального кризиса? Как всегда, в таких случаях образуется порочный круг - о том, что такие знания уже есть, не имеют ни малейшего представления как раз те, кто в них нуждается, а препятствием для этого является то состояние информационных ресурсов общества, которое во многом теперь зависит от уровня развития КТ. Общество не может управлять самим собой, а управляют им только независимые от него естественные законы, которые уже настолько вывернули его наизнанку, что так и хочется спросить: ну что, так вот и будем стоять?.. Или пока гром не грянет…?

Юрий КРАСКОВ,
c_city2000@mail.ru

Все права на публикацию принадлежат автору

Версия для печатиВерсия для печати

Номер: 

12 за 2001 год

Рубрика: 

Новые технологии
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя Oleg
Я считаю, что уже давно пора прекратить печатать этот спам. Благо позиция автора уже давно понятна - все вокруг тормозят и ничего не понимают о том, как нужно проектировать сложные системы, и только _Я_ знаю как спасти мир от растущего хаоса.

P.S. Насчет упрощения всего и вся до 6 компонент (=2*3 если я правильно припоминаю первые статьи): по-моему это ограничение присуще человеку (не лично автору, а человечеству вообще - пусть меня поправят психологи), а не окружающей действительности, которая бесконечна в своем разнообразии.

Аватар пользователя Light Green
Двумя руками за!
Аватар пользователя М. Дак
Я тоже - за! А за что голосуем?