Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Модуль2_Проектирование БД

.pdf
Скачиваний:
12
Добавлен:
16.03.2015
Размер:
799.34 Кб
Скачать

как самостоятельные объекты базы, а не входят в состав хранимых объектов. Таким образом «собственное поведение» объекта не представимо в традиционных РБД.

Подобные проблемы в традиционных языках программирования нашли свое решение переходом к объектно-ориентированному программированию. Аналогичным путем развиваются и модели баз данных. Сохраняя свойства реляционной СУБД: надежность хранения, эффективное управление параллелизмом запросов и внешней памятью, средствами создания новых (непредусмотренных) запросов, объектно-ориентированные базы данных должны обеспечивать создание классов (типов) сложных объектов с инкапсуляцией, наследованием свойств и методов и перекрытием методов в разных классах.

Стандарт ODMG - 3, предложенный Object Database Management Group (ODMG) в 1993 г. для объектно-ориентированных баз данных (ООБД), содержит требования и рекомендации:

-по объектной модели БД – Object Data Model (ODM);

-по языку определения объектов – Object Definition Language (ODL);

-по языку запросов к объектной базе – Object Query Language (OQL);

-по интерфейсам языков программирования (обычно С++).

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

130

множественном наследовании объектные типы образуют решетку исходных типов с предопределенным корневым объектным типом - Object.

Интерфейс объектного типа включает:

имя типа;

набор используемых исходных типов (супертипов);

набор свойств (атрибутов). Свойство может быть объектом или значением литерала;

набор связей. Каждая связь указывает на другой объектный тип. Связи могут быть 1:1, 1:М, М:N и относятся к объектам, созданным на основе связанного объектного типа. Связи создаются двухсторонними, и СУБД контролирует правильность связи со стороны каждого объекта, помещаемого в базу;

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

Для создания системы объектных типов – схемы базы данных используется ODL.

Для построения запросов и управления данными используется OQL. Реализацией OQL является язык SQL3, представляющий расширение SQL 92 для работы со сложными объектами. Основу SQL3 составляет оператор SELECT. Однако в отличие от SELECT для реляционной базы данный оператор может возвращать, в зависимости от содержания запроса, набор литеральных значений с элементами – объектами БД или свойствами объектов БД. Например, если в БД определен объектный тип ПЕЧАТНОЕ ИЗДАНИЕ (TITLE), для которого создано множество объектов TITLES, то запрос

SELECT DISTINCT STRUCT (Name: T.TITLE, Pdate: T.pubdate) FROM TITLES T WHERE T.TYPE = ‘business’

из программы на С++ вернет литеральное значение – множество, элементами которого являются названия и даты издания книг по бизнесу (TYPE = ‘business’), заданные типом STRUCT { string [80] Name ; date Pdate }.

131

Если в типе ПЕЧАТНОЕ ИЗДАНИЕ определен метод - операция vol_sale, вычисляющая общую сумму, вырученную от продажи издания, то запрос

SELECT DISTINCT STRUCT (Name: T.TITLE, Vol_sale:T.vol_sale) FROM TITLES T WHERE T.TYPE = ‘business’

вернет литеральное значение – множество, элементами которого являются названия и сумма выручки для книг по бизнесу. В запросе сумма выручки вычисляется методом vol_sale.

Другое отличие ООБД состоит в использовании при построении запросов связей, заданных в объектных типах.

Если при определении объектных типов был создан новый тип ПРОДАЖИ и установлена его связь (CONSISTS_OF) с типом ПЕЧАТНОЕ ИЗДАНИЕ, то эта связь может использоваться в запросах. Например, результатом следующего запроса

SELECT DISTINCT

STRUCT (Name: T.TITLE, SAL: (SELECT S FROM T.CONSISTS_OF AS S) ) FROM TITLES T

является литеральное значение-множество, элементами которого являются значения-структуры с двумя литеральными значениями, первое из которых есть атомарное литеральное значение – название книги (типа STRING), а второе – литеральное значение-множество с элементами-объектами (типа ПРОДАЖИ), связанными (CONSISTS_OF) с экземпляром типа ПЕЧАТНОЕ ИЗДАНИЕ.

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

создания БД, запросов.

 

Разработчиками СУБД

создано немало коммерческих продуктов,

учитывающих рекомендации ODMG – 3.

132

Современные ООБД строятся либо как чисто объектные или объектнореляционные базы данных. Примерами полностью объектно-ориентированных баз данных являются Jasmine (ф. Computer Associate), Poet (ф. Poet Software), Cache (ф. InterSystems).

СУБД Informix Universal Server (IUS), Oracle и DB 2 Universal Database (IBM) развиваются по пути встраивания механизмов абстрактных типов данных и наследования в популярные и надежные серверы реляционных баз. Новый тип может быть основан на существующем типе со встраиваемыми функциями приведения значений одного типа к значениям другого. Например, новый тип для валюты с функциями пересчета значений из одной валюты в другую. Обеспечивается и полный переход на абстрактные типы. Для этого предусмотрены средства для описания и сохранения на сервере структуры данных и функций (методов) для работы с этим типом.

Концепция наследования в БД реализована в виде вложенных таблиц. Вложенные таблицы – одномерные коллекции однородных элементов (строк), доступных в БД, в виде значений столбцов включающих таблиц. Вложенные и включающие таблицы существуют самостоятельно, но при запросах к включающей таблице сервер автоматически выполняет соединение ее строк со строками вложенных таблиц.

В целом объектно-реляционные БД, хотя и не реализуют в полном объеме концепцию ООБД, тем не менее существенно расширяют функциональность реляционных баз, сохраняя основное достоинство РБД – возможность выполнения в БД незапланированных запросов.

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

Следующее направление, в котором развиваются базы данных, – создание хранилищ данных (Data Warehouse) и их использование в OLAP (On-Line Analytical Processing) – технологии. Под хранилищем данных понимается БД, организованная специальным образом, обеспечивающим эффективный анализ больших объемов информации. Обычно в хранилищах размещается

133

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

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

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

134

О

L A P

C

Е

Базы данных Р

В

Е

Р

Хранилище

данных

Клиенты

Рис. 17.1. Структура аналитической системы

Клиентское приложение обеспечивает пользовательский интерфейс к OLAP-серверу. В зависимости от области использования OLAP-продукта источником может служить исходная база или подготовленное хранилище данных. Способность OLAP-продукта работать с данными из различных источников весьма важна.

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

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

135

Ввиду важности данной технологии многие производители серверов баз данных дополняют свои продукты серверами и клиентами для создания и работы с хранилищами данных. Компания Microsoft в дополнение к MS SQL Server поставляет MS Analysis Services. Фирма Oracle предлагает технологию Oracle Express, предназначенную для построения интеллектуальных систем поддержки принятия решений в масштабе предприятия.

Базы данных и WEB-технологии

Еще одним направлением развития и применения БД является WEB– технология. Сочетание структурированных БД и возможностей удаленного доступа с использование HTML и XML форматов для представления и обмена данными подтолкнули разработчиков СУБД к использованию XML в качестве нового типа данных. В современных серверах реляционных БД, например, в MS SQL Server 2005, появилась возможность хранить, получать в результате запроса и обрабатывать данные в XML формате. При вводе данных XML документ представляется обычной строкой, а сохраняется в специальном XML формате. Оператор поиска (SELECT) дополнен параметрами, задающими формат вывода результата. Для управления XML данными в таблицах БД в составе SQL использован язык XQuery. С его помощью сервер БД обеспечивает не только хранение, но и создание процедур преобразования XML документов. Для обработки данных, имеющих тип XML, в языке XQuery содержится следующие пять методов: query( ), value( ), exist( ), modify( ), nodes( ).

Метод query( ) позволяет вернуть данные в виде XML-документа. В качестве параметра он принимает запрос XQuery, который определяет, какие данные необходимо выбрать из исходного XML-документа.

Метод value( ) позволяет извлечь из XML-документа значение одиночного данного и преобразовать в стандартный тип MS SQL Server.

Метод exist( ) используется в WHERE-выражении запроса XQuery для проверки существования заданных компонентов в XML-документе.

136

Метод modify() обеспечивает внесение изменений в данные типа XML (включение и удаление тегов в документ).

Метод nodes() позволяет вернуть части XML-документа, соответствующие заданному выражению.

В заключение обзора современных СУБД следует отметить, что корпоративные базы данных часто создаются в виде единого комплекса баз, размещенных в нескольких узлах вычислительной сети. При этом возникает дополнительная проблема обеспечения одновременного доступа многих пользователей к нескольким БД, находящихся на удаленных серверах. Вопросы построения системы распределенных баз данных выходят за рамки данной дисциплины и рассматриваются в курсе «Промышленные СУБД».

137