Главная » Microsoft SQL Server, Базы данных » Создание базы данных – ЧАСТЬ 4

0

?               Идентификатор/код существует без соответствующего имени. Если идентификатор или код имеет всего несколько значений, назначьте его параметру NameColumn, добавив для этого именованное вычисление в представление источника данных. Если же идентификатор/код имеет множество значений или их непредсказуемый состав, подумайте о создании объединенной в схему “снежинка” новой таблицы измерений, содержащей имя.

?               Неуникальные ключи. Очень важно, чтобы присвоенные значения параметров KeyColumns уникально идентифицировали членов измерения. Например, таблица временного измерения может идентифицировать месяцы по числам от 1 до 12, которые не являются уникальными ключами в разрезе множества лет. В данном случае для обеспечения уникальности можно включить в состав ключа как месяц, так и год. Если используется подобный множественный ключ, то значение параметра NameColumn является обязательным. Скорее всего, в этом случае придется добавить в представление источника данных именованное вычисление для синтеза из используемых в ключе столбцов месяца и года понятного пользователю описания (например, Ноябрь, 2 0 0 8).

В приведенном выше сценарии с неуникальным ключом можно попытаться использовать результаты именованного вычисления в качестве ключевого столбца атрибута, если по нему не потребуется упорядочение. Числовые данные месяца и года требуются для поддержания членов атрибута в календарном, а не в алфавитном порядке. Параметр атрибута OrderBy позволяет сортировать атрибут либо по ключу, либо по имени. В качестве альтернативы параметры сортировки AttributeKey и AttributeName позволяют сортировать членов текущего атрибута на основании ключа или имени другого атрибута, если этот второй атрибут был определен как свойство члена текущего атрибута. Свойства членов мы подробно рассмотрим в следующем разделе.

Puc. 43.6. Окно Dataltem Collection Editor используется для просмотра членов и установки их свойств

Для изменения параметра KeyColumns щелкните на его значении, а затем на эллипсе с многоточием рядом с ним. Откроется окно редактора Dataltem Collection Editor, показанное на рис. 43.6. На левой его панели отображены все члены текущего ключа. Если выделить ка- кой-либо из этих членов, то на правой панели отобразятся его свойства. С помощью кнопок Add и Remove можно изменить количество членов ключа. Назначение столбца члену выполняется путем щелчка на текущем значении параметра Source, а затем на эллипсе. В открывшемся диалоговом окне Object Binding нужно выбрать тип связывания, а также соответствующие таблицу и столбец.

Для того чтобы добавить и изменить параметр NameColumn атрибута, выберите соответствующее значение из раскрывающегося списка. Если выбрать в списке открывшегося диалогового окна Object Binding значение (none), то назначение имени будет очищено.

Взаимосвязи атрибутов

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

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

Как агрегацию, так и обработку запросов можно сделать более эффективной, если взаимосвязи между атрибутами отражены в структуре измерения. Рассмотрим в качестве примера простое измерение времени, в котором существуют атрибуты года, квартала, месяца и дня, ссылающиеся на таблицу фактов (ключевой атрибут). По умолчанию каждый атрибут в измерении непосредственно связан с ключевым атрибутом. Результирующая система взаимосвязей показана на рис. 43.7. Агрегации всех не ключевых уровней суммируют все итоги за день. Противоположностью этому является правильно организованная система взаимосвязей, где агрегации уровня месяца ссылаются на итоги уровня дня, агрегации уровня квартала — на итоги уровня месяца, а агрегации уровня года — на итоги уровня квартала. Чем больше и сложнее измерение, тем большее влияние на производительность оказывает его правильная организация.

Рис. 43.7. Взаимосвязи атрибутов

Атрибуты связываются между собой назначением свойств членов. Щелкните правой кнопкой мыши на панели Attributes в конструкторе измерений, выберите пункт контекстного меню Show Attributes in Tree, а затем раскройте любой атрибут, чтобы увидеть его свойства члена. По умолчанию все свойства члена можно найти под атрибутом, соответствующим первичному ключу таблицы, из которой они были прочитаны.

Свойство члена должно иметь только одно значение для каждого значения родительского атрибута. Таким образом, год может быть свойством члена квартала, но страна не может

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

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

?               Rigid. Значение атрибута и свойство члена имеют статичную взаимосвязь, неизменную во времени. Если это отношение со временем изменится, то процессор выдаст ошибку. Этот тип отношения более эффективен, чем Flexible, поскольку служба анализа может удерживать агрегации при обработке измерения. Таким образом, квартал закрепляется за месяцем, а штат — за городом.

?               Flexible. Этот тип используется для значений атрибута и значений свойств члена, которые изменяются в отношении во времени. В этом случае при обработке измерения агрегации обновляются, чтобы учесть произошедшие изменения. Например, подразделение как свойство члена работника должно быть изменяемым, чтобы допустить возможность перевода сотрудника из одного подразделения в другое.

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

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

Видимость и организация

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

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

?               Для атрибутов, которые должны присутствовать в модели, но используются крайне редко, можно установить для параметра AttributeHierarchyVisible значение False. Эти атрибуты будут недоступны при непосредственном просмотре данных куба пользователем, однако на них можно ссылаться в запросах MDX.

?               Некоторые атрибуты могут быть представлены пользователю только в пользовательской иерархии. Например, при интерпретации списка городов без знания информации о соответствующих странах будет сложно отличить Париж, находящийся в штате Техас. США, от столицы Франции. Для таких случаев обычно создают пользовательскую иерархию и устанавливают для параметров AttributeHierarchyVisivle соответствующих атрибутов значение False.

?               Атрибуты, которые не будут использоваться в запросах, однако должны присутствовать в качестве свойств членов, например для сортировки или вычислений, могут быть

полностью отключены. Установите для параметра AttributeHierarchyEnabled значение False и обратите внимание на то, что значок атрибута теперь потускнел. Также установите для параметра AttributeHierarchyOptimizedState значение NotOptimized, а для параметра AttributeHierarchyOrdered — значение False, чтобы сократить время обработки службой анализа данного измерения.

Когда список видимых атрибутов и пользовательских иерархий скомпонован, объедините измерения в папки, более удобные, чем видимые иерархии. Объединение атрибутов выполняется путем ввода имени папки в параметр AttributeHierarchyDisplayFolder; у пользовательских иерархий есть аналогичный параметр — DisplayFolder. В общем случае все эти параметры можно оставить незаполненными для наиболее часто используемых иерархий в измерении, чтобы эти элементы отображались на корневом уровне.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии