Конференция "Корпоративные базы данных'2001"
DB2 v 7 - интеграция технологий для управлению данными
Николай Игнатович, IBM
Данная статья представляет собой обзор современного состояния и развития ключевого программного средства для хранения и обработки данных фирмы IBM - сервера баз данных DB2. Представляются функциональные возможности новой седьмой версии DB2 UniversalDatabase.
ВВЕДЕНИЕ
УНИВЕРСАЛЬНЫЙ СЕРВЕР БАЗА ДАННЫХ:
ОБЪЕКТНО-РЕЛЯЦИОННЫЕ РАСШИРЕНИЯ DB2
DB2 Common Server
Определяемые пользователем типы данных (UDT)
Определяемые пользователем функции (UDF)
Большие объекты (LOB)
Определяемые пользователем табличные функции (Table UDF)
Поддержка OLE DB и OLE Automation
Деловые правила
Триггеры
РАСШИРЕНИЯ DB2 EXTENDERS
DB2 Text Extender
DB2 XML Extender
DB2 Spatial Extender
ПАРАЛЛЕЛЬНАЯ БАЗА ДАННЫХ
DB2 Parallel Edition
DB2 UDB Enterprise - Extended Edition
Меж-разделный и внутри-раздельный параллелизм
DB2 UDB EEE на RS/6000 SP
DB2 UDB EEE на SMP системах
ДОСТУП К РАЗНОРОДНЫМ ДАННЫМ: ФЕДЕРАТИВНАЯ БАЗА ДАННЫХ.
БАЗЫ ДАННЫХ ДРУГИХ ПРОИЗВОДИТЕЛЕЙ. ОТ DATAJOINER К DB2 RELATIONAL CONNECT
ДАННЫЕ В ФАЙЛОВОЙ СИСТЕМЕ. DATALINKS
ДОСТУП К ХОСТАМ. DB2 CONNECT
ДОСТУП ЧЕРЕЗ ИНТЕРНЕТ
Электронный бизнес
Шлюз Net.Data
Поддержка языка Java
Сервер приложений WebSphere
ИНТЕЛЛЕКТУАЛЬНЫЙ БИЗНЕС. ХРАНИЛИЩА ДАННЫХ.
ПОДДЕРЖКА ОЧЕНЬ БОЛЬШИХ БАЗ ДАННЫХ
ТАБЛИЦЫ АВТОМАТИЧЕСКИХ СУММИРОВАНИЙ
ПОСТРОЕНИЕ ХРАНИЛИЩА ДАННЫХ.
DataWarehouseManager
Управление исполнением запросов. DB2 Query Patroller
Средства для запросов: QMF for Windows
OLAP АНАЛИЗ.
DB2 OLAP Starter Kit
OLAP расширения SQL
НАСТРАЕВАЕМАЯ ВНУТРЕННЯЯ АРХИТЕКТУРА
СТРУКТУРЫ ПАМЯТИ И ПРОЦЕССЫ
ХРАНИМЫЕ ПРОЦЕДУРЫ
ИНТЕЛЛЕКТУАЛЬНЫЙ ОПТИМИЗАТОР ЗАПРОСОВ
СРЕДСТВА АДМИНИСТРИРОВАНИЯ
НАСТРОЙКА DB2 UDB
SQL компилятор
Буферные пулы памяти
Табличные пространства
Табличные пространства, управляемые операционной системой
Табличные пространства, управляемые менеджером данных СУБД
Операции с диском
Степень параллелизма
Размер страниц табличных пространств
Статистика
РАЗВИТИЕ SQL В DB2 UDB ВЕРСИИ 7
SQL хранимые процедуры
Временные таблицы
Идентификационные колонки
Дополнения для реляционного OLAP
ЗАКЛЮЧЕНИЕ
Введение
Когда в конце семидесятых годов разработчики IBM создавали System R, которая стала прообразом современных серверов реляционных баз данных, источником языка SQL и предшественником современной IBM DB2 , они в качестве своей главной цели определили простоту и удобство использования данных. Разрабатывая архитектуру системы они ориентированись на универсальную поддержку запросов произвольного, заранее не определенного вида и потока многочисленных коротких стандартных изменений в базе данных, то есть на те области применения, которае сегодня можно назвать информационные-аналитические задачи и OLTP приложения.
Дальнейшее развитие показало, что реляционные базы данных - технология, базирующаяся по принципе универсальности, утвердились в качестве базовой технологии для большинства типичных корпоративных приложений.
Рассматривая внутренную архитектуру современного сервера базы данных легко увидеть что, все те же базовые элементы конструкции, заложенные когда-то разработчиками и исследователями IBM, среди которых стоит отметить механизмы исполнения транзакций, механизмы конкурентного доступа к данным, архитектурное разделение системы на подсистемы анализа и исполнения непроцедурных запросов и подсистему непосредственного управления и доступа к данным, многочисленные механизмы оптимизации запросов, индексирования данных и увеличения производительности, - все это присутствует в современных продуктах.
В тоже время и внутренняя реализация и внешняя функциональность серверов баз данных, и в частности DB2, претерпели значительные усовершенствования.
Определяя сегодняшнюю стратегию развития одного из своих ключевых программных продуктов, специалисты фирмы IBM ориентируются на главные перспективные области применения баз данных.
Как всегда бывает, новые большие возможности в быстроразвивающихся сферах применения, таких как электронный бизнес, хранилища данных, обработка документов и изображений требуют от серверов баз данных поддержки новых возможностей и новых функций.
Универсальный сервер база данных:
Изначальная ориентирация на концепцию универсального продукта для хранения и обработки данных требует от сервера реляционных баз данных, во-первых, базовой архитектуры, достаточно гибкой и мощной, чтобы выдержать постоянно растущие требования по наращиванию производительности и функциональности, во-вторых, естественного и гармоничного наращивания функциональных возможностей, добавления новых компонент, интерфейсов, инструментов. Первое направление реализуется в DB2 в виде возможностей для параллельной обработки данных и других технологических решениях, второе направление привело к развитию обьектно-реляционных возможностей,
Обьектно-реляционные расширения DB2
Одним из основных возможностей базы данных современной DB2 Universal Database является расширяемость ее типов. Под расширяемостью подразумевается способность хранить и оперировать не только традиционными реляционными таблицами с символами и числами, но и мультимедийными данными, комплексными объектами, такими как документы, изображения, аудио, видео, пространственные данные, временные ряды и т.д. Кроме того, сюда могут входить специализированные для конкретной отрасли объекты. Основой для реализации всего этого является так называемая объектно-реляционная архитектура DB2. Объектно-реляционные возможности UDB позволяют добавлять к базе данных собственные типы данных и деловые функции, - эффективно настраивая базу данных в соответствии с конкретными деловыми или прикладными требованиями. IBM первой реализовала такую возможность еще в 1995 году, в продукте DB2 Common Server версии 2.
DB2 Common Server
Эксплуатация реляционных баз данных привела в свое время к появлению поколения систем управления базами данных, так называемых расширенных реляционных (extended relational) баз данных. К этому классу относятся системы управления базами данных, поддерживающие ряд дополнительных возможностей выходящих за рамки реляционной алгебры, такие как триггеры, хранимые процедуры, контроль целостности и так далее.
На сегодняшний день, практически все системы управления реляционными базами данных ведущих производителей, в том числе DB2, можно отнести к категории расширенных.
Целью исследовательского проекта IBM Starburst в конце восьмидесятых годов было создания такой расширяемой системы управления реляционными базами данных. Под расширяемостью при этом понималась органическая возможность поддерживать новые методы хранения данных, добавлять новые методы доступа к данным, предоставить пользователям возможность определять свои операции над данными и встраивать новые методы оптимизации. Практическим результатом проекта Starburst и его продолжения проекта Starwings было появление СУБД DB2 Common Server для PC и Unix в 1993, которая содержала многочисленные идеи и возможности, позволившие сейчас семейству DB2 очень динамично и успешно развивать свою функциональность.
В базе данных DB2 Universal Database поддерживаются следующие ключевые объектно-реляционные возможности (все они реализованы в соответствии со стандартами SQL3 и поэтому представляют собой открытый, а не внутрикорпоративный подход):
Расширяемая система типов-поддержка для определяемых пользователями типов данных (UDT) включая структурированные типы с наследованием и sub-typing, с возможностями использовать строковые типы данных, идентификаторы обьектов и ссылки.
Определяемые пользователем типы данных (UDT)
C их помощью пользователи могут создавать новые типы данных, которые будут представлены в базе данных с использованием встроенных типов. Например, пользователь может определить отдельные типы данных для отдельных валют ( рублей и долларов. Такие типы будут различаться в том смысле, что их невозможно будет непосредственно сравнивать друг с другом или с десятичным типом, хотя именно десятичный тип может быть выбран для внутреннего представления этих двух типов данных в DB2. Определяемые пользователем типы данных, как и встроенные типы, могут использоваться в качестве столбцов таблиц или параметров функций, включая определяемые пользователем функции User-Defined Functions (UDF).
Определяемые пользователем функции (UDF)
С их помощью в запросы можно включать мощные вычислительные и поисковые методы. DB2 предлагает широкий выбор программных языков для реализации UDF: 3GL, 4GL, Java или OLE automation. Кроме того, исполнение UDF можно назначить внутри или вне серверных процессов менеджера базы данных. Благодаря UDF пользователи могут создать наборы функций для работы с пользовательскими типами UDT, определив таким образом семантику этих типов. Оптимизатор SQL учитывает семантику и стоимость исполнения пользовательских функций UDF, что позволяет ему работать с этими функциями абсолютно аналогично встроенным функциям.
Большие объекты (LOB)
С помощью больших объектов LOB пользователи могут хранить в базе данных очень крупные двоичные или текстовые объекты (размером в несколько гигабайт). Большие двоичные объекты можно использовать для хранения мультимедийных данных, таких как документы, видео, изображения и речь. Кроме того, большие объекты можно использовать для хранения небольших структур, семантика которых задана с помощью пользовательских типов UDT и пользовательских функций UDF. Для больших объектов LOB имеется мощный набор встроенных функций для выполнения поиска, выделения подстроки и конкатенации. С помощью UDF в любое время можно определить дополнительные функции. Таблица может содержать несколько столбцов с большими объектами LOB.
Определяемые пользователем табличные функции (Table UDF)
Пользователи DB2 могут обращаться к данным, реально хранящимся не в реляционном формате, и при этом в полной мере использовать все возможности построения запросов к реляционной базы данных. Часто бывает очень трудно, если не невозможно, включить данные из нереляционных источников в реляционную обработку. Определяемые пользователем табличные функции представляют собой расширение SQL, позволяющее разрешить эту проблему. Табличная функция представляет собой внешнюю определяемую пользователем функцию, результатом исполнения которой является созданий производной таблицы. Программа такой функции может включать в себя обращение к данным из различных источников и преобразование их в табличную форму, возвращаемую этой табличной функцией. После создания табличной функции ее можно использовать в операторах FROM запросов. Табличные функции могут применяться не только для включения внешних данных в обработку с помощью мощных средств SQL, но и для постоянного ввода внешних данных в реляционные таблицы.
Поддержка OLE DB и OLE Automation
Технология OLE (Object Linking and Embedding - связывание и внедрение объектов) предложена фирмой Microsoft для платформ Windows. IBM поддерживает Microsoft's OLE DB. DB2 UDB может принимать вызовы OLE DB , действуя как OLE DB источник данных. Через свои скалярные и табличные функции и хранимые процедуры DB2 UDB может предоставлять доступ своим клиентам к другим OLE DB источникам. С помощью этих внешних функций UDF данные из серверов OLE могут использоваться в SQL запросах к DB2.
Деловые правила
С помощью деловых правил в базе данных можно определить комплексные правила для поддержания целостности данных и обеспечить корректность ведения данных. Ключевые возможности деловых правил включают в себя: установку значений по умолчанию, проверку ограничений и ссылочная целостность, позволяющую устанавливать необходимые взаимосвязи между таблицами и внутри таблиц. Ссылочные ограничения объявляются при создании таблицы и обеспечивают согласованность значений данных между связанными столбцами различных таблиц. DB2 автоматически будет поддерживать эти взаимосвязи, так что разработчикам не придется программировать эти функции в приложении.
Эти правила дополнительно расширяют прочие объектно-ориентированные функции. С их помощью можно расширить существующие только в виде кода объектные библиотеки (методы которых изменить невозможно) для поддержки дополнительных атрибутов объектов и проверки ограничений.
Триггеры
Мощный механизм триггеров можно использовать для решения целого ряда задач, в том числе реализации комплексных межтабличных деловых правил, автоматической генерации значений для новой добавленной строки, считывания данных из других таблиц в целях ссылочной целостности, записи в другие таблицы в целях генерации контрольного журнала и/или реализации функции уведомления за счет создания триггера, запускающего определяемую пользователем функцию (например, отправки сообщения по электронной почте)почты).
Необходимо отметить, что все вводимые расширения и дополнения к SQL соответствуют стандарту SQL99. Это в частности обеспечивает надежность вложений в разработку приложений и использование DB2.
Расширения DB2 Extenders
Расширения DB2 Extenders строятся на основе объектно-реляционной инфраструктуры DB2. Каждое расширение представляет собой набор предопределенных пользовательских типов UDT, пользовательских функций UDF, триггеров, ограничений и хранимых процедур, решающих задачи определенной прикладной области. С помощью расширений пользователи могут хранить в таблицах DB2 текстовые документы, изображения, видео и аудио ролики путем добавления столбцов с новыми типами данных, определенными в расширении. Собственно данные могут храниться как внутри таблицы, так и вне ее во внешних файлах. Кроме того, эти новые типы данных имеют атрибуты, описывающие различные аспекты их внутренней структуры, такие как, например, "язык" и "формат" для текстовых данных. Каждое расширение включает в себя необходимые функции для создания, обновления, удаления и поиска данных с новыми типами, определенными в расширении. Пользователи могут включать эти новые типы данных и функции в операторы SQL, обеспечивая интегрированный поиск по содержимому для всех типов данных.
В сервера DB2 стандартно комплектуются расширениями DB2 для работы с текстом, изображениями, аудио и видео информацией, к которым, с новой седьмой версией, добавляются новые, XML, Spatial, Net.Search.
DB2 Text Extender
Текстовое расширение Text Extender позволяет использовать в запросах SQL мощные средства полнотекстового поиска. DB2 обладает возможностями хранить в базах данных сами текстовые документы объемом до 2 Гбайт, а также ссылки на внешние файлы.
Расширение Text Extender предоставляет пользователям DB2 и разработчикам приложений быстрый и гибкий метод поиска в таких документах. Преимущество текстового расширения заключается в высокой скорости поиска среди многих тысяч больших текстовых документов, причем поиск производится не только непосредственно по критериям запроса, но и по различным формам слова и его синонимам.
Технология TextExtender позволяет определить для текстовых колонок баз данных различные типы индексов, в том числе для поиска по точному совпадению, для лингвистического поиска, для нечеткого поиска при помощи так называемых Ngram индексов.
Среди многочисленных словарей стандартно входящих в Text Extender присутствует словарь для русского языка, что особенно важно для российских пoльзователей.
Расширение позволяет производить поиск не только в документах, сохраненных в базах данных DB2, но и в документах, записанных в обычных файлах.
Text Extender может работать с различными типами текстовых документов, включая документы в их исходных форматах, и предлагает широкий спектр различных критериев поиска, таких как по слову, по фразе, с помощью шаблонов и масок, по близости расположения слов.
Поддержка расширяемого тезауруса позволяет добавлять в новые термины и определять отношения между терминами. Использование Text Extender позволяет интегрировать функции текстового поиска с запросами к деловым данным. Благодаря поддержке программного интерфейса API Text Extender можно осуществлять загруку и просмотр документов.
DB2 XML Extender
Использование XML становится все более важным для организации обмена и передачи данных и информации между различными приложениями. Хотя уже упоминавшееся текстовое расширение DB2 Text Extender поддерживает обработку XML документов, но целый ряд дополнительных функций для работы с XML предлагаются в новом расширении DB2 XML Extender, стандартно входящим в состав каждого сервера DB2.
DB2 XML Extender позволяет хранить, искать и выбирать в базе данных XML документы.
При использовании DB2 XML Extender, XML документы могут быть сохранены в DB2 или в одной колонке специального XML типа данных или как коллекция элементов, распределенных между несколькими колонками и таблицами. В Extender входит графическая административная компонента для визуального определения соответствия между элементами документа XML и таблицами и колонками DB2. Специальные хранимые процедуры и триггеры XML Extender используются для трансформации XML документов в коллекции данных в DB2 и, наоборот, при формировании документов XML из данных DB2. DB2 UDB также поддерживает специальную индексацию и функции поиска в XML документах.
DB2 Spatial Extender
Для управления геоинформационными данными обыкновенно используются специализированные геоинформационные системы (GIS), которые ограничены в возможностях интеграции геоинформационных данных с традиционными. В то же время существует значительное количество прикладных задач, которые требуют подобной интеграции и кроме того, существуют несколько различных подходов к реализации. Базы данных многих производителей могут поддерживать хранение геоинформационных данных в виде больших бинарных обьектов(LOBs), что позволяет использовать возможности СУБД и ее утилит для надежного хранения этих данных и , в то же время, не позволяет эффективно использовать поисковые возможности СУБД. Кроме того, GIS системы могут хранить часть своих данных стандартных типов в таблицах реляционной базы данных.
Подход, который IBM вместе с известным разработчиком GIS систем фирмой ESRI реализовала в DB2 Spatial Exender, предполагает что геоинформационные данные становятся новыми типами данных в обьектно-реляционной базе данных DB2. Подход основан на использовании поддерживаемых DB2 абстрактных типов данных с подтипами и наследованием и определяемых пользователями функций. Spatial Extender использует предопределенные геонформационные типы данных, операции с этими данными, специальные механизмы индексирования и оптимизации запросов.
Пользователи получают возможность использовать все возможности SQL при запросах к геоинформационным данным и целый специальных функций, реализующих операции преобразования, сравнения, измерения для геоинформационных обьектов.
Кроме собственного обьектно-реляционного подхода Spatial Extender поддерживает хранение GIS данных в соответствии со спецификацией Open GIS Consortium в текстовом и бинарном видах.
DB2 Spatial Exender позволяет пополнять базу геоинформационных данных различными путями, в частности, генерацией из описательной информации, например адресной, при помощи так называемых геокодеров( реализованных в виде хранимых процедур и триггеров), генерацией с помощью операций из существующих геоинформационных данных, импорта из внешних источников в различных форматах.
Параллельная база данных
Параллельное исполнение запросов является эффективным решением проблем производительности на больших обьемах данных, особенно при выполнении сложных запросов. Современная индустриальная СУБД должна уметь разделять запрос на отдельные подзадачи и параллельно исполнять их на нескольких процессорах.
Архитектура DB2 UDB является полностью параллельной и поддерживает распараллеленное исполнение большинства операций, включая запросы, вставку, обновление и удаление данных, создание индексов, загрузку и экспорт данных. Причем функциональность DB2, при переходе со стандартной, непараллельной среды исполнения на параллельную, не получает ограничений при увеличении эффективности. DB2 UDB была специально разработана для успешной работы в ряде параллельных сред включая системы MPP, SMP и MPP кластеры из SMP узлов.
DB2 Parallel Edition
Одним из предшественников современной DB2 UDB была специализированная DB2 Parallel Edition, созданная для RS/6000 и предназначенная для поддержки приложений, требующих выполнения сложных параллельных запросов к большим массивам данных. DB2 Parallel Edition была построена на технологию Sharing Nothing, позволяющей почти линейно масштабировать систему до десятков и сотен параллельно работающих узлов.
Данные параллельной базы данных распределяются, используя схему хеширования, между несколькими узлами DB2 Parallel Edition. При этом алгоритмы распределения данных обеспечивают сбалансированность работы между узлами, позволяющую избежать перегрузки одних узлов и простоя других, и минимизирование передачи данных между узлами во время исполнения запросов, например при операциях соединения таблиц.
Запросы в DB2 Parallel Edition автоматически разделялись на подзапросы оптимизатором координирующего узла, и план исполнения запроса рассылался другим узлам, конечные результаты запроса затем возвращались координирующему узлу и затем передались приложению-клиенту. Параллельная архитектура современной DB2 UDB в основе своей восходит к DB2 Parallel Edition.
DB2 UDB Enterprise - Extended Edition
Современной реализацией концепции IBM параллельной базы данных является DB2 Universal
Database версии Enterprise - Extended Edition (DB2 UDB EEE). Этот продукт базируется на том же коде, что и другие разновидности DB2 UDB Enterprise Edition, и в то же время является развитием предшествующего продукта DB2 Parallel Edition. В отличии от стандартной DB2 UDB, версия Enterprise - Extended Edition обладает возможностью распределения данных по разделам(узлам). В предыдущих версиях DB2 UDB, разделы базы данных назывались логическими узлами, что отражало идею независимой обработки на каждом разделе базы данных. На каждом разделе базы данных один менеджер базы данных является ответственным за свою порцию данных. Факт, что данные реально распределены между разделами, остается скрытым для пользователей и приложений.
В каждой распределенной базе данных есть один раздел, на котором была выполнена команда на создание базы данных. Этот раздел ведет системный каталог для всей базы данных и называется каталоговым узлом (catalog node). Взаимодействие пользователя с базой происходит через любой узел, к которому подсоединен пользователь. Этот раздел известен пользователю как координирующий узел (coordinator node). Каждый раздел DB2 может действовать как координирующий узел.
DB2 UDB EEE исполняет параллельно большую часть своих операций. Операторы, такие как SELECT, INSERT, UPDATE и DELETE исполняются параллельно на разделах базы данных. Все активности менеджера базы данных, такие как сканирования данных, индексирование, соединения, создание и реорганизация данных и исполнение утилит, таких как загрузка данных, сохранение и восстановление, могут выполняются параллельно на всех разделах. В частности, загрузка очень больших обьемов данных может быть выполнена на параллельной базе данных намного быстрее, чем на обычной. DB2 UDB EEE предоставляет замечательную маштабируемость. В частности, при росте количества пользователе или обьема данных, параллельная СУБД может быть легко расширена путем добавления новых серверов к системе и определения на них новых разделов.
DB2 UDB EEE предоставляет возможности для автоматизированного перераспределения данных на новый добавленный узел и балансировки системы.
Как уже упоминалось, DB2 UDB EEE использует технологию хеширования (hashing) для распределения данных. Когда существует большая таблица, обработку которой необходимо распределить между несколькими узлами, то для этого выделяется группа разделов-(узлов) в виде группы узлов и определяется ключ распределения. Внутренне DB2 UDB создает карту распределения, играющую основную роль при хешировании. При загрузке или вставке новых данных DB2 будет определять в какой раздел будет попадать записи в соответствии со значениями ключевых полей новых данных и картой распределения. Правильно выбранная технология хеширования способна значительно улучшить производительность исполнения запросов.
Меж-разделный и внутри-раздельный параллелизм
При исполнении запроса оптимизатор DB2 UDB будет решать, исполнять ли запрос распараллелено или нет, какие стадии исполнения будут распараллелены. Решение основывается на возможностях аппаратного обеспечения (числе процессоров, узлов, дисков), параметрах конфигурации, статистике о данных и сложности запроса. Внутрираздельный параллелизм означает, что исполнение будет распараллелено между ресурсами отдельного менеджера баз данных на разделе. Межраздельный параллелизм предполагает участие нескольких разделов. Например, исполнение некоторого запроса требует данных из таблиц, расположенных на нескольких разделах. Тогда координирующий узел будет рассылать запрос на выполнение операций по разделам (так называемый function shiping). Менеджер данных на каждом разделе будет сканировать, сортировать, отбирать свои данные и, наконец, отсылать отобранные данные обратно координирующему узлу. На координирующем узле после окончательной обработки данные будут отправлены запросившему их приложению.
DB2 UDB EEE разработана для двух типов аппаратных конфигураций: MPP система с архитектурой shared nothing и SMP система с архитектурой shared memory
DB2 UDB EEE на RS/6000 SP
Платформа IBM RS/6000 SP является наиболее часто используемой системой для DB2 UDB EEE. Каждый узел является отдельной системой RS/6000 со своей процессором, памятью, внутренними дисками и несколькими адаптерами для коммуникации. Ключевой частью SP является коммутатор (switch), который ответственен за высокопроизводительную передачу данных. Коммуникационным протоколом, который используется для связи узлов через коммутатор, является TCP/IP со своими преимуществами простой конфигурации.
Если SP система имеет SMP узлы, тогда возможно комбинировать преимущества MPP системы с возможностями SMP системы. Можно даже расположить несколько разделов на одной SMP системе.
DB2 UDB EEE на SMP системах
DB2 UDB EEE, инсталлированная на SMP системах, использует архитектуру разделения памяти. Высокая производительность может быть достигнута при применении нескольких процессоров (до восьми или даже более). При этом доступный обьем оперативной памяти должен быть как можно большим для использования буферных пулов. Для предотвращения узких мест в системе чтения-записи на диски, рекомендуется использовать несколько дисковых адаптеров. Считается, что такие системы могут быть хороши, в частности для систем принятия решений или витрин данных, когда исполнение сложных запросов требует больших ресурсов процессора.
Доступ к разнородным данным: Федеративная база данных.
Достаточно часто случается, что необходимая информация хранится в нескольких совершенно различных базах данных или часть информации находится в файловой системе.
Такие существенные характеристики DB2 UDB, как обьектно-реляционная структура и соответствующие расширения DB2, интеграция с внешними источниками данных с помощью технологии DataLinks, а также использование многих передовых технологий, в частности, алгоритмов сложного поиска в полуструктурированных типах данных делают DB2 идеальным сервером для реализации концепции федеративной базы данных, включающей разнообразие распределенных источников и многообразие типов данных.
Базы данных других производителей. От DataJoiner к DB2 Relational Connect
Для решения задач доступа к гетерогенным базам данных информации IBM разработала технологию DB2 DataJoiner, которая обеспечивает для клиентов возможность прозрачного доступа к данным, хранящихся на различных серверах.
Специализированный программный продукт IBM DataJoiner обеспечивал использование единого диалекта SQL при работе с базами данных различных производителей, в том числе IBM DB2, Informix, Microsoft SQL Server, Oracle, Sybase, источниками ODBC. DataJoiner обладал возможностями исполнения распределенного запроса, то есть запроса, включающего таблицы из нескольких источников и глобальную оптимизацию и переписывание таких запросов, поддержку вызовов хранимых процедур.
В седьмой версии DB2 часть функциональности DataJoiner была добавлена к стандартному серверу DB2 в виде компоненты DB2 Relational Connect, которая прежде всего ориентирована на доступ к данным Oracle. Использование DB2 Relational Connect позволяет реализовывать концепцию федеративной базы данных предприятия и поддерживать различные сценарии использования гетерогенных данных, в том числе репликацию данных и построения хранилища данных из данных различных источников.
Данные в файловой системе. DataLinks
Несмотря на широкое распространение серверов реляционных баз данных, большая часть данных в мире хранится в виде файлов. В частности, это верно для неструктурированных и полуструктурированых данных, таких как изображения, документы, различные схемы, почтовые сообщения, презентации, электронные таблицы. Хотя эти данные могут быть перенесены в СУБД в форме больших бинарных обьектов, часто есть много причин для хранения данных с виде файлов. Поскольку файловая система не обладает многими возможностями СУБД по исполнению транзакций, контролю целостности, восстановлению, то IBM разработала для DB2 UDB технологию DataLinks. DataLinks расширяет функциональность СУБД на управление внешними файлами и данными. Целью является предоставления тем приложениям, которые использую работу с файловой системой доступ к поисковым возможностям СУБД и доступ к внешним данным для SQL-ориентированных приложений.
DataLinks позволяет DB2 UDB управлять данными, хранящимися во внешних файлах, так как если бы они хранились в базе данных. DataLinks предоставляет несколько уровней контроля для внешних данных, включая контроль доступа, ссылочную целостность, координацию при сохранении и восстановлении данных и целостность транзакций. DataLinks способно значительно расширить масштаб и возможности приложений использующих DB2.
Доступ к хостам. DB2 Connect
Когда изначально DB2 появилась на мейнфреймах IBM под MVS, VM, VSE, она была ориентирована на централизованные приложения на хостах. При этом поддержка обращений удаленных пользователей возлагалась на промежуточное программное обеспечение типа менеджера транзакций CICS. На менфреймах IBM CICS являлся и остается до сегодняшнего дня самой распространенной средой для создания и исполнения OLTP приложений. Впоследствии, в условиях распространения архитектуры клиент-сервер, потребовалось дополнительная поддержка прямого удаленного доступа с PC и UNIX рабочих станций к базам данных на мейнфреймах и на системах типа AS/400.
Решая проблему поддержки архитектуры клиент-сервер, IBM предложила DRDA (Distributed Relational Database Architecture) в виде открытой спецификации, описывающей протоколы взаимодействия удаленного клиента с базами данных. Реализация DRDA должна была позволить продуктам от разных производителей баз данных прозрачно взаимодействовать и в частности образовывать единую распределенную базу данных.
Подход DRDA позволяет решить многочисленные проблемы кросс-платформенного взаимодействия, в частности конвертацию ASCII и EBCDIC данных, различия в диалектах SQL, командах, типах данных, строении каталогов. В настоящее время архитектуру DRDA поддерживают, прежде всего, все серверы семейства DB2, остальные производители реализовали продукты типа DRDA реквесторов, которые позволяют прикладным программам- клиентам иметь доступ к базам DB2, в частности к DB2/390 и DB2/400.
Стандартный пример такого DRDA реквестора производства IBM - DB2 Connect работающий на OS/2, Linux, Windows, Windows NT/2000, AIX, Solaris и который может служить или многопользовательским шлюзом к DB2 для множества пользователей локальной сети, или, в случае однопользовательского варианта, работать на компьютере клиента.
Доступ через Интернет
Бурное развитие интернета и вывод в интернет корпоративного бизнеса формирует новую концепцию базы данных для электронного бизнеса. Современная СУБД должна быть тесно интегрирована с интернетом. СУБД с одной стороны должна предоставлять доступ к существующим базам данных пользователям интернета, использующих броузеры, с другой стороны база данных может быть специально предназначена для обслуживания интернет-приложений - для хранения динамического содержания, мультимедийных обьектов, предлагать поисковые функции.
В своем составе DB2 UDB предлагает две основных компоненты для доступа через интернет: Net.Data и WebSphere, а также поддержку интерфейсов и средств разработки для языка Java, ряд расширений DB2 Extenders, ориентированных на использование в интернете.
Шлюз Net.Data
Net.Data является компонентой для Web сервера, поддерживающей взаимодействие между DB2 и Web-сервером и доступ пользователям к DB2 через Интернет. Использование Net.Data заменяет или упрощает разработку CGI программ на C, Perl или другом языке. В основе программирования для Net.Data лежит создание макросов, которые получают HTML формы с параметрами для запроса от Web-сервера, динамически генерируют и передают запросы к DB2 UDB. Когда Net.Data поучает результаты запросов, происходит формирование ответа в виде HTML формы для возврата пользователю. Кроме очевидного преимущества ускорения процесса разработки приложений для Web сервера Net.Data может поддерживать пул постоянных соединений с DB2 и тем самым снизить затраты на переустановку соединений.
Поддержка языка Java
Java является языком для Internet и потенциально может использоваться для многих других типов приложений. Потребность в использовании Java привела к целому ряду дополнений, интерфейсов и компонент для серверов СУБД.
Кроме ставшего обычным интерфейса JDBC, DB2 UDB поддерживает SQLJ или встроенный SQL в программах на Java. Это позволяет использовать настоящий статический SQL, когда результаты предкомпиляции SQL запросов хранятся в на сервере СУБД и обеспечивают более высокую производительность, чем при динамическом исполнении. DB2 UDB позволяет также написание хранимых процедур и пользовательских функций на Java. При этом пользователь обладает выбором в какой виртуальной машине Java DB2 UDB будет исполнять код, то есть IBM не навязывает собственной Java VM.
Сервер приложений WebSphere
WebSphere является целой группой программных средств, ориентированных на разработку и исполнения приложений на Web сайтах и на интеграцию Web сайтов с другими системами. Ключевой компонентой является WebSphere Application Server, сервер для исполнения приложений, прежде всего, подразумевается приложения на языке Java. На сегодняшний момент WebSphere является стратегическим направлением для IBM, прежде всего как платформа для приложений электронного бизнеса. WebSphere Application Server поставляется вместе IBM HTTP Server, созданным на базе распространенного Apache и поддерживает технологии Java Server Pages, сервлетов, Enterprise JavaBeans и CORBA.
Для разработки приложений предназначаются визуальные средства WebSphere Studio и VisualAge for Java. VisualAge for Java является интегрированной средой разработки для приложений и апплетов на Java, которую IBM продвигает как стратегическое среди средств разработки. Для разработки серверных частей приложений VisualAge for Java поддерживает интеграцию с WebSphereStudio и построителем хранимых процедур DB2 Stored Procedure Builder.
Показательным примером готового решения, созданного на основе WebSphere является WebSphere Commerce Suite (ранее известный как IBM Net.Commerce), который представляет собой готовый интегрированный пакет для электронной коммерции. Для построения электронного магазина в интернете с помощью WebSphere Commerce Suite, разработчику достаточно инсталлировать компоненты WebSphere Commerce Suite, настроить шаблоны и параметры, заполнить каталоги товаров WebSphere Commerce Suite предоставляет широкий набор деловых сценариев и функций, включая поддержку безопасных платежей по интернету.
Интеллектуальный бизнес. Хранилища данных.
Идея использования накопленных в организациях данных для детального анализа и последующей выработки решений не нова. Очевидно, что возможность собирать и анализировать данные является существенным преимуществом с деловой точки зрения. Попытки реализации этой идеи постоянно предпринимались на протяжении истории компьютерной индустрии.
Собственно на реализацию этой задачи нацелено направление современной компьютерной индустрии - Business Intelligence. Для успешной реализации интеллектуальной информационной системы необходимо иметь правильные инструментальные средства анализа данных и что более важно сами данные, полные и актуальные и форме пригодной для анализа.
Поддержка очень больших баз данных
Потребность в интеллектуальных информационных системах всегда была высокой, но только недавно реляционные СУБД обрели возможности в достаточной мере поддерживать такие системы. Анализ данных требует использования консолидированных наборов данных из многочисленных оперативных источников данных, обьединенных в хранилище данных. Хранилище данных становится платформой для поддержки самых разнообразных аналитических приложений. Поскольку хранилища данных призваны хранить большие и очень большие обьемы данных, то требования высокой производительности и масштабирования становятся основными для СУБД.
Кроме того, опыт применения хранилищ данных показывает на тенденцию использовать очень сложные запросы для построения отчетов и анализа данных. Несколько ключевых технологий лежат в основе возможностей DB2 UDB поддерживать хранилища с большим обьемом данных, а именно расширяемый оптимизатор запросов, эффективная технология распараллеливания операций с данными, специальные функции для поддержки онлайновой аналитической обработки, а также инструментальные средства администрирования очень больших обьемов данных.
Таблицы автоматических суммирований
Существенной особенностью DB2 UDB является оптимизация с учетом агрегаций. Администратор базы данных может предопределить наборы соединений и агрегаций в форме так называемых таблиц автоматических суммирований - automatic summary tables (AST). Использование таблицы суммирований позволяет значительно быстрее, часто в несколько раз, исполнять запросы. При этом для пользователя не требуется вносить изменений в форму запроса: оптимизатор знает и учитывает существование AST. Поддержание AST в актуальном состоянии может выполняться при использовании различных сценариев с немедленными или отложенными обновлениями.
Построение хранилища данных.
В большинстве случаев для задач анализа данных выделяется отдельная система - хранилище данных. Для проектирования, построения и поддержания хранилища данных необходимо решить ряд задач доступа и выборки данных, их предварительной обработки, очистки и исправления от некорректных значений, загрузки данных в хранилище в соответствии со спроектированной моделью для целей анализа и, наконец, целая группа задач, связанная с построением автоматизированной среды пополнения и управления хранилищем.
DataWarehouseManager
В свое время IBM разработала специальный пакет для построения и администрирования хранилищ данных VisualWarehouse. В DB2 Universal Database версии 7 функциональность VisualWarehouse была интегрирована и существенно дополнена. Причем графические средства для построения и управления хранилищем данных были интегрированы с общей административной средой управления базами данных семейства DB2 Control Center. Сейчас в составе всех серверных продуктов семейства DB2 UDB включается Data Warehouse Center - облегченная версия Data Warehouse Manager. С помощью Data Warehouse Center администратор имеет возможность шаг за шагом, с единой графической консоли выполнять многочисленные операции с хранилищем.
Администратор хранилища данных может проектировать структуру хранилища, определять отношений между источниками данных и данными в хранилище, строить процедуры преобразования и очистки данных из источников, автоматизировать процессы загрузки данных в хранилище и текущего управления хранилищем. DataWarehouseManager может получать данные из баз данных DB2, Informix, Microsoft, Oracle, Sybase, IMS databases, VSAM и плоских файлов.
DataWarehouseManager обладает рядом технологий, которые позволяют очень эффективно организовать функционирование хранилища данных, в частности, архитектура на базе распределенных агентов, использование технологических и деловых метаданных и возможность вызывать написанные пользователем или третьими фирмами программы-компоненты для дополнительной обработки данных.
Архитектура DataWarehouse основана на использовании агентов, работающих на различных платформах и управляемых из единого центра DataWarehouseManager. Агенты занимаются преобразованием и перекачкой данных и обеспечивают гибкость и масштабируемость архитектуры.
Технология агентов, которые могут быть использованы в различных конфигурациях и размещены на различных платформах, используется для улучшения производительности при загрузке больших объемов данных. В отличие от многих конкурирующих продуктов DataWarehouseManager не требует пересылки данных через центральный промежуточный сервер, что может быть причиной снижения производительности. DataWarehouseManager агенты работают на многих платфомах от PC до мейнфреймов.
Кроме того, DataWarehouseManager содержит административные компоненты, отвечающие за вопросы безопасности, авторизации, процедуры сохранения и восстановления, мониторинг и настройку, планирование и выполнение операций, то есть представляет собой полное решение для управления хранилищем данных.
Интеграция DataWarehouseCenter и компоненты для OLAP анализа DB2 OLAP Starter Kit в одном пакете позволяет пользователям используя DataWarehouseCenter загружать данные в многомерные базы данных и автоматически выполнять при загрузке данных предварительные вычисления и агрегации данных.
Полнофункциональный DB2 Warehouse Manager по сравнению с DataWarehouse Center включает ряд дополнений, в том числе дополнительные агенты для ряда платформ, дополнительные программы трансформеры - для очистки данных и закачки данных, и, наконец - Information Catalog, предназначенный для публикации информации о данных, содержащихся в хранилище.
Information Catalog представляет собой репозиторий метаданных, открытый для конечных пользователей, синхронизуемый с хранилищем данных и обладающий возможностями обмена метаданными со многими аналитическими средствами третьих фирм. Information Catalog предоставляет конечным пользователям возможность искать необходимую информацию в хранилище, получать описание данных в деловых терминах, получать доступ к данным при помощи различных графических средств или через Интернет.
DataWarehouseManager поддерживает спецификацию Metadata Coalition - Metadata Interchange Specification (MDIS) для обмена метаданными с другими программными средствами. Например, фирма ETI предлагает набор инструментальных средств EXTRACT Tool Suite для создания приложений, занимающихся выборкой и преобразованием данных. IBM совместно с ETI интегрирует EXTRACT с DataWarehouseManager путем обмена метаданными, исполнения программ EXTRACT под управлением DataWarehouseManager и использования библиотек ETI для доступа к дополнительным источникам данных, таким как данные SAP R/3.
Другое инструментальное средство Integrity Data Reengineering tool фирмы Vality дополняет DataWarehouseManager и ETI*EXTRACT возможностями анализа содержания данных, выбираемых из источников данных, и обработки загружаемых данных в хранилище.
Управление исполнением запросов. DB2 Query Patroller
Среди уникальных технологий предлагаемых DB2 выделяется DB2 Query Patroller, который позволяет администратору базы данных управлять средой исполнением запросов. DB2 Query Patroller действует как агент в интересах конечного пользователя. Когда конечный пользователь, используя свою прикладную программу, например генератор отчетов, отравляет запрос на исполнение, запрос попадает в среду DB2 Query Patroller. DB2 Query Patroller анализирует стоимость исполнения запроса по ресурсам. Затем устанавливаются приоритеты и составляется расписание исполнения запросов наиболее эффективным образом, сам запрос может немедленно исполняться или сохраняется для последующего исполнения. Результаты исполнения могут храниться DB2 Query Patroller в виде промежуточной выборки для последующего возвращения пользователю. DB2 Query Patroller может значительно улучшить эффективность исполнение запросов для множества пользователей хранилища данных. На сегодняшний день DB2 Query Patroller является уникальным по своим возможностям контролировать и управлять исполнением запросов для различных платформ.
Средства для запросов: QMF for Windows
На сегодня существует множество разнообразных запросных средств, для этого ряда IBM предлагает свое стандартное средство QMF. QMF является удобным в использовании графическим пользовательским средством формирования запросов и построения отчетов из данных DB2.
OLAP анализ.
Анализ данных, смоделированных в виде многомерных структур, стандартно применяется для решения многих деловых задач. Основным продуктом IBM в категории средств онлайновой аналитической обработки является DB2 OLAP Server, в котором для решения сложных задач многомерного анализа данных реализована трехуровневая архитектура клиент/сервер. На среднем уровне этой архитектуры располагается сервер онлайновой аналитической обработки, разработанный совместно с известной фирмой Hyperion Solutions, который отвечает за интерактивную аналитическую обработку и автоматическую генерацию оптимальной звездообразной реляционной схемы на основе указанных пользователем размерных характеристик.
DB2 OLAP Starter Kit
Сервер аналитической обработки DB2 OLAP Server функционирует на платформах Windows NT, UNIX,AS/400, OS/390. Сервер онлайновой аналитической обработки DB2 OLAP Server поддерживает тот же клиентский API и включает в себя тот же вычислительный модуль, что и Hyperion Essbase, поэтому многие инструментальные средства сторонних поставщиков (с графическим пользовательским интерфейсом или на базе Web), поддерживающие Essbase, могут выступать в роли клиентов сервера DB2 OLAP Server. В состав DB2 UDB версии 7 входит так называемый начальный набор для OLAP - DB2 OLAP Starter Kit, поддерживающий основную функциональность с некоторыми ограничениями.
OLAP расширения SQL
Одним из направление развития СУБД является интеграция функций OLAP в ядро реляционной СУБД. При этом к данным могут применяться и OLAP анализ и SQL запросы. DB2 UDB поддерживает ряд возможностей для функционирования OLAP расширения, в том числе динамические битовые индексы, данные в звездообразной схеме, специальные классы cube и rollup, таблицы автоматических суммирований и агрегаций.
Настраеваемая внутренняя архитектура
Вся внутренняя структура DB2 UDB призвана быть легко настраиваемой на различные системные нагрузки и предоставлять разнообразные механизмы повышения производительности.
Структуры памяти и процессы
Когда DB2 UDB работает на операционной системе, обьемы используемой реальной и виртуальной памяти зависят от того какие параметры менеджера баз данных (instance) и параметры самой базы данных установлены. Основываясь на этих параметрах, СУБД выделяет больше или меньше ресурсов памяти для исполнения запросов от приложений.
Архитектура СУБД DB2 UDB базируется на процессах или нитях в зависимости от операционной системы. Для каждого клиентского приложения, подсоединяющегося к базе данных, выделяется один координирующий агент. Агент ответственен за обслуживание запросов от клиентского приложения. В базе данных, где позволено внутри-раздельный параллелизм, координирующий агент будет использовать один или более агентов (агентских процессов) и координировать их работу для ускорения выполнения запросов.
Чтобы клиентские приложения могли более легко взаимодействовать с внутренними процессами СУБД, DB2 UDB имеет внутренний брандмауэр (firewall), который изолирует процессы ядра DB2 UDB от прикладных процессов, чтобы избежать краха сервера. Кроме того, вне firewall остаются два процесса, обеспечивающие исполнение так называемых "огражденных" пользовательских функций (UDFs) и "огражденных" хранимых процедур.
Хранимые процедуры
Как хорошо известно, использование хранимых процедур, программ располагающихся на стороне сервера базы данных и вызываемых с клиентской машины через команду CALL, рекомендуется по ряду причин. Использование хранимых процедур улучшает общую производительность СУБД при сокращении обьема данных пересылаемых по сети и обеспечивает для пользователей среду исполнение программируемой логики на сервере .
Особенностью DB2 является то, что хранимые процедуры для DB2 UDB могут быть написаны на многих языках программирования, в том числе на JAVA, процедурном SQL, Cobol и C. DB2 позволяет широкий выбор языка разработки, обычно диктуемый предпочтениями и навыками разработчика.
Графический инструментарий DB2 UDB Stored Procedure Builder генерирует код хранимых процедур на языке JAVA и Процедурном SQL, что может быть выполнено без знания самого языка программирования, так как при этом определяются только сами SQL утверждения. DB2 UDB поддерживает статический и динамический SQL в своих хранимых процедурах. Процедурный SQL является программным языковым расширением SQL, базирующимся на стандарте ANSI/ISO на SQL/PSM. Вариант DB2 для Процедурного SQL напоминает процедурные варианты SQL, поддерживаемые Sybase, Microsoft, Oracle и Informix, что помогает пользователям этих СУБД легко адаптироваться с ним.
Интеллектуальный оптимизатор запросов
Оптимизатор запросов является ключевой компонентой любой базы данных. Оптимизатор располагает информацией о среде и физическом распределении данных и должен принимать решение об оптимальном способе исполнения запроса.
Для систем анализа данных, оптимизатор играет даже более значимую роль, чем для других систем, поскольку используемые хранилища данных могут содержать многие гигабайты данных и оптимизация запроса гораздо существеннее влияет на производительность. Кроме того, большинство аналитических средств, которыми пользуются конечные пользователи, предлагают возможности для генерации произвольных по форме запросов, которые, как правило, оказываются очень сложными по структуре и весьма неэффективными в точки зрения производительности.
IBM в свое время сделала значительные инвестиции в теоретическую и практическую разработку стоимостного оптимизатора запросов к базам данных в проекте Starburst. Результатом является так называемый расширяемый оптимизатор для DB2 UDB. Возможности расширять семантику оптимизатора позволяют разработчикам дополнять оптимизатор новыми функциями SQL, различными формами распараллеливания запросов или новыми индексными методами доступа к данным
Оптимизатор DB2 использует несколько основных технологий оптимизации, в том числе переписывание запроса. При переписывании запроса, оптимизатор, используя различные подстановки, исключений и преобразований, переписывает исходный запрос к эквивалентной форме, но более производительной. В частности, при переписывании запроса используются преимущества другой технологии увеличения производительности, а именно, таблиц автоматических суммирований. Кроме того, оптимизатор учитывает семантику ограничений ссылочной целостности и триггеров при преобразовании запроса.
Оптимизатор DB2 выполняет анализ запросов с точки зрения оценки их стоимости. Он сравнивает различные методы доступа к данным и выбирает наиболее эффективный. Оптимизатор использует информацию о том, как базовые таблицы и таблицы промежуточных результатов распределены по системе и выбирает наилучшую стратегию исполнения.
В результате оптимизатор определяет наилучший план доступа, который может быть визуализирован при помощи такого инструмента как DB2 Explain. Формируя план доступа, оптимизатор оценивает различные параллельные методы соединения таблиц, включая co-located, directed и broadcast joins. Ряд расширений оптимизатора, таких как переписывание SQL запроса, поддержка соединений типа звезды, динамическое индексирование с использованием битовых карт (DBIA) и поддержка расширений SQL и OLAP помогают найти оптимальную стратегию исполнения запроса.
Средства администрирования
Удобство работу с данными предполагает наличие развитых средств администрирования. Административный клиент DB2 UDB Administration Client включает все инструменты необходимые для администрирования сервера. Главным средством для администрирования является DB2 Control Center.Control Center является графическим средством отображающим все обьекты DB2 UDB. С помощью этого средства можно создавать, удалять, модифицировать такие обьекты, как базы данных, табличные пространства, таблицы, индексы и триггеры и получать информацию об их состоянии и параметрах.
Кроме создания и администрирования обьектов Control Center интегрирован в единую среду с другими административными инструментами DB2 UDB:
- Script Center - позволяющий создавать, выполнять и планировать исполнение команд операционной системы и командных скриптов DB2.
- Alert Center - Центр предупреждений служит для оповещения о превышениях установленных пороговых значений показателей DB2.
- Journal - Журнал позволяет просматривать статус административных заданий, историю восстановлений базы данных и сообщений.
- Information Center - Информационный Центр дает быстрый доступ к документации DB2.
- Client Configuration Assistant - Конфигурирует доступ к удаленным серверам и базам данных DB2.
Для начинающих администраторов, DB2 UDB предлагает SmartGuides, помогающие выполнять шаг за шагом такие задачи как, сохранение и восстановление базы данных, создание базы данных, таблиц, табличных пространств и индексов, настройка производительности
Целые ряд компонент позволяет выполнять тонкую настройку и мониторинг работы DB2:
- Performance Monitor - Используется для мониторинга производительности таких обьектов DB2 UDB как базы данных, таблицы и табличные пространства.
- Event Monitor и Event Analyzer - Соответственно собирают и анализируют информацию об активности базы данных в течение определенного промежутка времени.
- Visual Explain - Позволяет исследовать план исполнения запроса, то есть анализировать каким путем DB2 UDB обращается к данным и обрабатывает их.
Настройка DB2 UDB
DB2 UDB действительно предоставляет много средств, позволяющих легко, быстро и эффективно собирать информацию о функционировании и состоянии сервера базы данных, что часто не позволяется в других СУБД. Собранная информация позволяет делать эффективные изменения сервера в настройке сервера баз данных.
Очевидно, что различные типы приложений предъявляют различные требования к серверу баз данных. Среди факторов влияющих на производительность СУБД весьма важными являются параметры настройки. DB2 UDB была специально разработана с широким набором конфигурационных и настроечных параметров, распадающихся на две категории: параметры менеджера базы данных и параметры самих баз данных.
Каждый параметр имеет различную область действия: экземпляр СУБД, база данных, агент, обслуживающий приложение и силу влияния. Менять параметры можно при помощи графического DB2 UDB Control Center, процессора командной строки или программного интерфейса(API). При помощи специальных подсказчиков -SmartGuides администратор может настраивать параметры под задачи и загрузку своей базы данных.
SQL компилятор
SQL компилятор DB2 поддерживает два типа SQL выражений: динамические и статические. План доступа для динамических выражений генерируется во время исполнения самого запроса. Информация о плане доступа для статистических выражений создается предварительно, затем хранится в таблицах каталога и используется при исполнении статических выражений. При помощи графической утилиты SQL Explain можно просматривать план и стоимость исполнения запроса, оцененные оптимизатором. Механизм кэширования пакетов SQL выражений позволяет, в случае статических выражений избежать загрузки плана доступа из системных таблиц, а в случае динамических выражений избежать повторного компилирования запроса. Кэширование важно, прежде всего, для приложений типа OLTP.
Буферные пулы памяти
Буферные пулы - это области памяти, где обрабатываются страницы данных и индексов. Буферные пулы являются важнейшим средством повышения производительности, поскольку доступ к данным, расположенным в памяти, намного быстрее, чем к данным на диске. Специальная компонента менеджера баз данных Bufferpool Services (BPS) ответственна работу с буферными пулами.
Если агенту СУБД требуются данные для выполнения запроса, то эти данные ищутся сперва в буферном пуле и если они не находятся то используется синхронное чтение с диска. Чтобы избежать синхронного чтения DB2 UDB использует механизмы предварительного чтения данных в буферный пул и асинхронной записи на диск.
Каждая база данных имеет, по крайней мере, один буферный пул по умолчанию. Кроме того, можно создавать дополнительные буферные пулы и назначать их для обслуживания табличных пространств. Конфигурация буферных пулов является наиболее эффективным способом настройки производительности и руководства по администрированию DB2 рекомендуют администраторам СУБД постоянно следить и настраивать их.
Например, для OLTP баз данных рекомендуется выделять 75 процентов свободной памяти остающейся за вычетом поддержки соединений клиентов и стараться хранить индексы в памяти.
Для систем поддержки принятия решений DSS рекомендуется выделять до 50 процентов памяти для буферных пулов и учитывать повышенные требования для сортировки в сложных запросах.
Размер буферных пулов учитывает оптимизатором DB2 и, следовательно, после изменения размеров буферных пулов необходимо выполнять операции обновления для статических запросов.
Табличные пространства
В DB2 UDB данные и индексы хранятся в логических разделах называемых табличными пространствами (tablespaces). DB2 поддерживает два типа табличных пространств и каждый тип имеет свои преимущетва и особенности:
- SMS (System Managed Space) - табличные пространства, управляемые операционной системой. Данные при этом хранятся в директориях файловой системы.
- DMS (Database Managed Space) - табличные пространства, управляемые менеджером базы данных. Данные хранятся в файлах операционной системы или на устройствах прямого доступа (raw devices).
Табличные пространства, управляемые операционной системой
При создании новой базы данных сервером DB2 автоматически создаются три табличные пространства, управляемые операционной системой. За выделение пространства и за исполнение задач управления ответственена компонента менеджера файловой системы.
Каждый раз, когда требуется увеличить пространство для данных или индексов операционная система выделяет DB2 UDB новые файлы для этого. Существенной особенностью даного типа табличных пространств является отсутствие заранее выделенного пространства и гибкое выделение его по мере надобности.
Табличные пространства, управляемые менеджером данных СУБД
Когда используется табличные пространства этого типа, сама СУБД ответственна за контроль над физическим пространством.
Контейнеры для DMS табличного пространства может быть или raw device, или файлы предопределенного размера, что требует предварительного планирования распределения пространства. Обычно производительность DMS табличного пространства выше, чем при использовании SMS табличного пространства. Кроме того, при использовании табличных пространств типа DMS можно выделять табличные пространства отдельно для данных, индексов и больших бинарных обьектов.
Табличные пространства сохраняются в разделах базы данных. Версии DB2 UDB Workgroup Edition или Enterprise Edition используют только один раздел базы данных, при использовании версии DB2 UDB Enterprise-Extended Edition могут быть несколько разделов баз данных.
Вся совокупность таблиц, индексов, таблиц каталогов, обьектов DB2 UDB, табличных пространств и групп узлов образуют сущность, называемой базой данных. Каждая база данных имеет собственное множество контрольных файлов и журналов. Одна или несколько баз данных образуют экземпляр СУБД (instance). Экземпляр СУБД является полной средой, которая управляет базами данных и контролирует весь доступ к базам данных. На одной системе может быть несколько экземпляров СУБД.
Операции с диском
DB2 UDB может активизировать механизм предварительного чтения данных и индексов в буферный пул до того, как эти данные потребуются.
Предварительное чтение используется и при исполнении запросов и работе утилит.
Механизм очистки страниц используется DB2 UDB для обслуживания буферных пулов и синхронной записи страниц из памяти на диск до того как занятая память потребуется для другого приложения.
Очистка особенно влияет на производительность приложений, которые часто обновляют данные, т.е. OLTP приложения, и наоборот не рекомендуется при преобладании запросов.
Степень параллелизма
DB2 позволяет определять степень распараллеливания операций начиная с уровня сервера до уровня любого SQL запроса для SMP систем.
Размер страниц табличных пространств
От версии к версии DB2 UDB расширяет возможности по использованию страниц различного размера. В версии 5 к базовому 4 KB размеру были добавлены 8 KB, с версии 6.1 добавилась поддержка 16 KB и 32 KB страниц. Это позволяет создавать таблицы и строки все большего и большего размера. Например, для табличного пространства со станицами в 32 KB допускается размер в 512 GB.
В тоже время для табличных пространств с различным размером страниц требуется отдельные буферные пулы памяти со страницами того же размера.
Статистика
Для оптимизатора запросов важнейшим является использование правильными данными об обьемах и о физическом размещении данных и индексов. Специальные таблицы и представления системного каталога содержат эти данные. Изменение в статистике приводит к изменению в плане доступа к данным. Регулярные обновления статистики с помощью RUNSTATS поддерживают эти данные в актуальном состоянии. Используя статистические таблицы, Администратор базы данных может симулировать несуществующую базу данных или копировать параметры эксплуатируемой базы данных в тестовую. Создав новую тестовую базу данных, администратор изменяет содержимое таблиц SYSSTAT с помощью оператора SQL UPDATE. С помощью утилиты можно просмотреть выбранный план доступа и его оценку стоимости. Симуляция статистики дает возможность делать прогнозы, например, как будет меняться производительность при увеличении обьемов данных.
Развитие SQL в DB2 UDB версии 7
SQL хранимые процедуры
Начиная с версии 7, DB2 поддерживает SQL Procedure Language для разработки хранимых процедур. Это является важной альтернативой по сравнению с обычным для DB2 написанием хранимых процедур на языках программирования, таких как C, COBOL, Java. Использование языков программирования в хранимых процедурах было более сложно для администраторов СУБД, более знакомых с самим SQL. SQL Procedure Language базируется на ANSI/ISO стандарте Persistent Stored Modules (PSM) и обладает рядом возможностей, включая процедурные расширения к SQL, блочные структуры, обработку исключений и возможность хранить исходный код в базе данных.
Кроме того, DB2 Version 7 поддерживает вложенность хранимых процедур, т.е. вызов одной хранимой процедуры из другой.
В качестве графического средства разработки хранимых процедур с DB2 поставляется Stored Procedure Builder (SPB). SPB является единым средством для всего семейства DB2. Например, с помощью SPB можно разработать и протестировать хранимую процедуру на персональном компьютере для дальнейшего исполнения на мейнфрейме S/390. Построитель хранимых процедур поддерживает два языка программирования Java и SQL Procedures и поддерживает полный цикл разработки хранимых процедур, включая создание, модификацию, исполнение и удаленное копирование хранимых процедур.
Временные таблицы
С DB2 версии 7 поддерживаются декларируемые временные таблицы. Такая временная таблица доступна только для создавшего ее приложения и уничтожается после отсоединения приложения. Временные таблицы могут быть использованы для хранения промежуточных результатов сложной обработки. Использование временных таблиц вместо обычных может улучшать производительность за счет отсутствия записи в каталог, локирования данных и журналирования изменений.
Идентификационные колонки
С DB2 версии 7 предоставляется специальный тип данных - идентификационная колонка, что является способом автоматически генерировать гарантированно уникальное числовое значение для каждой добавляемой строки.
Дополнения для реляционного OLAP
Работая с DB2, можно группировать и агрегировать различными способами колонки в результирующей выборке данных, используя классы ROLLUP и CUBE в запросе. Новая версия DB2 предоставляет новые дополнительные функции агрегациии, группировки и статистического анализа. Например, подвижные функции агрегации позволяют производить сглаживание показателей, используя усреднение значения соседних строк выборки.
Заключение
Фирма IBM прошла долгий путь со своей базой данных DB2. Ориентируясь на реальные потребности своих многочисленных заказчиков и имея возможность самостоятельно развивать новые технологии, IBM закладывала для DB2 ключевые характеристики, такие как масштабирование в сочетании с высокой производительностью, расширяемость на новую функциональность и способность к интеграции.
На сегодняшний день DB2 является одним из лидеров среди производителей СУБД и в потенциале единоличным лидером и обладает способностью предоставлять решения для широкого спектра деловых задач. Новая 7-ая версия DB2 UDB особо ориентирована на три стратегических сферы применения: электронный бизнес, интеллектуальные информационные системы (business intelligence) и обработку нестандартных и мультимедийных данных. В плане постоянной долговременной тенденции для DB2 сохраняется ориентация на корпоративные решения и корпоративные стандарты производительности и надежности.