Delphi и ADO разширения - всичко за ИТ и програмиране
Написано на 16 септември 2006 г. Публикувано в Delphi
СЪДЪРЖАНИЕ
Използване на ADO MultiDimensional
Подробности за OLAP можете да намерите на уебсайта www.olap.ru, поддържан от Interface, доставчик на много OLAP продукти на българския пазар.
В тази статия можем да си позволим само кратко въведение в OLAP и създаването на хранилища за данни, защото това е необходимо, за да разберем какво представляват ADO MD обектите. Темата за OLAP ще бъде разгледана по-подробно в една от статиите от поредицата "Въведение в СУБД".
OLAP и съхранение на данни: кратко въведение
Помислете от какво обикновено се състои едно многоизмерно хранилище на данни. Нека си представим търговска компания, която съхранява всички подробности за търговските транзакции в база данни, съдържаща, наред с други неща, изглед на фактури с подробна информация за клиентските поръчки. Да приемем, че достъпът до този изглед води до набора от данни, показан в таблица 1. 3.
01.01.99г | Зеленчуци | Зеленчукови консерви | Консервирани домати | Германия | Берлин | Никълъс Уилсън | 1280 долара |
01.01.99г | Зеленчуци | Свежи зеленчуци | Сушени гъби | Великобритания | Лондон | Даниел Адамс | $514 |
01.02.99г | Млечни продукти | сирене | Сирене чедър | Германия | Франкфурт | Никълъс Уилсън | $723 |
01.02.99г | Млечни продукти | сирене | Спред със сирене Gorilla | Австрия | Виена | Никълъс Уилсън | 330 долара |
01.03.99 г | Зеленчуци | Зеленчукови консерви | Консервирани домати | Великобритания | Лондон | Даниел Адамс | $439 |
. . . | . . . | . . . | . . . | . . . | . . . | . . . | . . . |
Да кажем, че искаме да знаем общата цена на всички поръчки, направени от клиенти в Германия. Очевидно, за да получите такава обобщена стойност (резюме), трябва да изпълните следната заявка:
В тази заявка можете да замените „Германия“ с „Австрия“, или с „Великобритания“, или с името на друга държава. В резултат на това ще получим едномерен масив от стойности - едно число за всяка държава, както е показано в таблицата. 4:
$2003 | 330 долара | $953 | 5321 долара |
Сега нека усложним малко задачата. Например, нека попитаме каква е общата цена на поръчките на зеленчуци, направени от клиенти в Германия:
Германия | 1280 долара | $723 | $239 | … |
Великобритания | $514 | $0 | $732 | … |
Австрия | $0 | 330 долара | $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.