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

DOI: https://doi.org/10.23670/IRJ.2017.58.049 Семихин Д.В.1, Спрысков А.А.2

1 Доцент по кафедре информационных систем, кандидат физико-математических наук, доцент,

Тюменский государственный университет, 2Студент, Тюменский государственный университет ВИЗУАЛЬНЫЙ КОНСТРУКТОР ОТЧЕТОВ ДЛЯ МНОГОМЕРНОГО АНАЛИЗА ДАННЫХ

Аннотация

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

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

Semikhin D.V.1, Spryskov A.A.2

1PhD in Physics and Mathematics, Associate professor, Tyumen state University, 2Student, Tyumen state University VISUAL REPORT DESIGNER FOR MULTIDIMENSIONAL DATA ANALYSIS

Abstract

The paper describes the possibility to extend the capabilities of information systems using Firebird database server by connecting the additional tool - a visual design tool. The problem of multidimensional data analysis is considered, the concepts and technologies underlying the business analysis are presented in the paper as well. The design of the software product is performed with the help of graphic tools of UML. The basic principles of use and functionality of the software product are described when working with labor market monitoring data in the Tyumen region.

Keywords: decision making, business analysis, multidimensional analysis, cross-tables, databases, data visualisation.

Современный мир диктует все более и более высокие требования к конкурентоспособности предприятий. И во многом она определяется способностью быстро и безошибочно принимать стратегически важные решения. Процесс принятия таких решений основан на оценке различных гипотез, которые могут быть проверены наличием или отсутствием корреляции между некоторыми параметрами. Причем число таких параметров может колебаться в широком диапазоне, а последовательность значений каждого параметра формирует «измерение» [1, С.41].

В современном представлении, многомерность данных - это наличие нескольких независимых измерений, вдоль которых эти данные могут быть проанализированы. Анализ данных по нескольким измерениям называется многомерным. В свою очередь, инструменты обработки и анализа многомерных данных, используемые для принятия решения называются инструментами бизнес-анализа (в английской литературе - Business Intelligence, BI).

Уже в 60-х годах прошлого столетия Джоном Тьюки (John Tukey) были высказаны идеи, что из данных очень много можно получить просто их визуализируя. Следуя предложенной им концепции, современная бизнес -аналитика для проверки гипотез использует технологии визуализации данных и построения моделей. Наиболее актуальным способом визуализации данных на настоящий день является кросс-таблицы OLAP (англ. On-Line Analytical Processing - интерактивная аналитическая обработка). Программные комплексы, реализующие OLAP-функциональность, как правило являются компонентами программных решений класса BI.

Ряд промышленных систем хранения данных (от компании Microsoft, Oracle) имеют собственные инструменты бизнес-аналитики, интегрированные с системой управления базами данных. Исключением являются СУБД, созданные и распространяемые как свободное программное обеспечение. При создании систем, использующих базы данных таких СУБД, для получения OLAP-отчетов требуется сторонние продукты.

К числу таких серверов баз данных можно отнести FireBird - реляционную систему управления базами данных, являющуюся потомком InterBase фирмы Borland [2, С.35].

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

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

Общие требования, которые были предъявлены к решению:

- возможность создания кросс-таблиц произвольной структуры по произвольным данным;

- отсутствие привязки к какой-либо конкретной схеме данных;

- возможность сохранения/загрузки созданных пользователем структур отчетов;

- возможность экспорта полученных отчетов данных в MS Excel;

Для реализации поставленной задачи средствами языка UML (Unified Modeling Language, унифицированный язык моделирования [3]) выполнено проектирование программного продукта (рисунок 1). Основной класс конструктора отчетов - класс Preset, служащий для создания макета отчета.

:MainForm

-currentPreset: Preset -ds : DataSet -dt: DataTable

-Preload(p : Preset) -FillTableQ

:PresetSettings

-newRules: List<string>

«struct» Table

♦Name: String ♦Columns : LlsKstring> ♦references : LiSKString> ♦tables: List<"string> ♦IDColName: string ♦SetlDColName

I

:Preset

-tableRules : List<Table> -MainTableRule : Table -VisibleColumns: List<string> -orig Vi s i Ы e Co I u m ns: LI st^stri ng> -TablesOfVisibleColumns: LisKstringi -joinRules: Llst<string> -row: string -OrigRow : String

+AddTabie

♦ ClearRowQ

+SelectRow(pseudo : string): bool

♦ RenameRowf column : string, pseudo : string) : bool +RenameRow(pseudo : String, index : int) : bool +SelectColumn(tableName : string, pseudo : string) : bool : bool +SelectColumn(pseudo : string, index : int): bool +HideColumn(index : int): bool

+HideColumn(pseudo : string): bool

+RenameColumn(tableName : String, columnName : String, pseudo : String) : bool

+RenameColumn(pseudo : string, index : int): bool

+RemoveColumn

+SavePreset

-GetTablelndexByAbsolutelndex(index : int) : int

-lsAValidRename(String newPseudo): bool

+DeleteColumn(index : int, pseudo : string) : bool

+DeleteRow(index: int, pseudo : string) : bool

+LoadPreseUpath : string): Preset

-BuildPresetCds : DataSet) : Preset

«static» :TableBuilder

-preset: Preset -tables : Tablef] -dataSet: DataSet ♦rowHeaders : List<string>

*BuildDataTablefpresetToBuildOn:Preset. dsflataSet) : DataTable

-BuildMainTableÜ

-ParseRulesü

-GetMainTableRowsID

-BuildRowsO : DataTable -GetTablelndexiname : string) -CneateTableListf) -FillTablesWith Columns

int

«struct» Table

♦Name: string ♦Columns : LiSKString> ♦ColumnsPseudonims : List<string>

t|sAValidRename(newPseudo : string) : bool

Рис. 4 - Диаграмма классов UML для конструктора отчетов

Работа конструктора тестировалась на примере данных мониторинга рынка труда в Тюменской области. Анализ состояния и прогнозирование ситуации проводится ежегодно Департаментом труда и занятости населения. Для сбора данных привлекается сторонняя компания, в задачу которой входит проведение анкетирования юридических лиц (коммерческих предприятий, частных предпринимателей, образовательных предприятий) и статистического анализа собранного материала. Задача, поставленная при анкетировании, меняется год от года. Единственно, что неизменно, это часть данных, относящаяся к данным работодателя - юридического лица (наименование, юридический и почтовый адрес, руководитель, форма собственности, код отчитывающейся организации ОКПО, ОКВЭД и прочее.

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

Так, например, для оперативной обработки данных по анкете «Сведения о создании высокопроизводительных рабочих мест», в базу данных заносится информация, позволяющая в дальнейшем анализировать ее по таким разрезам, как: раздел ОКВЭД, год, ОКПДТР, территория; а также по показателям: количество работников в соответствии со штатным расписанием, количество созданных высокопроизводительных рабочих мест на текущий год, количество созданных высокопроизводительных рабочих мест через год, количество созданных высокопроизводительных рабочих мест через 2 года, количество созданных высокопроизводительных рабочих мест через 3 года.

Добавление новых столбцов и строк в макет отчета реализовано механизмом Drag&Drop. До тех пор, пока пользователь не запросил построение отчета, доступен его предпросмотр (рисунок 2). После нажатия пользователем кнопки «Построить отчет» строится отчет по заданному пользователем макету. Для столбцов и строк доступно переименование и исключение из области. Построенный отчет можно экспортировать в табличный редактор Excel по нажатию кнопки «Экспорт в Excel».

Рис. 5 - Интерфейс конструктора отчетов

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

В функциональность программного продукта включена возможность сохранения и загрузки макетов полученных пользователем отчетов. В качестве формата хранения настроенного шаблона отчета был выбран формат JSON [4]. Шаблон записывается в текстовый файл расширения . ps , в который заносятся значения всех выбранных пользователем наименований разрезов и показателей.

Сам макет представляется в виде объекта класса Preset, а процедура сохранения и загрузки макета реализована как сериализация и десереализация этого объекта в формат JSON. Макет хранит не только список имеющихся столбцов таблиц представления БД, доступных для построения отчета, но и их имена, а также саму форму отчета.

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

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

Список литературы I References

1. Барсегян А. А. Технологии анализа данных: Data Mining, Visual Mining, Text Mining, OLAP I А. А. Барсегян, M. С. Куприянов, В. В. Степаненко, И. И. Холод - 2-е изд., перераб. и доп. - СПб.: БХВ-Петербург, 2007 - 384 с.

2. Борри Х. Firebird: руководство разработчика баз данных I Х.Борри Пер. с англ. - СПб.: БХВ-Петербург -2006. - 1104 с.

3. Ларман К. Применение UML 2.0 и шаблонов проектирования. Практическое руководство I К.Ларман - 3-е изд. - Пер. с англ. - М.: ООО «И.Д.Вильямс» - 2013. - 736с.

4. Практическое руководство. Сериализация и десериализация данных JSON [Электронный ресурс] II Microsoft. URL: https://msdn.microsoft.com/ru-ru/library/bb412179(v=vs.110).aspx (дата обращения: 15.09.2016);

Список литературы на английском языке I References in English

1. Barsegjan A. A. Tehnologii analiza dannyh: Data Mining, Visual Mining, Text Mining, OLAP [Data Analysis Technologies: Data Mining, Visual Mining, Text Mining, OLAP]/ A. A. Barsegjan, M. S. Kuprijanov, V. V. Stepanenko, I. I. Holod - 2-e izd., pererab. i dop. - SPb.: BHV-Peterburg, 2007 - 384 p. [in Russian]

2. Borrie H. Firebird: rukovodstvo razrabotchika baz dannyh [The Firebird Book: А Reference for Database Developers] I H.Borrie Per. s angl. - SPb. : BHV-Peterburg - 2006. - 1104 p. [in Russian]

3. Larman C. Primenenie UML 2.0 i shablonov proektirovanija. Prakticheskoe rukovodstvo [Applying UML and Patterns]/ C.Larman - 3-e izd. - Per. s angl. - M.: OOO «I.D.Vil'jams» - 2013. - 736p. [in Russian]

4. Prakticheskoe rukovodstvo. Serializacija i deserializacija dannyh JSON [How to: Serialize and Deserialize JSON Data] // Microsoft. URL: https://msdn.microsoft.com/ru-ru/library/bb412179(v=vs.110).aspx (accessed: 15.09.2016). [in Russian]