Главная страница

Лекции по Базам данных. лекции. Развитие технологий обработки данных


Скачать 0.53 Mb.
НазваниеРазвитие технологий обработки данных
АнкорЛекции по Базам данных
Дата16.02.2023
Размер0.53 Mb.
Формат файлаdocx
Имя файлалекции.docx
ТипДокументы
#940385
страница18 из 22
1   ...   14   15   16   17   18   19   20   21   22

Развитие основных понятий представления данных

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

Отношение алгоритма вычислений к сложности представления информации определяет два огромных класса информационных задач.

Первый класс – вычислительные задачи. Определяется простым представлением данным и сложным многооперационным алгоритмом вычислений.

Второй класс задачи обработки данных (невычислительные задачи). Определяется простым алгоритмом обработки данных и сложным представлением обрабатываемых данных.

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

Простейший пример вычисления по формуле выглядит так:

B=A2+5A,

где A и B – определенные числа, которые являются элементами данных или элементарными единицами данных.

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

Давайте рассмотрим другой (более сложный) пример:

Z=C1+C2+...+CN.

В данном случае если мы используем только простые переменные решить эту задачу не представляется возможным. Это связано с тем в этом примере обрабатываются не отдельные числа, а их последовательность. И программируя данную последовательность принято использовать такой вид данных как массив. Массив это совокупность элементов, с каждым из которых связан упорядоченный набор целых чисел, называемых индексами. Все элементы должны иметь одинаковый тип их значений, который и будет называться типом массива. В этом случае числа C1, C2,...., CN представляются в программе массивом C(1), C(2),…., C(N).

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

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

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

«невычислительных задач». Это связано с обработкой различного рода документов информационного и статистического характера. Эти данные, появившиеся в конце 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 третьей задачи значительно меньше первых двух – предлагается рассмотреть вариант построения единой информационной базы, когда происходит объединение записей первой и второй задачи, а записи третьей задачи остаются отдельно от остальных. В этом случае получим.



Внимательно посмотрев на карточку мы видим, дублирование информации остается – дублируются поля FIО и О. При этом время решения задачи В этом случае дублирование остается (дублируются поля FIO, O). Время решения задач расчета заработной платы и кадрового учета незначительно увеличится по сравнению с вариантом отдельных файловых систем (в этом случае системе придется производить перебор полей, хоть и небольшой), а время решения задачи учета экономии фонда оплаты труда, которое в предыдущих вычислениях сильно отличалось, в этом варианте объединения остается неизменным, как и в начальном варианте отдельного файла, то есть не увеличится в разы как при полном отсутствии дублирования. Такое комплексирование данных позволяет частично избавиться от недостатка, сэкономить память и не существенно при этом увеличивает время решения всех задач. Сделаем вывод приведенных вычислений и рассуждений – все приведенные задачи могут решаться с использованием общей информационной базы, но при этом должны иметь два различных типа записей.

Теперь отметим следующее: оба приведенных выше типа записи связаны между собой и находятся во взаимодействии по полю FIО; приведенные два варианты объединения не являются единственными и могут быть расширены различным сочетанием полей. Здесь важной составляющей является то, что для решения представленных задач используется некоторый новый вид данных, формируемый на основе более «интеллектуального» комплексирования записей. Для описания этого вида данных повторим уже введенное понятие.

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

Определим еще одно понятие тесно связанное с базой данных. Этим понятием является – банк данных. Банк данных – система языковых, алгоритмических, программных, технических и организационных средств поддержки интегрированной совокупности данных, а также сами эти данные, представленные в виде баз данных.

 
1   ...   14   15   16   17   18   19   20   21   22


написать администратору сайта