Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Выполнение лабораторной работы
SELECT * INTO Изделие1 FROM Изделие
SELECT * INTO Поставка1 FROM Поставка
SELECT Номер_заказа, Заказчик, Адрес INTO Заказ1 FROM Заказ
ALTER TABLE Заказ1 ADD Дата_заказа INT
Заполнить столбец позже. Значения атрибута Дата_заказа должны соответствовать значениям таблицы date_day атрибуту id (Описание таблицы date_day смотреть ниже (пункт 3)).
CREATE TABLE date_year(
id int, [year] int,
PRIMARY KEY (id))
CREATE TABLE date_month_name(
id int, month_name char(15),
PRIMARY KEY (id))
CREATE TABLE date_day_name(
id int, day_name char(15),
PRIMARY KEY (id))
CREATE TABLE date_month(
id int, [month] int, month_name_id int, year_id int, PRIMARY KEY (id),
CONSTRAINT A1 FOREIGN KEY (month_name_id)
REFERENCES date_month_name(ID),
CONSTRAINT A2 FOREIGN KEY (year_id)
REFERENCES date_year(ID))
CREATE TABLE date_day(
id int, [day] int, day_name_id int, month_id int, PRIMARY KEY (id),
CONSTRAINT A3 FOREIGN KEY (day_name_id)
REFERENCES date_day_name(ID),
CONSTRAINT A4 FOREIGN KEY (month_id)
REFERENCES date_month(ID))
ALTER TABLE Заказ1 ADD CONSTRAINT A5
FOREIGN KEY(Дата_заказа) REFERENCES date_day(id)
Таким образом, должны получить схему данных, представленную на рисунке 1.
Рисунок 1. Схема БД «снежинка».
Здесь таблица фактов Поставка1,
таблицы измерений Заказ1 и Изделие1,
таблицы иерархий Заказ1 date_day date_day_name
date_day date_month date_year
date_month date_month_name
ПК щелчок правой кнопкой мыши
Запускаем Microsoft Visual Studio 2005, File→ New Project, в списке Project Types выбираем Business Intelligence Projects, в правой части окна Analysis Services Project. Вводим имя проекта (опционально путь к папке, где будет размещаться проект). Нажимаем ОК. Solution Explorer приобретет следующий вид:
Мера это некоторая информация о произошедшем факте, где факт (упрощенно) запись в таблице БД о произошедшем событии. Например, фактом может быть покупка товара в интернет-магазине, где меры характеризуют детали покупки: стоимость товара, имя покупателя, есть ли у него дети и.т.д. Группа мер определяет название таблицы, в которой будут храниться факты. Информация о товарах представляется не только конкретными мерами, а также измерениями другими таблицами, хранящими некоторое множество предопределенных уникальных значений. Например, в интернет-магазине продают 3 типа товаров: баяны, балалайки и бубны. Соответственно, в таблице фактов необходимо указывать, какой именно товар был приобретен. Измерением будет являться таблица, содержащая три записи типов товара и уникальный идентификатор (ID), являющийся ключевым атрибутом. Далее накладываются ограничения целостности на таблицу фактов в виде внешнего ключа для таблицы типов товаров. Это позволяет вносить в таблицу фактов информацию о типе товара, определенную в рамках заданного множества.
ПК на папке Cubes→New Cube… На шаге Select Build Method выбрать Build the cube without using a data source. На шаге Define New Measures можно задать имя новой меры, имя группы, в которую входит данная мера, тип данных и вариант агрегирования значений меры.
На шаге Define New Dimensions можно определить измерения для создаваемого куба. Автоматически предлагается добавить измерение времени, которое генерируется самостоятельно в соответствии с выбранными параметрами (задаются далее). Для нового измерения можно задать имя, параметр Slowly Changing Dimension (влияет на скорость обработки информации в кубе для данного измерения, критично при больших объемах данных, задавать не нужно). Поле Атрибуты создается автоматически (после создания проекта куба можно отредактировать измерения и атрибуты, входящие в их состав, построить иерархию измерений).
Если измерение Time было включено в список, на следующем шаге предоставляется возможность определить временной период данного измерения. Поле Time Periods позволяет задать различные временные категории, которые будут доступны для данного измерения в иерархическом виде.
Шаг по поводу создания дополнительных календарей можно пропустить. На шаге Define Dimension Usage можно задать, к каким группам мер будут относиться созданные измерения. На шаге Completing Wizard необходимо задать имя куба и, при необходимости, отметить пункт Generate Schema Now, что приведет к созданию структуры данных куба в реляционной БД.
После создания макета куба окно проекта будет иметь вид:
На вкладке Cube Structure отображаются созданные меры и измерения, в случае необходимости можно добавить новые, отредактировать существующие или же удалить ненужные. Данные изменения не влияют на структуру БД, которая хранит непосредственно данные для анализа.
После того, как все необходимые изменения внесены, можно сгенерировать структуру данных в реляционной БД, которая будет хранить информацию о фактах, мерах и измерениях. Для этого можно выбрать пункт меню Database → Generate Relational Schema… Будет показан мастер, который предложит создать источник данных, а затем представление источника данных для куба. Источник данных база данных, которая будет использована для хранения необходимой информации.
На шаге Specify Target напротив Data Source необходимо выбрать New… Откроется мастер создания источника данных, где будет предложено создать новое подключение к серверу БД. В поле «Имя сервера» нужно выбрать «ALLA», затем в поле Select or enter a database name выбрать предварительно созданную с помощью SQL Server Management Studio базу данных, в которой будут размещены таблицы куба. Далее выбрать созданное подключение, Next >, на шаге Impersonation Information выбрать Default, далее ввести название созданного источника данных.
После этого необходимо нажать Finish в Schema Generation Wizard. Произойдет внесение изменений в базу данных на сервере, и в окне Data Source View будет отображена созданная структура данных. В простейшем случае топология данной структуры будет иметь тип «звезда» в центре таблица фактов со связями типа M:1 к таблицам измерений.
Также необходимо зайти в настройки создаваемого проекта, в дереве Configuration Properties выбрать Deployment и в правой части окна в группе Target задать в поле Server значение «ALLA» для того, чтобы мастер развертывания куба мог определить, где находится сервер Analysis Services. Дополнительно надо задать имя базы данных в Analysis Services.
База данных в Database Engine и БД Analysis Services разные вещи, поскольку первая хранит непосредственно обрабатываемые данные с помощью куба, а вторая всю служебную информацию о кубе.
Далее можно заполнить таблицы куба различными значениями, соответствующими выбранной структуре, и запустить куб кнопкой . При отсутствии различного рода ошибок произойдет запуск и откроется вкладка Browser, позволяющая работать с данными куба.
В правой части вкладки Browser (рабочая область) располагается поле, позволяющее создавать и анализировать срезы куба. Для формирования среза необходимо перетащить в поле Drop Totals or Detail Fields here поля из группы Measures в левой части Browser, в поля Row Fields и Column Fields измерения. В поле Drop Filter Fields here можно переместить некоторые поля, которые будут тем или иным способом сужать объем предоставляемой информации (например, определенный период времени или же конкретный тип товара). Параметры фильтрации более детально можно определить в окне над рабочей областью, выбрав измерение, элемент иерархии, условие фильтрации и область значений для фильтра.
Размещению в рабочей области подлежат как корневые элементы иерархии, так и любые другие элементы, находящиеся в конкретном дереве атрибутов. Для того чтобы убрать некоторые атрибуты, их можно вытащить за рабочую область.
Для того чтобы загрузить в куб актуальную информацию (например, после запуска куба в таблицы БД были добавлены новые записи), необходимо выбрать пункт меню Cube→Process… или же нажать кнопку на панели инструментов куба.
Для того чтобы внести структурные изменения в куб (например, добавить некоторый атрибут в измерение), необходимо обновить Data Source View, открыв его в редакторе и выбрав пункт меню Data Source View→Refresh… Откроется диалог, в котором будут представлены все имеющиеся на данный момент изменения, которые будут внесены в Data Source View для его синхронизации со структурой БД. После нажатия кнопки ОК изменения будут применены.
После этого необходимо сделать изменения в объектах куба, соответствующих измененным таблицам (например, удалить некоторый атрибут из измерения, который был удален из таблицы, представляющей измерение). Для того чтобы добавить атрибут в измерение после обновления Data Source View, необходимо открыть измерение для редактирования, и в правой части окна нажать ПК на новом столбце схематического изображения таблицы измерения, и выбрать New attribute from column. После любых изменений структуры необходимо перезапустить куб и обновить текущую вкладку.
Перед созданием куба необходимо создать Source View и Data Source View. При создании Data Source View нужно выбрать, какие таблицы рассматриваемой БД будут использоваться для построения куба, и переместить их в Included objects. Далее необходимо запустить Cube Wizard (ПК на папке Cubes→New Cube… ) и выбрать Build the cube using a data source. Если отметить параметр Auto build, то мастер, основываясь на связях между таблицами БД, автоматически предложит возможные измерения и меры. На шаге Identify Fact and Dimension Tables нужно указать, какие из доступных таблиц являются измерениями, а какие таблицами фактов, или же подтвердить автоматическое распределение. На следующем шаге надо выбрать, какие меры будут использоваться в кубе. После этого мастер обработает всю имеющуюся информацию, определит наличие иерархий атрибутов в измерениях. Далее предлагается проверить сгенерированный набор измерений и их структуру и завершить создание. После этого куб будет готов к работе.
Общий синтаксис языка MDX
SELECT <определение результирующего многомерного пространства>
FROM <исходного пространства>
WHERE <ограничение результатов подпространства>
Например.
SELECT {([Заказ1].[Понедельник]), ([Заказ1].[Вторник])} ON COLUMNS,
{([ИЗДЕЛИЕ].[220 V]), ([ИЗДЕЛИЕ].[300 мм])}ON ROWS
FROM [Lab_5]
В SELECT задается содержимое осей результирующей таблицы. Доступные оси для формирования запросов COLUMNS и ROWS (ось COLUMNS должна идти первой, иначе возникнет ошибка). Можно делать запросы по одной оси (COLUMNS).
Для того, чтобы назначить несколько атрибутов на одну ось, значения атрибутов надо разделять запятыми и заключить в скобки. Выражение в скобках называется кортеж. Пример:
([Measures].[Количество], [Zakaz 1].[Date Month])
В один кортеж нельзя включать элементы одной иерархии. Для того, чтобы получить такую возможность, необходимо сформировать два и более подобных кортежей с разными значениями целевых элементов, разделив запятыми и заключив в фигурные скобки. Выражение в фигурных скобках называется множество. Пример:
{([Заказ1].[Понедельник]), ([Заказ1].[Вторник])}
В FROM указывается источник данных имя куба.
В WHERE можно указать некоторый атрибут, который будет ограничивать область получаемого пространства результатов (например, по умолчанию выбираются данные по всем городам, но если указать в выражении WHERE атрибут с непосредственным именем города, будут показаны результаты только по данному городу). Пример:
WHERE [Zakaz 1].[Адрес].&[Kharkov]
Если указать атрибут, содержащий множество элементов (например, Адрес содержит элементы, сооветствующие названиям городов), в результате будет получен результат корневого элемента данного атрибута, имеющего название All (сгенерирован автоматически). Для обращения непосредственно к элементам необходимо использовать встроенный метод children. Пример:
[Zakaz 1].[Date Month].children