2.3 Хранение документов произвольной структуры

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

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

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

Итак, у нас имеется таблица описания типов документов DocTypes, таблица описания подтипов документов DocSubTypes. Таблица Attributes описывает все атрибуты указанного подтипа документа, если атрибут множественный, то определение его полей находится в таблице VMAttributes. Все атрибуты относятся к какому – то домену значений, домены описаны в таблице Domains.

Для хранения значений атрибутов для каждого подтипа создается таблица, имя которой формируется по правилу “ATS”+SubTypeID, где “ATS” – префикс, а SubTypeID – ID подтипа документа. Для хранения значений множественных атрибутов для каждого множественного атрибута создается таблица ATM “ATM”+AttribID, где “ATM” – префикс, а AttribID – ID множественного атрибута. Такая схема формирования имен обеспечивает уникальность.

Для лучшего понимания приведем пример.

 

2.3.1 Пример структуры документа

Приложение №1 к плану приватизации "Акт оценки №1 стоимости зданий, сооружений, передаточных устройств"

Зарегистрировано 12.11.2000

Министерством по управлению госимуществом

Инв.№

Название

Адрес

Стоимость первоначальная

Стоимость остаточная

Износ

1233 ТП 1021 Ул.Свердлова,7 111,11 руб. 333,33 руб. 222,22 руб.
1344 ТП 7563 Ул.Фурманова,45 222,22 руб. 555,55 руб. 333,33 руб.
 

Рис.2.3.1.1. Пример документа.

Структура документа

Название документа

Дата(хранится в таблице Документы и среди атрибутов)

Номер(хранится в таблице Документы и среди атрибутов)

Дата регистрации

Кто зарегистрировал

ТаблицаОбъектов

Инв. №

Название

Адрес

Стоимость первоначальная

Стоимость остаточная

Износ

Домены Значений Атрибутов

DomainID Description Realization
1 Дата Datetime
2 Название документа Varchar(100)
3 Номер документа Varchar(30)
4 Организация Varchar(100)
5 Денежная сумма Money
6 Инвентарный номер Varchar(20)
7 Наименование объекта Varchar(30)
8 Адрес Varchar(20)

Типы документов

TypeID Name
1 Приложение к плану приватизации "Акт оценки №1 стоимости зданий, сооружений, передаточных устройств"

Организации

OrgID Name Address Telephone INN
1 АО «Свердловэнерго» NULL NULL NULL

Документы

DocID OrgID TypeID DocDate DocNumber
1 1 12.11.2000

Определение атрибутов

AttribID TypeID DomainID TabOrder Name Plurality
1 1 2 1 Название 0
2 1 3 2 Номер 0
3 1 1 3 Дата 0
4 1 7 4 Зарегистрировано 0
5 1 Null 5 СписокОбъектов 2

ATS1

DocID FieldData
1 Приложение №1 к плану приватизации "Акт оценки №1 стоимости зданий, сооружений, передаточных устройств"
1 1
1 12.11.2000
1 Министерством по управлению госимуществом
1 NULL

ОпредПолейСильноМнож

AttribID ColumnID DomainID Name
5 1 6 Инвентарный номер
5 2 7 Название
5 3 8 Адрес
5 4 5 Стоимость первоначальня
5 5 5 Стоимость остаточная
5 6 5 Износ

Номер таблицы с данными сильно множественных атрибутов формируется из префикса AVM и номера атрибута. Все атрибуты(AttribID) уникальны в пределах БД. Связь таблиц с данными атрибутов с таблицей определения атрибутов происходит через номер таблицы, который формируется как префикс ATM + AttribID. Номер поля формируется из префикса FieldDate и номера столбца.


ATM5

DocID RowID FieldData1 FieldData2 FieldData3 FieldData4 FieldData5 FieldData6
1 1 1233 ТП 1021 Ул.Свердлова,7 111,11 333,33 222,22
1 2 1344 ТП 7563 Ул.Фурманова,45 222,22 555,55 333,33

3. Программная реализация комплекса

3.1 Серверная часть

В состав серверной части комплекса ходит:

таблиц, в которых хранятся собственно данные;

хранимых процедур, реализующих доступ к этим таблицам;

сообщениях об ошибочных ситуациях;

список пользователей и ролей.

3.1.1 Руководство программиста

При создании серверной части использовалось следующее соглашения о наименовании объектов:

Имя объекта формируется из 3 составных частей:

1 - префикс типа объекта (sp,vw,df, tr);

2 - аббревиатура модуля;

3 – действие;

3 - объект;

Например, spONIAddDomain.

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

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

Список хранимых процедур, их параметров и описание приведены в табл 3.1.


Таблица 3.1.

Список хранимых процедур серверной части

Хранимая процедура Описание

CREATE PROC spONIAddAttribute

@Name varchar(100), @SubTypeID int, @TabOrder int, @DomainID int, @Plurality int, @ID int OUTPUT

Создание атрибута докуммента

CREATE PROC spONIAddCategory

@level int, @NameValue varchar(128), @FKValue int, @ID int OUTPUT

Создание новой категории при использовании универсального иерархического компонента

CREATE PROC spONIAddDoc

@SubTypeID int,@ID int OUTPUT

Создание нового документа

CREATE PROC spONIAddDocSubType

@NameValue varchar(128),@TypeID int, @ID int OUTPUT

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

CREATE PROC spONIAddDomain

@Name varchar(20), @Realization varchar(20), @ID int OUTPUT

Создание нового домена значений атрибутов документа

CREATE PROC spONIDeleteAttribute

@ID int

Удаление атрибута документа

CREATE PROC spONIDeleteCategory

@level int, @ID int

Удаление категории при использовании универсального иерархического компонента

CREATE PROC spONIDeleteDoc

@ID int

Удаление документа

CREATE PROC spONIDeleteDocSubType

@ID int

Удаление подтипа документа

CREATE PROC spONIDeleteDomain

@ID int

Удаление домена значений атрибутов документа

CREATE PROC spONIGetAttributes

@ID int

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

CREATE PROC spONIGetCategories

@level int, @ID int

Получение значений категории указанного уровня
CREATE PROC spONIGetDocs Получение списка документов
ё Получение списка доменов значений атрибутов

CREATE PROC spONIGetSingleAttributeValue

@DocID int,@SubTypeID int, @AttribID int,@Value nvarchar(4000) output

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

CREATE PROC spONIRenameAttribute

@ID int, @TabOrder int, @DomainID int, @Name varchar(100), @Plurality int

Изменение атрибута документа

CREATE PROC spONIRenameCategory

@level int, @NameValue varchar(128), @ID int

Изменении категории при использовании универсального иерархического компонента

CREATE PROC spONIRenameDomain

@ID int,@Name varchar(20),@DomainType int, @Realization varchar(20)

Изменение домена значений атрибутов докуменат

CREATE PROC spONIUpdateSingleAttributeValue

@DocID int, @SubTypeID int, @AttribID int,

@Value varchar(4000)

Изменение значения атрибута

Информация о работе «Проект электронного архива»
Раздел: Информатика, программирование
Количество знаков с пробелами: 100886
Количество таблиц: 14
Количество изображений: 13

Похожие работы

Скачать
52624
1
0

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

Скачать
13681
0
0

... документации). Представляют интерес два проекта: ·          электронный архив “Вирт Йозеф — канцлер Германии”, ·          электронный архив “Фотографии Ю.А. Гагарина”. В 1992 г. РГАНТД совместно с Российским центром хранения историко-документальных коллекций осуществил проект оцифровки документов из фонда “Вирт Йозеф — государственный канцлер Германии”. Особенности этого проекта: 1. ...

Скачать
165424
0
0

... этих стран характерен высокий статус национальных профессиональных объединений управляющих документацией, а также общественный интерес к вопросам документационного обеспечения управления. 2.1 Управление электронными документами в Австралии Деятельность архивных органов в Австралии в области нормативно-методического регулирования вопросов управления документацией в настоящее время является ...

Скачать
89663
2
0

... силы информации, записанной на машинном носителе. Единственным технически возможным способом придания доказательности “электронному документу” является использование электронной подписи. Единственное действующее в масштабе государства определение дано в ГОСТ Р 51141-98 “Делопроизводство и архивное дело. Термины и определения”, который определяет “документ на машинном носителе” как документ, ...

0 комментариев


Наверх