Страница 6 из 9 Объекты ADO MD Объектная модель ADO MD, представленная на рис. 3, состоит из двух, так сказать, ветвей объектов. Первая из них используется для доступа к метаданным многомерной базы данных, вторая применяется тогда, когда нам нужно извлечь данные с помощью запросов к OLAP-кубам. Объекты для доступа к метаданным Первый из объектов ADO MD для доступа к метаданным — объект Catalog — представляет собой многомерное хранилище данных. Такое хранилище может содержать ноль, один или много кубов, а следовательно, одним из свойств объекта Catalog является коллекция CubeDefs. Каждый из элементов этой коллекции — CubeDef, представляющий конкретный куб в хранилище. Имя куба является значением свойства Name соответствующего объекта CubeDef. В базе данных FoodMart имеется три таких куба — Sales, Warehouse и Warehouse and Sales . Каждый из многомерных кубов содержит несколько размерностей. Соответственно каждый из объектов CubeDef может содержать коллекцию Dimensions объектов Dimension. Каждый объект Dimension представляет конкретную размерность куба, а имя размерности содержится в свойстве Name соответствующего объекта Dimension. Например, куб Sales в базе данных FoodMart содержит несколько размерностей — Store, Time, Product, Promotion Media, Promotions, Customers и др. Как уже было сказано, данные, из которых состоят размерности, могут быть иерархическими. Соответственно объект Dimension содержит коллекцию Hierarchies, которая теоретически может содержать один или более объектов Hierarchy. Однако на практике для каждой размерности существует только одна иерархия (по крайней мере для Microsoft SQL Server OLAP Extensions ), поэтому данная коллекция содержит один-единственный элемент. Иерархия размерности может содержать один или несколько уровней, поэтому объект Hierarchy содержит коллекцию Levels объектов Level. Например, иерархия размерности Store куба Sales содержит четыре уровня — Store Country, Store State, Store City и Store Name . Каждый из уровней иерархии содержит один или более членов, которые представляют собой либо значения соответствующих полей в исходной базе данных, либо значения, полученные посредством группировки. Следовательно, объект Level содержит коллекцию Members объектов Member. Например, уровень Store Country единственной иерархии размерности Store содержит три члена — Canada, Mexico и USA, уровень Store State этой же самой иерархии содержит десять членов — CA, OR, WA и несколько штатов Канады и Мексики, а уровень Store City содержит еще больше членов, соответствующих городам в этих штатах. Отметим, что поскольку содержимое коллекции Members зависит от исходных данных, на основе которых построен куб, то метаданными это можно назвать весьма условно. Значения членов уровня иерархии являются метаданными в том случае, когда речь идет о раз и навсегда созданном кубе, который далее не пересчитывается на основе изменившихся исходных данных. В действительности ADO MD соответствует именно такой точке зрения — эта технология предназначена для чтения многомерных данных, но не для их записи. С точки зрения SQL DSO или иных технологий создания многомерных хранилищ — значения членов уровня иерархии являются уже не метаданными, а данными. Впрочем, обсуждение создания многомерных хранилищ — предмет отдельной статьи. Каждый из этих объектов обладает внушительным списком свойств и методов. Их подробное описание можно найти в MSDN Library (https://www.msdn.microsoft.com/data ). |