Научная статья на тему 'Хранение топологии сети в реляционных базах данных'

Хранение топологии сети в реляционных базах данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1111
128
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ / ТАБЛИЦЫ / ТОПОЛОГИЯ СЕТИ / САПР / ТРАНСПОРТНЫЕ СРЕДСТВА / NOSQL / POSTGRES / RELATIVE DATABASES / TABLES / NETWORK TOPOLOGY / CADD / VEHICLES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Свиридов Андрей Александрович

В статье рассмотрена проблема хранения данных, изначально предназначенных для хранения в формате XML, в таблицах реляционных баз данных, на примере данных топологии сети телекоммуникаций. Метод используется в системе автоматизированного проектирования сетей связи для хранения в базах данных системы управления связью. В качестве систему системы управления базами данных применяется СУБД Postgres.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Vehicular network topology as stored in relational databases

The article is focused on the problem of storage in the relational databases of the data initially meant to be stored in the XML format, as exemplified by network topology data. The method is applied in CAD systems of communication networks to be stored in the communication ACS databases. Postgres is to be used as Database management system.

Текст научной работы на тему «Хранение топологии сети в реляционных базах данных»

УДК 004.72

VEHICULAR NETWORK TOPOLOGY AS STORED IN RELATIONAL DATABASES

Sviridov Andrey, programmer, JSC «Concern «Sozvezdie», [email protected]

The article is focused on the problem of storage in the relational databases of the data initially meant to be stored in the XML format, as exemplified by network topology data. The method is applied in CAD systems of communication networks to be stored in the communication ACS databases. Postgres is to be used as Database management system.

Keywords: relative databases, tables, network topology, CADD, NoSQL, Postgres, vehicles.

ХРАНЕНИЕ ТОПОЛОГИИ СЕТИ ТРАНСПОРТНЫХ СРЕДСТВ В РЕЛЯЦИОННЫХ БАЗАХ ДАННЫХ

Свиридов Андрей Александрович, программист, ОАО «Концерн «Созвездие», [email protected]

В статье рассмотрена проблема хранения данных, изначально предназначенных для хранения в формате XML, в таблицах реляционных баз данных, на примере данных топологии сети телекоммуникаций. Метод используется в системе автоматизированного проектирования сетей связи для хранения в базах данных системы управления связью. В качестве систему системы управления базами данных применяется СУБД Postgres.

Ключевые слова: реляционные базы данных, таблицы, топология сети, САПР, NoSQL, Postgres, транспортные средства.

В разработке системы автоматизированного проектирования сетей связи для хранения топологии вычислительных сетей мобильных транспортных средств (описаны в [1]) изначально пред-

назначался формат файлов на основе XML, вариант формализации которого, обозначенный как NTDL, приведен в [2]. Для обработки множества объектов была создана «Библиотека графических примитивов» [3], использующая «Графическое ядро визуализации и анализа инженерных схем» [4].

В тоже время, в ряде случаев может возникнуть необходимость хранения данных не в виде XML-файлов, а в таблицах баз данных. В процессе работы над САПР возникла потребность совместного использования САПР и базы данных автоматизированной системы управления связью, в которой содержались многие классификаторы и кодификаторы. Было разумным передавать данные о топологии и шаблонах сети вместе с таблицами данной базы данных, так как шаблоны были тесно связаны с типами оборудования, информация, о которой велась в вышеупомянутой базе.

По своей природе иерархические данные топологии сети не сильно подходят для хранения в реляционной базе данных. Наилучшим выбором для этого были бы базы данных NoSQL, например MongoDB. Тем не менее, в разрабатываемой системе использовалась реляционная СУБД Postgress, потому возник вопрос об упаковке данных для хранения в реляционной структуре данных.

Хотя в [1] и описана вся терминология топологии сети, поясним некоторые особенности построения схем сетей связи.

Основным обрабатываемым объектом является схема сети.

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

Потому, для хранения данных сети в БД были добавлены

следующие таблицы:

scheme_categories - категории схем; scheme_connections - соединения; scheme_lines - фрагменты соединения; scheme_nets - сети; scheme_objects - объекты; scheme_properties - свойства объектов; schemes - схемы;

В таблицах соответствующим образом хранятся элементы XML и их свойства.

Так как при проектировании схем связи могут создаваться различные варианты сохраняемых схем, то, в первую очередь необходимо обеспечить хранение типов схем. Существует два варианта хранения: в виде констант значений, определенных в теле программы, либо в виде таблицы в базе данных. Первое подходит для случая, когда типы вариантов определены раз и навсегда. Второе - когда в процессе работы могут появляться новые типы, и существует необходимость в их добавлении без внесения изменений в программное обеспечение.

Для хранения типов схем мы использовали таблицу schemecategories.

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

Таблица создается командой SQL:

CREATE TABLE graphics.scheme_categories ( category_id smallint NOT NULL, category_name text, parent_id smallint, has_schemes boolean, ierar_level smallint)

Описание полей:

• category_id - Идентификатор категории;

• category_name - Наименование категории;

• parentid - Идентификатор родительской категории;

• hasschemes - Признак того, может ли категории хранить схемы (true) или она является только родительской

для других категорий;

• ierarlevel - Уровень иерархии категории.

categoryid category name parentid hasschemes ierarlevel

0 "Шаблоны TC" 0

1 "Шаблоны MCTC" 0

2 "Завершённые схемы" 0

Таблица 1. Пример содержания таблицы schете_categories

Для хранения телекоммуникационных объектов схемы используется таблица scheme_objects

Таблица хранит элементы «Объект» - содержит список графических объектов.

Создание таблицы «Объекты»:

CREATE TABLE graphics.scheme_objects ( scheme_id integer NOT NULL, object_id integer NOT NULL,

parent_id integer, accept_filter text, obj_type text, x integer, у integer, width integer, height integer, is_sublayered boolean, object_num smallint, is_mirrored boolean, mirror_id integer, is_on_sublayer boolean, is_logic boolean, is_auto_delete boolean

;

Описание полей:

• schemeid - Идентификатор схемы (см. далее);

• objectid - Идентификатор объекта;

• parent id - Идентификатор родительского объекта (в который вложен данный объект);

• acceptfilter - задает перечень типов объектов, которые могут быть вложены в данный элемент;

• °bj_type - Тип объекта (служит признаком того, может ли быть вложен в родительский объект. См. acceptfilter);

• х - Графическая координата объекта по оси х;

• у - Графическая координата объекта по оси у;

• width - Ширина графического изображения объекта;

• is sublayered - Имеет ли объект вложенные слои?;

• object_num - Уровень иерархии(см. ierar_level);

• is_on_sublayer - Признак того, принадлежит ли объект вложенному слою?

• is_logic - Признак того, является ли данный объект ви-

димым (false) или логическим (true);

Для хранения же свойств объектов используется Таблица scheme_objects.

Создание таблицы «Свойства»:

CREATE TABLE graphics.scheme_properties( scheme_id integer NOT NULL, object_id integer NOT NULL, num smallint NOT NULL,

"key" text,

"value" text

)

Таблица хранит элементы «Свойства».

Описание полей таблицы:

• object id - идентификатор объекта, которому принадлежит свойство;

• scheme_id - идентификатор схемы, которой принадлежи объект;

• num - номер свойства;

• "key" - имя параметра (без префикса «кеу_», используемого в NTDL);

• "value" - значение параметра;

Сами схемы хранятся в таблице schemes.

Создание таблицы «Схемы»:

С RE AТЕ TABLE graphics.schemes (

scheme_id integer NOT NULL "name" text,

creation_date timestamp without time zone, update_date timestamp without time zone, is_template boolean, category_id smallint, x integer, у integer, width integer, height integer

)

Таблица хранит элементы «Схемы» - содержит данные о схемах

Описание полей:

• scheme id - Идентификатор схемы;

• "name" - Наименование схемы;

• creation date - Время и дата создания схемы;

• update date - Время и дата редактирования (обновления схемы);

• is template - Признак того, является ли данная схема-шаблоном;

• category id - Категория шаблона (или NULL, если не шаблон);

Для хранения соединений, используемых для изображения конфигурации телекоммуникаций используется таблица scheme_connections

Создание таблицы «Соединения»:

CREATE TABLE graphics.scheme_connections (

scheme_id integer NOT NULL, connection_id integer NOT NULL start_id integer, is_first_co boolean, end_id integer, is_end_co boolean, net_id integer, first_lco_x integer, first_lco_y integer, second_lco_x integer, second_lco_y integer, num integer, is_on_sublayer boolean

)

Таблица хранит элементы «соединения». Используются ссылки на объекты «коннектор» (Connector, например, порт телекоммуникационного устройства, для подключения к сети) либо «линейный коннектор» (LineConnector, точка объединения нескольких линий связи в одну, «многоточка»), подробнее см. [2].

Описание полей:

• scheme id - Идентификатор схемы;

• connection id - Идентификатор коннектора;

• start_id - Идентификатор стартового коннектора;

• is first co - Признак того, является ли стартовый коннектор элементом Connector. Если имеет значение true, то да, в противном случае коннектор имеет тип LineConnector;

• end id - Идентификатор конечного коннектора;

• is end co - Признак того, является ли конечный коннектор элементом Connector. Если имеет значение true, то да, в противном случае коннектор имеет тип LineConnector;

• net id - Идентификатор родительской сети;

• first lco x - Координата X стартового LineConnector;

• first_lco_y - Координата Y стартового LineConnector;

• second lco x - Координата X конечного LineConnector;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• second_lco_y - Координата Y конечного LineConnector;

• num - номер соединения;

• is on sublayer - признак того, принадлежит линия вложенному слою.

Графические линии, являющиеся фрагментами соединения, хранятся в таблице scheme_lines.

Создание таблицы «Фрагмент соединения»:

CREATE TABLE graphics.scheme_lines (

scheme_id integer NOT NULL,

line_id integer NOT NULL,

startx integer,

starty integer,

endx integer,

endy integer,

linecolor integer,

is_vertical boolean,

connection_id integer,

num integer,

is on sublayer boolean

Таблица хранит элементы «фрагмент соединения».

Описание полей:

• scheme id - Идентификатор схемы;

• line_id - Идентификатор линии;

• startx- координата X начальной точки;

• starty - координата Y начальной точки;

• endx- координата X конечной точки;

• endy - координата Y начальной точки;

• linecolor - цвет линии в RGB;

• is_vertical - признак того, является ли линия вертикальной;

• connection id - идентификатор соединения;

• num - порядковый номер линии (нужен для правильности загрузки);

• is on sublayer - принадлежит ли линия вложенному слою;

Для хранения сетей служит таблица scheme nets

Создание таблицы «Сети»:

CREATE TABLE graphics.scheme_nets ( scheme_id integer NOT NULL, net_id integer NOT NULL, is_mirrored boolean, mirror_id integer, parent_id integer )

Таблица хранит элементы «сеть».

Описание полей:

• netid - Идентификатор сети;

• is mirrored - Наличие зеркальной сети;

• mirror_id - Идентификатор зеркальной сети;

• parent_id - Идентификатор объекта, которому

принадлежность сеть.

Для сохранения данных из формата XML (описанного в [2]) разработано программное обеспечение Программа конвертирования форматов представления схем связи XML/PostgreSQL [5]

Выводы

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

Литература

1. Кручинин С.В. К вопросу о терминологии в области мобильных сетей транспортных средств / С.В. Кручинин // Теория и техника радиосвязи: науч.-техн. журнал / ОАО «Концерн «Созвездие». - Воронеж, 2011. - № 1. - С. 117-120.

2. Вишняков A.B., Кручинин С.В., Кручинина М.Ю. Язык описания топологии вычислительных сетей NTDL // Известия Волгоградского государственного технического университета. - 2012. -№ 15.-С. 126-129.

3. Свиридов A.A. и др. Библиотека графических примитивов. / Бессонов В.В., Кручинин С.В., Кузнецов A.B., Кузнецов А.М., Свиридов A.A. // Свидетельство о государственной регистрации программа для ЭВМ № 2011613834 от 18.05.2011. - Москва. - Федеральная служба по интеллектуальной собственности, патентам и товарным знакам.

4. Кручинин С.В., Кузнецов А.М. и др. Графическое ядро визуализации и анализа инженерных схем. // Свидетельство о государственной регистрации программа для ЭВМ № 2011618938 от 27.09.2011. - Москва. - Федеральная служба по интеллектуальной собственности, патентам и товарным знакам.

5. Свиридов A.A. Программа конвертирования форматов представления схем связи XML/PostgreSQL // Свидетельство о государственной регистрации программа для ЭВМ № 2011611427. -Москва. - Федеральная служба по интеллектуальной собственности, патентам и товарным знакам.

i Надоели баннеры? Вы всегда можете отключить рекламу.