Использование SQL Server 2000
С возрастанием компьютеризации коммерции и бизнеса задачи анализа и обработки данных становятся все более значительными. Следует разделить операции анализа информации и обработки информации. Анализ информации– это операции формирования разнообразных отчетов о накопленных данных. Обработка информации– это операции хранения этих данных. Каждая из операций должна выполняться как можно более эффективно. Хотя конкретные задачи, решаемые с помощью SQL Server 2000, могут быть весьма разнообразны, тем не менее с учетом разделения операций обработки и анализа среди всего разнообразия этих задач выделяются два основных направления:
- системы оперативной аналитической обработки (OLAP, Online Analytical Processing);
- системы оперативной обработки транзакций (OLTP, Online Transaction Processing).
Сервер, а точнее, конкретная база данных или даже таблица, может использоваться только в одном из этих режимов. В 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 Service, к достоинствам которого можно отнести невысокий объем сетевого трафика. Кроме того, используемые алгоритмы кэширования позволяют работать с данными после отключения от сервера.
Применение DSS открывает широкие возможности для решения бизнес-задач различного рода. Традиционно системы оперативной аналитической обработки стоили немалых денег и поэтому были не доступны для массового применения. Предлагаемая “Microsoft” система имеет невысокую стоимость и доступна даже мелким фирмам. Высокая производительность, наличие мощной системы безопасности, возможность доступа к распределенным гетерогенным источникам информации делают предлагаемое “Microsoft” решение весьма привлекательным для многих компаний.
Системы оперативной обработки транзакций (OLTP, Online Transaction Processing)в отличие от систем OLAP характеризуются большим количеством изменений, одновременным обращением множества пользователей к одним и тем же данным для выполнения разнообразных операций – чтение, запись, удаление или модификация данных. Для нормальной работы множества пользователей система управления базами данных должна использовать транзакции и блокировки.
Применение транзакций обеспечивает выполнение набора команд в виде единого блока, который либо будет выполнен весь полностью, либо не будет выполнен вовсе. Типичным примером работы с транзакциями является перевод денег с одного банковского счета на другой. Такой процесс подразумевает две операции – снятие денег с одного счета и запись их на другой. Если после снятия денег в системе произойдет сбой, то вторая операция выполнена не будет и деньги на счет не поступят. Вряд ли кого-то устроит, что его деньги бесследно пропадут вследствие сбоя программы или компьютера. Если же перевод осуществляется с применением транзакций, то можно быть уверенным – либо деньги будут переведены, либо нет. Никаких промежуточных вариантов быть не может.
Блокировки позволяют избежать конфликтов одновременного доступа к данным нескольких пользователей. Необходимо обеспечить изолированность изменений, выполняемых одной транзакцией, от других транзакций. Продолжим предыдущий пример. Предположим, что клиент пришел в банк с просьбой перевести 100000 дол. США с его счета в другой банк. Служащий банка начал перевод денег, но из-за медленной связи с банком-получателем выполнение транзакции затянулось. В это время с этого же счета другой человек, например, жена клиента, делает платеж по электронной карте в магазине, покупая машину за90000 дол., т.е. две транзакции пытаются обратиться к одним и тем же данным. Если не пресекать таких действий, то возможно, что на счете клиента в другом банке будет лежать 100000 дол., а жена купит новую машину. С точки зрения клиента, такая ситуация очень даже неплоха, но вряд ли найдется банкир, который захочет работать с такой системой. Использование блокировок позволяет избежать описанных ситуаций, а также многих других конфликтов одновременного доступа к данным.
Требование поддержки к эффективной обработке транзакций и блокировок является одним из важнейших требований к системам оперативной обработки транзакций. Кроме того, наличие большого количества операций изменения и вставки данных приводит к частому изменению количества строк на отдельной странице файлов базы данных. Чтобы обеспечить высокую скорость вставки новых данных, а также изменения данных, используемых в кластерном индексе, поддерживается низкая степень заполнения страниц. Поэтому системы OLTP более требовательны к объему дисковой памяти, чем системы OLAP.
УСТАНОВКА SQL SERVER 2000