Курсовая Экспертные системы 15
Работа добавлена на сайт bukvasha.net: 2015-10-25Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Основные данные о работе
Версия шаблона | 1.1 |
Филиал | Петрозаводский |
Вид работы | Курсовая работа |
Название дисциплины | Базы данных |
Тема | Технология OLAP |
Фамилия студента | Лешков |
Имя студента | Александр |
Отчество студента | Сергеевич |
№ контракта | 08003080609054 |
Содержание
Введение..................................................................................................................... 3
1 Понятие OLAP....................................................................................................... 5
1.1 Многомерные кубы.............................................................................................. 6
1.2 Некоторые термины и понятия............................................................................ 6
1.3 OLAP на клиенте и на сервере............................................................................. 9
1.4 Технические аспекты многомерного хранения данных.................................... 11
2 Архитектура MICROSOFT ANALYSIS SERVICES............................................. 13
2.1 Службы преобразования данных....................................................................... 13
2.2 Репозитарий аналитических служб.................................................................... 13
2.3 Аналитические службы...................................................................................... 14
3 Создание и заполнение хранилищ данных с помощью data
transformation services............................................................................................... 21
3.1 Заполнение хранилища данных с помощью Data Transformation Services......... 21
3.2 Описание источников данных........................................................................... 21
Заключение............................................................................................................... 23
Глоссарий................................................................................................................. 25
Список использованных источников ..................................................................... 26
Приложения............................................................................................................. 27
Введение
Основной вопрос при обработке информации заключается в том, как обрабатывать все более и более крупные базы данных, содержащие данные с постоянно усложняющейся структурой, сохранив при этом приемлемое время реакции системы на запрос. Архитектура «клиент/сервер» позволяет организациям устанавливать специализированные серверы, оптимизированные для решения задач специфического управления данными. Для таких бизнес-приложений, как анализ рынка и финансовое прогнозирование, требуется использовать запросо-центрированные схемы баз данных, которые, по сути, имеют вид многомерных массивов. Эти приложения характеризуются необходимостью извлекать большое количество записей из очень больших наборов данных и мгновенно вычислять на их основе итоговые значения. Предоставление поддержки для таких приложений является основным назначением всех OLAP-инструментов.
Оперативная аналитическая обработка (OLAP) – это динамический синтез, анализ и консолидация больших объемов многомерных данных.
Термин «OLAP» был предложен Коддом в 1993 году и определяет архитектуру, которая поддерживает сложные аналитические приложения. Большинство OLAP - приложений создается на основе специализированных многомерных СУБД или ММ СУБД (multi-dimensional DBMS) с ограниченным набором данных и настраиваемым пользовательским интерфейсом приложений. OLAP-архитектура предусматривает определенные уровни с четким разделением функций между приложением и СУБД. На основе этого разделения появилось новое поколение OLAP - инструментов, предоставляющих такие возможности, которые позволяют обычным СУБД конкурировать со специализированными технологиями ММ СУБД [2].
Цель данной работы заключается в раскрытии сущности технологии OLAP.
В соответствии с поставленной целью предполагается выполнение следующих задач:
1 дать понятие технологии OLAP;
2 описать OLAP на клиенте и на сервере;
3 описать архитектуру MICROSOFT ANALYSIS SERVICES;
4 создание и заполнение хранилищ данных с помощью DATA TRANSFORMATION SERVICES.
Методами исследования являются изучение различной научной и технической литературы.
Практическая значимость. Предварительное обобщение, использование иерархической структуры размерностей и управление заполнением пространства кубов данных позволяют значительно сократить размер базы данных и исключить потребность многократного вычисления одних и тех же значений. Подобная структура позволяет избежать необходимости выполнения соединения нескольких таблиц, а также обеспечивает быстрый и прямой доступ к массивам данных, что существенно ускоряет обработку многомерных запросов.
Основная часть
1. Понятие OLAP
Системы поддержки принятия решений обычно обладают средствами предоставления пользователю агрегатных данных для различных выборок из исходного набора в удобном для восприятия и анализа виде. Как правило, такие агрегатные функции образуют многомерный (и, следовательно, нереляционный) набор данных (нередко называемый гиперкубом или метакубом), оси которого содержат параметры, а ячейки — зависящие от них агрегатные данные1. Вдоль каждой оси данные могут быть организованы в виде иерархии, представляющей различные уровни их детализации. Благодаря такой модели данных пользователи могут формулировать сложные запросы, генерировать отчеты, получать подмножества данных [1].
Технология комплексного многомерного анализа данных получила название OLAP (On-Line Analytical Processing). OLAP — это ключевой компонент организации хранилищ данных.
Концепция OLAP была описана в 1993 году Эдгаром Коддом, известным исследователем баз данных и автором реляционной модели данных. В 1995 году на основе требований, изложенных Коддом, был сформулирован так называемый тест FASMI (Fast Analysis of Shared Multidimensional Information — быстрый анализ разделяемой многомерной информации), включающий следующие требования к приложениям для многомерного анализа:
- предоставление пользователю результатов анализа за приемлемое время (обычно не более 5 с), пусть даже ценой менее детального анализа;
- возможность осуществления любого логического и статистического анализа, характерного для данного приложения, и его сохранения в доступном для конечного пользователя виде;
- многопользовательский доступ к данным с поддержкой соответствующих механизмов блокировок и средств авторизованного доступа;
- многомерное концептуальное представление данных, включая полную поддержку для иерархий и множественных иерархий (это — ключевое требование OLAP);
- возможность обращаться к любой нужной информации независимо от ее объема и места хранения [5].
OLAP-функциональность может быть реализована различными способами, начиная с простейших средств анализа данных в офисных приложениях и заканчивая распределенными аналитическими системами, основанными на серверных продуктах.
1.1 Многомерные кубы
Многомерные кубы представляют собой набор данных. Ячейки куба, показанного в Приложении, содержат агрегатные данные, соответствующие находящимся на осях куба значениям параметров запроса в предложении WHERE. Если в предложении WHERE содержится четыре или более параметров, результирующий набор значений (также называемый OLAP-кубом) может быть 4-мерным, 5- мерным и т.д.
Очевидно, что данные, содержащиеся в ячейках куба, можно получить и с помощью соответствующего запроса с предложением GROUP BY. Кроме того, некоторые электронные таблицы (в частности, Microsoft Excel 2000) также позволяют построить трехмерный набор данных и просматривать различные сечения куба, параллельные его грани, изображенной на листе рабочей книги (workbook).
1.2 Некоторые термины и понятия
Наряду с суммами в ячейках OLAP-куба могут содержаться результаты выполнения иных агрегатных функций языка SQL, таких как MIN, MAX, AVG, COUNT, а в некоторых случаях — и других (дисперсии, среднеквадратичного отклонения и т.д.). Для описания значений данных в ячейках используется термин summary (в общем случае в одном кубе их может быть несколько), для обозначения исходных данных, на основе которых они вычисляются, — термин measure, а для обозначения параметров запросов — термин dimension (переводимый на русский язык обычно как «измерение», когда речь идет об OLAP-кубах, и как «размерность», когда речь идет о хранилищах данных). Значения, откладываемые на осях, называются членами измерений (members).
Например, суммарная стоимость заказов, сделанных клиентами в разных странах, либо суммарная стоимость заказов, сделанных иногородними клиентами или даже отдельными клиентами. Результирующий набор агрегатных данных во втором и третьем случаях будет более детальным, чем в первом.
Возможность получения агрегатных данных с различной степенью детализации соответствует одному из требований, предъявляемых к хранилищам данных, — требованию доступности различных срезов данных для сравнения и анализа [1].
Поскольку в рассмотренном примере в общем случае в каждой стране может быть несколько городов, а в городе — несколько клиентов, можно говорить об иерархиях значений в измерениях. В этом случае на первом уровне иерархии располагаются страны, на втором — города, а на третьем — клиенты (см. рис. 1.1).
Рисунок 1.1. Иерархия в измерении, связанном с географическим положением клиентов
Иерархии могут быть сбалансированными (balanced), как, например, иерархия, представленная на рисунке 1.1, а также иерархии, основанные на данных типа «дата - время», и несбалансированными (unbalanced). Типичный пример несбалансированной иерархии — иерархия типа «начальник—подчиненный», представлен на рисунке 1.2.
Рисунок 1.2. Несбалансированная иерархия
Существуют также иерархии, занимающие промежуточное положение между сбалансированными и несбалансированными (они обозначаются термином ragged - «неровный»). Обычно они содержат такие члены, логические «родители» которых находятся не на непосредственно вышестоящем уровне (например, в географической иерархии есть уровни Country, City и State, но при этом в наборе данных имеются страны, не имеющие штатов или регионов между уровнями Country и City) (см. рис. 1.3).
Рисунок 1.3. Неровная иерархия
Несбалансированные и «неровные» иерархии поддерживаются далеко не всеми OLAP-средствами. Например, в Microsoft Analysis Services 2000 поддерживаются оба типа иерархии, а в Microsoft OLAP Services 7.0 — только сбалансированные. Различным в разных OLAP-средствах может быть и число уровней иерархии, и максимально допустимое число членов одного уровня, и максимально возможное число самих измерений [1].
1.3 OLAP на клиенте и на сервере
Многомерный анализ данных может быть произведен с помощью различных средств, которые условно можно разделить на клиентские и серверные OLAP-средства.
Клиентские OLAP-средства представляют собой приложения, осуществляющие вычисление агрегатных данных (сумм, средних величин, максимальных или минимальных значений) и их отображение, при этом сами агрегатные данные содержатся в кэше внутри адресного пространства такого OLAP-средства.
Если исходные данные содержатся в настольной СУБД, вычисление агрегатных данных производится самим OLAP-средством. Если же источник исходных данных — серверная СУБД, многие из клиентских OLAP-средств посылают на сервер SQL-запросы, содержащие оператор GROUP BY, и в результате получают агрегатные данные, вычисленные на сервере [7].
Как правило, OLAP-функциональность реализована в средствах статистической обработки данных (из продуктов этого класса на российском рынке широко распространены продукты компаний StatSoft и SPSS) и в некоторых электронных таблицах. В частности, неплохими средствами многомерного анализа обладает Microsoft Excel 2000. С помощью этого продукта можно создать и сохранить в виде файла небольшой локальный многомерный OLAP-куб и отобразить его двух- или трехмерные сечения.
Многие средства разработки содержат библиотеки классов или компонентов, позволяющие создавать приложения, реализующие простейшую OLAP-функциональность (такие, например, как компоненты DecisionCube в Borland Delphi и Borland C++Builder).
Помимо этого многие компании предлагают элементы управления ActiveX и другие библиотеки, реализующие подобную функциональность.
Клиентские OLAP-средства применяются, как правило, при малом числе измерений (обычно рекомендуется не более шести) и небольшом разнообразии значений этих параметров, — ведь полученные агрегатные данные должны умещаться в адресном пространстве подобного средства, а их количество растет экспоненциально при увеличении числа измерений. Поэтому даже самые примитивные клиентские OLAP-средства, как правило, позволяют произвести предварительный подсчет объема требуемой оперативной памяти для создания в ней многомерного куба [1].
Многие клиентские OLAP-средства позволяют сохранить содержимое кэша с агрегатными данными в виде файла, что, в свою очередь, позволяет не производить их повторное вычисление. Нередко такая возможность используется для отчуждения агрегатных данных с целью передачи их другим организациям или для публикации. Типичным примером таких отчуждаемых агрегатных данных является статистика заболеваемости в разных регионах и в различных возрастных группах, которая является открытой информацией, публикуемой министерствами здравоохранения различных стран и Всемирной организацией здравоохранения. При этом собственно исходные данные, представляющие собой сведения о конкретных случаях заболеваний, являются конфиденциальными данными медицинских учреждений, которые ни в коем случае не должны попадать в руки страховых компаний и тем более становиться достоянием гласности.
Идея сохранения кэша с агрегатными данными в файле получила свое дальнейшее развитие в серверных OLAP-средствах, в которых сохранение и изменение агрегатных данных, а также поддержка содержащего их хранилища осуществляются отдельным приложением или процессом, называемым OLAP-сервером. Клиентские приложения могут запрашивать подобное многомерное хранилище и в ответ получать те или иные данные. Некоторые клиентские приложения могут также создавать такие хранилища или обновлять их в соответствии с изменившимися исходными данными.
Преимущества применения серверных OLAP-средств по сравнению с клиентскими OLAP-средствами сходны с преимуществами применения серверных СУБД по сравнению с настольными: в случае применения серверных средств вычисление и хранение агрегатных данных происходят на сервере, а клиентское приложение получает лишь результаты запросов к ним, что позволяет в общем случае снизить сетевой трафик, время выполнения запросов и требования к ресурсам, потребляемым клиентским приложением. Отметим, что средства анализа и обработки данных масштаба предприятия, как правило, базируются именно на серверных OLAP-средствах, например, таких как Oracle Express Server, Microsoft SQL Server 2000 Analysis Services, Hyperion Essbase, продуктах компаний Crystal Decisions, BusinessObjects, Cognos, SAS Institute. Поскольку все ведущие производители серверных СУБД производят (либо лицензировали у других компаний) те или иные серверные OLAP-средства, выбор их достаточно широк и почти во всех случаях можно приобрести OLAP-сервер того же производителя, что и у самого сервера баз данных [1].
Многие клиентские OLAP-средства (в частности, Microsoft Excel 2000, Seagate Analysis и др.) позволяют обращаться к серверным OLAP-хранилищам, выступая в этом случае в роли клиентских приложений, выполняющих подобные запросы. Помимо этого имеется немало продуктов, представляющих собой клиентские приложения к OLAP-средствам различных производителей.
OLAP-серверы могут хранить многомерные данные разными способами.
1.4 Технические аспекты многомерного хранения данных
В многомерных хранилищах данных содержатся агрегатные данные различной степени подробности, например, объемы продаж по дням, месяцам, годам, по категориям товаров и т.п.
Цель хранения агрегатных данных — сократить время выполнения запросов, поскольку в большинстве случаев для анализа и прогнозов интересны не детальные, а суммарные данные.
Поэтому при создании многомерной базы данных всегда вычисляются и сохраняются некоторые агрегатные данные.
Сохранение всех агрегатных данных не всегда оправданно. Так как, при добавлении новых измерений объем данных, составляющих куб, растет экспоненциально (иногда говорят о «взрывном росте» объема данных). Если говорить более точно, степень роста объема агрегатных данных зависит от количества измерений куба и членов измерений на различных уровнях иерархий этих измерений. Для решения проблемы «взрывного роста» применяются разнообразные схемы, позволяющие при вычислении далеко не всех возможных агрегатных данных достичь приемлемой скорости выполнения запросов [1].
Как исходные, так и агрегатные данные могут храниться либо в реляционных, либо в многомерных структурах. Поэтому в настоящее время применяются три способа хранения данных:
– MOLAP (Multidimensional OLAP) –— исходные и агрегатные данные хранятся в многомерной базе данных. Хранение данных в многомерных структурах позволяет манипулировать данными как многомерным массивом, благодаря чему скорость вычисления агрегатных значений одинакова для любого из измерений. Однако в этом случае многомерная база данных оказывается избыточной, так как многомерные данные полностью содержат исходные реляционные данные;
– ROLAP (Relational OLAP) — исходные данные остаются в той же реляционной базе данных, где они изначально и находились. Агрегатные же данные помещают в специально созданные для их хранения служебные таблицы в той же базе данных;
– HOLAP (Hybrid OLAP) — исходные данные остаются в той же реляционной базе данных, где они изначально находились, а агрегатные данные хранятся в многомерной базе данных.
Некоторые OLAP-средства поддерживают хранение данных только в реляционных структурах, некоторые — только в многомерных. Однако большинство современных серверных OLAP-средств поддерживают все три способа хранения данных. Выбор способа хранения зависит от объема и структуры исходных данных, требований к скорости выполнения запросов и частоты обновления OLAP-кубов [10].
Подавляющее большинство современных OLAP-средств не хранит «пустых» значений (примером «пустого» значения может быть отсутствие продаж сезонного товара вне сезона).
2. Архитектура microsoft analysis services
2.1 Службы преобразования данных
Источником данных для кубов OLAP, как правило, является реляционное хранилище данных. Сами по себе аналитические службы не содержат средств для пополнения реляционного хранилища данными из оперативных баз данных, с которыми работают пользователи. Однако такие средства содержат многие современные серверные СУБД.
В частности, в Microsoft SQL Server средства для переноса данных из одной реляционной СУБД в другую с возможным их преобразованием, которые можно применять и для пополнения хранилищ данных, называются службами преобразования данных (Data Transformation Services, DTS). Службы преобразования данных могут быть использованы не только с Microsoft SQL Server, но и с любыми другими источниками данных, доступными через универсальный механизм доступа к данным OLE DB (более подробное описание OLE DB и ADO можно найти в книге «Базы данных для всех», которая будет выпущена издательством «КомпьютерПресс»).
2.2 Репозитарий аналитических служб
При создании описаний OLAP-кубов с помощью библиотек SQL DSO эти описания, или метаданные, сохраняются в репозитарии. Сами же данные сохраняются в каталоге, указанном при установке Analysis Services (впоследствии его местоположение можно изменить).
По умолчанию репозитарий аналитических служб представляет собой базу данных Access msmdrep.mdb, расположенную в каталоге Microsoft Analysis Services\Bin, который при необходимости можно перенести и в базу данных Microsoft SQL Server. Текущая версия аналитических служб не поддерживает сохранение репозитария в базах данных других СУБД, в то время как само исходное реляционное хранилище данных может содержаться в любой СУБД, доступной с помощью универсальных механизмов доступа к данным OLE DB и ODBC.
Создание приложений для чтения и записи в репозитарий с помощью средств, отличных от библиотек SQL DSO, не рекомендуется, так как структура репозитария не документирована и может быть изменена в последующей версии аналитических служб [9].
2.3 Аналитические службы
Конечной целью использования хранилищ данных и OLAP являются анализ данных и представление результатов этого анализа в удобном для восприятия и принятия решений виде.
Прогрессивным представляется подход, основанный на применении серверных OLAP-средств в качестве промежуточного звена между хранилищем данных в виде реляционной СУБД и клиентским приложением. В этом случае OLAP-сервер должен превращать данные из реляционного хранилища в форму, более удобную для создания аналитических отчетов, — в OLAP-кубы.
Основным компонентом аналитических служб является Analysis Server — сервис операционной системы Windows NT/2000. Этот сервер предназначен для создания OLAP-кубов на основе реляционных хранилищ данных, а также для предоставления доступа к ним из клиентских приложений.
Аналитические службы сохраняют агрегатные данные только для простейших агрегатных функций (сумм, числа записей, максимальных и минимальных значений). Однако в случае необходимости можно создавать так называемые вычисляемые члены (calculated members) для получения других типов агрегатных значений (средних, средневзвешенных, смещенных и несмещенных дисперсий и т.д.). При этом, помимо применения встроенных средств создания агрегатных данных, Analysis Services позволяет использовать для вычисления агрегатных данных функции VBA или Excel, а также создавать собственные.
Так, для создания нескольких кубов, имеющих одинаковые измерения, можно сгруппировать их в одну многомерную базу данных, а сами эти измерения поместить в библиотеку (library), сделав их коллективными, то есть общедоступными для всех кубов, содержащихся в базе данных (shared dimensions). Можно также создавать измерения, принадлежащие только одному кубу (private dimensions) [1].
И наконец, аналитические службы Microsoft позволяют создавать так называемые виртуальные кубы (virtual cubes), которые в определенной степени являются аналогами представлений (view) реляционных СУБД. Виртуальные кубы не содержат данных, но позволяют представить в виде единого куба данные из нескольких кубов, имеющих хотя бы одно общее коллективное измерение.
Технологии доступа к аналитическим службам из клиентских приложений.
Пользователей аналитических служб можно условно разделить на две группы: администраторов, создающих или модифицирующих OLAP-кубы, и обычных пользователей- аналитиков, читающих данные из OLAP-кубов с целью создания аналитических отчетов. Эти группы используют разные технологии доступа к OLAP-данным.
SQL DSO.
Decision Support Objects (DSO) — это набор библиотек, содержащих COM-объекты, позволяющие создавать и модифицировать многомерные базы данных и содержащиеся в них объекты (кубы, коллективные измерения и т.д.). Отметим, что Analysis Manager — приложение, использующее SQL DSO, — входит в состав аналитических служб.
Эти библиотеки можно использовать для разработки собственных приложений, в которых осуществляется создание или модификация многомерных баз данных, в том числе и для реализации действий, не предусмотренных в клиентских утилитах, входящих в состав аналитических служб (см. рис. 3.1).
Рисунок 3.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 (см. рис. 3.2).
Рисунок 3.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 (см. рис. 3.3).
Рисунок 3.3. Применение Excel в качестве OLAP-клиента
Кроме того, в состав Microsoft Office Web Components входит элемент управления ActiveX PivotTable List, позволяющий реализовать сходную функциональность как в обычном Windows-приложении, так и на HTML-странице, предназначенной для применения внутри корпоративной сети (см. рис. 4).
Рисунок 3.4. Применение элемента управления PivotTable List в качестве OLAP-клиента
3. Создание и заполнение хранилищ данных с помощью data transformation services
Типичная структура хранилища данных существенно отличается от структуры традиционной реляционной СУБД. Как правило, эта структура денормализована с целью повышения скорости выполнения запросов, поэтому она может допускать избыточность данных. Типичное хранилище данных содержит таблицу фактов со сведениями об объектах или событиях, совокупность которых будет в дальнейшем анализироваться, и несколько таблиц измерений, содержащих неизменяемые либо редко изменяемые данные
3.1 Заполнение хранилища данных с помощью Data Transformation Services
Data Transformation Services (DTS) — это набор служб SQL Server, предназначенных для организации импорта, экспорта, преобразования данных и переноса их между любыми источниками, доступными через интерфейсы OLE DB. С их помощью можно копировать структуры данных и сами данные из одной базы данных в другую, создавать средства для переноса данных, встроенные в приложения, а также пополнять хранилища данных из разнообразных источников (которые в общем случае вовсе не обязательно должны быть базами данных SQL Server).
Для заполнения хранилища данных обычно требуется создать и выполнить так называемый пакет DTS (DTS package), содержащий описание последовательности всех действий, которые следует выполнить при переносе данных (включая преобразование типов данных, выполнение SQL-запросов и т.д.). Такой пакет можно выполнить с помощью SQL Server Enterprise Manager или утилиты dtsrun, сохранить его в службах метаданных (Meta Data Services; в прежних версиях SQL Server это хранилище называлось репозитарием) либо в виде структурированного файлового хранилища. Также возможно программное выполнение DTS - пакетов с помощью свойств и методов соответствующих объектов SQL DMO — для этого можно автоматически сгенерировать код на языке Visual Basic. В SQL Server 2000 также поддерживается возможность сохранения DTS-пакетов в формате XML.
3.2 Описание источников данных
Создать пакет DTS можно с помощью соответствующего редактора — DTS package editor. Для его запуска следует с помощью SQL Server Enterprise Manager соединиться с сервером, содержащим хранилище данных, найти в разделе Data Transformation Services элемент Meta Data Service Packages и выбрать опцию New Package из его контекстного меню.
Для описания базы данных, в которой находится хранилище необходимо перенести на рабочее пространство редактора пакетов DTS пиктограмму Microsoft OLE DB Provider for SQL Server с палитры Data tool в левой части окна редактора.
После этого появится диалоговая панель Connection Properties для описания источников данных OLE DB, в которой нужно выбрать базу данных Northwind_Mart, указать параметры доступа к ней (например, Use Windows NT authentication). Этому источнику данных присваивается имя NW_OLAP.
Заключение
Серверы многомерных баз данных на основе OLAP могут выполнять перечисленные ниже основные аналитические операции.
• Консолидация выполняет такие обобщающие операции, как простое суммирование значений («свертка») или расчет с использованием сложных выражений, включающих другие связанные данные. Например, показатели для отделений компании могут быть просто просуммированы с целью получения показателей для каждого города, а показатели для городов могут быть «свернуты» до показателей по отдельным странам.
• Нисходящий анализ («drill-down»). Операция, обратная консолидации, которая включает отображение подробных сведений для рассматриваемых консолидированных данных.
• Разбиение с поворотом (slicing and dicing). Эта операция (которая также называется созданием сводной таблицы) позволяет получить представление данных с разных точек зрения. Например, один срез данных о доходах может отображать все сведения о доходах от продаж объектов недвижимости указанного типа по каждому городу. Другой срез может представлять все данные о доходах отделений компании в каждом из городов. Разбиение с поворотом часто выполняется вдоль оси времени – с целью анализа тенденций и поиска закономерностей.
OLAP-серверы многомерных баз данных обладают способностью хранить многомерные данные в сжатом виде. Это достигается за счет динамического выбора способа физического хранения данных и использования технологий сжатия, которые позволяют максимально эффективно использовать имеющееся пространство. Плотно упакованные данные (т.е. данные, в которых пустые ячейки занимают меньшую часть куба) могут храниться отдельно от разреженных данных (т.е. данные, в которых пустые ячейки занимают большую часть куба). Например, некоторые отделения компании могут заниматься продажей только определенных типов объектов недвижимости, поэтому та часть ячеек, которая связана с другими типами объектов недвижимости, окажется пустой, а сам куб данных – разреженным. Другой тип разрежения связан с наличием дубликатов данных. Например, в крупных городах с большим количеством отделений компании ячейки будут содержать множество повторяющихся названий этих городов. Способность многомерной базы данных СУБД опускать пустые или повторяющиеся ячейки может существенно сократить размер куба и объем обрабатываемых данных.
Оптимизируя использование пространства, OLAP-серверы до минимума сокращают требования, предъявляемые к устройствам физического хранения данных, что, в свою очередь, позволяет эффективно анализировать исключительно большой объем данных. Это также позволяет загружать больше данных непосредственно в оперативную память компьютера, что приводит к существенному повышению производительности за счет сокращения количества выполняемых операций ввода/вывода.
В конечном итоге предварительное обобщение, использование иерархической структуры размерностей и управление заполнением пространства кубов данных позволяют значительно сократить размер базы данных и исключить потребность многократного вычисления одних и тех же значений. Подобная структура позволяет избежать необходимости выполнения соединения нескольких таблиц, а также обеспечивает быстрый и прямой доступ к массивам данных, что существенно ускоряет обработку многомерных запросов.
Глоссарий
№ п/п | Понятия | Содержание |
1 | Система управления базами данных (СУБД) | специальный комплекс программ, осуществляющий централизованное управление базой данных |
2 | Базы данных (БД) | поименованная, целостная, единая система данных, организованная по определенным правилам, которые предусматривают общие принципы описания, хранения и обработки данных |
3 | Таблица (Table) | основная единица хранения данных в базе |
4 | Запрос | специальным образом описанное требование, определяющее состав производимых над базой данных операций по выборке или модификации хранимых данных |
5 | OLAP | это динамический синтез, анализ и консолидация больших объемов многомерных данных |
6 | Информационная система (ИС) | это автоматизированная система, для хранения большого объема информации, быстрого поиска требуемой информации и вывода ее в удобном для человека виде. |
7 | CASE - технология | совокупность средств системного анализа, проектирования, разработки и сопровождения сложных программных систем, поддерживаемых комплексом взаимоувязанных инструментальных средств автоматизации всех этапов разработки программ |
8 | Информационная технология (ИТ) | совокупность средств и методов сбора, обработки и передачи данных (первичной информации) для получения информации нового качества о состоянии объекта, процесса или явления |
9 | Информация | любые сведения, являющиеся объектом хранения, передачи и преобразования |
10 | Процесс | некоторая последовательность действий для решения задачи, определяемая программой |
Список использованных источников
1 | Алексей Федоров, Наталия Елманова. Введение в OLAP, 2002. |
2 | Дейт К. Дж. Введение в системы баз данных.: Пер. с анг. 6-е изд. К.: Диалектика, 1998. |
3 | Глушаков С. В., Ломотько Д. В. Базы данных // Харьков: Фолио; М.: ООО «Издательство АСТ», 2002. |
4 | Замулин А.В. Системы программирования баз данных и знаний. Новосибирск.: Наука. Сиб. отд-ние, 1990. |
5 | Мартин Дж. Организация баз данных в вычислительных системах. Пер. с англ. М.: Мир, 1980. . |
6 | Конноли Т., Бегг К., Страчан А. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 2-е изд. – С-Пб.: Вильямс, 2000. – 1120 с. |
7 | Корнеев В.В., Гареев А.Ф., Васютин С.В., Райх В.В. Базы данных. Интеллектуальная обработка информации. 2-е изд. – М.: Изд. Молгачева С.В., 2001. – 494 с. |
8 | Романов Б.А., Кушниренко А. С. dBase IV. Назначение, функции, применение. М.: Радио и связь, 1991. |
9 | Когаловский М.Р. Энциклопедия технологий баз данных. – М.: Финансы и статистика, 2002. |
10 | Леонтьев В.П. ПК: универсальный справочник пользователя - М.: 2003. – 251 с. |
Приложения
А | |