Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы Данных - Сибилев, 2007

.pdf
Скачиваний:
290
Добавлен:
11.05.2015
Размер:
1.93 Mб
Скачать

 

 

 

11

 

 

 

 

Выручка

Две тысячи триста двадцать семь рублей

2327.45

 

 

45 коп

 

 

 

 

 

 

Сдано

Две тысячи триста рублей 00 коп

 

2300.00

Остаток в кассе

Пятьсот шестьдесят семь рублей 45 коп

567.45

 

 

 

Продажи за смену

 

 

 

 

 

 

 

 

 

 

 

 

Товар

Ед. измер.

 

Цена

Продано

Выручка

 

 

Мясо

кг

 

200.00

10

2000.00

 

 

Хлеб

шт

 

15.00

20

300.00

 

 

 

 

 

 

 

ИТОГО

 

 

 

 

2327.45

 

Все данные, необходимые для подготовки этого отчёта, накоплены в файлах ТОВАР и ПРОДАЖА. Программе Seller можно поручить создать и напечатать все отчёты. Для этого придётся выполнить синхронную обра-

ботку двух упомянутых файлов. В общих чертах процедура построения от-

чёта выглядит так.

1. Сохранить в рабочем файле РФП все записи файла ПРОДАЖА,

содержащие заданные значения даты и номера смены. 2. Для каждого значения номера кассы НК делать:

2.1.Для каждой записи из РФП с текущим значением НК делать:

2.1.1.Получить запись файла ТОВАР, удовлетворяющую

условию

ТОВАР.КодТов = РФП.КодТов

2.1.2. Вычислить значение

Выручка = ТОВАР.Цена * РФП.КолПродЕд

2.1.3. Из текущих значений

ТОВАР.Наим, ТОВАР.ЕдИзмер, ТОВАР.Цена,

РФП.КолПродЕд, Выручка

сформировать строку таблицы ПРОДАЖИ ЗА СМЕНУ.

2.2.Вычислить сумму значений столбца Выручка по строкам таблицы ПРОДАЖИ ЗА СМЕНУ, полученным на шаге 2.1.

12

3. Сформировать поля верхней части отчёта. Для этого понадобятся не упомянутые ранее данные. Наверное, Seller может их получить. Нас здесь это не интересует.

Пункт 2 и есть синхронная обработка файлов РФП и ТОВАР.

1.2 Назначение систем с базами данных

Seller — типичная программа системы с базами данных. Подобных программ в СБД магазина много. Это программы, обеспечивающие склад-

ской учёт, бухгалтерский учёт, взаимодействие с поставщиками товаров,

начисление зарплат продавцам, и т.п.

Все вместе они обеспечивают накопление и обработку записей, со-

держащих информацию, необходимую для управления магазином. Разуме-

ется, магазин — не единственное предприятие, нуждающееся в СБД.

Вообще говоря, система с базами данных (СБД) — это компьютерная система, обеспечивающая

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

выполнение типовых операций обработки данных,

отображение результатов обработки в предопределённых форма-

тах — отчётах.

СБД предназначена для информационной поддержки процессов управления организованной деятельностью.

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

фиксированные форматы (типы). Форматы отражают смысл данных. Запи-

си различных типов связаны соответственно смыслу представленных в них данных. Форматы и связи записей определяет проектировщик системы.

При этом он исходит из смысла данных. Типов хранимых записей немного

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

Главные задачи СБД

13

— Обеспечить быстрый поиск и извлечение из внешней памяти под-

множества записей, содержащих необходимую пользователю информа-

цию.

— Обеспечить целостность (непротиворечивость) сохраняемых дан-

ных.

1.3 Типовые операции обработки данных

Любая программа СБД выполняет следующие типовые операции над данными:

— извлечение из внешней памяти подмножества записей файла,

удовлетворяющих заданному условию;

создание новых экземпляров записей файла (запись о продаже);

обновление значений полей в существующих записях файлов (ос-

таток товара, количество проданных единиц товара);

— удаление подмножества записей файла, удовлетворяющих задан-

ному условию. (Эту операцию программа Seller не выполняет, но могут выполнять другие программы СБД магазина. Например, программа, веду-

щая справочник товаров, который использует Seller).

Кроме того, типичная программа СБД выполняет

синхронную обработку записей файлов, содержащих связанные по смыслу данные (файлы ТОВАР и ПРОДАЖА для создания отчёта по кассе);

агрегатную обработку — группирование записей по заданным признакам и выполнение некоторых вычислений над множеством значе-

ний заданного поля записи в группе. Агрегатная обработка необходима для подведения итогов (вычисление значения итоговой выручки при подготов-

ке отчёта по кассе).

— Наконец, в каких-то нештатных ситуациях программа должна обеспечить отмену выполненных ею действий над данными — восстано-

вить исходное состояние данных Например, если покупатель не может оп-

латить покупку, то придётся восстановить значения полей

14

ТОВАР.Остаток и ПРОДАЖА.КолПродЕд во всех записях, использо-

ванных при обработке покупки. Если создавались новые записи файла

ПРОДАЖА, то их придётся удалить.

Перечислим типовые операции:

RETRIEVE — поиск требуемых записей во внешней памяти и извле-

чение найденных в рабочий буфер.

INSERT — создание новых записей в рабочем буфере и помещение их во внешнюю память.

UPDATE — обновление значений полей существующих записей.

DELETE — удаление записей.

SUMMARIZE — подведение итогов — группирование записей по ука-

занным признакам и обработка групп:

суммирование значений указанного поля в группе,

поиск максмального/минимального значения поля в группе,

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

пе,

— подсчёт числа записей в группе).

JOIN — синхронная обработка — обработка записей нескольких семантически связанных файлов.

UNDO — восстановление — отмена выполненных программой об-

новлений записей с целью восстановления исходного состояния набора за-

писей.

1.4 Проблемы организации обработки данных предприятия

Каждая программа обработки данных решает задачи какого-то кон-

кретного типа работников предприятия — продавцов, товароведов, кла-

довщиков, бухгалтеров, … Поэтому одновременно компьютерная система исполняет несколько (возможно, десятки) программ.

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

15

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

Возникает вопрос: можно ли организовать автоматизированную об-

работку данных так, чтобы

— во внешней памяти системы всегда были все данные, необходи-

мые работникам предприятия для исполнения служебных обязанностей;

— данные, хранящиеся во внешней памяти, всегда были согласован-

ными, непротиворечивыми;

— любой пользователь в любой момент времени мог получить с по-

мощью системы необходимую информацию?

Ну, вопрос-то риторический. В настоящее время невозможно пред-

ставить себе сколь-нибудь сложное предприятие, не имеющее собственной СБД. В какой бы офис вы не заглянули, — всюду увидите интерфейсные окна автоматизированных систем обработки данных.

Они есть. Они работают. Значит, можно. Нетрудно догадаться, что существует унифицированный подход к разработке подобных систем. Су-

ществуют методологии проектирования таких систем и способы управле-

ния ими.

Эти методологии и способы составляют предмет современной тех-

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

Но прежде познакомимся с ранним подходом к созданию СОД.

16

2 Файловые системы обработки данных

2.1 Организация файловых систем обработки данных

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

тем компьютерной обработки данных. Можно сказать, что она выросла на недостатках первых, ранних СОД. Вот о них мы и поговорим сейчас.

Ранние СОД называются ныне файловыми системами обработки данных (ФСОД). Дело в том, что прикладные программы ФСОД обраба-

тывали файлы и получали доступ к файлам через посредство файловой системы ОС.

ФСОД создавались исключительно для обработки данных крупных предприятий. В те времена вычислительная техника была громоздкой и очень дорогой. Затраты на создание ФСОД окупались только в том случае,

когда объёмы обрабатываемых ею записей исчислялись сотнями тысяч.

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

ника.

Пример. Расчётная группа бухгалтерии.

Одна из задач бухгалтера расчётной группы бухгалтерии предпри-

ятия — начисление заработной платы работникам. Эта работа состоит в следующем. На каждого работника предприятия в расчётной группе заво-

дится индивидуальная карточка. Она содержит

— условно постоянную информацию: должность в подразделении,

тарификационный разряд, и т.п.;

— и оперативную информацию: время, отработанное в расчётном периоде, закрытые наряды на выполнение работ, приказы о премировании или наложении штрафа и т.п.

17

В конце очередного расчётного периода все подразделения предпри-

ятия предоставляют в бухгалтерию документы, содержащие сведения, не-

обходимые для начисления зарплаты:

табели отработанного времени,

наряды на выполнение работ,

сведения о поощрениях и наказаниях работников,

приказы о переводах на другие должности, увольнениях, зачисле-

ниях и т.п.

Бухгалтер РГ должен на основании этих документов обновить инди-

видуальные карточки работников. Актуальные данные из обновлённой карточки он использует для начисления заработка работника и определе-

ния законных удержаний из заработка (налоги, штрафы, алименты, плате-

жи по кредитам и т.п.) Результаты этой работы фиксируются в расчётном листке, выдаваемом работнику. Из листка видно, какие суммы, и на каких основаниях были начислены и удержаны в расчётном периоде, и какая сумма причитается к выплате работнику.

Обработав все индивидуальные карточки, бухгалтер должен соста-

вить платёжную ведомость — список работников с указанием сумм, при-

читающихся к выплате.

Это рутинная работа. Она сводится к выполнению нескольких типо-

вых операций.

Выбрать очередную индивидуальную карточку работника.

Найти в исходных документах все записи, относящиеся к выбран-

ному работнику.

— Из отобранных записей выписать данные в индивидуальную кар-

точку.

— Выполнить заданные алгоритмы определения начислений и удер-

жаний.

Составить (заполнить) расчётный листок.

Внести очередную строку в платёжную ведомость.

18

Совершенно очевидно, что эту работу можно автоматизировать, све-

дя функцию человека к вводу исходных данных в интерактивном режиме.

Но это очевидно сейчас. И нам с вами.

На заре компьютерной обработки данных интерактивное взаимодей-

ствие человека и программы было невозможно. Но всё прочее — возмож-

но. Программа ФСОД, автоматизирующая функцию начисления зарплаты,

делала следующее.

— Вводила (с перфокарт или магнитной ленты) заранее подготов-

ленные данные, необходимые для начисления зарплаты работникам пред-

приятия (это сейчас делается в интерактивном режиме).

Сохраняла введённые данные в каких-то своих файлах

Выполняла расчёт зарплаты.

Генерировала и печатала расчётные листки и платёжную ведо-

мость.

Заметим, что исходные данные на всех этапах готовятся людьми.

Они с большой вероятностью содержат ошибки. Их могут обнаружить ра-

ботники, получая зарплату, или бухгалтеры, анализируя отчёты, или... По-

этому в состав ФСОД включалась программа, выполняющая перерасчёт зарплаты в случаях, когда в исходных данных уже после выплаты зарпла-

ты обнаружены ошибки. Эта программа использовала файлы, созданные первой, а также вела какие-то свои.

ФСОД предприятия могла содержать программы, поддерживающие складской учёт, подготовку финансовых отчётов и т.п. В целом система обеспечивала информационную поддержку функций нижнего и среднего звена администрации предприятия, избавляя служащих от рутинной рабо-

ты.

Разработка программ ФСОД требовала привлечения усилий многих профессиональных программистов. Поэтому на крупных предприятиях стали появляться отделы обработки данных (ООД) (в СССР они называ-

лись отделами АСУ). ООД изучали потребностей предприятия в автомати-

19

зированной обработке данных и создавали необходимые программы. В

этих отделах формировались рабочие группы программистов, которые за-

нимались проблемами конкретных отделов администрации (см. рис 2.1).

Как правило, эти группы работали автономно.

Администрация

 

Отдел обработки

предприятия

 

данных

 

 

 

 

 

 

 

 

 

 

Задачи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отдел 2

 

 

 

 

 

РГ 2

 

 

 

 

 

 

 

 

 

 

Отдел 1

 

 

 

отдела 2

РГ 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задачи отдела 1

Рис 2.1 Взаимодействие ООД и администрации предприятия

Разделение ООД на рабочие группы естественно приводило к орга-

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

свои файлы. Предполагается, что наборы данных, используемых различ-

ными отделами, не пересекаются.

Отдел 1

Программы

 

отдела 1

Данные

 

.

 

отдела 1

 

 

.

 

 

.

 

 

Отдел N

Программы

 

отдела N

Данные

 

отдела N

Рис 2.2 Организация обработки данных предприятия в ранних СОД

Внутри отдела обычно использовался один из двух вариантов, изо-

бражённых на рис. 2.3.

20

ПП 1

Файлы ПП 1

.

.

.

ПП N

Файлы ПП N

Данные вокруг программ

ПП 1

ПП N

ПП 1

Файлы

отдела

ПП 1

Программы вокруг данных Рис 2.3 Варианты организации обработки данных отдела предприятия

В первом варианте каждая программа самостоятельно вела все фай-

лы, содержащие необходимые ей данные. Форматы записей файлов опре-

делялись автором программы. Это вполне приемлемо, если двум различ-

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

скольких независимо обрабатываемых файлах. Идентичность этих "ко-

пий" не гарантирована.