Модуль2_Проектирование БД
.pdfкак самостоятельные объекты базы, а не входят в состав хранимых объектов. Таким образом «собственное поведение» объекта не представимо в традиционных РБД.
Подобные проблемы в традиционных языках программирования нашли свое решение переходом к объектно-ориентированному программированию. Аналогичным путем развиваются и модели баз данных. Сохраняя свойства реляционной СУБД: надежность хранения, эффективное управление параллелизмом запросов и внешней памятью, средствами создания новых (непредусмотренных) запросов, объектно-ориентированные базы данных должны обеспечивать создание классов (типов) сложных объектов с инкапсуляцией, наследованием свойств и методов и перекрытием методов в разных классах.
Стандарт 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