48325 (588542), страница 4
Текст из файла (страница 4)
ObjAdress
ObjName
SetDate
ProvType
MainSec
OpType
OpTotal
PrislsolProv
LineLen
BalPrin
BTI_14 – таблица параметров БТИ для воздушных ЛЭП 0,4 кВ:
ID_ObjIm (FK).
InvNum
InvDate
NumTP
ObjAdress
ObjName
SetDate
CabVolt
CabType
MainSec
TotKolod
LineLen
BalPrin
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 - объект;















