3. Энергоресурсы и специфика их сбыта 3.1.Первая электростанция в томске
Рис. 2 ЗАО "Горэлектросети" В апреле 1895г. в Томске было учреждено Товарищество «Технико-промышленное бюро и Кампания». На месте впадения Ушайки в Томь концессионеры построили Городскую электростанцию. Вечером 31 декабря 1895г. станция дала первый ток. Цепь городских фонарей осветила улицы Миллионную, Магистратскую и Набережную Ушайки. Первенец сибирской энергетики дал городу электричество. Свет фонарей вызвал к жизни Городские электрические сети. Это было начало. Долгое время электрические сети города оставались структурным подразделением ГЕС-1. Все энергопредприятия в то время располагались в одном знании – на Конной площади, 10. Обслуживание горсетей осуществлялось двумя машинами и конным обозом.
С 60-х Томск стал бурно строиться. Активно возводились промышленные, социальные объекты, жилье. Затем наступила эра нефтегазовой отрасли. И вслед за разработчиками земных недр энергетики продвигались на Север области. Деятельность «Томскэнерго» приобретала областной характер. А электрохозяйство Томска становилось все более специализированно-городским. И однажды для обслуживания коммунально-бытовых потребителей Томска были образованы «Городские электрические сети». Это произошло 1 апреля 1964 года.
3.2. МЕСТО ЗАО «ГОРЭЛЕКТРОСЕТИ» в системе энергоснабжения З АО «Горэлектросети» по своей природе является предприятием-посредником. Покупая электроэнергию у «Томскэнерго» оно обеспечивает бесперебойное электроснабжение города. Схематично место «Горэлектросети» в структуре энергоснабжения можно представить на рисунке 3.
Рис. 3 Место ЗАО «Горэлектросети» в системе энергоснабжения города С труктура потребителей «Горэлектросети» представлена на рисунке 4.
Рис. 4 Структура потребителей электроэнергии
3.3. оперативно диспетчерская служба Оперативно-диспетчерская служба является структурным подразделением предприятия и находится в прямом подчинении главного инженера. Среди задач решаемых оперативно-диспетчерской службой такие как:
Круглосуточный контроль над состоянием системы энергоснабжения.
Принятие решений по устранению аварийных ситуаций.
Накопление и обобщение статистики.
Прием в эксплуатацию новых объектов.
Планирование развития системы энергоснабжения, на основании накопленной статистики.
Планирование мероприятий по плановому обслуживанию объектов системы энергоснабжения.
4. Алгоритмы и структуры данных 4.1. структура базы данных Представленная база данных соответствует реляционной технологии построения баз данных (БД). Реляционная схема БД представлена в приложении 4. Все таблицы БД можно условно разделить на три группы:
Таблицы, содержащие информацию о реальных объектах и их свойствах (подстанциях, зданиях и т.п.).
Таблицы, отражающие информацию о связях между объектами реального мира и их свойствах.
Таблицы-справочники, хранящие типовые значения некоторых свойств реальных объектов.
Таблицы первого типа предназначены для хранения информации об основных объектах предметной области. К таким таблицам относятся:
STATIONS – содержит информацию о трансформаторных подстанциях и фидерных пунктах, их основных характеристиках;
SECTIONS,CELLS,ABONENT_DEVICE,DIST_DEVICE – хранят информацию о структурных частях трансформаторных подстанций и их основных параметрах;
OBJECTS – хранит информацию о зданиях и сооружениях на которые поступает электроэнергия;
ORGS – содержит данные об организациях - абонентах электрической сети;
ABONENTS – хранит информацию об абонентах – физических лицах;
Таблицы, отражающие связи объектов предназначены для хранения свойств этих связей, а так же для идентификации объектов по их связям. Примером такой таблицы является таблица STATION_HAS_EQUIPMENT, связывающая таблицы STATIONS и ADD_EQUIPMENT связью типа «многие-ко-многим». Связь отражает количество дополнительного оборудования, имеющегося на подстанции или фидерном пункте. Собственным свойством данной связи является количество дополнительного оборудования.
К таблицам-справочникам необходимо отнести следующие таблицы:
STREETS – содержит названия улиц города;
OBJECT_KINDS – хранит информацию и видах зданий с точки зрения их предназначения и категории;
STATION_KINDS – виды трансформаторных подстанций и фидерных пунктов;
ACTION_KINDS – содержит возможные типы событий, отраженных в журнале подстанции;
4.1.1. основные объекты предметной области Основными объектами предметной области являются: трансформаторные подстанции и фидерные пункты, строительные здания и сооружения, участвующие в системе энергоснабжения, организации, являющиеся абонентами электросети как в качестве владельцев зданий и сооружений, снабжаемых электроэнергией.
4.1.1.1. Объект «подстанция» Под объектом «Подстанция» подразумеваются некоторые пункты – узлы системы энергоснабжения, предназначенные для обеспечения электроэнергией подключенных к ним зданий и сооружений, изменения параметров электроэнергии (уменьшения напряжения и т.п.), защиты от перегрузок и так далее. Информация о подстанциях хранится в таблице STATIONS, таблица содержит следующие поля:
ID – уникальный идентификатор подстанции, служебное поле, используется как внешний ключ в других таблицах;
KIND_ID – внешний ключ, ссылается на таблицу-справочник содержащую возможные типы подстанций;
ORG_ID – внешний ключ, указывающий код организации-владельца подстанции в таблице ORGS;
CELL610_ID – код ячейки подстанции, от которой данная подстанция получает электроэнергию, информация об ячейках содержится в таблице CELLS;
NAME – название подстанции занесенное в документы, по этому названию осуществляется поиск;
ADRESS – адрес ближайшего от подстанции строительного сооружения;
ADD_IF – дополнительная текстовая информация любого характера;
4.1.1.2. объект «здание» Под объектом «ЗДАНИЕ» следует понимать любое строительное или иное сооружение участвующее в системе энергоснабжения, то есть получающие электроэнергию от одной из подстанций. Подключение сооружения осуществляется к вводному устройству потребителя, находящемуся в подстанции, которая осуществляет энергоснабжение данного объекта. Вводное устройство потребителя находится в свою очередь в одной из секций подстанции. Информация об объектах типа «ЗДАНИЕ» содержится в таблице OBJECTS, которая имеет следующие поля:
ID – уникальный идентификатор строительного сооружения, служебное поле, используется как внешний ключ в других таблицах;
KIND_ID – внешний ключ, ссылка на таблицу-справочник OBJECT_KINDS, содержащую возможные типы объектов и их категории;
NAME – название объекта
STREET_ID – внешний ключ, код улицы, ссылка на таблицу-справочник STREETS, содержащую список улиц;
HOUSE – номер здания на улице;
SQUARE – общая площадь сооружения;
LIVESQUARE – жилая площадь сооружения (для нежилых объектов равна нулю);
BUILTSQUARE – общая площадь застройки;
WIDTH – ширина сооружения;
LENGTH – длина сооружения;
HEIGHT – высота сооружения;
PROJECT – ссылка на документ, содержащий проект данного сооружения;
Как отмечено выше каждый объект подключается к вводному устройству потребителя, информация о котором содержится в таблице ABONENT_DEVICE, которая имеет следующие поля:
ID – уникальный идентификатор строительного сооружения, служебное поле, используется как внешний ключ в других таблицах;
DIST_DEVICE_ID – внешний ключ, идентификатор распределительного устройства, в составе которого находится данное вводное устройство потребителя;
OBJECT_ID – идентификатор строительного сооружения, которое питается через данное вводное устройство потребителя;
NAME – название вводного устройства потребителя;
DESIGN_LOAD – расчетная нагрузка устройства;
Вводное устройство потребителя, в свою очередь, находится в составе распределительного устройства – еще одного элемента трансформаторной подстанции. Информация о распределительных устройствах находится в таблице DIST_DEVICE, которая содержит следующие поля:
ID – уникальный идентификатор распределительного устройства, служебное поле, используется как внешний ключ в других таблицах;
SECTION_ID – код секции, в которой находится данное распределительное устройство;
NAME – название распределительного устройства;
ISOLATOR_TYPE – тип опорных изоляторов;
ENTER_TYPE – тип ввода;
NOM_VOLTAGE – номинальное напряжение;
NOM_AMPERAGE – номинальный ток;
DYNAMIC_STABILITY – ток динамической устойчивости;
THERMO_STABILITY – ток термической устойчивости;
Распределительное устройство находится в составе секции трансформаторной подстанции. Информация о секциях трансформаторной подстанции находится в таблице SECTIONS, которая имеет следующие поля:
ID - уникальный идентификатор секции, служебное поле, используется как внешний ключ в других таблицах;
STATION_ID – внешний ключ, код подстанции, частью которой является данная секция;
SECTION_KIND – внешний ключ, ссылается на таблицу справочник SECTION_KINDS, которая содержит возможные типы секций;
NUMBER – номер секции внутри подстанции;
NAME – название секции;
NOM_VOLTAGE – номинальное напряжение;
4.1.1.3. объект «организация» Объекты данного типа рассматриваются с двух точек зрения. Первая – это организация как владелец объекта, на который подается электроэнергия. Вторая – организация, которая участвует в системе энергоснабжения как владелец одной или нескольких подстанций. Это, как правило, крупные организации, например заводы. Информация об организациях хранится в таблице ORGS, которая имеет следующие поля:
ID - уникальный идентификатор организации, служебное поле, используется как внешний ключ в других таблицах;
NAME – название организации;
STREET_ID – внешний ключ, код улицы на которой расположена организация;
HOUSE – номер здания, в котором находится организация;
FLAT – номер помещения, в котором находится организация;
ADD_INF – реквизиты и другая произвольная текстовая информация;
4.1.1.4. объект «абонент» Объекты этого типа рассматриваются с точки зрения их проживания в зданиях, участвующих в системе энергоснабжения. Информация об абонентах хранится в таблице ABONENTS, которая имеет следующие поля:
ID – уникальный идентификатор абонента (лицевой счет);
FIRSTNAME – имя абонента;
FATHERNAME – отчество абонента;
LASTNAME – фамилия абонента;
FULLNAME – полное имя абонента, вычисляемое поле, формируется из FIRSTNAME, FATHERNAME и LASTNAME;
STREET_ID – внешний ключ, код улицы, на которой проживает абонент;
HOUSE – номер здания в котором проживает абонент;
FLАТ – номер квартиры, в которой проживает абонент;
PHONE – номер телефона абонента;
4.1.2. таблицы-справочники Таблицы-справочники предназначены для хранения информации, которая часто используется в определении свойств некоторых объектов предметной области, и при этом редко изменяется и дополняется. К таблицам справочникам относятся:
ABONENT_KINDS – содержит возможные виды зданий и сооружений потребляющих электроэнергию и их категории. Категория абонента означает степень его важности с точки зрения возможного отключения электроэнергии. К наивысшей первой категории относятся, например, спецлаборатории, больницы, поликлиники и корпуса ВУЗов; ко второй – детский сады и школы; к третьей – административные здания и жилые дома.
ADD_EQUIPMENT – содержит информацию о дополнительном оборудовании которое может находится на подстанции. К дополнительному оборудованию относятся, например, ящик с песком, изоляционные коврики, ограждения и так далее.
ACTION_KINDS – отражает возможные типы событий записанные в журнале подстанции. Например, текущий ремонт, осмотр, монтаж и так далее.
CELL_KINDS – содержит возможные типы высоковольтных ячеек подстанции;
SECTION_KINDS – содержит описание типов секций подстанции;
STATION_KINDS – содержит типы подстанций;
Все таблицы-справочники состоят из первичного ключа ID и поля NAME, которое содержит описание характеристики.
4.1.3. Хранимые процедуры и триггеры Хранимая процедура – некоторая последовательность действий, которая хранится на сервере и исполняется на нем. В представленной базе данных имеется только одна хранимая процедура GENERATE_ID, которая используется для генерации уникальных первичных ключей таблиц. Это обусловлено тем, что все бизнес-процессы деловой модели предметной области достаточно просты и сводятся в основном к добавлению, изменению и удалению записей без выполнения каких-либо сложных проверок целостности и, таким образом, не требуют вынесения их в отдельные процедуры.
Поскольку в клиентском приложении используется механизм отложенных изменений, генерация уникальных первичных ключей триггерами становится невозможной, так как при добавлении записей они хранятся не на сервере, а в буфере клиентского приложения, где они уже должны иметь уникальные ключи. Эту проблему решает хранимая процедура GENERATE_ID, которая генерирует первичный ключ для записи, которая еще находится в буфере клиентского приложения и не передана на сервер.
Для поддержания целостности базы данных при удалении записей используются триггеры каскадного удаления. Механизм каскадного удаления предполагает удаление сначала всех зависимых записей в других таблицах, а потом и требуемой записи. Таким образом механизм каскадного удаления позволяет поддерживать ссылочную целостность базы данных в непротиворечивом состоянии.
4.2. алгоритмы и структуры данных клиентской части программы 4.2.1. Навигация по данным Структура базы данных, взаимосвязи объектов, их свойства представлены пользователю посредством визуальной компоненты TTreeView. Эта компонента является стандартным классом Windows и используется во многих приложениях Windows, например, в приложении Windows Explorer. Компонента предназначена для отображения информации в древовидной форме, то есть, способна отобразить некоторую иерархическую структуру объектов, находящихся в таких отношениях как «есть часть», «находится в», «обеспечивает электроэнергией» и другие. Таким образом, пользователь осуществляет навигацию по объектам в порядке их подчиненности друг другу. То есть навигация по данным организована так, что, начав с любого объекта, пользователь по его связям может перейти к любому связанному объекту.
4.2.2. компоненты визуализации данных Для визуализации данных в программе использованы следующие компоненты Delphi:
TLabel – используется для отображения названия характеристики или свойства объекта;
TDBText – отображает текстовую информацию из базы данных, возможность редактирования информации отсутствует;
TDBEdit – отображает текстовую информацию из базы данных, с возможностью редактирования;
TDBMemo – отображает большие объемы текстовой информации из полей базы данных, имеющих тип BLOB.
TDBTreeView – отображает текстовую информацию из базы данных в древовидной форме;
В целях уменьшения вероятности случайного исправления данных, для просмотра используются компоненты, которые не предусматривают возможности редактирования информации. Компоненты, редактирующие данные используются в отдельных формах, каждая из которых предназначена для определенного действия с объектом. Например, редактирование данных об организации осуществляется в отдельной форме TOrgsForm. В то же время вся необходимая информация обо всех объектах предметной области сосредоточена на главной форме.
4.2.3. компоненты для связи с базой данных Для связи с базой данных в проекте использованы следующие невизуальные компоненты Delphi:
TDatabase – так называемый псевдоним базы данных;
TQuery – компонента содержащая набор данных, полученных в результате выполнения SQL-запроса к серверу баз данных;
TDataSourse – компонента-посредник между набором данных и компонентами визуального отображения данных;
TUpdateSQL – компонента осуществляющая модификацию базы данных при помощи SQL-запросов, которые в ней содержатся;
Компонента TDatabase используется для переопределения параметров соединения приложения с базой данных. Вообще параметры соединения указываются при создании алиаса в утилите BDE, однако при необходимости внести изменения параметры соединения без использования компоненты TDatabase пользователь должен вручную настроить алиас в помощью утилиты BDE. Использование компоненты TDatabase дает возможность автоматически при необходимости изменять параметры соединения с базой данных без использования каких-либо утилит, в скрытом от пользователя режиме.
Для каждой таблицы базы данных в приложении имеются три компоненты: TQuery, TDataSource и TUpdateSQL. Компонента TQuery содержит набор данных полученных от сервера в результате SQL-запроса. Однако данные, возвращенные сервером, имеют атрибут «только для чтения», и не могут быть изменены. Использование компоненты TUpdateSQL дает пользователя иллюзию работы с «живыми» данными, то есть, внося изменения в свои локальные данные, они автоматически изменяются на сервере. Для связи компонентов визуализации данных и компонентов, которые получают информацию из базы данных, используется компонента TDataSource.
4.2.4. Использование механизма отложенных изменений Стандарт технологии «клиент-сервер» предполагает ведения журналов транзакций. То есть каждое изменение данных сначала записывается в журнал транзакции, а при ее успешном завершении переписывается в базу данных. Транзакция стартует с момента внесения пользователем первого изменения. Использование механизма отложенных изменений заключается в следующем. При создании, изменении или удалении некоторой записи эти действия осуществляются с локальным набором данных на компьютере клиента. При необходимости применить изменения стартует неявная, скрытая от пользователя транзакция, в процессе которой все изменения передаются из буфера компьютера клиента в базу данных.
Преимущества использования данного механизма заключаются в следующем:
меньшее количество транзакций;
сокращение времени транзакций;
сокращение сетевого трафика;
|