Файл: Развитие технологий обработки данных.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 95

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Эти примеры наглядно показывают, что даже незначительное изменение вида задач обуславливает необходимость использовать другие виды данных.

Языки программирования, которые использовались ранее подразумевали решения научно-технических вычислительных задач. В тех языках (АЛГОЛ, ФОРТРАН) использовались только вышеуказанные виды данных, а именно простые переменные и массивы. Для решения научно-технических вычислительных задач этого было вполне достаточно.

      С момента зарождения информационных задач компьютерная техника активно используется для решения представленного выше класса ливать базу данных, структурировать ее данные и задавать ограничения для хранимых данных в базе;

«невычислительных задач». Это связано с обработкой различного рода документов информационного и статистического характера. Эти данные, появившиеся в конце 60-х годов можно рассмотреть на примере упрощенных задач обработки данных.

Рассмотрим первую задачу – задача начисление заработной платы.

Для рассмотрения примера введем некоторые ограничения:

начисление заработная плата сотруднику производится на основе его оклада;

налоги и вычеты не будем учитывать.

Представим карточку сотрудника. Назовем ее карточкой НАЧИСЛЕНИЯ. Данная карточка представлена ниже.

Фамилия, имя, отчество

Оклад

Количество отработанных дней в месяц

Начисленная сумма

FIО

О

Кo

S

Для каждого работника начисленная сумма за определенный месяц рассчитывается по следующей формуле:

S=КoО/Кr,

где Кr – количество рабочих дней в данном месяце.

Эта карточка имеет конкретные значения для каждого сотрудника. Как представлено ниже.

Петров Степан Федорович

1800

24

1800

Как видно из приведенной выше таблицы, значения имеют смысл только в непосредственном взаимодействии друг с другом. Если взять отдельное число из этой таблицы. Например 1800. Что это за число? Как можно только этому числу дать характеристику? Смысл этого числа трудно понять так как оно теряет содержательный смысл. И сразу понятно что использовать простые переменные в данном случае нельзя. Если внимательно посмотреть на таблицу то понятно становится что и массив так же использовать нельзя, потому что этот набор значений, определенных для конкретного сотрудника, имеет разные типы. Типы встречаются в данном случае и символьные и числовые. Можно сделать вывод, что существует ситуация когда для представления соответствующей карточки понятий «простая переменная» и «массив» недостаточно.


Для описания такой ситуации, когда понятий простая переменная и массив недостаточно в предметной области «невычислительных» задач вводится ряд новых понятий. Представим их.

Элемент данных (поле) – наименьшая единица поименованных данных.

Для описания данного примера элементами данных являются – FIО, О, Кo, S.

Для описания карточки сотрудника используется такое понятие как «Логическая запись».

Логическая запись это поименованная совокупность элементов данных (полей).

Экземпляр логической записи это текущее значение элементов записи.

Для представления всего набора карточек сотрудников используется такое понятие как «Логический файл».

Логический файл это поименованная совокупность всех экземпляров записей заданного типа.

Пример логического файла НАЧИСЛЕНИЕ:



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

Например в алгоритмическом языке Паскаль есть такой оператор RECORD – запись. Он вводится как сложная переменная с несколькими компонентами, которые могут иметь разные типы. Кроме того, непосредственный доступ к компонентам записи (полям) осуществляется при этом не по индексу, а по имени. При программировании первой задачи - задачи начисления заработной платы на алгоритмическом языке Паскаль логическая запись НАЧИСЛЕНИЕ представляется видом данных RECORD. А логический файл, то есть набор экземпляров логических записей сотрудников представлен «физическим» файлом, формируемым средствами и алгоритмического языка Паскаль и непосредственно операционной системой.



Важная специфика таких распространенных в современном делопроизводстве, бухгалтерии «невычислительных» задач характерна тем, что очень большие объемы данных, просто громадное количество сотрудников и огромное количество изделий, гигантские размеры номенклатуры производимой и заказываемой продукции и так далее. Эти данные, даже приведенные в задаче начисления заработной платы сотрудника используются в информационных системах, как правило много раз. Заработная плата начисляется постоянно каждый месяц, продукция производится ежедневно, заказы по выбранное номенклатуре производятся еженедельно. Соответственно и основное требование для «невычислительных» задач – данные

должны храниться продолжительное время, для чего всегда должна использоваться внешняя память.

В связи с этим решение первой представленной задачи состоит из двух этапов.

 

1. Ввод ИД (исходных данных) и занесение ИД во внешнюю память.



2. Чтение исходных данных из внешней памяти, расчет начисленных сумм и вывод на печать.



Вашему вниманию были представленные программы, которые решают поставленную выше задачу при определенных сделанных ограничениях. При этом как видно из программы необходимые для этого данные хранятся в файле MyFile.fsf, предназначенном только для решения конкретной задачи, а именно начисления заработной платы сотрудникам. Надо отметить, что в этом случае описание данных включено в прикладную программу. При изменении формата записей файла необходимо изменение прикладной программы. Таким образом, программная система, решающая поставленную задачу, определяет свои собственные данные и управляет ими. Такие программные системы называются файловыми системами.

Вторая задача. Кадровый учет сотрудников.

В задаче кадрового учета сотрудников обрабатываются сведения о сотрудниках, непосредственно представленные в карточке кадрового учета, называемой СОТРУДНИК.



Данная задача при решении включает в себя несколько этапов:

Ввод исходных данных и занесение информации во внешнюю память.

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



В рассматриваемом случае задача учета кадрового учета сотрудников (задача №2) может решаться в независимости от решения задачи начисления заработной платы (задача №1).

Рассмотри третью задачу – учет экономии фонда оплаты труда (ФОТ) в связи с временной не трудоспособностью сотрудников (количество дней по больничному листу).

Обрабатываются информационные данные, представленные записями в карточке, которая называется ЭКОНОМИЯ ФОТ.



.

Программа решения задачи учета экономии фонда оплаты труда аналогична уже рассмотренной программе решения задачи начисления заработной платы.


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

Рассмотрим возможность избавится от такого недостатка, что и решается обязательно в современных технологиях баз данных. Если взять все три карточки, рассмотренные выше, то можно заметить, что поля FIО, О – повторяются в задачах. Соответственно для этих карточек нужно место в памяти устройства и это приводит к существенной ненужной загруженности памяти. Когда мы вносим изменения в карточку, например изменяем фамилию, в этом случае приходится изменять по сути одно и тоже значение многократно, в зависимости от количества задач решаемых в организации и количества карточек имеющих значение FIО. Это приводит с существенному увеличению машинного времени. В этом случае еще существует опасность не учета изменения в одном из нескольких файлов.

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



Мы можем убедиться что в этом случае дублирование данных полностью устранено. Запоминающее устройство вздохнуло с облегчением – расход минимален. То недостаток, который мы обозначили – ликвидирован. Теперь вернемся к программе и посмотрим на те задачи которые там присутствуют. Очевидно, что время необходимое для решения задачи прямо пропорционально тому объему информации, которое необходимо считать из внешней памяти. В нашем случае время затраченное на решение задачи в зависимости от выбранной длины полей и соответственно от множества перебираемых значений в полях может увеличится в 2–3 раза. Соответственно за отсутствие дублирования в нашем случае будет ухудшение быстродействия информационной системы, то есть увеличение времени решения задачи. В общем такое увеличение не всегда не допустимо. Но на примере конкретной задачи, учета экономии фонда оплаты труда мы видим, что в этом случае, за счет перебора полей в таблице время
решения может увеличится на несколько порядков, что является недопустимым.

Рассмотрим пример расчета времени решения задач. Обозначим Тi – время решения задачи, li – длина записи в поле записи и Ni – число записей i -й задачи (i = 1, 2, 3) при использовании отдельных файлов для каждой задачи. Время решения задачи является интегрирующим показателем включающим длину записи и количество записей. Это естественно, потому что время будет тратится именно на перебор эти составляющих.



где C – некоторый коэффициент пропорциональности.

Теперь рассмотрим как вычислить это же время, при объединении записей Обозначим Ri – время решения i -й задачи (i = 1, 2, 3), d – длина записи, N – число записей. При этом время решения задачи рассматривается при использовании файла объединенных записей.



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

N1 = N2 = N, N3 << N.

В этом случае можно записать как увеличится время решения i-й задачи (i= 1, 2) при использовании объединенного файла. Оно увеличится в   раз. В приведенном примере время решения задач в зависимости от выбранной длины полей может изменяться в 2–3 раза. Таким образом мы подтвердили уже выше приведенное высказывание – платой за отсутствие дублирования данных является увеличение времени решаемых задач. И в некоторых случаях, например при небольшом количестве информации, такое увеличение вполне допустимо.

Вернемся к третьей задачи – учета экономии фонда оплаты труда. Время решения этой задачи при объединении полей и с учетом разницы в N увеличится в   раз.В данном случае N3 << N, то соответственно и R3 >> T3. Время решения задачи учета экономии фонда оплаты труда, которая строится на количестве дней нетрудоспособности может увеличиться на несколько порядков, что является не допустимым. Подтвердили выше сказанное.

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