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

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

СОДЕРЖАНИЕ

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Приложение

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Низкий

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

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

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

Роль компьютера

Извлечение данных

Извлечение данных, визуализация данных

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

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

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

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

Компьютер

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

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

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

Методы Data Mining

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Схематичное описание разделения аналитических систем по вышепредставленным группам отображено на рисунке 1.1.1.

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

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

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

Известен тест, созданный в 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.

2. Analysis (Анализ).

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

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

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

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

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

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

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

5. 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-данным. Ниже мы выясним, какие технологии предназначены для этих двух категорий пользователей.

SQL DSO

Decision Support 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.

PivotTable 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.

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

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

Analysis Manager

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

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

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

Analysis 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-клиента

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

Cуществует два способа получения данных из 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-данными через обычные интерфейсы доступа к данным и наоборот.

ADO. 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 можно считать его двоюродными братьями.

DataAdapter -- это своеобразный мост между БД и отсоединенными объектами модели 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 позволяет просматривать оригинальные значения полей.

ADO 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.

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

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

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

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

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

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

2. Наборы строк схемы

Полным, но и более сложным вариантом извлечения метаданных является использование наборов строк схемы. Набор строк схемы является набором строк OLE DB, который инкапсулирует в себя описание всех объектов определенного типа в базе данных. Сведения схемы в источнике аналитических данных включают базы данных или каталоги, доступные из этого источника данных, кубы и модели интеллектуального анализа в базе данных, роли, существующие для кубов в источнике данных и так далее. Эти метаданные можно получить при помощи метода GetSchemaDataSet, передав ему либо идентификатор GUID, либо имя XML для аналитики.

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

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

Установив соединение и создав запрос, можно начать извлечение данных. В ADOMD. NET извлекать данные можно при помощи трех разных объектов (CellSet, AdomdDataReader и System. Xml. XmlReader) путем вызова одного из методов Execute объекта AdomdCommand.

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

Компонент ADOMD. NET также можно использовать, чтобы фактически изменять структуру хранилища аналитических данных. И хотя обычно это делается с помощью модели объектов AMO, компонент ADOMD. NET можно использовать для отправки команд на языке сценариев служб Analysis Services (язык ASSL), чтобы создавать, изменять или удалять объекты на сервере.

Установив соединение с источником аналитических данных, с помощью объекта AdomdCommand можно выполнять команды в этом источнике данных, и возвращать из него результаты. Эти команды могут получать данные при помощи многомерных выражений, расширений интеллектуального анализа данных или даже ограниченного синтаксиса SQL.

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

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

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

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

Получив команду, сервер начинает возвращать клиенту метаданные или данные. Просмотреть эти сведения можно при помощи объекта CellSet, объекта AdomdDataReader или объекта System. XmlReader.

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

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

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

Для достижения поставленной цели необходимо решить следующие задачи:

· предварительная оптимизация множества данных, которая заключается в разработке многомерных моделей данных для построения OLAP-кубов за счет использования утилиты, входящей в состав MS SQL Server 2000 под названием Analysis Manager;

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

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

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

Программное обеспечение реализуется на языке C# на платформе. NET c использованием технологий ASP. NET и ADOMD. NET в среде MS Visual Studio 2008. При разработке программного обеспечения допускается привлечение инструментальных средств сторонних разработчиков при условии их свободного распространения и отсутствия проблем с лицензированием.

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

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

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

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

1. «Научное исследование» — перечень всех международных проектов, выполняемых под эгидой Министерства образования и науки Российской Федерации или самостоятельно, по прямым связям вузов и научных организаций с зарубежными партнерами.

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

3. «Заказчик» — системный справочник, содержащий информацию обо всех организациях, (со)финансирующих международные научные исследования. Для описания международного сотрудничества используют следующие информационные объекты:

· «Зарубежная статистика сотрудников вуза»

· «Зарубежная статистика вузовского обучения»

· «Зарубежная статистика послевузовского обучения»

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

· «Заказчики научного исследования»

· «Участники научного исследования»

· «Двухсторонние договора»

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

1. «Классификатор заказчиков» — перечень возможных видов финансирующих организаций;

2. «Специализация заказчиков» — перечень возможных профилей (статусов) финансирующих организаций;

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

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

5. «Классификатор форм научных исследований» — перечень возможных форм организации (видов) научных исследований;

6. «Классификатор типов научных исследований» — перечень возможных типов научных исследований.

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

1. «Субъекты РФ» — справочная информация по федеральным округам и субъектам федерации;

2. «Страны» — справочная информация по странам, их политическому устройству и уровню экономического развития, регионам и субрегионам мира;

3. «Международные организации» — справочная информация по военным, политическим, экономическим и т. д. организациям, в которых могут участвовать страны мира.

Схема данных представлена на рисунке 3.1. 1, ключевые поля обозначены значком ключа.

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

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

3.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

Числовой

-

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

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

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

Числовой

-

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

ПоказатьСвернуть
Заполнить форму текущей работой