Разработка Web-приложения для аналитической обработки информации о международном научно-техническом и образовательном сотрудничестве вузов России

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,31 Мб
  • Опубликовано:
    2013-05-16
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка Web-приложения для аналитической обработки информации о международном научно-техническом и образовательном сотрудничестве вузов России

СОДЕРЖАНИЕ

Введение

. Обзор и анализ программных технологий разработки WEB-приложений для аналитической обработки данных

.1 Технологии оперативной аналитической обработки данных

.2 Технологии аналитической обработки данных Microsoft SQL Server

.3 Технологии аналитической обработки данных в среде .NET

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

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

.1 Анализ инфологической модели базы данных

.2 Анализ концептуальной схемы базы данных

.3 Многомерная модель данных для построения OLAP-куба по международному научно-техническому сотрудничеству вузов и научных организаций России

. Разработка интерфейса WEB-приложения для аналитической обработки данных

. Разработка программного обеспечения WEB-приложения для аналитической обработки данных

.1 Реализация подключения к источнику данных

.2 Реализация получения данных из источника аналитических данных

.3 Пространство имен System.Web

.4 Пространство имен System.Data

. Экономическое обоснование дипломного проекта

. Охрана интеллектуальной собственности

Заключение

Список используемых источников

Приложение

Введение

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

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

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

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

Разработанное приложение рекомендуется в качестве шаблона для дальнейшего развития в области аналитической обработки информации.

1 Обзор и анализ программных технологий разработки WEB-приложений для аналитической обработки данных

1.1 Технологии оперативной аналитической обработки данных

программный модель приложение данные

В настоящее время огромные объемы данных накапливаются в учетных, так называемых транзакционных (OLTP), системах.

Такие системы строятся на основе современных СУБД, в которых развит механизм управления транзакциями, что сделало их основным средством создания систем оперативной обработки транзакций (OLTP-систем, On-Line Transactions Processing).

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

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

Без продуктивной переработки и анализа колоссальные потоки информационной руды, т.е. сырые данные, образуют никому не нужную свалку.

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

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

Информационно-поисковый анализ - анализ данных, проводимый по заранее определенным, т.е. заранее заданным видам запросов (регламентированным запросам).

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

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

§ функциональные и логические закономерности в накопленных данных;

§  модели и правила, объясняющие найденные закономерности;

§  прогнозы развития процессов.

Сравнение характеристик различных видов анализа данных иллюстрирует таблица 1.1.

Таблица 1.1 - Сравнение видов анализа данных

Характеристики

Виды анализа данных

 

Информационно-поисковый анализ

Оперативно-аналитический анализ

Интеллектуальный анализ

Виды запросов

Регламентированные

Нерегламентированные

Глубокий анализ

Вид получаемых данных

Выборки сырых данных

Обобщенная, сгруппированная, агрегированная информация

Модели, шаблоны, закономерности, знания

Решаемые задачи

Получение выборок данных

Грубый разведочный анализ, проверка заранее сформулированных гипотез

Получение новых, нетривиальных, скрытых знаний

Уровень интерактивности

Низкий

Интерактивное взаимодействие с информацией

Интерактивное взаимодействие с информацией


Таблица 1.1 - Сравнение видов анализа данных

Роль компьютераИзвлечение данныхИзвлечение данных, визуализация данныхИзвлечение данных, визуализация данных, обработка данных математическими методами




Подбор моделей и обработка данных

Пользователь

Пользователь

Компьютер

Применяемые методы анализа

Элементарные статистики

Математическая статистика

Методы Data Mining


В соответствии с рассмотренными выше видами анализа данных аналитические системы можно разделить на следующие группы:

. Системы корпоративной отчетности:

§ используются для контроля оперативной ситуации и анализа отклонений (отвечают на вопрос «что происходит»);

§  предоставляют оперативные данные о результатах деятельности в виде заранее заданных форм отчетности;

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

§  могут не использовать хранилище данных, а брать данные непосредственно из OLTP-систем;

§  предназначены для широкого круга конечных пользователей (клиенты, партнеры, фискальные учреждения).

2. Системы аналитической обработки данных и аналитической отчетности (OLAP-системы - системы оперативной аналитической обработки, On-Line Analytical Processing):

§ позволяют выполнять многомерный анализ данных по различным срезам;

§  обладают развитыми средствами аналитической отчетности и визуализации данных в виде различных типов таблиц, графиков и диаграмм;

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

§  чаще всего используют хранилище данных, оптимизированное под задачи многомерного анализа данных;

§  ориентированы на пользователей, которым требуется постоянное интерактивное взаимодействие с информацией (менеджеры, аналитики).

. Системы глубокого анализа данных:

§ обладают развитыми инструментами для проведения глубокого анализа;

§  позволяют получить нетривиальные, скрытые знания;

§  используют хранилище данных в качестве источника информации;

§  базируются на интеллектуальном анализе данных;

§  предназначены для аналитиков, обладающих знаниями в области методов анализа данных;

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

Схематичное описание разделения аналитических систем по вышепредставленным группам отображено на рисунке 1.1.1.(On-Line Analytical Processing) - технология оперативной аналитической обработки данных, использующая методы и средства сбора, хранения и анализа многомерных данных, в целях поддержки аналитической деятельности и возможности формирования нерегламентированных запросов и отчетов на их основе.

Рисунок 1.1.1 - Виды аналитических систем

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

Известен тест, созданный в 1995 году, определяющий критерии, по которым систему можно отнести к классу OLAP-систем.

Этот тест получил название FASMI (Fast Analysis of Shared Multidimensional Information) (быстрый анализ совместно используемой многомерной информации) и в настоящее время широко используется.

В соответствии с тестом FASMI OLAP определяется пятью ключевыми словами:

§ Fast (Быстрый);

§  Analysis (Анализ);

§  Shared (Разделяемой);

§  Multidimensional (Многомерной);

§  Information (Информации).

Схематичное представление теста изображено на рисунке 1.1.2.

Рисунок 1.1.2 - Тест FASMI.

 

1. Fast (Быстрый)

OLAP-система должна обеспечить выдачу ответов на большинство запросов в пределах приблизительно 5 секунд. Для простых запросов этот показатель может быть 1 секунда, а для редкостных по сложности запросов он может достигать 20 секунд.

Исследования показывают, что если отклик не получен в течение 30 секунд, то пользователь перестает считать систему полезной. Он способен нажать комбинацию клавиш <Ctrl>+<Alt>+<Del>, если система не предупредит, что обработка данных требует большего времени.

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

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

Для достижения данной цели разработчики OLAP-систем используют разные методы:

динамическая предобработка данных;

создание специальных программно-аппаратных решений;

применение аппаратных платформ с большей производительностью.

Критерий скорости является наиболее критическим в определении принадлежности системы к классу OLAP.

. Analysis (Анализ).

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

Все требуемые функциональные возможности анализа должны обеспечиваться понятным для пользователя способом.

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

. Shared (Разделяемой).

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

. Multidimensional (Многомерной).

OLAP-система должна обеспечивать многомерное представление данных. Речь не идет о числе измерений многомерной модели данных или размерах каждого измерения. Это зависит от конкретной прикладной области и решаемых аналитических задач.

. Information (Информации).

OLAP-система должна обеспечивать получение необходимой информации в условиях реального приложения.

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

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

1.2 Технологии аналитической обработки данных Microsoft SQL Server

Конечной целью использования хранилищ данных и OLAP являются анализ данных и представление результатов этого анализа в удобном для восприятия и принятия решений виде. Непосредственное обращение клиентского приложения, отвечающего за представление результатов анализа данных, к хранилищу данных в принципе возможно. Однако в этом случае в нем должны быть реализованы средства такого анализа, то есть по существу оно должно быть клиентским OLAP-средством. При всей простоте такого подхода к реализации OLAP он не лишен недостатков, связанных с ограничениями, налагаемыми на число измерений и количество членов в них. У серверных OLAP-средств таких недостатков нет. Поэтому более прогрессивным представляется подход, основанный на применении серверных OLAP-средств в качестве промежуточного звена между хранилищем данных в виде реляционной СУБД и клиентским приложением. В этом случае OLAP-сервер должен превращать данные из реляционного хранилища в форму, более удобную для создания аналитических отчетов, - в OLAP-кубы.

В качестве примера серверного OLAP-средства мы рассмотрим аналитические службы Microsoft (Microsoft Analysis Services), входящие в состав Microsoft SQL Server 2000 Enterprise Edition.

Основным компонентом аналитических служб является Analysis Server - сервис операционной системы Windows NT/2000. Этот сервер предназначен для создания OLAP-кубов на основе реляционных хранилищ данных, а также для предоставления доступа к ним из клиентских приложений. Ниже мы рассмотрим, какими именно объектами манипулирует этот сервер и с помощью каких механизмов это происходит.

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

Аналитические службы сохраняют агрегатные данные только для простейших агрегатных функций (сумм, числа записей, максимальных и минимальных значений). Однако в случае необходимости можно создавать так называемые вычисляемые члены (calculated members) для получения других типов агрегатных значений (средних, средневзвешенных, смещенных и несмещенных дисперсий и т.д.). При этом, помимо применения встроенных средств создания агрегатных данных, Analysis Services позволяет использовать для вычисления агрегатных данных функции VBA или Excel, а также создавать собственные.

Так, для создания нескольких кубов, имеющих одинаковые измерения, можно сгруппировать их в одну многомерную базу данных, а сами эти измерения поместить в библиотеку (library), сделав их коллективными, то есть общедоступными для всех кубов, содержащихся в базе данных . Можно также создавать измерения, принадлежащие только одному кубу (private dimensions).

И наконец, аналитические службы Microsoft позволяют создавать так называемые виртуальные кубы (virtual cubes), которые в определенной степени являются аналогами представлений (view) реляционных СУБД. Виртуальные кубы не содержат данных, но позволяют представить в виде единого куба данные из нескольких кубов, имеющих хотя бы одно общее коллективное измерение.

Пользователей аналитических служб можно условно разделить на две группы: администраторов, создающих или модифицирующих OLAP-кубы, и обычных пользователей-аналитиков, читающих данные из OLAP-кубов с целью создания аналитических отчетов. Эти группы используют разные технологии доступа к OLAP-данным. Ниже мы выясним, какие технологии предназначены для этих двух категорий пользователей. DSOSupport Objects (DSO) - это набор библиотек, содержащих COM-объекты, позволяющие создавать и модифицировать многомерные базы данных и содержащиеся в них объекты (кубы, коллективные измерения и т.д.).

Отметим, что Analysis Manager - приложение, использующее SQL DSO, - входит в состав аналитических служб.

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

Рисунок 1.2.1 - Приложение, использующее SQL DSO

Отметим, что SQL DSO можно использовать только для доступа к аналитическим службам Microsoft. Ни к каким другим OLAP-серверам с помощью этих библиотек обратиться нельзя.

PivotTable Service, OLE DB for OLAP и ADO MD

Приложения, предназначенные для чтения OLAP-данных, при взаимодействии с аналитическими службами обязательно используют PivotTable Service - библиотеки, загружаемые в адресное пространство клиентского приложения. Эти библиотеки автоматически устанавливаются вместе с аналитическими службами (независимо от того, какая именно их часть установлена - клиентская или серверная), а также вместе с Microsoft Office 2000. В состав Microsoft SQL Server 2000 входит также инсталляционное приложение для установки PivotTable Service на компьютер, на котором не установлены ни аналитические службы, ни Microsoft Office. Service можно использовать в любой 32-разрядной версии Windows для просмотра серверных OLAP-кубов, а также для создания, модификации и чтения локальных OLAP-кубов, созданных в клиентском приложении, реализуя таким образом клиентскую OLAP-функциональность. Эти библиотеки реализуют кэширование в клиентском приложении данных, полученных как с OLAP-сервера, так и из реляционных источников данных. Помимо этого они позволяют осуществлять кэширование данных и на OLAP-сервере, повышая тем самым производительность работы с ним в случае обращения к одним и тем же данным нескольких пользователей.

Для взаимодействия с PivotTable Service клиентское приложение может использовать OLE DB for OLAP - расширение универсального механизма доступа к данным OLE DB, позволяющее обращаться к многомерным данным, а также ADO MD - библиотеки, представляющие собой надстройку над OLE DB for OLAP и являющиеся COM-серверами для доступа к многомерным данным, удобными для применения в клиентских приложениях.

Отметим, что спецификация OLE DB for OLAP является открытой. Это означает, что можно создавать и другие OLAP-серверы, поддерживающие OLE DB for OLAP (либо разрабатывать OLE DB-провайдеры к уже имеющимся OLAP-средствам), а также создавать клиентские приложения, обращающиеся к любым таким источникам данных с помощью PivotTable Service, OLE DB for OLAP и ADO MD.

Клиенты аналитических служб.

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

Рисунок 1.2.2 - Интерфейс Analysis Manager

В составе Analysis Manager имеется простейшее средство просмотра многомерных данных, представляющее собой элемент управления ActiveX, использующий для доступа к данным OLE DB for OLAP. Manager использует библиотеки SQL DSO для создания и модификации объектов многомерной базы данных и OLE DB для доступа к исходным реляционным хранилищам данных. Что касается доступа к самим многомерным данным, то, повторимся, Analysis Manager использует для этой цели OLE DB for OLAP.

Приложения Microsoft Office

Из других клиентских приложений, не входящих в состав аналитических служб, но часто используемых для просмотра OLAP-кубов, следует назвать приложения Microsoft Office, в частности Microsoft Excel. С помощью Excel можно обращаться к серверным OLAP-кубам, получая их двух- и трехмерные сечения на листах рабочих книг Excel в виде сводных таблиц, а также создавать локальные OLAP-кубы в виде файлов на основе реляционных данных, доступных с помощью OLE DB, результат изображен на рисунке 1.2.3.

Рисунок 1.2.3 - Применение Excel в качестве OLAP-клиента

Кроме того, в состав Microsoft Office Web Components входит элемент управления ActiveX PivotTable List, позволяющий реализовать сходную функциональность как в обычном Windows-приложении, так и на HTML-странице, предназначенной для применения внутри корпоративной сети, результат изображен на рисунке 1.2.4.

Рисунок 1.2.4 - Применение элемента управления PivotTable List в качестве OLAP-клиента

.3 Технологии аналитической обработки данных в среде .NET

уществует два способа получения данных из OLAP-кубов Microsoft SQL Server 2000 Analysis Services. Первый основан на применении ADO (ActiveX Data Objects) и OLEDB-провайдера для доступа к многомерным данным - Microsoft OLE DB Provider for OLAP Services 8.0. При втором способе используется ADO MD (ADO Multidimensional) - технология, позволяющая обращаться как к метаданным многомерных баз данных, так и к результатам MDX-запросов.

ADO.NET - это набор библиотек, поставляемый с Microsoft .NET Framework и предназначенный для взаимодействия с различными хранилищами данных из .NET- приложений. Библиотеки ADO.NET включают классы для подсоединения к источнику данных, выполнения запросов и обработки их результатов. Кроме того, ADO.NET можно использовать в качестве надежного, иерархически организованного, отсоединенного кэша данных для автономной работы с данными. Главный отсоединенный объект, DataSet, позволяет сортировать, осуществлять поиск, фильтровать сохранять отложенные изменения и перемещаться по иерархичным данным. Кроме того, объект DataSet включает ряд функций, сокращающих разрыв между традиционным доступом к данным и программированием с использованием XML. Теперь разработчики получили возможность работать с XML-данными через обычные интерфейсы доступа к данным и наоборот. .NET объединяет в себе вес лучшие стороны своих предшественниц и реализует функции, наиболее часто требуемые разработчикам: расширенную поддержку XML, упрощенный доступ к отсоединенным данным, расширенные возможности управления обновлениями и повышенную гибкость обновлений.

Назначение ADO.NET - помогать разработке эффективных многоуровневых приложений для работы с БД в интрасетях и Интернете, для чего она и предоставляет все необходимые средства.

На рисунке 1.3.1 показаны классы, составляющие объектную модель ADO.NET. Пунктирная линия делит модель на две части. Объекты в левой части называются подсоединенными (connected). Для управления соединением, транзакциями, выборки данных и передачи изменений они взаимодействуют непосредственно с БД. Объекты в правой части называются отсоединенными (disconnected), они позволяют работать с данными автономно.

Объекты, составляющие отсоединенную часть модели ADO.NET не взаимодействуют напрямую с подсоединенными объектами. Это - значительное отличие от предыдущих объектных моделей доступа к данным Microsoft. В ADO объект Recordset хранит результаты запросов. Можно вызвать его метод Open, чтобы выбрать результаты запроса, и затем с помощью метода Update (или UpdateBatch) передать изменения из Recordset в БД.

Рисунок 1.3.1 - Иерархия объектов ADO.NET

Объект DataSet ADO.NET (подробнее о нем - далее) по функциональности сравним с объектом Recordset ADO. Тем не менее, DataSet не взаимодействует с БД. Для выборки данных из БД в объект DataSet последний передают методу Fill подсоединенного объекта ADO.NET - DataAdapter. Аналогичным образом для передачи отложенных изменений из DataSet в БД объект DataSet нужно передать методу DataAdapter.Update.

Поставщик данных .NET - это набор классов, предназначенных для взаимодействия с хранилищем данных определенного типа. .NET Framework включает два поставщика - SQL Client .NET Data Provider и OLE DB .NET Data Provider. Поставщик OLE DB .NET Data Provider позволяет взаимодействовать с различными хранилищами данных посредством поставщика OLE DB. Поставщик SQL Client .NET Data Provider рассчитан исключительно на взаимодействие с БД SQL Server версии 7 или более поздней.

Объектная модель ADO.NET включает классы, предназначенные для непосредственного взаимодействия с источником данных. Такие объекты, показанные на рисунке 1.3.1 слева от пунктирной линии, будем называть подсоединенными. Большинство из них представляют базовые концепции доступа к данным, например физическое соединение с БД, запрос и результаты запроса. Объект Connection представляет соединение с источником данных. С помощью свойств этого объекта можно задать тип источника, его расположение и другие атрибуты. Объект Connection примерно эквивалентен объекту Connection ADO и объекту Database DAO, он применяется для соединения и отсоединения от БД. Connection выступает в качестве канала, по которому другие объекты, например DataAdapter и Command, взаимодействуют с БД для передачи изменений и выборки их результатов.

Объекты Command по структуре аналогичны объектам Command RDO и QueryDef DАО. Они могут представлять запрос к БД, вызов хранимой процедуры или прямой запрос на возврат содержимого конкретной таблицы. БД поддерживают множество разных типов запросов. Одни запросы возвращают записи данных, ссылаясь на одну или несколько таблиц, представлений или вызывая хранимую процедуру. Другие запросы изменяют записи данных, а все прочие - управляют структурой БД, создавая и изменяя такие объекты как таблицы, представления и хранимые процедуры. С помощью объекта Command удается выполнить любой из этих запросов к БД.

Объект DataAdapter представляет новую концепцию моделей доступа к данным Microsoft; у него нет близкого эквивалента в ADO и DАО, хотя объекты Command ADO и QueryDef DAO можно считать его двоюродными братьями.- это своеобразный мост между БД и отсоединенными объектами модели ADO.NET. Метод DataAdapter Fill предоставляет эффективный механизм выборки результатов запроса в объект DataSet или DataTable для последующей автономной работы с ними. Кроме того, объекты DataAdapter позволяют передавать отложенные изменения из объектов DataSet в БД.

Объектная модель ADO.NET включает классы, предоставляющие возможность сортировать данные, выполнять поиск, фильтровать или изменять результаты запросов. Они выступают в качестве автономного кэша данных. Выбрав результаты запроса в объект DataTable (подробнее о нем - чуть далее), можно закрыть соединение с источником данных и продолжить работу с данными. Как уже говорилось, этим объектам не требуется живое соединение с источником данных, и поэтому они называются отсоединенными (disconnected objects).

Давайте рассмотрим отсоединенные объекты модели ADO.NET.

Объект DataTable ADO.NET аналогичен объектам Recordset ADO и DAO. Он позволяет просматривать данные в виде наборов записей и столбцов. Чтобы поместить результаты запроса в объект DataTable, применяют метод DataAdapter Fill. Данные, выбранные из БД и помещенные в объект DataTable, считаются отсоединенными от сервера. Содержимое DataTable можно просматривать, не генерируя сетевого трафика между ADO.NET и БД. При автономной работе с данными живое соединение с БД не требуется, но помните: вы также не увидите изменений, внесенных другими пользователями после того, как вы выполнили исходный запрос.

Класс DataTable содержит наборы других отсоединенных объектов, которые рассмотриваются в последующих разделах. Для обращения к содержимому DataTable используют свойство Rows, которое возвращает набор объектов DataRow. Класс DataTable также позволяет определять на своем содержимом различные ограничения, например первичный ключ. Обращаться к этим ограничениям можно посредством свойства Constraints объекта DataTable. У каждого объекта DataTable есть набор Columns, представляющий собой контейнер объектов DataColumn. Как видно из его названия, объект DataColumn соответствует столбцу таблицы. Тем не менее в действительности DataColumn содержит не данные, хранящиеся в объекте DataTable, а информацию о структуре столбца.Такая разновидность информации называется метаданными (metadata). Например, объект DataColumn предоставляет свойство Туре, описывающее тип данных (скажем, string или integer) столбца. У DataColumn также есть другие свойства, например Readonly, AHowDBNutt, Unique, Default и Autolncrement, позволяющие управлять порядком обновления данных столбца, ограничить диапазон допустимых значений поля и определить порядок генерации значений для новых записей данных.

Обратиться к реальным значениям, хранящимся в объекте DataTable, позволяет набор Rows, содержащий объекты DataRow. Чтобы просмотреть содержимое конкретного поля определенной записи, воспользуйтесь свойством объекта DataRow и считайте значение нужного поля. Класс DataRow предоставляет несколько перегруженных определений свойства Item. Выбрать поле для просмотра можно, передав свойству Item объекта DataRow имя, порядковый номер или сопоставленный с полем объект DataColumn. Item - свойство объекта DataRow по умолчанию, и поэтому его разрешается использовать неявно. Объект DataRow является также отправной точной обновления. Например, можно вызвать метод DataRowBeginEdit, изменить посредством свойства Item значение одного из полей записи и затем вызвать метод EndEdit, чтобы сохранить сделанное изменение. Метод CancelEdit объекта DataRow отменяет все изменения, сделанные за текущий сеанс редактирования. Кроме того, DataRow предоставляет методы для удаления элементов из набора Rows. Когда вы изменяете содержимое записи, DataRow кэширует эти изменения,чтобы позже передать их в БД. Таким образом, при изменении значения поля записи DataRow хранит оригинальное и текущее значения поля, что обеспечивает успешное обновление содержимого БД. При наличии отложенных изменений свойство Item объекта DataRow позволяет просматривать оригинальные значения полей.MD - это расширение ADO, реализованное в библиотеке msadomd.dll и содержащее объектную модель, позволяющую обращаться как к метаданным многомерных баз данных, так и к результатам MDX-запросов.

Объектная модель ADO MD, представленная на рисунке 1.3.2, состоит из двух «ветвей» объектов: первая из них используется для доступа к метаданным многомерной базы данных, а вторая - для извлечения данных с помощью запросов к OLAP-кубам.

 

Рисунок 1.3.2 - Объектная модель ADO MD

Первый из объектов ADO MD для доступа к метаданным, объект Catalog, представляет многомерное хранилище данных, которое может содержать ноль, один или более кубов. Следовательно, одним из свойств объекта Catalog является коллекция CubeDefs. Каждый элемент этой коллекции представляет собой объект CubeDef, описывающий конкретный куб в хранилище. Имя куба - это значение свойства Name соответствующего объекта CubeDef.

Каждый объект CubeDef может содержать коллекцию Dimensions, состоящую из объектов Dimension. Каждый объект Dimension, в свою очередь, представляет конкретное измерение куба, а имя этого измерения содержится в свойстве Name.

Все объекты Dimension заключают в себе коллекцию Hierarchies, которая может содержать один или более объектов Hierarchy. Иерархия же может содержать один или несколько уровней, поэтому объект Hierarchy содержит коллекцию Levels, состоящую из объектов Level. Каждый из уровней иерархии содержит один или более членов, поэтому объект Level содержит коллекцию Members, состоящую из объектов Member. .NET выступает в качестве моста между приложением и источником данных. Однако ADOMD.NET отличается от остальных поставщиком данных платформы .NET Framework тем, что он работает с аналитическими данными. Чтобы работать с аналитическими данными, компонент ADOMD.NET обладает функциями, которые значительно отличаются от функций других поставщиков данных платформы .NET Framework. ADOMD.NET позволяет не только получать данные, но и метаданные, а также изменять структуру источника аналитических данных.

Получение метаданных

Получив метаданные при помощи наборов строк схемы или модели объекта, приложения могут узнать больше о тех данных, которые можно извлечь из источника данных. Получить можно такие сведения, как типы доступных ключевых индикаторов производительности, измерения в кубе и параметры, которые требуются модели интеллектуального анализа данных. Наибольшее значение метаданные имеют для динамических приложений, которым для определения типа, глубины и области действия получаемых данных требуется ввод пользователя. Среди таких приложений Query Analyzer, Microsoft Excel и другие средства запросов. Метаданные менее значимы для статических приложений, выполняющих набор стандартных действий.

Для решения сложных задач извлечения метаданных из источников аналитических данных компонент ADOMD.NET предоставляет две формы получения метаданных:

1.   Модель объектов

Использовать модель объектов компонента ADOMD.NET в целом проще, чем наборы строк схемы. В большинстве случаев для доступа к метаданным различных объектов базы данных достаточно воспользоваться моделью объектов. Доступ к модели объектов компонента ADOMD.NET можно получить через AdomdConnection <#"656446.files/image009.gif">

Рисунок 3.1.1 - Схема данных по международному сотрудничеству вузов России

Количество таблиц и связей в рассматриваемой системе достаточно велико. Решение использовать SQL-запросы не является оптимальным, в виду их сложности. Отклик системы на запросы пользователя будет достаточно велик, особенно в многопользовательском режиме. Использование технологии OLAP позволяет решить эту проблему.

.2 Анализ концептуальной схемы базы данных

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

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

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

Описание таблиц, входящих в базу данных, приведено ниже (в таблицах 3.1 - 3.18). При этом первичные ключи таблиц подчеркнуты, а к внешним ключам применено полужирное начертание и указано связанное поле. Таким образом, фрагмент общей инфологической модели, относящийся к международному сотрудничеству в области образования, отражен ниже в табличной форме.

Таблица 3.1 - Общевузовская статистика

Имя поля

Тип данных

Класс данных

Связанное поле

Год

int

Числовой


Код ВУЗа

int

Числовой

Исполнитель.[ Код исполнителя]


Таблица 3.1 - Общевузовская статистика

Договоров об академическом сотрудничествеintЧисловой-




Договоров о признании дисциплин

int

Числовой

-

Договоров, предусматривающих выдачу выпускнику одновременно дипломов двух вузов

int

Числовой

-

Реализуемых программ двойного диплома

int

Числовой

-

Филиалов за границей

int

Числовой

-

Представтельств за границей

int

Числовой

-

Иностранных преподавателей

int

Числовой

-

Совместных программ

int

Числовой

-

Дисциплин на иностранных языках

int

Числовой

-

PhD-

int

Числовой

-

Докторов наук

int

Числовой

-

Кандидатов наук

int

Числовой

-

Число участников научных форумов за рубежом

int

Числовой

-

Число международных форумов в вузе

int

Числовой

-

Вхождение в международные университетские сети

int

Числовой

-

Степень интеграции в Болонский процесс

int

Числовой

-

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

int

Числовой

-

Степень признания за рубежом документов об образовании вуза

int

Числовой

-

Число преподавателей, свободно владеющих иностранными языками

int

Числовой

-

Число студентов, свободно владеющих иностранными языками

int

Числовой

-


Таблица 3.1 - Общевузовская статистика

Число сотрудничающих с вузом выпускников из числа иностранцевintЧисловой-




Выставок-ярмарокх с целью привлечения контингента иностранных учащихся

int

Числовой

-

Курсов дистанционного обучения иностранных граждан

int

Числовой

-

Интернациональных клубов

int

Числовой

-

Иностранцев, изучающих русский язык

int

Числовой

-

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

nvarchar

Символьные данные (Unicode)

-

Документы, регламентирующие международное сотрудничество и порядок участия в нем преподавателей и студентов

nvarchar

Символьные данные (Unicode)

-

Документы, регламентирующие финансовое обеспечение международной деятельности

int

Числовой

-

Количество мероприятий -рекламно-информационного характера

int

Числовой

-

Участие в международных организациях вузов

int

Числовой

-

Иностранцы, нуждающихся в жилье

int

Числовой

-

Иностранцы, проживающие в общежитиях вуза

int

Числовой

-

Иностранцы,проживающие в арендуемом жилье

int

Числовой

-

Плановых встреч иностранных студентов с руководством вуза

int

Числовой

-

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

int

Числовой

-

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

int

Числовой

-

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

int

Числовой

-

Землячеств иностранных студентов

int

Числовой

-

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

int

Числовой

-


Таблица 3.2 - Исполнитель

Имя поля

Тип данных

Класс данных

Связанное поле

Код исполнителя

int

Целочисленные данные

-

Наименование

nvarchar

Символьные данные (Unicode)

-

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

nvarchar

Символьные данные (Unicode)

-

Экономический район

nvarchar

Символьные данные (Unicode)

-

Субъект федерации

nvarchar

Символьные данные (Unicode)

-

Руководитель

nvarchar

Символьные данные (Unicode)

 -

Ученая степень

nvarchar

Символьные данные (Unicode)

 -

Ученое звание

nvarchar

Символьные данные (Unicode)

 -

Адрес

nvarchar

Символьные данные (Unicode)

-

Интернет-адрес

nvarchar

Символьные данные (Unicode)

 -

Телефон

nvarchar

Символьные данные (Unicode)

 -


Таблица 3.2 - Исполнитель

e-mail

nvarchar

Символьные данные (Unicode)

 -

Вид

int

Числовой

[Классификатор исполнителей]. Вид

Профиль

int

Числовой

[Специализация исполнителей]. Профиль


Таблица 3.3 - Заказчик

Имя поля

Тип данных

Класс данных

Связанное поле

Код заказчика

int

Целочисленные данные

-

Наименование

nvarchar

Символьные данные (Unicode)

-

Страна

nvarchar

Символьные данные (Unicode)

-

Регион

nvarchar

Символьные данные (Unicode)

-

Руководитель

nvarchar

Символьные данные (Unicode)

-

Адрес

nvarchar

Символьные данные (Unicode)

-

Интернет-адрес

nvarchar

Символьные данные (Unicode)

 -

Телефон

nvarchar

Символьные данные (Unicode)

 -

e-mail

nvarchar

Символьные данные (Unicode)

 -

Вид

int

Числовой

[Классификатор исполнителей]. Вид

Профиль

int

Числовой

[Специализация исполнителей]. Профиль


Таблица 3.4 - Классификатор исполнителей

Имя поля

Тип данных

Класс данных

Вид

int

Целочисленные данные

Название

nvarchar

Символьные данные (Unicode)

Описание

nvarchar

Символьные данные (Unicode)


Таблица 3.5 - Специализация исполнителей

Имя поля

Тип данных

Класс данных

Профиль

int

Целочисленные данные

Название

nvarchar

Символьные данные (Unicode)

Описание

nvarchar

Символьные данные (Unicode)


Таблица 3.6 - Российская статистика вузовского обучения

Имя поля

Тип данных

Класс данных

Связанное поле

Год

int

Числовой

-

Код ВУЗа

nvarchar

Символьные данные (Unicode)

Исполнитель.[ Код исполнителя]

Код специальности ОКСО

nvarchar

Символьные данные (Unicode)

[Специальности ОКСО].[ Код специальности]

Код квалификации

int

Числовой

[Квалификация по ОКСО].[ Код квалификации]

Код формы обучения

int

Числовой

[Форма обучения].[ Код формы обучения]

Номер страны

int

Числовой

Страны. Номер

Всего_бюджет

int

Числовой

-

Всего_контракт

int

Числовой

-

На включенном обучении

int

Числовой

-

Выпуск_бюджет

int

Числовой

-

Выпуск_контракт

int

Числовой

-

Отчисление_бюджет

int

Числовой

-


Таблица 3.7 - Российская статистика довузовского обучения

Имя поля

Тип данных

Класс данных

Связанное поле

Год

int

Числовой

-

Код вуза

int

Числовой

Исполнитель.[ Код исполнителя]

Номер страны

int

Числовой

Страны. Номер

ПО_бюджет

int

Числовой

-

ПО_контракт

int

Числовой

-

Поступившие_бюджет

int

Числовой

-


Таблица 3.8 - Российская статистика послевузовского обучения

Имя поля

Тип данных

Класс данных

Связанное поле

Год

int

Числовой

-

Код вуза

nvarchar

Символьные данные (Unicode)

Исполнитель.[ Код исполнителя]

Шифр специальности ВАК

int

Числовой

[Специальности ВАК].[ Шифр специальности]

Форма обучения

int

Числовой

[Форма обучения].[Код формы обучения]

Номер страны

int

Числовой

Страны. Номер

Всего_бюджет

int

Числовой

-

Всего_контракт

int

Числовой

-

Защитившихся_бюджет

int

Числовой

-

Отчисленных_бюджет

int

Числовой

-

Защитившихся_контракт

int

Числовой

-


Таблица 3.9 - Зарубежная статистика вузовского обучения

Имя поля

Тип данных

Класс данных

Связанное поле

Год

int

Числовой

-

Код ВУЗа

nvarchar

Символьные данные (Unicode)

Исполнитель.[ Код исполни-теля]


Таблица 3.9 - Зарубежная статистика вузовского обучения

Код специальности ОКСОnvarcharСимвольные данные (Unicode)[Специальности ОКСО].[ Код специальности]




Код квалификации

int

Числовой

[Квалификация по ОКСО].[ Код квалификации]

Код формы обучения

int

Числовой

[Форма обучения].[ Код формы обучения]

Код зарубежного вуза

int

Числовой

Заказчик.[Код заказчика]

Номер страны

int

Числовой

Страны. Номер

Всего

int

Числовой

-

На включенном обучении

int

Числовой

-

По приглашениям

int

Числовой

-


Таблица 3.10 - Зарубежная статистика послевузовского обучения

Имя поля

Тип  данных

Класс данных

Связанное поле

Год

int

Числовой

-

Код вуза

nvarchar

Символьные данные (Unicode)

Исполнитель.[ Код исполнителя]

Шифр специальности ВАК

int

Числовой

[Специальности ВАК].[ Шифр специальности]

Форма обучения

int

Числовой

[Форма обучения].[ Код формы обучения]

Номер страны

int

Числовой

Страны. Номер

Код зарубежной организации

int

Заказчик.[Код заказчика]

Всего

int

Числовой

-

По приглашениям

int

Числовой

-


Таблица 3.11 - Зарубежная статистика сотрудников вузов

Имя поля

Тип данных

Класс данных

Связанное поле

Год

int

Числовой

-

Код вуза

nvarchar

Символьные данные (Unicode)

Исполнитель.[ Код исполнителя]

Должность

int

Числовой

-


Таблица 3.11 - Зарубежная статистика сотрудников вузов

Ученое званиеnvarcharСимвольные данные (Unicode)-




Ученая степень

int

Числовой

-

Номер страны

int

Числовой

Страны. Номер

Код зарубежной организации

int

Числовой

Заказчик.[Код заказчика]

Всего

int

Числовой

-

По приглашениям

int

Числовой

-

По межвузовским договорам

int

Числовой

-


Таблица 3.12- Направления ВАК

Имя поля

Тип данных

Класс данных

Код

nvarchar

Символьные данные (Unicode)

Направление

nvarchar

Символьные данные (Unicode)


Таблица 3.13 - Направления ОКСО

Имя поля

Тип данных

Класс данных

Код направления

nvarchar

Символьные данные (Unicode)

Название направления

nvarchar

Символьные данные (Unicode)


Таблица 3.14 - Специальности ВАК

Имя поля

Тип данных

Класс данных

Шифр специальности

nvarchar

Символьные данные (Unicode)

Специальность

nvarchar

Символьные данные (Unicode)

Группа специальности

nvarchar

Символьные данные (Unicode)

Направление

nvarchar

Символьные данные (Unicode)


Таблица 3.15 - Квалификация по ОКСО

Имя поля

Тип данных

Класс данных

Код квалификации

nvarchar

Символьные данные (Unicode)

Квалификация

nvarchar

Символьные данные (Unicode)


Таблица 3.16 - Форма обучения

Имя поляТип данныхКласс данных



Код формы обучения

int

Числовой

Название

nvarchar

Символьные данные (Unicode)

Описание

nvarchar

Символьные данные (Unicode)


Таблица 3.17 - Страны

Имя поляТип данныхКласс данных



Номер

int

Числовой

Код

nvarchar

Символьные данные (Unicode)

Alpha2

nvarchar

Символьные данные (Unicode)

Alpha3

nvarchar

Символьные данные (Unicode)

Название на английском

nvarchar

Символьные данные (Unicode)

Краткое название

nvarchar

Символьные данные (Unicode)

Полное название

nvarchar

Символьные данные (Unicode)

Форма правления

nvarchar

Символьные данные (Unicode)

Экономический уровень

nvarchar

Символьные данные (Unicode)

Регион

nvarchar

Символьные данные (Unicode)

Субрегион

nvarchar

Символьные данные (Unicode)

Дата обновления

smalldatetime

Дата/время

Дата отмены

nvarchar

Символьные данные (Unicode)


Таблица 3.18 - Международные организации

Имя поляТип данныхКласс данных



Code

int

Числовой

Name

nvarchar

Символьные данные (Unicode)

Alpha

nvarchar

Символьные данные (Unicode)

Established

ntext

Символьные данные (Unicode)

Note

ntext

Символьные данные (Unicode)

Aim

ntext

Символьные данные (Unicode)

3.3 Многомерная модель данных для построения OLAP-куба по международному научно-техническому сотрудничеству вузов и научных организаций России

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

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

В связи с этим встает вопрос о том, как организовать данные, описывающие предметную область так, чтобы по ним было удобно проводить многомерный анализ.

Такой анализ данных целесообразно проводить на основе многомерной модели данных, которая лежит в основе построения большинства хранилищ данных.

Многомерная модель данных - это информационное содержимое предметной области в виде N-мерного куба (гиперкуба), где каждая ось соответствует измерению, представлено на рисунке 3.3.1

Измерение - это последовательность значений одного из анализируемых параметров.

На пересечении осей измерений находятся факты (меры), количественно характеризующие события, описываемые значениями измерений.

Рисунок 3.3.1 - Графическое представление многомерной модели данных

Многомерное представление данных позволяет легко выполнять ряд операций.

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

.             

Рисунок 3.3.2 - Операция среза многомерной модели данных

. Вращение - изменение расположения измерений в представлении данных многомерной модели , представлено на рисунке 3.3.3.

Рисунок 3.3.3 - Операция вращения многомерной модели данных

Операция вращения обычно применяется при отображении многомерных данных в отчете в виде кросс-таблиц или кросс-диаграмм.

Кросс-таблица представляет собой размещение многомерных данных на плоскости в виде сводной таблицы.

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

В качестве агрегирующих функций чаще всего используются: минимум (min), максимум (max), сумма(sum), среднее (average), количество(count).

Кросс-таблица состоит из следующих элементов:

·      заголовки строк;

·        заголовки столбцов;

·        матрица с фактами.

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

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

. Консолидация и детализация - переход от детального представления данных к агрегированному (обобщенному) и наоборот , отражено на рисунке 3.3.4 и рисунке 3.3.5.

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

Рисунок 3.3.4 - Операция консолидации многомерной модели данных

Рисунок 3.3.5 - Операция детализации многомерной модели данных

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

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

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

· расчеты и вычисления по нескольким измерениям;

·              анализ трендов;

·              выборка подмножеств данных для просмотра;

·              получение обобщенных (агрегированных) значений;

·              переход к детальным данным, лежащим в основе анализа;

· вращение кросс-таблиц отображаемых данных.

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

Есть два основных подхода к реализации многомерной модели данных:

· Multidimensional OLAP (MOLAP) - реализация механизма при помощи многомерной базы данных на стороне сервера, т.е. использование специализированных OLAP-средств.

·              Relational OLAP (ROLAP) - построение кубов «на лету» на основе SQL запросов к реляционной СУБД, т.е. внедрение средств OLAP в реляционную СУБД.

Каждый из этих подходов имеет свои плюсы и минусы.

MOLAP использует для хранения и управления данными многомерные базы данных. При этом данные хранятся в виде упорядоченных многомерных массивов.

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

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

В таблице 3.19 представлена сравнительная характеристика ROLAP и MOLAP, из которой видно, что по многим параметрам ROLAP превосходит MOLAP.

Таблица 3.19 - Сравнительные характеристики ROLAP и MOLAP

Характеристики

ROLAP

MOLAP

Производительность

Ниже

Выше

Требуемый объем памяти

Меньший

Больший

Обработка разреженных данных

Лучше

Хуже

Обработка детализированных данных

Лучше

Хуже

Функциональная гибкость

Выше

Ниже

Уровень защиты данных

Выше

Ниже


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

В этом случае построение кубов производится «на лету» на основе SQL запросов к имеющейся реляционной БД.

В настоящее время распространены две основные схемы реализации многомерного представления данных с помощью реляционных таблиц: схема «звезда» и схема «снежинка».

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

На рисунке 3.3.6 изображена схема, в центре которой располагаются факты и агрегатные данные, а «лучами» являются измерения. Каждая звезда описывает определенное действие (процесс), например, финансирование.

Рисунок 3.3.6 - Пример схемы «звезда»

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

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

Таблицы измерений содержат неизменяемые либо редко изменяемые данные. Обычно для однозначной идентификации члена измерения используется суррогатный ключ и как минимум одно описательное поле (обычно имя члена измерения).

Каждая таблица измерений должна находиться в отношении «один-ко-многим» с таблицей фактов.

При реализация многомерного представления данных в дипломном проекте также используется схема «снежинка». Как и в схеме «звезды <#"656446.files/image015.gif">

Рисунок 3.3.7 - Пример схемы «снежинка»

На основании вышесказанного для предварительной подготовки данных с целью их оптимизации были разработаны многомерные модели данных в виде схем «звезда» и «снежинка».

Схема реализации многомерного представления данных для формирования гиперкуба «сводные данные по исполнителям» представлена на рисунке 3.3.8.

Рисунок 3.3.8 - Многомерная модель данных для гиперкуба «Сводные данные по исполнителям»

В представленной на рисунке 3.3.8 схеме основными таблицами измерений являются таблицы «Общий фонд по каждому договору», «Участники научного исследования », «Заказчики научного исследования», «Научное исследование». Таблица «Распределение средств» является таблицей фактов, связанной с таблицами измерений отношениями «один-ко-многим». При формировании запросов к базе данных пользователю будут предложены следующие измерения: область знания, экономический район, профиль вуза, вид вуза, регион заказчика, страна заказчика, форма исследования, вид исследования.

Схема реализации многомерного представления данных для формирования гиперкуба «сводные данные по регионам мира» представлена на рисунке 3.3.9.

Рисунок 3.3.9 - Многомерная модель данных для гиперкуба «Сводные данные по регионам мира»

В схеме представленной на рисунке 3.3.9 таблицами измерений являются таблицы «Классификатор исполнителей», «Заказчик», «Исполнитель», «Специализация исполнителей».

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

Схема реализации многомерного представления данных для формирования гиперкуба «Российская статистика довузовского обучения» представлена на рисунке 3.3.10.

Рисунок 3.3.10 - Многомерная модель данных для гиперкуба «Российская статистика довузовского обучения»

 

Схема реализации многомерного представления данных для формирования гиперкуба «Российская статистика послевузовского обучения» представлена на рисунке 3.3.11.

Рисунок 3.3.11 - Многомерная модель данных для гиперкуба «Российская статистика послевузовского обучения»

Схема реализации многомерного представления данных для формирования гиперкуба «Российская статистика вузовского обучения» представлена на рисунке 3.3.12.

Рисунок 3.3.12 - Многомерная модель данных для гиперкуба «Российская статистика вузовского обучения»

Схема реализации многомерного представления данных для формирования гиперкуба «Зарубежная статистика послевузовского обучения» представлена на рисунке 3.3.13.

Рисунок 3.3.13 - Многомерная модель данных для гиперкуба «Зарубежная статистика послевузовского обучения»

Схема реализации многомерного представления данных для формирования гиперкуба «Зарубежная статистика сотрудников вузов» представлена на рисунке 3.3.14.

Рисунок 3.3.14 - Многомерная модель данных для гиперкуба «Зарубежная статистика сотрудников вузов»

Схема реализации многомерного представления данных для формирования гиперкуба «Зарубежная статистика вузовского обучения» представлена на рисунке 3.3.15.

Рисунок 3.3.15 - Многомерная модель данных для гиперкуба «Зарубежная статистика вузовского обучения»

4. Разработка интерфейса WEB-приложения для аналитической обработки данных

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

Рисунок 4.1.1 - Главная страница приложения

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

После выбора оператор попадает на одну из форм, общий вид которых рассмотрим на примере формы «Сводные данные по исполнителям», представленной на рисунке 4.1.2.

Рисунок 4.1.2 - Форма «Сводные данные по исполнителям»

По оси X и Y пользователь выбирает структуру формируемого куба. Выпадающие списки обеспечивают возможность выбора измерений, по которым будут формироваться результирующая таблица и гистограмма. Топология таблиц сложна, число связей велико, поэтому пользователю предлагается дополнительно выбрать значения выводимых полей таблиц измерений. На рисунке 4.1.3 продемонстрирован процесс выбора оператора. Для полноты информации при формировании запроса пользователю необходимо выбрать «меру», то есть непосредственно критерий, по которому будет заполняться матрица фактов выводимой таблицы. За это действие отвечает выпадающий список «Вывести».

Рисунок 4.1.3 - Выпадающие списки на формах

Обработчик кнопки «Сформировать» формирует и отсылает запрос к SQL серверу, результатом которого является получение необходимого среза OLAP куба. На рисунке 4.1.4 представлен вариант отображения этого среза в виде таблицы, а на рисунке 4.1.5 в виде гистограммы.

Рисунок 4.1.4 - Табличный вид отображения данных

Рисунок 4.1.5 - Отображение данных в виде гистограммы

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

Порядок действий:

1.   Запускаем приложение, выбираем «сводные данные по исполнителям».

2.      По оси Х выбираем в качестве измерения «Регион заказчика», по оси Y выбираем в первом списке «Профиль вуза», во втором конкретизируем до «естественно-научный и гуманитарный».

.        В качестве меры нас интересует финансирование, поэтому в списке «Вывести» выбираем соответствующее поле.

.        Нажимаем кнопку «Сформировать». Результат в виде таблицы и диаграммы на рисунке 4.1.6.

Рисунок 4.1.6 - Результат работы программы при выводе финансирования по регионам заказчиков и естественно-научным и гуманитарным профилям вузов

В рассматриваемом примере Южная Америка занимает лидирующую позицию по критерию финансирования.

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

Рисунок 4.1.7 - Табличный вывод данных по регионам заказчиков и профилям вузов

Рисунок 4.1.8 - Вывод данных в виде гистограммы по регионам заказчиков и профилям вузов

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

Для более детальной информации по финансируемым видам исследований в Европе достаточно просто подкорректировать измерения нового куба и получим результат на рисунке 4.1.9.

Рисунок 4.1.9 - Финансирование по видам исследований в Европе

Теперь пользователь может подробно ознакомиться с распределением финансирования средств по интересующему его региону по видам исследований.

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

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

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

Разработка интерфейса осуществлена на базе технологии ASP.NET и компонентов библиотеки MS OWC. Реализация отображения графических изображений формируемых при помощи MS OWC происходит при помощи встроенного в ASP.NET обработчика HTTPhendler, которая компилируется при вызове этого файла во время формирования изображения в объекте Image. Таким образом, формирование картинки происходит “налету” и не требует предварительного формирования файла. После того как экземпляр класса библиотеки OWC11 сформирует графическое представление переданных результатов, он возвращает изображение вызывающему его объекту. В случае если построение графика не было завершено, программа не выполняет прорисовку графики, а в сессию передается сообщение об ошибке.

5. Разработка программного обеспечения WEB-приложения для аналитической обработки данных

5.1 Реализация подключения к источнику данных

Разработка программного обеспечения в дипломном проекте имеет следующие основные направления:

)        Cоздание пользовательского OLAP клиента для доступа к SQL серверу при использовании технологии ADO MD на платформе .NET.

)        Формирование запросов к OLAP кубам на языке MDX

Остановим свое внимание на решении первой задачи.

Общая структура доступа к данным на основе модели «клиент-сервер» изображена на рисунке 5.1.1.

Рисунок 5.1.1 - Структура доступа к данным на основе модели «клиент-сервер»

Для подключения к SQL серверу используется объект AdomdConnection

Объект AdomdConnection используется в ADOMD.NET для установления соединений с источниками аналитических данных, например базами данных служб Analysis Services. Объект AdomdConnection можно использовать для выполнения команд, получения данных и метаданных из источника аналитических данных.

Конструкторы объекта AdomdConnection:

§ AdomdConnection(String) - инициализация нового экземпляра AdomdConnection класса, используя указанную строку соединения

§  AdomdConnection(AdomdConnection) - инициализация нового экземпляра AdomdConnection класса, используя значения из указанного AdomdConnection класса

Свойства объекта AdomdConnection:

§ ConnectionString - задает строку, которая используется для открытия источника аналитических данных

§  Cubes - представляет коллекцию кубов источника аналитических данных

§  SessionID - идентификатор сессии

§  State - текущее состояние соединения

Методы объекта AdomdConnection:

§ Open(String) - открытие соединения с аналитическим источником данных

§  CreateCommand - создает и возвращает AdomdCommand, который связан с AdomdConnection

§  GetType - возвращает объект Type для текущего экземпляра

§  Close(Boolean) - закрывает подключение к базе данных

Рассмотрим основные свойства объектов CubeDef:

§ Caption -заголовок CubeDef

§  Description - описание

§  Dimensions - экземпляр DimensionCollection класса, который содержит измерения CubeDef класса

§  Measures - экземпляр MeasureCollection класс, который содержит меры по CubeDef

5.2 Реализация получения данных из источника аналитических данных

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

Кроме того, объект AdomdDataReader также может повышать производительность приложения за счет извлечения данных по мере их поступления, не дожидаясь возвращения полных результатов запроса. Объект AdomdDataReader также сокращает затраты системных ресурсов, так как, по умолчанию, этот модуль чтения хранит в памяти только одну строку за раз.

Платой за оптимизированную производительность является то, что объект AdomdDataReader предоставляет меньше сведений об извечных данных, чем другие методы получения данных. Объект AdomdDataReader не поддерживает большие модели объектов для представления данных или метаданных, кроме того, эта модель объекта также не позволяет использовать более сложные аналитические функции, как, например обратная запись в ячейку. Однако объект AdomdDataReader все же предоставляет набор строго типизированных методов для извлечения данных набора ячеек, а также метод для извлечения метаданных набора ячеек в табличном формате. Кроме того, объект AdomdDataReader реализует интерфейс IDbDataReader для поддержки привязки данных и извлечения данных при помощи метода SelectCommand из пространства имен System.Data библиотеки классов платформы Microsoft .NET Framework.

Для формирования запросов к базе данных используется язык MDX. Назначение языка MDX (Multidimensional Expressions) - предоставить в распоряжение разработчиков средство для более простого и эффективного доступа к многомерным структурам данных. В Microsoft SQL Server 2000 Analysis Services язык MDX используется для формирования запросов и описания алгоритмов получения вычисляемых значений.

В языке MDX выражение SELECT используется для задания набора данных, содержащего подмножество многомерных данных. запрос содержит следующую информацию:

§ число осей (в одном запросе можно указать до 128 осей)

§  список членов измерения, которые должны быть включены для каждой оси;

§  имя куба, к которому производится запрос;

§  список членов среза.

.3 Пространство имен System.Web

Пространства имен System.Web содержат типы, обеспечивающие возможности взаимодействия между браузером и сервером. Дочерние пространства имен включают типы, поддерживающие проверку подлинности с помощью форм ASP.NET, службы приложений, кэширование данных на сервере, настройку приложений ASP.NET, динамические данные, обработчики HTTP-данных, сериализацию JSON, встраивание функций AJAX в ASP.NET, безопасность ASP.NET и веб-службы.

Классы:

§ DefaultHttpHandler - представляет свойства и методы обработчика HTTP-данных, заданного по умолчанию

§  HttpApplication - определяет методы, свойства и события, являющиеся обычными для всех объектов приложений ASP.NET

§  HttpApplicationState - позволяет обмен общими сведениями между несколькими сеансами и запросами в приложении ASP.NET

§  HttpServerUtility - предоставляет вспомогательные методы для обработки веб-запросов

§  TraceContext - получает и представляет подробности выполнения веб-запроса

Пространства имен System.Web.UI, System.Web.UI.WebControls, System.Web.UI.WebControls, System.Web.UI.HtmlControls необходимы для создания элементов web-интерфейса и содержат следующие классы:

§ HtmlForm - предоставляет программный доступ к элементу HTML <form> на сервере

§  HtmlTable - разрешает программный доступ к элементу HTML <table> на сервере

§  Control - определяет свойства, методы и события, общие для всех ASP.NET серверных элементов управления

§  BaseTemplateParser - инфраструктура, реализует синтаксический анализ шаблона ASP.NET для файлов шаблонов

§  Button - отображает элемент управления "Кнопка" на web-странице

§  ListBox - представляет элемент управления списком, позволяющий выбрать один или несколько его элементов

§  DropDownList - представляет элемент управления, позволяющий пользователю выбрать один элемент из раскрывающегося списка

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

§  Image - отображает изображение на веб-странице

§  Page -         представляет файл ASPX, называемый также страницей веб-формы, запрашиваемый с сервера, где выполняется веб-приложение ASP.NET

5.4 Пространство имен System.Data

В рамках дипломного проекта пространство имен System.Data используется для построения и работы с таблицами. Содержит в себе следующие классы:

§ DataTable - представляет одну таблицу с данными в памяти

§  DataColumn - представляет схему столбца в DataTable

§  DataRow - представляет строку данных в DataTable

§  DataView - представляет настраиваемое и допускающее привязку данных представление объекта DataTable для сортировки, фильтрации, поиска, изменения и навигации

В свою очередь класс DataTable имеет следующие конструкторы:

§ DataTable - инициализирует новый экземпляр класса DataTable, не передавая ему никаких аргументов

§  DataTable(String) - инициализирует новый экземпляр класса DataTable с указанным именем таблицы

Свойства класса DataTable:

§ Columns - получает коллекцию столбцов, принадлежащих данной таблице

§  Rows - получает коллекцию строк, принадлежащих данной таблице

§  MinimumCapacity - возвращает или задает начальный размер таблицы

Методы класса DataTable:

§ BeginInit - начинает инициализацию класса DataTable, используемого в форме или другим компонентом. Инициализация осуществляется во время выполнения

§  Copy - копирует структуру и данные для DataTable

§  Equals(Object) - определяет, равен ли заданный объект Object текущему объекту Object

§  NewRow - создает новый класс DataRow, имеющий ту же схему, что и таблица

§  Select(String) - получает массив всех объектов DataRow, отвечающих условиям фильтра в порядке первичного ключа (если ключ отсутствует, то в порядке их добавления)

§  GetRowType - получение типа строки

В данной главе были рассмотрены основые классы, методы, структуры, используемые для реализации программного обеспечения web-приложения. Также стоит упомянуть об использовании пространства имён System.Security.Cryptography, а точнее класса RandomNumberGenerator <#"656446.files/image035.gif">,

где:

 - затраты на материалы, руб.

 - норматив транспортно-заготовительных расходов, 15%.

Затраты по статье “материалы” приведены в таблице 6.2.

Таблица 6.2 - Затраты по статье “материалы”

Материалы

Единица измерения

Количество

Цена, руб.

Сумма, руб.

Бумага писчая

Пачка

1

199

199

Картридж для принтера

шт.

1

2 205

2 205


Таблица 6.2 - Затраты по статье “материалы”

Компакт диск CD-Rшт.22550





Флэш-накопитель

шт.

1

499

499

Канцелярские товары

шт.

2

25

50

Итого

3 003

Транспортные расходы, 10%

450

Всего:

3 453


Спецоборудование.

Дополнительное спецоборудование не требуется

Расходы на оплату труда.

Средняя з/пл за 1 рабочий день для каждой категории исполнителей определяется исходя из месячного оклада и среднего количества рабочих дней в месяц принимаемого за 22 дня.

Расходы на оплату труда разработчиков рассчитывается по формуле:

,

где :

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

С30мес - месячные оклады по каждой специальности;

Hнач - норматив начислений, устанавливаемый на данном конкретном предприятии, %;

t - среднее количество рабочих дней в месяц (22 дня).

«Отчисления на социальные нужды» рассчитывается пропорционально з/пл разработчиков в размере 26,2%:

федеральный бюджет − 20%;

фонд социального страхования − 3,2%;

фонд обязательного медицинского страхования − 2,8%;

страхование от несчастных случаев − 0,2%

ССН = СЗО НСН/100,

 

где НСН - суммарный норматив отчислений на социальные нужды, устанавливаемый законодательно (Налоговый кодекс РФ).

Таблица 6.3 - Затраты по статьям: “расходы на оплату труда”

Специальность

Месячный оклад, руб.

Дневная ставка, руб.

Трудоемкость, дней.

Расходы по з/пл., руб.

1

Инженер

15 000

681

76

51 756

2

Главный спец.

25 000

1 136

4

 4 544

Итого, з/пл.

56 300

Отчисления на социальные нужды, 26.2%

14 750


Затраты по работам, выполняемым сторонними организациями.

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

 ,

где  - часовая ставка арендной платы - 25 рублей,

 - время аренды ЭВМ - примем равным 504 часам (с учетом 8-ми часового рабочего дня)


Командировочные расходы.

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

Прочие прямые расходы.

Смета по статье “прочие прямые расходы”, включающая затраты связанные с получением специальной научно-технической литературы, а также платежи за использование средств связи и коммуникации приведены в таблице 6.4.

Таблица 6.4 - Затраты по статье “прочие прямые расходы”

Наименование

Единица измерения

Количество

Цена, руб.

Сумма, руб.

Средства связи и коммуникации

Доступ в интернет

мес.

2

500

1000

Научно-техническая литература

Мэтью Мак-Дональд, Марио Шпушта «Microsoft ASP.NET 2.0 с примерами на C#», Москва «Вильямс», 2007

шт.

1

773

773

Эндрю Троэлсен «Язык программирования C# 2005 », Москва «Вильямс», 2007

шт.

1

850

850

Сахил Малик «Microsoft ADO.NET 2.0 », Москва «Вильямс», 2007

шт.

1

440

440

Роберт Виейра «Программирование баз данных Microsoft SQL Server 2005 », Москва «Диалектика», 2007

шт.

1

552

552

Итого

3 615


Накладные расходы.

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

,

Где ННР - норматив накладных расходов, составляет 20%.


Смета затрат на НИР.

Смета затрат на НИР, основанная затратах, по статьям расходов, приведенных выше, представлена в таблице 6.5.

Таблица 6.5 - Смета затрат на НИР

Статья затрат

Сумма, руб.

1

Материалы

3 453

2

Спецоборудование

0

3

Расходы на оплату труда

56 300

4

Отчисления на социальные нужды

14 750

5

Затраты по работам, выполняемым сторонними организациями

12 600

6

Командировочные расходы

0

7

Прочие прямые расходы

3 615

8

Накладные расходы

11 260

Итого себестоимость разработки

101 978


Определение потребности в начальном капитале.

Потребность в начальном капитале формируется за счет средств затраченных на НИР - 101 978 руб., а также дополнительных средств, необходимых для приобретения ПО для разработки и других дополнительных средств.

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


где:

 - цена i-го вида оборудования (программы),

- cрок службы i-го вида оборудования (программы), принимается равным пяти годам,

k - число рабочих часов в году, 1986 часов.

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

Расчеты по приведенной выше формуле, для элементов списка представленного в начале параграфа, сведены в таблицу 6.6

Таблица 6.6 - Потребность в начальном капитале

Наименование

Цена, руб.

Потребность в начальном капитале, руб.

Компьютерная техника

1

Принтер HP LaserJet 1018

4 190.00

284

Информационные системы, системы обработки данных

1

Microsoft Visual Studio Pro 2008 English

28 350.00

1 920

2

Microsoft Office 2007

4 590.0

310

Итого

2 514


Итого суммарная потребность в начальном капитале составила:

.4 Экономическая эффективность проекта

Количественная оценка.

В данном разделе приводится расчет основных показателей, характеризующих экономическую привлекательность проекта.

Данная разработка была выполнена по заказу Минобрнауки России и полностью оплачена.

 - цена продажи проекта, после согласования с заказчиком была принята равной:

  = 160 000 руб.

  - начальные вложения, связанные с реализацией проекта.  = 104 492 руб.

Экономический эффект от продаж:

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

 

 =  -  = 55 508 руб.

 

6.5 Рентабельность

Определение экономической привлекательности проекта будет произведено на основе показателя рентабельности инвестиций (ROI - Return on investments), который можно определить как отношение прибыли полученного от проекта к начальным инвестициям в него вложенным. Т.е. рентабельность инвестиций можно определить по формуле:


Окончательно, основываясь на всех приведенных выше данных, рентабельность проекта составит:

ROI =

Таким образом, рентабельность, составляющая 53,12% процентов, позволяет говорить об экономической целесообразности разработанного проекта.

.6 Качественная оценка

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

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

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

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

·    уменьшение времени обработки информации;

·        уменьшение затрат на получение информации;

·        обеспечение быстрого доступа к данным;

·        увеличение достоверности информации;

·        улучшение формы представления результирующей информации

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

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

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


где:

-          - значение i-го показателя, определяется экспертным путем

-          ,  - уровень характеристики соответственно нового и базового НТПр

Таблица 6.7 - Показатели качества

№ п/п

Показатель

Бальная оценка

 Коэффициент значимости,



Локальная версия, Интернет версия,



1

Скорость получения информации

1

10

0.2

2

Доступность информации

2

5

0.2

3

Затраты  на получение информации

3

7

0.1

4

Форма представления информации

2

6

0.2

5

Достоверность информации

3

4

0.2

6

Полнота информации

4

6

0.1


Таким образом, уровень качества равен: = 3,75.

 

6.7 Выводы

1) Трудоемкость НИР: инженера - 76 чел.-дней, СНС - 4 чел.-дней.

) Себестоимость НИР составляет 101 978 руб.

3) Потребность в начальном капитале  = 104492 руб.

) Рентабельность проекта 53,12%, при цене проекта 160 000 руб.

) Уровень качества продукта:  = 3,75

Таким образом, реализация проекта экономически целесообразна.

8. Охрана интеллектуальной собственности

.1 Интеллектуальная собственность

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

Согласно определению интеллектуальной собственности, принятому в российском законодательстве, а также на основании определения Стокгольмской конференции от 14 июля 1967 г., программы для ЭВМ (компьютерные программы) и базы данных относятся к объектам интеллектуальной собственности. Программам для ЭВМ и базам данных предоставляется охрана нормами авторского права как литературным произведениям в соответствии с Бернской конвенцией, причем программы для ЭВМ охраняются как литературные произведения, а базы данных - как сборники.

В Российской Федерации вопросы предоставления правовой охраны программам для ЭВМ и базам данных регулируются 4-ой частью Гражданского кодекса РФ.

8.2 Программа для ЭВМ

Под программой для ЭВМ понимается "... представленная в объективной форме совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств в целях получения определенного результата". Кроме того, в понятие программы для ЭВМ входят "...подготовительные материалы, полученные в ходе разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения" [1, ст. 1261].

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

Можно выделить следующие объективные формы представления программы для ЭВМ:

1 исходная программа (или исходный текст) - последовательность предписаний на алгоритмическом (понятном человеку) языке высокого уровня, предназначенных для автоматизированного перевода этих предписаний в последовательность команд в объектном коде;

2 рабочая программа (или объектный код) - последовательность машинных команд, т. е. команд, представленных на языке, понятном ЭВМ;

3 программа, временно введенная в память ЭВМ, - совокупность физических состояний элементов памяти запоминающего устройства ЭВМ (ОЗУ), сохраняющихся до прекращения подачи электропитания к ЭВМ;

4 программа, постоянно хранимая в памяти ЭВМ, - представленная на языке машины команда (или серия команд), выполненная в виде физических особенностей участка интегральной схемы, сохраняющихся независимо от подачи электропитания.

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

Предоставляемая законодательством правовая охрана распространяется "... на все виды программ для ЭВМ (в том числе на операционные системы и программные комплексы), которые могут быть выражены на любом языке и в любой форме, включая исходный текст и объектный код …" [1, ст.1261]. Так как преобразование исходного текста программы для ЭВМ в объектный (машинный) код с помощью специальных программ-трансляторов не меняет сущности данной программы как произведения, то если охраняется исходный текст программы, значит, охране подлежит и соответствующий ей объектный код. Обратное тоже справедливо.

Правовая охрана программ для ЭВМ распространяется только в отношении формы их выражения и «… не распространяется на идеи, концепции, принципы, методы, процессы, системы, способы, решения технических, организационных или иных задач, открытия, факты, языки программирования» [1, ст.1259, п. 5].

.3 Правообладатель

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

8.4 Официальная регистрация

Для официальной регистрации программы для ЭВМ " WEB-приложение для аналитической обработки о международном научно-техническом и образовательном сотрудничестве вузов России" были оформлены следующие документы:

Титульный лист.

Описание состава регистрируемого объекта.

Реферат к программе для ЭВМ.

8.5 Лицензионный договор

Для передачи прав на использование программы для ЭВМ " WEB-приложение для автоматизированной публикации ежегодных статистических сборников о международном сотрудничестве вузов России в области образования " необходимо подписание лицензионного договора, приведенного ниже.

Программа для ЭВМ “ WEB-приложение для аналитической обработки информации о международном научно-техническом и образовательном сотрудничестве вузов России ”

Полный исходный текст программы

Всего 49 листов

Правообладатель: Прошунин Иван Сергеевич

Автор: Прошунин Иван Сергеевич

ãПрошунин И.С., 2011 г.

Санкт-Петербург

Состав программы

.Master - шаблон с набором правил для формирования всех web страниц приложения. .aspx - главная страница приложения, содержащая основное меню .aspx - страница с конструктором запросов для получения аналитических данных по Российской статистике довузовского обучения..aspx - страница с конструктором запросов для получения аналитических данных по Российской статистике послевузовского обучения..aspx - страница с конструктором запросов для получения аналитических данных по Российской статистике вузовского обучения..aspx - страница с конструктором запросов для получения аналитических данных по общевузовской статистике..aspx - страница с конструктором запросов для получения аналитических данных по исполнителям..aspx - страница с конструктором запросов для получения аналитических данных по регионам мира..aspx - страница с конструктором запросов для получения аналитических данных по зарубежной статистике послевузовского обучения..aspx - страница с конструктором запросов для получения аналитических данных по зарубежной статистике вузовского обучения.

Реферат

Автор: Прошунин Иван Сергеевич

Правообладатель: Прошунин Иван Сергеевич

Программа для ЭВМ: “ Web-приложение для аналитической обработки информации о международном научно-техническом и образовательном сотрудничестве вузов России ”.

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

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

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

Тип ЭВМ:                      IВM РС/АТ и совместимые с ней

ОС:                                WINDOWS 2000/XP

Язык программирования: C#

Объем:                             2 530 Кбайт.

Лицензионный договор на использование программы для ЭВМ

Стороны в Договоре:

Гражданин Прошунин Иван Сергеевич, проживающий по адресу: 194355, г. Санкт-Петербург, Суздальский проспект, д. 5, корп. 1, кв. 264, именуемый в дальнейшем “ЛИЦЕНЗИАР”, с одной стороны, и Государственное образовательное учреждение высшего профессионального образования “Санкт-петербургский государственный электротехнический университет “ЛЭТИ” им. В.И. Ульянова (Ленина)”, именуемое в дальнейшем - “ЛИЦЕНЗИАТ”, в лице ректора КУТУЗОВА В.М., действующего на основании Устава, с другой стороны,

принимая во внимание, что:

1) Лицензиар является автором и правообладателем программы для ЭВМ “ WEB-приложение для аналитической обработки информации о международном научно-техническом и образовательном сотрудничестве вузов России ”;

2)      Лицензиат желает получить на условиях настоящего Договора лицензию на использование упомянутой программы для ЭВМ с целью возможности аналитической обработки информации о международном научно-техническом и образовательном сотрудничестве вузов России

3) Лицензиар готов предоставить Лицензиату такую лицензию;

договорились о следующем:

1 Термины и их определение

1.1 “ПРОГРАММА ДЛЯ ЭВМ” (ПрЭВМ) - Программное обеспечение для аналитической обработки информации о международном научно-техническом и образовательном сотрудничестве вузов России;

.2 “ДОКУМЕНТАЦИЯ” - комплект документов, передаваемых Лицензиаром Лицензиату, включающий руководство пользователя по применению и обслуживанию программы для ЭВМ.

.3 “ПРОИЗВОДСТВЕННАЯ ПЛОЩАДКА” - структурные подразделения Лицензиата.

.4 “РАБОЧЕЕ МЕСТО” - конкретная ЭВМ, на которой используется программа для ЭВМ.

2 Предмет Договора

2.1 Лицензиар предоставляет Лицензиату на срок действия настоящего Договора и за вознаграждение, уплачиваемое Лицензиатом, неисключительную лицензию на использование ПрЭВМ. При этом Лицензиату предоставляется право на установку ПрЭВМ не более чем на 10 (десяти) Рабочих местах.

.2 Лицензиар передает Лицензиату Документацию к ПрЭВМ.

.3 Предоставленное Лицензиату в рамках настоящего Договора право ограничено Производственной площадкой.

.4 Лицензиар осуществляет авторский контроль за соблюдением объемов использования ПрЭВМ по настоящему Договору, при этом Лицензиат обеспечивает возможность такого контроля.

.5 Лицензиар сохраняет за собой право самому использовать ПрЭВМ и предоставлять неисключительные лицензии на право ее использования третьим лицам.

3 Обеспечение Договора

3.1 Лицензиар передает Лицензиату ПрЭВМ в объеме и виде, достаточном для ее использования, и Документацию в течение 15 (пятнадцати) дней со дня подписания настоящего Договора. ПрЭВМ передается Лицензиату в виде CD-диска в количестве 1 (одна) штука, содержащих ПрЭВМ. По факту передачи ПрЭВМ и Документации составляется акт сдачи-приемки с перечнем переданных материалов, подписываемый обеими Сторонами.

.2 Если Лицензиат установит неполноту или неправильность полученных ПрЭВМ или Документации, то Лицензиар в течение 15 (пятнадцати) дней после сообщения ему об этом Лицензиатом обязан передать недостающие материалы или устранить недостатки ранее переданных ПрЭВМ и Документации.

.3 Для оказания помощи в освоении ПрЭВМ Лицензиар по просьбе Лицензиата оказывает консультации пользователям ПрЭВМ.

.4 Для целей использования ПрЭВМ в объеме, предусмотренном п. 2.1 настоящего Договора, Лицензиат может изготавливать в необходимом ему количестве копии ПрЭВМ и копии Документации.

4 Усовершенствования

4.1 Лицензиар обязуется незамедлительно информировать Лицензиата о всех произведенных им усовершенствованиях ПрЭВМ и, при желании Лицензиата, передать ему в согласованные сроки новые варианты ПрЭВМ. В отношении новых вариантов ПрЭВМ, переданных Лицензиаром Лицензиату, распространяются все условия настоящего Договора.

.2 Лицензиат обязуется предоставлять Лицензиару информацию об использовании ПрЭВМ, которая могла бы быть полезной для усовершенствования ПрЭВМ.

5 Платежи

5.1 За предоставление прав, предусмотренных настоящим Договором, Лицензиат выплачивает Лицензиару единовременное вознаграждение в размере 10 000(десять тысяч) рублей.

.2 Вознаграждение, предусмотренное п.5.1 настоящего Договора, выплачивается Лицензиатом в течение 30 (тридцати) дней, следующих после подписания акта приемки-сдачи.

6 Защита передаваемых прав

6.1 Лицензиат обязуется не вносить самовольно каких-либо изменений в Программу ЭВМ и Документацию и не дополнять их какими-либо комментариями. Подобные изменения или дополнения возможны только с согласия Лицензиара.

6.2 Лицензиат обязуется предпринимать все необходимые меры для предотвращения несанкционированного копирования ПрЭВМ и Документации третьими лицами, а также несанкционированной передачи ПрЭВМ и Документации работниками Лицензиата третьим лицам.

.3 Если Лицензиату станет известно о противоправном использовании ПрЭВМ третьими лицами, то он незамедлительно сообщит об этом Лицензиару.

7 Ответственность Сторон и разрешение споров

7.1 За невыполнение или не надлежащее выполнение обязательств по настоящему Договору Стороны несут имущественную ответственность в соответствии с действующим законодательством.

.2 Стороны освобождаются от ответственности за неисполнение или не надлежащее исполнение обязательств, принятых по настоящему Договору, если неисполнение явилось следствием обстоятельств непреодолимой силы (форс-мажор).

.3 Сторона, нарушившая свои обязательства по настоящему Договору, освобождается от ответственности за неисполнение или ненадлежащее исполнение этих обязательств, если это нарушение было вызвано причинами, за которые отвечает другая Сторона.

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

8 Срок действия Договора и условия его расторжения

8.1 Настоящий Договор заключен на срок 2 года и вступает в силу с даты его подписания обеими Сторонами.

8.2 По истечении срока действия настоящего Договора Лицензиат вправе использовать ПрЭВМ, включая усовершенствованные варианты, на Производственной площадке на любом количестве Рабочих мест. При этом обязательства Лицензиара, предусмотренные пп. 6.1 и 6.2 настоящего Договора,

сохраняются бессрочно.

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

.4 Настоящий Договор может быть досрочно расторгнут в одностороннем порядке со стороны Лицензиара из-за невыполнения Лицензиатом своих обязательств по пп. 6.1 или 6.2. В этом случае Лицензиат лишается права дальнейшего использования ПрЭВМ в любой форме и обязан вернуть ее Лицензиару.

.5 Если Лицензиат откажется от дальнейшего использования ПрЭВМ, то он уничтожит все имеющиеся у него копии ПрЭВМ.

9 Заключительные положения

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

9.2 Стороны не имеют права передавать свои права и обязательства по настоящему Договору третьим лицам без письменного согласия на то другой Стороны. Во всем остальном, что не предусмотрено условиями настоящего Договора, будут применяться нормы законодательства Российской Федерации.

10 Адреса Сторон

10.1 ЛИЦЕНЗИАР: Прошунин Иван Сергеевич, адрес: 194355, г. Санкт-Петербург, Суздальский проспект, д. 5, корп. 1, кв. 264

.2 ЛИЦЕНЗИАТ: СПБГЭТУ, адрес: 197376, Санкт-Петербург, ул. Проф. Попова, д. 5.

Настоящий Договор составлен в двух экземплярах для каждой из Сторон и подписан “5” июня 2011 г. в г. Санкт-Петербурге.

Лицензиар: Прошунин И.С.

Ректор СПБГЭТУ        В.М. Кутузов

Заключение

В дипломном были проекте решены следующие задачи:

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

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

.        Разработано программное обеспечение при поддержке технологии ADOMD.NET, позволяющее реализовать подключение и формирование запросов на языке MDX к разработанным OLAP-кубам. На основе платформы .NET, а точнее с использованием технологии ASP.NET был разработан пользовательский интерфейс в виде web-приложения.

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

Тестирование разработанного программного обеспечения осуществлялось в разных интернет обозревателях, среди которых Opera, Mozilla firefox, Google Chrome, Internet Explorer.

Список используемых источников

1.     Троэлсен Э. Язык программирование C# 2005 и платформа .NET 2.0. - М.: Вильямс, 2009. - 1168 c.

2.      Мак-Дональд М., Шпушта М. Microsoft ASP.NET 2.0 с примерами на C# - М.: Вильямс, 2007. - 1408 c.

.        Малик С. Microsoft ADO.NET 2.0 - М.: Вильямс, 2010. - 560 c.

.        Виейра Р. Программирование баз данных Microsoft SQL Server 2005 - М.:Диалектика, 2007. - 832 c.

5.      http://www.zedgraph.org

6.      http://www.sourceforge.net/projects/zedgraph/

7.      http://www.microsoft.com/downloads/details.aspx?FamilyId=7287252C-402E-4F72-97A5-E0FD290D4B76&displaylang=en

.        http://www.lowagie.com/iText/

.        http://www.itextsharp.sourceforge.net/

10.    Lowagie B. iText in Action. Creating and Manipulating PDF - NY.:Manning, 2007. - 686 p.

.        http://msdn2.microsoft.com/en-us/library/aa213568(office.11).aspx

.        http://msdn2.microsoft.com/en-us/library/aa141155(office.10).aspx

13.    Гражданский Кодекс Российской Федерации от 30.11.94 г. № 51-ФЗ. Ч. 1 // Российская газета №238-239 от 08.12.94 г.

.        Гражданский Кодекс Российской Федерации от 18.12.2006 г. № 230-ФЗ. Ч. 4 // Российская газета №289 от 22.12.2006 г.

Приложение

Листинг кода приложения на примере реализации обработчика «сводные данные по исполнителям»

using System;System.Collections.Generic;System.Web;System.Web.UI;System.Web.UI.WebControls;Microsoft.AnalysisServices.AdomdClient;System.Text;System.Web.UI.HtmlControls;System.Data;System.Collections;WebOLAP.Utils.Collection;Microsoft.Office.Interop.Owc11;System.Drawing;System.Security.Cryptography;WebOLAP

{partial class SymmeryByExecutive : System.Web.UI.Page

{

#region Members

/// <summary>

/// Список содержащий значения измерений

/// </summary><DimentionItem> dimentionTable = new List<DimentionItem>();

#endregionvoid Page_Load(object sender, EventArgs e)

{

// загружаем измерения куба(AdomdConnection conn = new AdomdConnection(@"Data Source=SOHATIK;Initial Catalog=FoodMart 2000;ConnectTo=8.0"))

{

// открываем соединение.Open();

// выбираем кубmcube = conn.Cubes["SummeryByExecutive"];

// перебираем все измерения куба(Dimension dim in mcube.Dimensions)

{(!this.IsPostBack)

{(dim.Name != "Measures")

{.ddlAxisX.Items.Add(dim.Name);.ddlAxisY.Items.Add(dim.Name);

}

}

// перебираем значения измерений(Hierarchy h in dim.Hierarchies)

{

// просматриваем уровни иерархии(Level lv in h.Levels)

{(lv.LevelNumber == 0 && dim.Name != "Measures")

{;

}

// заносим в хештайбл, для того чтобы можно было вывести во второй список.Add(new DimentionItem(dim.Name, lv.Name, lv.UniqueName, false));counter = 10;(Member mem in lv.GetMembers())

{-;(counter < 0)

{;

}(dim.Name == "Measures")

{(!this.IsPostBack)

{.ddlMeasures.Items.Add(mem.Name);

}

}.Add(new DimentionItem(dim.Name, mem.Name, mem.UniqueName, true));

}

}

}

}

}

}

// Метод события при выборе измерения по оси Хvoid ddlAxisX_SelectedIndexChanged(object sender, EventArgs e)

{.ddlAxisXHaracteries.Items.Clear();(DimentionItem dim in this.dimentionTable)

{(this.ddlAxisX.Text == dim.DimentionName)

{.ddlAxisXHaracteries.Items.Add(dim.MemberName);

}

}

}

/// Метод события при выборе измерения по оси Yvoid ddlAxisY_SelectedIndexChanged(object sender, EventArgs e)

{.ddlAxisYHaracteries.Items.Clear();(DimentionItem dim in this.dimentionTable)

{(this.ddlAxisY.Text == dim.DimentionName)

{.ddlAxisYHaracteries.Items.Add(dim.MemberName);

}

}

}

/// Событие при нажатии на кнопку "Сформировать"void btnGo_Click(object sender, EventArgs e)

{

#region Результат в виде таблицы

// ПРИМЕР ЗАПРОСА

//select [Год].[Год].Members on 0,

//[Вид вуза].[Название].Members on 1

//from SymmeryByRegionCube2

//where [Measures].[Финансирование]

// Найдем объекты описывающие измеренияdimAxisX = null;dimAxisY = null;dimMeasures = null;(DimentionItem dim in this.dimentionTable)

{(dim.DimentionName == this.ddlAxisX.Text && dim.MemberName == this.ddlAxisXHaracteries.Text)

{= dim;

}if (dim.DimentionName == this.ddlAxisY.Text && dim.MemberName == this.ddlAxisYHaracteries.Text)

{= dim;

}if (dim.DimentionName == "Measures" && dim.MemberName == this.ddlMeasures.Text)

{= dim;

}

}

// Должны быть инициализирвоаны всегда, если нет- то ошибка(dimAxisX == null || dimAxisY == null || dimMeasures == null)

{

//Ошибка

}

// Формируем запрос к данным куба.

// Синтаксис MDXqueryText = string.Empty;

// Опередеяем в выбранных параметрах, имеется ли срез по измерениям.

// Если есть, то строим запрос по варианту с о срезом, иначе строим запрос для всех значений(dimAxisX.IsLastSheet || dimAxisY.IsLastSheet)

{= string.Format("SELECT @{0}# ON COLUMNS ,@{1}# ON ROWS FROM SummeryByExecutive WHERE {2}",.MemberScheme,

!dimAxisX.IsLastSheet ? dimAxisX.MemberScheme + ".Members" : dimAxisX.MemberScheme,.MemberScheme);= queryText.Replace("@","{").Replace("#","}");

}

{= string.Format("SELECT {0}.Members ON 0,{1}.Members ON 1 FROM SummeryByExecutive WHERE {2}",.MemberScheme,.MemberScheme,.MemberScheme);

}resultsInTable = null;(AdomdConnection conn = new AdomdConnection(@"Data Source=SOHATIK;Initial Catalog=FoodMart 2000;ConnectTo=8.0"))

{

// открываем соединение.Open();command = new AdomdCommand();.CommandType = CommandType.Text;.Connection = conn;.CommandText = queryText;= new DataTable();dataAdapter = new AdomdDataAdapter(command);.Fill(resultsInTable);

//преобразование колонок(int i=0; i<resultsInTable.Columns.Count;i++)

{dtColumn = resultsInTable.Columns[i];colName = string.Empty;baseName = "current_";(!BaseDataList.IsBindableType(dtColumn.DataType))

{= dtColumn.ColumnName;.ColumnName = baseName + i.ToString();col = new DataColumn(colName, System.Type.GetType("System.String"), "Convert(" + dtColumn.ColumnName + ", 'System.String')");.Columns.Add(col);

}

}

// если данные идут с нулями, то есть в валюте, то надо убрать последние 4ре нудя(int j = 0; j < resultsInTable.Rows.Count; j++)

{row = resultsInTable.Rows[j];str = null;(int k=0; k<resultsInTable.Columns.Count;k++)

{= row[k].ToString();(string.IsNullOrEmpty(str))

{;

}(str.EndsWith("0000"))

{[k] = str.Substring(0, str.Length - 4);

}

}

}.gvDataView.DataSource = resultsInTable;.gvDataView.DataBind();

#endregion

#region Результат в виде гистограммыbarChartspace = new ChartSpaceClass();barChart = barChartspace.Charts.Add(0);.Type = ChartChartTypeEnum.chChartTypeColumnClustered;.HasLegend = true;.HasTitle = true;.Title.Caption = "Аналитическая гистограмма";.Axes[0].HasMajorGridlines = true;.Axes[0].HasTitle = true;.Axes[0].Title.Caption = this.ddlAxisY.Text;.Axes[1].HasTitle = true;.Axes[1].Title.Caption = this.ddlMeasures.Text;.PlotArea.Interior.Color = "White";.PlotArea.Interior.SetPatterned(ChartPatternTypeEnum.chPattern80Percent, "White", "Black");

barChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionTop;

// формируем значения измерений по оси ХstdCategory = string.Empty;<string, string> stdTypesValues = new Dictionary<string, string>(); ;

// сбор категории (int i = 0; i < resultsInTable.Rows.Count; i++)

{row = resultsInTable.Rows[i];= string.Concat(stdCategory, row[0].ToString(), ",");

}

// сбор типов (int i = 1; i < resultsInTable.Columns.Count; i++)

{col = resultsInTable.Columns[i];(!col.Caption.StartsWith("current"))

{

//сбор значенийstdValues = string.Empty;(int k = 1; k < resultsInTable.Rows.Count; k++)

{row = resultsInTable.Rows[k];= string.Concat(stdValues, string.IsNullOrEmpty(row[i].ToString()) ? "0" : row[i].ToString(), ",");

}(stdValues.Length > 0)

{= stdValues.Substring(0, stdValues.Length - 1); // убираем последную запятую

}.Add(col.Caption, stdValues);

}

}= stdCategory.Substring(0, stdCategory.Length - 1); // убираем последную запятую idx = 0;(KeyValuePair<string,string> item in stdTypesValues)

{.SeriesCollection.Add(idx);.SeriesCollection[idx].SetData(ChartDimensionsEnum.chDimCategories, (int)ChartSpecialDataSourcesEnum.chDataLiteral, stdCategory);.SeriesCollection[idx].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, item.Value);

{

barChart.SeriesCollection[idx].Interior.Color = this.GetRandomColor().ToKnownColor().ToString();

}

{.SeriesCollection[idx].Interior.Color = "red";

}.SeriesCollection[idx].Caption = item.Key;chLblMaths = barChart.SeriesCollection[idx].DataLabelsCollection.Add();

chLblMaths.HasValue = true;++;

}sFileName = DateTime.Now.Ticks.ToString() + ".gif";sPath = "C:\\OLAPProject\\WebOLAP\\WebOLAP\\" + sFileName;sUrl = "http://localhost:81/olap/" + sFileName;.ExportPicture(sPath, "gif", 900, 600);

//ну и нацеливаем картинку на Url.ImageUrl = sUrl;

#endregion

}

}Color GetRandomColor()

{

KnownColor[] colors = (KnownColor[])Enum.GetValues(typeof(KnownColor));

return Color.FromKnownColor(colors[GetRandomNo(colors.Length)]);

}int GetRandomNo(int MaxValue)

{rng = RNGCryptoServiceProvider.Create();[] bytes = new byte[4];.GetBytes(bytes);rndNum = BitConverter.ToInt32(bytes, 0);Math.Abs(rndNum % MaxValue);

}

}

}

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!