Смекни!
smekni.com

Базы данных 10 (стр. 5 из 6)

Большинство современных СУБД устанавливает блокировки автоматически, т.е. неявным образом: например, запрос на "извлечение кортежа" является неявным запросом с S-блокировкой, а за­прос на "обновление кортежа" — неявным запросом с Х-блокировкой соответствующего кортежа. При этом под термином "обновление" подразумеваются помимо самих операций обновления также операции вставки и удаления.

В большинстве случаев блокировки устанавливаются применительно к кортежам.

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

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

Некоторые СУБД обеспечивают возможность явного (преднамеренного в полном смысле этого слова) задания блокировок с помощью разного рода операторов типа LOCK.

Например, оператор LOCK поддерживается системами DB2 и ORACLE. Однако следует иметь в виду, что этот оператор не является оператором языка SQL! Поэтому удобное в некотором смысле средство может быть серьезным орудием, понижающим эффективность разрабатываемой информационной системы (в случае, когда программисты злоупотребляют использованием указанного оператора).

Лекция 13

Тема 2 Интеграция данных

2.1. Хранилища данных

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

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

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

Хранилище - это предметно - ориентированный, интегрированный, привязанный ко времени и неизменяемый набор данных, предназначенный для поддержки принятия решений.

В приведенном выше определении Инмона указанные характеристики данных понимаются следующим образом.

• Предметная ориентированность. Хранилище данных организовано в виде специфических разделов, описывающих основные предметы (или субъекты) организации (например, клиенты, товары и продажи), а не прикладные области деятельности (выписка счета клиенту, контроль товарных запасов и продажа товаров).

Это свойство отражает необходимость хранения данных, предназначенных для поддержки принятия решений, а не обычных оперативно-прикладных данных.

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

• Привязка ко времени. Данные в хранилище точны и корректны только в том случае, когда они привязаны к некоторому моменту или промежутку времени,

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

В отличие от операционных данных, привязанных к текущим транзакциям, хранилище данных представляет собой поток данных во времени.

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

После того как данные записаны в хранилище (т.е. выполнена операция вставки) они никогда из него не удаляются, оно постоянно растет. Кроме того эти данные не модифицируются (т.е. не выполняются операции типа Update).

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

На рис. 2.1 представлен пример интеграции данных на основе двух источников.

Рис.2.1 Организация хранилища данных

Компонент извлечения данных представляет собой программное средство самой разной сложности, созданное на любом алгоритмическом языке (в частном случае и на языке SQL) и предназначенное для извлечения данных из конкретного источника данных.

Компонент трансляции/загрузки данных – программное средство, обеспечивающее:

1) объединение (интеграцию) данных, извлеченных из разных источников,

2) преобразование форматов извлеченных данных в форматы, используемые хранилищем,

3) загрузку извлеченных интегрированных данных в хранилище в соответствии со схемой данного хранилища.

Способы трансляции и сочетания информации из первичных источников в общем случае могут быть самыми разными.

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

Существует три основных способа сбора информации в хранилище данных.

1.Содержимое хранилища периодически (скажем, еженощно) реконструируется на основе текущей информации источников — наиболее общий подход, основной недостаток которого зачастую связан с необходимостью "отключения" системы от внешнего мира на время выполнения процедуры трансляции/загрузки, нередко весьма продолжительной. Другой изъян заключается в том, что данные в хранилище быстро теряют актуальность.

2. В хранилище периодически заносятся данные из источников, претерпевшие изменения с момента осуществления последней загрузки.

Количество переносимых данных в этом случае, как правило, существенно ниже, что весьма важно, если время, отводимое на обновление информации, ограниченно и/или объем хранилища велик (обычной практикой является создание и поддержка хранилищ, размер которых исчисляется многими гигабайтами или даже терабайтами).

Недостаток подхода состоит в сложности процедуры инкрементного обновления в сравнении с прямолинейным алгоритмом полной загрузки данных.

3. Информация в хранилище обновляется непосредственно в ответ на операцию (или группу операций) модификации содержимого одного или нескольких источников.

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

2.2. Медиаторы

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

На рис.2.2 изображена схема интеграции информации двух источников средствами медиатора (как и в случае хранилищ данных, количество источников, разумеется, может быть произвольным).

Рис. 2.2 Организация медиатора

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

Как видно из рис.2.2, медиатор посылает запросы каждой из оболочек, а те в свою очередь адресуют их соответствующим источникам. (В определенных случаях медиатор способен направлять какой-либо оболочке целую серию запросов, а к некоторым другим оболочкам не обращаться вовсе.) Оболочка передает медиатору полученный ею итог обработки запроса, а медиатор, осуществляя объединение и трансляцию данных, возвращенных оболочками, формирует окончательный результат и отсылает его пользователю

Лекция 14

ТЕМА 3. Клиент-серверные системы