ОПЕРАЦИИ НАД ДАННЫМИ

Процедура доступа к данным может быть инициирована как самим компьютером (для решения каких-либо своих технических задач), так и конечным пользователем. В последнем случае пользователь формирует запрос, куда включает, в частности, обозначение требуемого вида доступа, или действия, и указание на то, над какими данными это действие надо выполнить.

Как отмечалось ранее, идентификация данных осуществляется с помощью ключей.

В качестве же требуемого действияможет быть одно из следующих:

- добавление,

- удаление,

- изменение,

- просмотр элемента или

- обработка данных из элемента.

При добавлении элемента информационный массив пополняется новыми данными в виде записи файла или файла в целом, соответственно, для структурированных и неструктурированных данных. В запросе в этом случае, помимо указанной выше информации, приводится и сам новый элемент. При этом объем информационного массива увеличивается;

Удаление, наоборот, является обратным действием, вызывающим исключение упомянутых данных. Это действие приводит к уменьшению объема информационного массива;

Изменение относится не к элементу, а к его составляющим – полям записи файла или тексту, хранящемуся в файле, и означает, в свою очередь, удаление прежних значений полей или строк текста и/или добавление новых. В запрос включается дополнительная информация, указывающая на требуемые составляющие изменяемого элемента, а также сами новые значения этих составляющих. Объем информационного массива при этом не меняется для структурированных данных и, возможно, меняется для неструктурированных;

Просмотр связан с предоставлением данных пользователю на устройстве вывода компьютера, как правило, на дисплее. В запросе в этом случае дополнительно указывается, какие составляющие элемента требуется просмотреть (по умолчанию просматривается весь элемент);

Обработка предусматривает выполнение некоторых арифметических операций над данными элемента, например, накопление суммы и т.д., и относится только к структурированным данным, а потому далее не рассматривается.

Таким образом, запрос q в общем случае имеет структуру:

q = (<действие>, <ключ> [{,<указание на составляющую элемента>[=<значение составляющей элемента>]}] ),

где скобки <> означают, что они и их содержимое в конкретных случаях заменяются некоторыми значениями;

скобки [] свидетельствуют о возможном отсутствии их содержимого;

скобки {} представляют возможное повторение их содержимого.

Тогда для указанных ранее действий можно определить следующие структуры запросов:

§ добавление = (<ключ> {,<указание на составляющую элемента> = <значение составляющей элемента>}),

§ удаление = (<ключ>),

§ изменение = (<ключ> {,<указание на составляющую элемента> = <значение составляющей элемента>}),

§ просмотр = (<ключ> [{,<указание на составляющую элемента>}]).

Чтобы выполнить любое их указанных выше действий, нужный элемент должен быть предварительно найден в информационном массиве, для чего выполняется его поиск (для добавления нового элемента тоже делается попытка его поиска, которая заканчивается неудачно, и тогда элемент добавляется).

Под поиском элемента понимается определение его местонахождения в информационном массиве. Таким образом, любой доступ включает поиск, что делает эту фазу доступа наиболее значимой.

Технологии доступа при выполнении действий изменения элемента показано на рисунке1:

Здесь и далее сплошные линии означают управляющие связи, пунктирные - информационные связи.

Технологии доступа при выполнении действий добавления элемента показана на рисунке 2:

Технология удаления изображена на рисунке 3:

Технология просмотра элемента приведена на рисунке 4:

Различие в схемах состоит в том, что по технологии рисунков 1 и 2 выполняется воздействие на информационный массив с целью его изменения, для чего в него передаются данные, по технологии рисунка 3 воздействие не связано с передачей данных, а по схеме рисунка 4 данные выводятся из информационного массива без его изменения.

При выполнении рассмотренных действий над элементами информационного массива на практике важны два фактора, противоречащие друг другу: временной фактор, в соответствии с которым запрос пользователя должен обрабатываться в минимальные сроки, и фактор минимизации требуемого объема памяти для хранения данных.

Для уменьшения времени обработки запроса особые усилия прилагаются к применению таких структур хранения данных, которые бы позволяли оптимизировать поисковые операции, возможно, за счет дополнительных описаний данных. Это, очевидно, повышает расход памяти. Поэтому при проектировании моделей данных учитывается предполагаемый режим эксплуатации информационного массива: если это интерактивный режим, то основное внимание уделяется минимизации времени доступа к данным, если режим пакетный, то минимизируют требуемую память. Кроме того, на выбор модели влияют особенности той предметной области, которая отражается в структурах хранения.

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

Из приведенных типов действий в рассмотрение включены добавление и просмотр элемента данных, поскольку добавление связано с воздействием на информационный массив и изменением его объема (напомним, что удаление является обратным действием по отношению к добавлению), а просмотр является наиболее часто выполняемым действием на практике. При этом рассматриваются общие вопросы работы с текстовой и структурированной информацией, методы и модели, используемые при организации хранения, поиска и добавления данных.

Излагаемые модели данных и алгоритмы доступа к ним составляют “brainware” современной информатики, носят универсальный характер и применяются в большинстве систем, связанных с хранением и обработкой информационных массивов.