Delphi и ADO разширения - всичко за ИТ и програмиране

Написано на 16 септември 2006 г. Публикувано в Delphi

СЪДЪРЖАНИЕ

Използване на ADO MultiDimensional

Подробности за OLAP можете да намерите на уебсайта www.olap.ru, поддържан от Interface, доставчик на много OLAP продукти на българския пазар.

В тази статия можем да си позволим само кратко въведение в OLAP и създаването на хранилища за данни, защото това е необходимо, за да разберем какво представляват ADO MD обектите. Темата за OLAP ще бъде разгледана по-подробно в една от статиите от поредицата "Въведение в СУБД".

OLAP и съхранение на данни: кратко въведение

Помислете от какво обикновено се състои едно многоизмерно хранилище на данни. Нека си представим търговска компания, която съхранява всички подробности за търговските транзакции в база данни, съдържаща, наред с други неща, изглед на фактури с подробна информация за клиентските поръчки. Да приемем, че достъпът до този изглед води до набора от данни, показан в таблица 1. 3.

Дата ProductCategory ProductSubcategory Име на продукта Държава Град SalesPerson Плащане
01.01.99гЗеленчуциЗеленчукови консервиКонсервирани доматиГерманияБерлинНикълъс Уилсън1280 долара
01.01.99гЗеленчуциСвежи зеленчуциСушени гъбиВеликобританияЛондонДаниел Адамс$514
01.02.99гМлечни продуктисиренеСирене чедърГерманияФранкфуртНикълъс Уилсън$723
01.02.99гМлечни продуктисиренеСпред със сирене GorillaАвстрияВиенаНикълъс Уилсън330 долара
01.03.99 гЗеленчуциЗеленчукови консервиКонсервирани доматиВеликобританияЛондонДаниел Адамс$439
. . .. . .. . .. . .. . .. . .. . .. . .

Да кажем, че искаме да знаем общата цена на всички поръчки, направени от клиенти в Германия. Очевидно, за да получите такава обобщена стойност (резюме), трябва да изпълните следната заявка:

В тази заявка можете да замените „Германия“ с „Австрия“, или с „Великобритания“, или с името на друга държава. В резултат на това ще получим едномерен масив от стойности - едно число за всяка държава, както е показано в таблицата. 4:

Германия Австрия Великобритания САЩ.
$2003330 долара$9535321 долара

Сега нека усложним малко задачата. Например, нека попитаме каква е общата цена на поръчките на зеленчуци, направени от клиенти в Германия:

Зеленчуци Млечни напитки…
Германия1280 долара$723$239
Великобритания$514$0$732
Австрия$0330 долара$0

Такава таблица често се нарича кръстосана таблица, кръстосана таблица, а също и обобщена таблица (Cross table, Pivot table). Първото измерение (измерение) в него е измерението Country, второто - ProductCategory.

Нека променим нашата заявка отново. Да предположим, че сега трябва да разберем каква е общата цена на поръчките на зеленчуци, направени от клиенти в Германия и обработени от служител на име НиколасУилсън.

Трябва да се отбележи, че може да има няколко набора от такива общи стойности (по-специално това могат да бъдат суми за плащане, средна цена, брой поръчки и т.н.). Такива обобщени стойности в българската терминология се наричат ​​агрегирани данни, докато в английската най-приложимите термини са суми и мерки.

В тази статия ще използваме Microsoft SQL Server 7.0 OLAP Extensions (или Microsoft SQL Server 2000 Analysis Services) като OLAP сървър, за да илюстрираме използването на ADO MultiDimensional обекти. Понастоящем OLE DB доставчикът за OLAP услуги, който е част от Microsoft SQL Server OLAP Extensions (Microsoft SQL Server 2000 Analysis Services) и Microsoft Office, е единственият OLE DB доставчик, който ви позволява достъп до многоизмерни данни. Може да се използва за достъп до данни, съхранявани в многомерни бази данни на Microsoft SQL Server 7.0/2000 или в локални *.cub файлове, които могат да бъдат създадени с помощта на Microsoft Excel 2000. Ние обаче вярваме, че други доставчици на OLE DB за други OLAP сървъри трябва да бъдат пуснати в близко бъдеще.

За да илюстрираме как работи ADO MD, ние използваме многомерната база данни FoodMart, включена в Microsoft SQL Server 7.0 OLAP Extensions. Въпреки това, ако е необходимо, можете да използвате всеки локален *.cub файл, създаден с Microsoft Excel 2000 - в този случай Microsoft Excel 2000 трябва да бъде инсталиран на компютъра, където ще бъдат създадени примерите.

Нека започнем да изучаваме ADO MD с обектния модел, наличен в приложенията на Delphi.