Использование SQL Server 2000

С возрастанием компьютеризации коммерции и бизнеса задачи анализа и обработки данных становятся все более значительными. Следует разделить операции анализа информации и обработки информации. Анализ информации– это операции формирования разнооб­разных отчетов о накопленных данных. Обработка информации– это операции хранения этих данных. Каждая из операций должна выполняться как можно более эффективно. Хотя конкретные задачи, решаемые с помощью SQL Server 2000, могут быть весьма разнообразны, тем не менее с учетом разделения операций обработки и анализа среди всего разнообразия этих задач выделяются два основных направления:

- системы оперативной аналитической обработки (OLAP, Online Analytical Processing);

- системы оперативной обработки транзакций (OLTP, Online Transaction Proc­essing).

Сервер, а точнее, конкретная база данных или даже таблица, может использоваться только в одном из этих режимов. В SQL Server 2000 нет встроенных средств переклю­чения сервера в тот или иной конкретный режим работы. Для работы в режиме OLAP или OLTP администратор баз данных должен “вручную” соответствующим образом перестроить заполнение страниц данных и индексных страниц, а также изменить некоторые другие аспекты работы сервера.

Системы оперативной аналитической обработки (OLAP), также известныекак системы поддержки принятия решения (DSS, Decision Support System), ориентированы на предоставление пользователям мощных механизмов для быстрого и многосто­роннего анализа данных. Резкий рост спроса на системы аналитической обра­ботки вызван расширением применения компьютерных систем для ведения бизнеса. В современных условиях бизнесмену или главе корпорации нужно бы­стро получить информацию о наиболее перспективных направлениях торговли или производства, которая сможет дать максимальную отдачу на вложенные средства. Чем более оперативно получается информация, тем эффективнее управление организацией. Спрос на те или иные товары может значительно меняться с течением времени, особенно при смене сезонов. Резкое увеличение спроса на другие товары может быть вызвано временными явлениями. Если вовремя не получить информацию об изменении спроса, то можно лишиться по­тенциальной прибыли. Более того, если будет принято неправильное решение, то можно понести и убытки.

В современной организации информация о продажах накапливается в центральной базе данных. Обычно в ней хранится информация об операциях закупок и продаж товара. Довольно легко получить данные о наличии того или иного то­вара на складе. Гораздо труднее отследить информацию о спросе на тот или иной товар, а еще сложнее оценить отдачу от вложения денег в той или иной товар. Можно продать тысячу зубных щеток, но получить от этого меньше при­были, чем от продажи одного телевизора. Если компания не может купить все товары сразу и продавать их все, а должна выбрать лишь некоторые из них, то нужно решить, приобретение и последующая продажа каких товаров может принести наибольшую прибыль. Конечно, если компания небольшая, а ассор­тимент товаров насчитывает всего несколько десятков, то такой анализ можно выполнить и вручную. Однако если количество торговых точек составляет не­сколько десятков, а ассортимент товаров насчитывает тысячи наименований, то ручной анализ такого объема информации займет много времени. За то время, пока будет производиться вручную анализ данных, они успеют устареть и могут уже не отра­жать реальной ситуации на рынке. Рассмотренная ситуация является лишь од­ной из возможных. Однако на ее примере можно понять, как важен оперативный анализ информации.

Для решения описанных и многих других проблем предназначены системы оперативной аналитической обработки. Перед системой стоит задача сгруппировать данные, выполнить их агрегирование, часто – многоуровневое. При этом может выполняться анализ миллионов строк, а в ответ выдаваться небольшой отчет, содержащий сводные показатели. Особенности систем оперативной аналитической обработки (OLAP) были рассмотрены в юните 2.

На рынке существуют различные программные реализации систем OLAP, работающие с различными системами управления базами данных “Microsoft” предлагает пользователям полноценную реализацию OLAP – Microsoft Decision Support System (MS DSS). Архитектура DSS представлена двумя компонентами:

1. Серверная часть, осуществляющая “перемалывание” больших объемов данных и выполняющая всю работу по анализу. Представлена компонентом OLAP Services, реализованного в виде самостоятельной службы операционной системы. Эта служба поставляется в составе SQL Server 2000 и устанавливается отдельно. OLAP Service представляет своего рода надстройку над SQL Server 2000, позволяющую также работать и с информацией, расположенной на других источниках данных.

2. Клиентская часть, выполняющая окончательный анализ данных, предоставляющая пользователям также средства просмотра результатов анализа в различной форме. Эта часть реализована в виде инструмента PivotTable Serv­ice, к достоинствам которого можно отнести невысокий объем сете­вого трафика. Кроме того, используемые алгоритмы кэширования позволяют работать с данными после отключения от сервера.

Применение DSS открывает широкие возможности для решения бизнес-задач различного рода. Традиционно системы оперативной аналитической обработки стоили немалых денег и поэтому были не доступны для массового применения. Предлагаемая “Microsoft” система имеет невысокую стоимость и доступна даже мелким фирмам. Высокая производительность, наличие мощной системы безопасности, возможность доступа к распределенным гетерогенным источникам информации делают предлагаемое “Microsoft” решение весьма при­влекательным для многих компаний.

Системы оперативной обработки транзакций (OLTP, Online Transaction Processing)в отличие от систем OLAP характеризуются большим количест­вом изменений, одновременным обращением множества пользователей к одним и тем же данным для выполнения разнообразных операций – чтение, запись, удаление или модификация данных. Для нормальной работы множества пользо­вателей система управления базами данных должна использовать транзакции и блокировки.

Применение транзакций обеспечивает выполнение набора команд в виде единого блока, который либо будет выполнен весь полностью, либо не будет вы­полнен вовсе. Типичным примером работы с транзакциями является перевод денег с одного банковского счета на другой. Такой процесс подразумевает две операции – снятие денег с одного счета и запись их на другой. Если после сня­тия денег в системе произойдет сбой, то вторая операция выполнена не будет и деньги на счет не поступят. Вряд ли кого-то устроит, что его деньги бесследно пропадут вследствие сбоя программы или компьютера. Если же перевод осуще­ствляется с применением транзакций, то можно быть уверенным – либо деньги будут переведены, либо нет. Никаких промежуточных вариантов быть не может.

Блокировки позволяют избежать конфликтов одновременного доступа к данным нескольких пользователей. Необходимо обеспечить изолированность измене­ний, выполняемых одной транзакцией, от других транзакций. Продолжим пре­дыдущий пример. Предположим, что клиент пришел в банк с просьбой перевес­ти 100000 дол. США с его счета в другой банк. Служащий банка начал перевод денег, но из-за медленной связи с банком-получателем выполнение транзакции затянулось. В это время с этого же счета другой человек, например, жена клиента, де­лает платеж по электронной карте в магазине, покупая машину за90000 дол., т.е. две транзакции пытаются обратиться к одним и тем же данным. Если не пресекать таких действий, то возможно, что на счете клиента в другом банке будет лежать 100000 дол., а жена купит новую машину. С точки зрения кли­ента, такая ситуация очень даже неплоха, но вряд ли найдется банкир, который захочет работать с такой системой. Использование блокировок позволяет избежать описанных ситуаций, а также многих других конфликтов одновременного доступа к данным.

Требование поддержки к эффективной обработке транзакций и блокировок является одним из важнейших требований к системам оперативной обработки транзакций. Кроме того, наличие большого количества операций изменения и вставки данных приводит к частому изменению количества строк на отдельной странице файлов базы данных. Чтобы обеспечить высокую скорость вставки новых данных, а также изменения данных, используемых в кластерном индексе, поддерживается низкая степень заполнения страниц. Поэтому системы OLTP более требовательны к объему дисковой памяти, чем системы OLAP.

УСТАНОВКА SQL SERVER 2000

Наши рекомендации