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

Крючков Основы учёта,контроля 2007

.pdf
Скачиваний:
480
Добавлен:
16.08.2013
Размер:
9.31 Mб
Скачать

что COREMAS обладает высокой степенью защищенности, по меньшей мере, некорректно.

Был разработан тест для проверки быстродействия системы. Тест был рассчитан на 10000 учетных единиц хранения, каждая из которых имела бы 100 записей предыстории. Предполагалось, что за 1–2 минуты система должна выдать список инвентарных единиц для произвольного выбранного места хранения. Конкретная база данных, на основе которой проводился тест, имела 16000 учетных единиц, 160 записей предыстории у каждой. На получение инвентарного списка для заданного места ушло 3 секунды.

Рассмотрим основные особенности конструкции системы. Начнем этот обзор с дизайна базы данных.

Дизайн базы данных CoreMAS

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

Основной технологией CoreMAS является технология клиент/сервер – ядро базы данных находится на сервере, в то время как интерфейс пользователя работает на клиентском компьютере и связан с сервером через сеть доверительными отношениями «trusted connection». Для обеспечения безопасности информации используется интегрированная система защиты SQL Server и операционной системы Windows NT. Для подключения клиента к базе данных используется механизм ODBC.

Выделим основные объекты базы данных и опишем решения, которые использовались для описания информации об этих объектах.

Главный объект СУиК ЯМ – ядерный материал. База данных проектировалась таким образом, чтобы охватить все его необходимые атрибуты. Каждый имеющийся в наличии материал может быть охарактеризован по любому числу элементов. Каждый элемент может быть охарактеризован по любому числу изотопов. Обладая полной информацией о химической природе материала, база

381

данных позволяет удовлетворить разнообразные запросы пользователя.

Важными понятиями базы данных являются места расположения и счета материала. От каждой площадки требуется, чтобы она имела в своем составе, по меньшей мере, одну ЗБМ. Во многих подразделениях каждому «месту учета» в СУиК соответствует определенное физическое местоположение, однако есть и такие подразделения, в которых ЗБМ может располагаться в более чем одном физическом местоположении, так же как и более чем одна ЗБМ может располагаться в одном физическом местоположении. CoreMAS рассматривает счет материала (принадлежность к ЗБМ) и местоположение материала как отдельные концепции. Большая часть подразделений обращаются к местоположению посредством названия местоположения. Например, названием местоположения может быть номер здания, комнаты или шкафа. Места расположения рассматриваются как физические местоположения, а не как конструкции для учета. Каждому материалу соответствует уникальный счет материала. Уникальность требуется для того, чтобы помочь в организации данных в базе данных ядра CoreMAS. Точно так же название местоположения требует от CoreMAS предоставить обозначение местоположения для его идентификации. Для этого предусмотрен уникальный идентификатор местоположения. От названия местоположения не требуется, чтобы оно было уникальным, однако при утверждении в конкретном подразделении такое правило может быть принято.

Ядро базы данных CoreMAS принимает концепцию учетной единицы. «Учетная единица» определяет учитываемый материал при делении его вплоть до самых малых частей, имеющих один тип материала, относящегося к «учетной единице», или более одного, в дополнение к неучитываемым элементам или изотопам. Идентификатор учетной единицы должен быть уникальным, от названия же учетной единицы уникальности не требуется.

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

382

щему обобщению: контейнер может содержать контейнер(ы), упаковку или материал. Таким способом физический контейнер или собранный узел можно трактовать с помощью логической концепции контейнеризации. Учетная единица в контейнере теряет способность перемещаться отдельно от контейнера. Например, если физический контейнер содержит учетные единицы A, B и C, не имеет смысла учитывать возможность перемещения учетной единицы B без одновременного перемещения единиц A и C. Идентификатор описания контейнера используется с тем, чтобы однозначно определить контейнер. CoreMAS требует предоставлять уникальный идентификатор контейнера для каждого контейнера. От названий и типов контейнеров не требуется, чтобы они были уникальными, однако при утверждении в конкретном подразделении такое правило может быть принято. Если технологически требуется, то база данных CoreMAS может ограничить число уровней вложенности контейнеров.

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

Характеристики пользователя CoreMAS

Так как СУиК ЯМ должны разграничить доступ к информации в зависимости от статуса пользователя, база данных должна содержать концепцию пользователя. Пользователи CoreMAS по выполнению функций разделяются на несколько групп:

учет ядерного материала: эти лица вводят данные об операциях с материалом для персонала, не имеющего доступа к системе учета материала. Они вводят данные об операциях для внешнего отправления и получения материалов;

обращение с ЯМ: все лица, которые непосредственно работают

сядерным материалом. Это включает тех, кто имеет дело с мате-

383

риалом в технологическом процессе, в хранилище, а также с материалом, подготовляемом для отгрузки;

охрана ЗБМ: лица, ответственные за материал, размещающийся на их ЗБМ;

измерительные операции: лица, измеряющие материал;

инвентаризация: лица, которые сравнивают результаты физической инвентаризации с зарегистрированным инвентарным количеством;

управление материалами: лица, готовящие стандартные и специальные отчеты и ответы на запросы для внутреннего и внешнего использования;

администрирование системы: лица, которые отвечают за конфигурацию и обслуживание CoreMAS.

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

Таблицы базы данных CoreMAS

Ядро базы данных включает в себя все основные таблицы, необходимые для функционирования системы учета. Рассмотрим основные группы таблиц базы данных и схему связей между ними. Каждая таблица в реляционной базе данных описывает одну сущность, будь то субъект или объект. Связь между сущностями устанавливается с помощью ключей – первичных и внешних (PK и FK). Некоторые таблицы CoreMAS могут вообще не иметь связей с другими таблицами – это архивные таблицы, таблицы постоянных величин и некоторые другие. Например, таблица «Номер контейнера» хранит значение ConID, содержащее следующий номер контейнера, который будет присвоен следующему контейнеру, заведенному в базе данных.

Всего CoreMAS содержит около ста таблиц. Полная ERD очень сложна и не может быть здесь приведена. Организационно все таблицы сгруппированы по функциональному назначению. Приведем для каждой такой группы описание функционального назначения и перечень основных таблиц. Выделяют следующие группы таблиц:

санкционирование;

вычисление;

измерение;

384

контейнеризация;

транзакция;

материал;

отчетность.

Санкционирование. Эта группа таблиц контролирует процесс выдачи санкций на возможность работать с теми или иными опциями меню в CoreMAS. Тем самым определяются доступные функции учета и контроля для данного пользователя. Наименования таблиц, входящих в эту группу: Users, Usergroup, Groups, GroupAuth, Authorization, Operation, и UserOpNameAcct.

Корректировка. Группа таблиц корректировки имеет дело с алгоритмическими шагами, которые требуются для вычисления или определения количества материала, основанного на измерении. Например, имеется бак с жидкостью и надо рассчитать объем по уровню жидкости, для чего применяется формула объема цилиндра. В группу входят следующие таблицы: MatlTransformNumber, MtMatlOutput, MtIsoAmountOutput, MtInput, MtElementToOutput, MtMeasurement, и Decay. Таблицы Decay (распад) следят за скоро-

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

цах Material (NETWt), Element (ElementWt), или Isotope (IsoWt).

Измерение. Группа таблиц «Измерение» хранит результаты измерений и единицы их измерения. В группу входят следующие таблицы: MTMeasurement, MeasMatl, MeasElem, MeasIso, MeasType, UnitConversion, Unit, MeasNumber, Instrument, и InstrumentNumber. Таблица MTMeasurement связывает результаты измерений с транзакцией, в ходе которой были обновлены количественные характеристики материала при вычислении.

Таблицы группы Контейнеризация организованы таким образом, что обеспечивают неограниченные:

1)вложенность контейнеров;

2)упаковку, связанную с контейнерами;

3)количество индикаторов целостности (пломб) на контейнере, материале или месте нахождения.

385

Вгруппу входят: Container, ContainerNumber, ConType, ConTypeNumber, Packaging, PackageType, PackageTypeNumber, TID, TIDType, TIDNumber, и TempConMovement.

Транзакция. Группа таблиц «Транзакция» описывает транзак-

ции в CoreMAS. Таблицы Transfer и TransferNumber описывают связи с функцией отчетности. Таблица Terminal содержит информацию о машине–клиенте, с которой была введена транзакция.

Таблицы StatusType, StatusOpType и OpType содержат типы тран-

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

группу входят: Transaction, Terminal, AcctPeriod, TransactionNumber, AcctPeriodNumber, StatusType, StatusOpType, OpType и TIC.

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

(таблицы COEI). Вот некоторые из таблиц: Material, Element, IsoAmount, ElemType, IsoType, ElemForm, MatlForm, COEIProfile, COEICode, Project, DetlMatlType и SumMatlType.

Вгруппу Отчетность входит ряд таблиц, характерных для государственной системы отчетности (разумеется системы Соединенных Штатов). Эти таблицы включены в COREMAS с посылкой, что каждая страна, в которую будет поставлен COREMAS, выработает свой государственный стандарт отчетности. Вот некоторые из таб-

лиц: TransactionEvent741, TransferNumber, Transfer, TransactionDetail741, ShipRecMatlDiff, ShipRecElemDiff, ShipRecIsoDiff, Comment, TransportPackaging, TmpProject, TmpCOEIDetail, TmpMBRSubtotal, TmpCOEI, TmpIntAdjust и TmpCOEISumIso.

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

386

ними ключами. Это свойство обеспечивается в SQL Server 6.5, однако CoreMAS начинал разрабатываться для версии 4.21, которая не обеспечивала слежения за согласованностью ссылок. Поэтому CoreMAS имеет разнообразные механизмы программного обеспечения этой согласованности.

Хранимые процедуры базы данных CoreMAS

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

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

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

Всего CoreMAS использует более 300 сохраняемых процедур, и они обеспечивают самые разнообразные функции СУиК ЯМ.

Общие требования к транзакциям

Основные функциональные операции СУиК организуются через транзакции. Напомним, что транзакция – это действия с информацией в базе данных, осуществляемые как единое целое. При невозможности выполнить их все производится «откат» транзакции, т.е. восстановление состояния базы данных на период до ее начала. Любая транзакция в CoreMAS разбита на пять этапов:

вход – то, что должен предоставить пользователь, чтобы успешно начать требуемую транзакцию,

387

нормальная обработка – то, что прикладная программа ядра CoreMAS должна выполнять,

обработка исключений – обработка исключительных ситуаций,

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

выход – результат, который должен быть получен в результате успешной транзакции.

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

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

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

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

388

Функциональность СУиК CoreMAS

С помощью многообразных сохраняемых процедур пользователь реализует функции СУиК. Прикладная программа ядра CoreMAS включает следующие функции и стандартные программы:

перемещения материала, включая изменение местоположения внутри ЗБМ, перемещения между ЗБМ, а также получение и отправление с внешним знаком идентификации отчетности;

трансформации материалов – разделение на части, комбинирование, распад, уточнения и изменения номеров проектов;

контейнеризацию материала;

пример государственной системы отчетности;

функции обеспечения физической инвентаризации;

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

полную историю транзакций для каждой учетной единицы;

обеспечение деятельности по подведению итогов в учетном периоде;

обеспечение слежения за устройствами регистрации вмешательства;

сохранение показаний приборов;

обслуживание системы и административные функции;

пример встроенных функций помощи пользователю. Рассмотрим некоторые из функций СУиК более подробно. Перемещение материала. Они разделяются на внутренние, на

объекте, и внешние. Материалы передаются кому–то и получаются от кого–то. При перемещении материала сначала искомая единица хранения переводится в состояние транзита, после перемещения выводится из состояния транзита и фиксируется новое положение. При отправке/получении вовне CoreMAS обеспечивает механизм регистрации, идентификации и создание соответствующих документов – отчетов.

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

389

идентификатор материала, который трансформируется;

идентификатор нового материала;

тип выполняемой транзакции.

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

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

Радиоактивный распад. Данная функция учитывает изменение с течением времени количества определенных ядерных материалов. Чтобы точно провести учет этих материалов, необходимо обновлять массы этих материалов с учетом радиоактивного распада материала. CoreMAS рассчитывает распад ежемесячно для всех ядерных материалов, для которых учетные величины могут измениться из–за радиоактивного распада. Эти расчеты и коррекции применимы для всех учетных единиц материала типов 44 (америций 241), 47 (берклий), 48 (калифорний), 83 (плутоний 238) и 87 (тритий).

Контроль измерений. CoreMAS поддерживает контроль измерительных приборов. Каждое измерение записывается в историю контроля измерений, которая содержит всю информацию относительно измерений. Если значения показаний измерительного прибора не попадают в установленные пределы, определенные независимыми расчетами, то прибор может быть переведен в состояние «не работает». Такой прибор не может быть использован для проведения измерений по учету. Снова ввести его в работу может только санкционированный персонал. Данная функция задается двумя транзакциями: вывод измерительного прибора из работы и ввод его в работу.

Любая СУиК должна работать как справочная система. Следовательно, ядро CoreMAS должно обеспечивать ответы на запросы. В ответ на запросы должны быть выданы требуемые данные. Ожидается, что каждое внедряющее подразделение будет создавать свои собственные способы представления результатов в ответ на запросы. Ядро системы предусматривает ответы на следующие запросы:

390