Предисловие Системы управления базами данных (субд) – это программные комплексы, предназначенные для работы со специально организованными файлами (массивами данных, долговременно хранимыми во внешней памяти вычислительных систем), которые называются
Вид материала | Документы |
- Системы управления базами данных (субд). Назначение и основные функции, 30.4kb.
- Программа курса лекций "Базы данных в научных исследованиях", 49.32kb.
- Система управления базами данных это комплекс программных и языковых средств, необходимых, 150.5kb.
- Лекция 2 Базы данных, 241.25kb.
- Любая программа для обработки данных должна выполнять три основных функции: ввод новых, 298.05kb.
- Вопросы к государственному экзамену по специальности «Информационные системы и технологии», 39.93kb.
- Лекция № Технологии баз данных, 92.24kb.
- Проектирование базы данных, 642.58kb.
- Системы управления базами данных, 313.7kb.
- Программа дисциплины Системы управления базами данных Семестры, 22.73kb.
11.5.6. Доступ
ER-модели и реляционные схемы в большой степени зависят от использования SQL для поиска и извлечения данных. SQL — это язык запросов, ориентированный на множества, основанный на формальных математических моделях. Поэтому в SQL используются ассоциативные методы доступа к данным для получения информации из БД на основе значений некоторых атрибутов. Например, для получения списка клиентов на основе суммарного значения их годовых покупок в SQL используется такое выражение:
SELECT *
FROM CUSTOMER
WHERE CUS_YTD_BUYS >= 5000;
Если значение параметра CUS_YTD_BUYS не определено, SQL "понимает", что условие означает "все значения" и сокращает оператор запроса следующим образом:
SELECT *
FROM CUSTOMER;
Поскольку семантика в ОО-модели данных более выраженная, в модели ООМД создается схема, в которой связи составляют часть структуры БД. Доступ к пространству структурированных объектов похож на доступ в режиме последовательной обработки записей (record-at-time access) в старых иерархических и сетевых моделях, особенно при использовании языков 3GL или даже объектно-ориентированных языков программирования, поддерживаемых ООСУБД. Модель ООМД приспособлена для поддержки как навигационного (последовательного) доступа, так и доступа, ориентированного на множественность значений. Навигационный доступ реализуется в ООМД напрямую с помощью идентификаторов OID, которые используются для навигации по структуре пространства объектов, разработанной программистом.
Ассоциативный доступ, ориентированный на множества, в ООМД осуществляется с помощью явно определенных методов. Поэтому проектировщик должен реализовать операции для манипуляции экземплярами объектов в схеме объекта. Реализация таких операций влияет на производительность БД и возможности управления данными. Это было главной проблемой при появлении объектной модели: недостаточная универсальность основных математических моделей для манипуляции данными. Отсутствие такого универсального доступа препятствует широкому распространению ООМД, поскольку каждая реализация требует создания собственной версии объектно-ориентированного языка запросов (OQL, Object Query Language). OQL — это язык запросов к базе данных, используемый в ООСУБД. Конечно, различные поставщики создают различные версии OQL, и это в свою очередь ограничивает возможность взаимодействия. Тем не менее, есть несколько групп (например, Object Management Group, OMG — рабочая группа по развитию стандартов объектного программирования), которые в настоящее время работают над разработкой стандартов объектно-ориентированных технологий. Группа OMG очень интенсивно работает над созданием стандарта OQL2.
2 Во время написания этой книги OQL еще нельзя было считать стандартом 00. Зайдите на сайт 0MG (www.orag.org), чтобы посмотреть самую свежую информацию о разработке OQL.
В OQL нет стандартного способа манипулирования множествами, а в стандартном SQL реляционной модели нет возможности манипулирования объектами объектно-ориентированной БД. Однако различие между OQL и SQL несколько уменьшилось после опубликования ANSI нового стандарта SQL в 1999 году. Этот стандарт SQL, известный как SQL3 или SQL-99, ведет к интеграции объектно-ориентированных свойств и реляционных баз данных. Для получения более подробных сведений об этом стандарте см. документ ANSI/ISO/IEC за номером 9075, ч. 1—5 на www.ansi.org (щелкните мышью на nssn, затем введите "SQL" в окне поиска).
В предыдущих разделах мы обсудили объектно-ориентированные концепции, унаследованные от объектно-ориентированных языков программирования. Мы использовали эти понятия для выявления свойств объектно-ориентированной модели данных (ООМД) и изучения ее графического представления. В следующем разделе мы сравним ООМД с предшествующими моделями данных и поясним, что одна из основных проблем ООМД — отсутствие в ней стандартного универсального метода доступа к данным. Хотя такого стандарта нет, есть соглашение о минимальных свойствах ООСУБД. Эти свойства мы также исследуем в следующем разделе.
11.6. Объектно-ориентированная система управления базой данных (ООСУБД)
Рис. 11.34. Объектно-ориентированная СУБД
В течение последних нескольких лет управление данными и среда приложений стали гораздо сложнее, чем могли себе это представить разработчики иерархических, сетевых или реляционных СУБД. Такие сложные структуры приложений могут проще всего обслуживаться объектно-ориентированными СУБД (ООСУБД). ООСУБД представляет собой СУБД, в которой используются все преимущества обычных систем баз данных с мощными возможностями моделирования ООМД (рис. 11.34).
СУБД, основанная на объектной модели, может называться объектно-ориентированной СУБД (ООСУБД) или объектной СУБД (ОСУБД). Обозначение "ОО" и "ООСУБД" чаще использовалось на ранних стадиях развития объектно-ориентированного подхода, мы используем обозначение ООСУБД как наиболее предпочтительное для нас лично.
Некоторые продукты в области ООСУБД, такие как ObjectStore корпорации Object Design, Objectivity/DB корпорации Objectivity, Versant ODBMS корпорации Versant, ONTOS*Integrator корпорации ONTOS и FastObjects компании Poet Software, используются при проектировании перечисленных ниже сложных систем.
- Медицинские приложения, управляющие цифровыми данными при рентгеновской съемке, магнито-резонансном и ультразвуковом сканировании вместе с текстовыми данными в медицинских исследованиях и при анализе истории болезни пациента.
- Финансовые приложения в управлении портфелем активов и рисковом управлении. Такие приложения отображают данные в реальном времени и основаны на
многочисленных расчетах и агрегатных вычислениях над данными, извлекаемы
ми из сложных глобальных транзакций. Такие приложения могут управлять данными, расположенными по "временным рядам", как неким типом данных, определенным пользователем со своим внутренним представлением и методами.
- Телекоммуникационные приложения, например, приложения, управляющие
конфигурацией коммуникационных сетей, которые автоматически наблюдают,
отслеживают и переконфигурируют сеть на основе сотен параметров в реальном
масштабе времени. Для поддержки своих телекоммуникационных приложений
ООСУБД используют такие компании, как Ericsson, Ameritech и Bay Networks.
Система Indium Global Communications System компании Motorola управляет
сложной сетью спутников и наземных станций также с помощью ООСУБД.
- В эксперименте Стэндфордского центра Linear Accelerator BaBar Physics с помощью ООСУБД ежедневно вводится 1 терабайт данных.
- В системах автоматизированного проектирования (САПР) и системах автоматизированного управления (САУ). В таких приложениях используются сложные
отношения данных, а также множественные типы данных.
- В системах CASE (автоматизированная разработка программного обеспечения), создаваемых для управления большими объемами взаимосвязанных данных.
- Мультимедийные приложения, например, географические информационные системы (геоинформационные системы, ГИС), в которых используются видео, звук
и высококачественная графика, требующие специальных возможностей по управлению данными (например, перекрывание, вхождение, указание, обводка и выделение).
Многие ООСУБД используют подмножество функциональностей объектно-ориентированных моделей. Поэтому создатели ООСУБД стараются выбрать возможности ОО-подхода, ориентированные на конкретную ООСУБД, например, поддержку раннего и позднего связывания типов данных и методов и поддержку единичного и множественного наследования. Каков бы ни был выбор, важнейшим фактором успеха реализации ООСУБД является наилучшее сочетание возможностей ОО и традиционных СУБД без принесения в жертву тех или иных средств.
11.6.1. Возможности ООСУБД
Как показано на рис. 11.34, ООСУБД представляет собой результат комбинирования объектно-ориентрованных возможностей, таких как наследование класса, инкапсуляция и полиморфизм, с возможностями БД, такими как целостность, безопасность, непрерывность, управление транзакциями, управление параллельным выполнением, резервное копирование, восстановление, манипулирование данными и настройка системы. Публикация "Object-Oriented Database System Manifesto" (Atkinson и др., 1989)3 — первая внятная попытка определить возможности ООСУБД — включает 13 обязательных свойств, а также необязательные свойства ООСУБД. Эти тринадцать правил представлены в табл. 11.4. Мы вкратце обсудим каждое из них.
Таблица 11.4. Тринадцать правил для ООСУБД
3 Malcolm Atkinson и др., "The Object-Oriented Database System Manifesto". Этот официальный документ впервые был представлен на I Международной Конференции по Дедуктивным и Объектно-Ориентированным Базам Данных (First International Conference on Deductive and Object-Oriented Databases), Киото, Япония, 1989 год. Его можно найти на сайте группы Object Data Management Group www.odmg.org. Выберите на этой странице White Papers, затем Database и The 00 Database System Manifesto. Здесь вы также сможете найти серию официальных документов, посвященных текущим (1997—1999) стандартам и расширениям правил. Эти документы разработаны для подтверждения манифеста и никоим образом его не подменяют.
- FTpaeimo 1. Система должна поддерживать сложные объекты. В системе должна
быть возможность конструирования сложных объектов из имеющихся в наличии.
Примерами таких объектов могут быть множества, списки и кортежи, которые
позволяют пользователю определять объединения объектов в качестве атрибутов.
- Правило 2. Система должна поддерживать идентификацию объекта. OID должен
быть независящим от состояния объекта. Эта возможность позволяет сравнивать
объекты в системе на двух уровнях: сравнение OID (идентичность объектов) и
сравнение состояния объектов (равные или почти равные объекты).
Если объекты имеют различные OID, но их атрибуты совпадают, то эти объекты не считаются идентичными, но рассматриваются как почти равные ("shallow equal"). Точно так же, как близнецы хотя и очень похожи, но все же отличаются.
- Правшго 3. Объекты должны быть инкапсулированы. Объекты имеют внешний интерфейс, но внутреннюю (скрытую)' реализацию данных и методов. Возможность
инкапсуляции гарантирует, что видима только внешняя сторона объекта, в то
время как подробности реализации скрыты.
- Правило 4. Система должна поддерживать типы или классы. Это правило позволяет проектировщику выбирать для системы поддержку классов или типов. Типы
в основном используются на этапе компиляции для проверки ошибок в типах
при присвоении значений атрибутам. Классы используются для хранения и манипулирования схожими объектами во время выполнения. Иначе говоря, класс
это более динамичное понятие, а тип — более статичное.
- Правило 5. Система должна поддерживать наследование. Объект должен наследовать свойства своего суперкласса в иерархии. Это свойство обеспечивает возможность многократного использования кода.
- Правило 6. Система должна избегать раннего связывания. Эта особенность позволяет
использовать одинаковые названия для методов в разных классах. ОО-система решает, к какой из реализаций необходимо обеспечивать доступ во время выполнения, принимая во внимание класс, которому объект принадлежит. Это правило также известно как правило позднего или динамического связывания.
- Правило 7. Система должна быть законченной в вычислительном отношении. Базовые
свойства языков программирования расширяются возможностями языка манипулирования данными (Data Manipulation Language, DML) базы данных, позволяя таким образом выразить на языке программирования любой тип операции.
- Правило 8. Система должна быть расширяемой. Последняя особенность, касающаяся 00, связана с возможностью определения новых типов. Не существует различий
в управлении типами данных, определенными пользователем и системой.
- Правило 9. Система должна помнить местонахождение данных. Традиционные СУБД постоянно хранят информацию на диске, т. е. СУБД обеспечивают устойчивость данных. ОО-системы обычно держат все пространство объектов в памяти; как только система выключается, все пространство объектов теряется. Многие исследователи ООСУБД стараются найти способ непрерывного хранения объектов во вторичной памяти (диски) и извлечения их оттуда.
- Правило 10. Система должна обеспечивать возможность управления большими базами данных. Обычные ОО-системы ограничивают пространство объектов размером доступной оперативной памяти. Например, Smalltalk не может обрабатывать объекты размером более 64 Кбайт. Поэтому важнейшая особенность ООСУБД состоит в оптимизации управления устройствами вторичного хранения информации с помощью буферов, индексов, кластеризации данных и выбора методов определения путей доступа.
- Правило 11. Система должна обслуживать нескольких пользователей. Традиционные СУБД прекрасно с этим справляются. ООСУБД должны обеспечивать такой же уровень параллельной работы, как и обычные системы.
- Правило 12. Система должна обеспечивать возможность восстановления после аппаратного или программного сбоя. ООСУБД должны предлагать тот же уровень защиты от неисправностей оборудования и программного обеспечения, что и традиционные СУБД, т. е. ООСУБД должны обеспечивать поддержку автоматического создания резервных копий и восстановления системы.
- Правило 13. Запросы к данным должны быть простыми. Эффективность запро
сов — одна из наиболее важных характеристик любой СУБД. Реляционные
СУБД предоставляют стандартный способ выполнения запросов к БД с помо
щью SQL, а ООСУБД должны обеспечить такую же возможность с помощью
языка OQL. Группа Object Management Group продвигает спецификацию OQL в
качестве стандарта для доступа к данным в объектно-ориентированных базах
данных (см. www.omg.org).
К необязательным свойствам ООСУБД относятся следующие.
- Поддержка множественного наследования. Множественное наследование приводит
к усложнению системы и требует управления конфликтующими свойствами ме
жду классами и подклассами.
- Поддержка распределенных ООСУБД. Стремление к интеграции системных приложений является мощным аргументом в пользу распределенных БД. Если необходимо обеспечить корректное взаимодействие ООСУБД с другими системами по сети, то база данных должна обеспечивать возможности распределения.
- Поддержка контроля версий. Контроль версий является новой характеристикой
ООСУБД, которая особенно важна в приложениях САПР/САУ (CAD/CAM).
Контроль версий позволяет вести историю преобразования объектов. Поэтому
мы можем просматривать все состояния объекта, что позволит вернуть его в
прежнее состояние и перейти в некоторое последующее.
11.7. Влияние объектно-ориентированного подхода на проектирование баз данных
При разработке и внедрении традиционных реляционных баз данных используются техника ER-моделирования, а также нормализация. В процессе проектирования основной упор делается на моделирование объектов реального мира с помощью простых табличных отношений, как правило, приведенных к ЗНФ. К сожалению, как уже отмечалось, реляционные и ER-модели иногда не могут адекватно отражать реальные объекты. Поэтому в ER-модели используются искусственные конструкции типа составных сущностей (мостов), усиливающих семантическое различие между реальным объектом и его представлением.
Вы, наверное, обратили внимание, что представленный в книге процесс проектирования базы данных, в основном, направлен на идентификацию элементов данных, а не на определение операций с данными. Фактически определение ограничений на данные и преобразование данных обычно рассматриваются на более поздних этапах проектирования БД и реализуются во внешнем программном коде. Иначе говоря. операции не являются частью модели БД.
При проектировании объектно-ориентированных БД вопрос противопоставления данных и процедур их обработки решается, и обеспечиваются как идентификация данных, так и определение процедур манипулирования данными. Однако если мы не используем на этапе реализации объектно-ориентированные языки, то даже включение объектно-ориентированных процедур не позволит считать такую систему "объектно-ориентированной".
Почему же традиционные системы допускают, а зачастую и требуют противопоставления данных и процедур? Ведь идея объектно-ориентированного проекта обдумывалась и в классической среде баз данных. Причина простая: проектировщики баз данных просто не имели инструментальных средств, которые могли бы связать воедино данные и процедуры.
Проект объектно-ориентированной БД (ООБД) представляет собой результат применения объектно-ориентированных понятий при проектировании БД. Проектирование ООБД заставляет нас считать данные и процедуры единой сущностью, что позволяет строить базу данных, в которой объекты рассматриваются как отдельные модули. Конкретнее, ОО-проект требует, чтобы в описание базы данных включались объекты, а также их представление данных, ограничения и операции. Такие особенности проектирования, очевидно, дают более полное и значимое описание базы данных, чем это было в традиционных проектах БД.
ОО-проектирование является итеративным и последовательным по своей природе. Проектировщик БД идентифицирует каждый объект реального мира и определяет его внутреннее представление данных, семантические ограничения и операции. Затем проектировщик группирует схожие объекты в классы и реализует ограничения и операции с помощью методов. Здесь проектировщик сталкивается с двумя основными проблемами:
- построение иерархии класса или сети класса (если допустимо множественное
наследование) с помощью базовых типов данных и имеющихся классов. Решение
этой задачи определит отношения между кассами и подклассами;
- определение отношений внутри класса (связи атрибут-класс) с помощью базовых
типов данных и абстрактных типов данных (АТД).
Важность этой задачи трудно переоценить, поскольку чем правильнее используются иерархия классов и соглашения об отношениях внутри класса, тем более будет гибкой и приближенной к реальности конечная модель.
Возможность повторного использования кода достигается нелегко. Одна из самых трудных задач проектирования ООБД состоит в создании иерархии классов, т. е. создание новых классов на базе существующих. В будущем администраторы БД
должны будут получать специальные навыки для надлежащего выполнения этой задачи и создания кода, описывающего поведение данных. Таким образом, администраторы БД, скорее всего, будут представлять собой программистов баз данных, которые должны определять поведение данных. Роль администраторов БД видимо изменится, когда на них будут возложены задачи программирования и реализации операций над данными.
Как администраторы БД, так и проектировщики сталкиваются и с другими проблемами: в отличие от реляционных или ER-систем в ООБД очень мало инструментальных средств, помогающих в проектировании и реализации базы данных. Проект ООБД можно реализовать в любой модели баз данных. Однако если такой проект предназначен для реализации в любой традиционной БД, он должен разрабатываться с особой тщательностью, поскольку традиционные БД не поддерживают абстрактные типы данных, ненормализованные данные, наследование, инкапсуляцию и другие возможности ОО-модели.
Как и в любой объектно-ориентированной технологии, недостаток стандартизации затрагивает и сферу проектирования ООБД. В настоящее время не существует ни стандартная методология процесса проектирования ООБД, ни критерии (как, например, правила нормализации в реляционной модели) для надлежащей оценки проекта. Однако положение дел постепенно улучшается. В 1989 году отдельные группы практиков объектно-ориентированных технологий сформировали Object Management Group (OMG, рабочая группа по развитию стандартов объектного программирования) для обеспечения взаимодействия различных объектно-ориентированных систем (языки, инфраструктуры, базы данных и т. д.). Группа OMG разрабатывает независимые стандарты и спецификации для объектно-ориентированных систем и компонентов. Группа OMG разработала язык UML (Unified Modeling Language, унифицированный язык моделирования), представляющий собой графический язык для моделирования, проектирования и визуализации объектно-ориентированных систем. Язык UML используется не только для моделирования компонентов баз данных, но и для разработки процессов, модулей, сетевых компонентов и описания взаимодействия между ними. Группой OMG также были созданы стандарты объектов, определяющие Object Management Architecture (ОМА, технология управления объектом), которая допускает взаимодействие объектов на различных платформах и системах. Стандарт ОМА включает в себя Common Object Request Broker Architecture (CORBA, технология построения распределенных объектных приложений) и Common Object Services Specification (COSS, спецификация на общие средства объектного сервиса). Эта структура используется поставщиками ООСУБД и разработчиками для реализации систем, которые должны взаимодействовать с другими ООСУБД, а также СУРБД и более старыми СУБД.
Некоторые поставщики уже предлагают продукты, соответствующие спецификациям OMG CORBA и COSS, например, System Object Model (SOM) компании IBM и Object Request Broker (ORB) компании Hewlett-Packard. Другие объектные архитектуры также появляются как альтернатива разработкам стандартов, в частности это относится к технологиям OLE (object linking and embedding, технология связывания и внедрения объектов) и Component Object Model (COM, модель компонентных объектов) корпорации Microsoft. Хотя спецификации OLE/COM не являются общепринятым стандартом, широкое распространение на рынке сделало ее стандартом де-факто в среде Microsoft Windows.
11.8.00СУБД: преимущества и недостатки
По сравнению с СУРБД, системам ООСУБД необходимо пройти еще долгий путь, чтобы доля их акций на рынке программного обеспечения достигла двузначных чисел. На самом деле, в настоящее время ООСУБД занимают определенную нишу на рынке, как, например, компьютеры фирмы Apple занимают свою нишу на рынке микрокомпьютеров. Как Макинтош в компьютерной сфере, так и ООСУБД являются двигателем для инноваций в технологиях баз данных. И опять-таки, как и Макинтош, ООСУБД не получила серьезных дивидендов от общего роста рынка высоких технологий. Несмотря на это ООСУБД заслуживают исследования, особенно потому, что их ОО-свойства подталкивают к изменениям в технологии баз данных, которые сегодня представлены на рынке объектно-реляционными СУБД (ОРСУБД).
Проблема рынка ООСУБД состоит еще и в том, что многие возможности 00-подхода встраиваются в СУРБД при сохранении концептуальной простоты этих моделей, тем самым снижая привлекательность самих ООСУБД. Тем не менее, пока в РСУБД не включены рекомендованные К. Дейтом реализации доменов, ООСУБД обладает достаточными преимуществами, на которые стоит обратить внимание4 Большую часть этих достоинств в смысле возможностей управления сложными объектами мы рассмотрели достаточно подробно. Полнота использования всех достоинств ООСУБД зависит от объектно-ориентированного языка программирования. Именно поэтому, указывая на некоторые преимущества ООСУБД, мы ссылаемся на определенные языки программирования.
Преимущества
- ООСУБД допускает включение подробной семантической информации в базу
данных, что обеспечивает более естественное и реалистичное представление объектов реального мира.
- ООСУБД хорошо приспособлена для работы со сложными объектами, что делает
ее особенно удобной в специализированных приложениях. Традиционные базы
данных просто не могут эффективно работать в области CAD/САМ, медицине
(обработка изображений), с пространственными изображениями и специализированными мультимедийными приложениями.
- ООСУБД позволяет расширять базовые типы данных, что позволяет увеличить I
как функциональные возможности БД, так и возможности моделирования.
- Если платформа допускает эффективное кэширование, то ООСУБД обеспечивает
исключительную производительность по сравнению с реляционными БД при работе со сложными объектами.
- Контроль версий представляет собой очень важную особенность в специализированных приложениях CAD/САМ, при обработке изображений в медицине, при работе с пространственными изображениями, обработке текстов и в настольных типографских системах.
4 См. С. J. Date "Back to the Relational Future", www.dbpd.com/vault/9808date.html.
- Возможность многократного использования классов позволяет ускорить и упростить разработку баз данных и их приложений.
- Ускоренная разработка приложений за счет наследования и возможности много
кратного использования. Это преимущество достигается только после проработки таких особенностей 00, как:
- надлежащее использование иерархии классов; например, как использовать
существующие классы для создания новых классов;
- методология ОО-проектирования.
- ОСУБД предоставляет возможное решение проблемы интеграции с существующими и будущими СУБД в единую структуру. Это решение основано на ее сильных возможностях по созданию абстрактных типов данных и многообещающей переносимости.
Недостатки
- ООСУБД сталкиваются с сильным и эффективным сопротивлением со стороны устоявшихся СУРБД, особенно в связи с тем, что СУРБД (например, DB2
Universal Database и Oracle 8.0) включили в себя многие 00-возможности, не дав
таким образом ООСУБД шанс выйти вперед в конкурентной борьбе за рынок
обработки сложных данных.
- ООСУБД основаны на объектной модели, которой не хватает солидной теорети
ческой базы, имеющейся у реляционной модели, используемой в СУРБД.
- В некотором смысле ООСУБД рассматриваются как возврат к устаревшим сис
темам указателей, которые использовались в иерархических и сетевых моделях.
Эта критика не связана с тем, что в старых СУБД система указателей связывалась с навигационным стилем манипулирования данных и фиксированными путями доступа, и в сравнении с этим реляционные системы выглядели более привлекательными. Тем не менее, сложность системы указателей ООСУБД нельзя
отрицать.
- ООСУБД не имеет стандартного языка нерегламентированных запросов, как реляционные системы. В настоящее время разработка языка OQL еще далека от завершения. В некоторых реализациях ООСУБД имеются расширения реляционного SQL, обеспечивающие возможность интеграции ООСУБД и СУРБД.
- Реляционные СУБД предоставляют комплексное решение баз данных для бизнеса и управления, поддерживающих обе модели данных и набор четких правил
нормализации для проектирования и оценки реляционных БД. ООСУБД пока
еще не обладают такими возможностями.
- Стоимость изучения ООСУБД достаточно высока. Если вы рассмотрите прямые
затраты на обучение и время, необходимые для овладения преимуществами объектно-ориентированного подхода, вы поймете, почему ООСУБД редко рассматривают в качестве лучшего варианта при поиске решений для несложных бизнес-
задач.
- Недостаточное предложение ООСУБД на рынке вкупе с высокой стоимостью ее
изучения приводит к недостаточному числу специалистов по использованию
мощных ОО-технологий. Большинство технологий в настоящее время нацелены
на сферу инженерных приложений программного обеспечения. Поэтому только те компании, у которых есть достаточные ресурсы (деньги, время и квалифицированный персонал), могут позволить себе инвестиции в ОО-технологии.
- Недостаточная совместимость между различными ООСУБД затрудняет переход с
одного программного обеспечения на другое. Продукты с СУРБД очень схожи и
переход с одной системы на другую относительно прост.
Несколько лет назад специалисты полагали, что в будущем системы станут управлять объектами со встроенными данными и методами, а не записями, кортежами или файлами. Также считалось, что хотя с переносимостью пока еще не все ясно, все же ОО-подход будет оказывать основное влияние на последующее проектирование и использование БД. Теперь стало понятно, что достижения ООСУБД были не столь впечатляющими из-за успешного внедрения многих ОО-концепций в ОРСУБД в рамках реляционной структуры. И поскольку "Third Manifesto" ("Третий манифест") К. Дейта можно считать предвестником появления третьей волны реляционных баз данных, мы, возможно, вернемся "назад к реляционному будущему". В любом случае ООСУБД оказали сильное влияние на управление базами данных, и битва объектных и реляционных титанов далека от завершения. Наконец, поскольку объектные концепции, скорее всего, останутся в центре внимания будущих разработчиков СУБД, их несомненно стоит внимательно изучать.
11.9. Влияние объектно-ориентированных представлений на реляционную модель
Большинство реляционных БД спроектированы для обычных бизнес-приложений, в которых требуются возможность работы с нерегламентированными запросами и простое взаимодействие. Типы данных, встречающиеся в таких приложениях, хорошо известны и легко представляются в табличном виде и в равной степени удобны в небольших и четких транзакциях. Однако СУРБД не так хорошо, как ООСУБД, приспособлены к сложным приложениям CAD/САМ, медицинской сферы, для работы с пространственной графикой, в инженерном проектировании, имитационном моделировании, архитектурном проектировании и в теоретическом моделировании. К тому же СУРБД приближаются к пределу своих способностей в обработке бизнес информации, где появляется возможность хранения и поиска данных на мультимедийных носителях.
Быстро меняющаяся среда данных вынудила сторонников СУРБД ответить на вызов 00 расширением концептуальных возможностей реляционной модели. Результатом этих усилий принято считать Extended Relational Model (ERM, расширенная реляционная модель) или точнее объектно/реляционную модель (0/RM, или 0/РМ). Хотя разработка этой модели еще продолжается, ее характеристики выглядят так:
- расширяемость за счет новых определенных пользователем абстрактных типов
данных;
- сложные объекты;
- наследование;
- процедуры (правила и триггеры);
- идентификаторы, генерируемые системой (заменители OID).
Мы не считаем, что представили исчерпывающий список всех новшеств, добавленных к реляционной модели. И при этом мы не уверены, что перечисленные выше дополнения включены во все современные модели ERM. Однако большинство исследователей считают, что этот список представляет наиболее важные и желаемые расширения реляционной модели.
Стоит вновь вспомнить, что "Третий манифест" К. Дейта основан на его предположении, что реляционная модель уже содержит в себе все необходимые возможности при должной поддержке доменов. Поэтому реализация поддержки доменов даст те же преимущества, которые сейчас приписываются объектно-ориентированным расширениям (см. С. J. Date, "Back to the Relational Future: The third manifesto is ready for prime time", апрель 1999, www.dbpd.com/vault/9808date.html). Однако в настоящий момент реляционные домены не имеют (пока) коммерческой реализации, в то время как ОО-расширения реляционной модели — свершившийся факт.
Стратегия расширения реляционной модели основана на следующих положениях:
- семантические и объектно-ориентированные принципы необходимы для поддержки нового поколения приложений — особенно если эти приложения развертываются через Интернет;
- эти принципы могут и должны быть добавлены к реляционной модели;
- преимущества реляционной модели должны сохраниться для поддержки инвестиций в реляционные технологии и обеспечения обратной совместимости.
Большинство современных расширенных реляционных СУРБД отражают идеи, выраженные К. Дейтом в "Третьем манифесте" (см. предыдущее примечание). Они также предоставляют дополнительные и очень важные функции.
- Корпорации Oracle и IBM разрабатывают набор программных продуктов, названных ими Universal Database Servers (универсальные серверы баз данных). Хотя Universal Database Servers не являются чисто объектно-ориентированными СУБД — им не достает компонента хранения объектов — этот продукт поддерживает сложные типы данных, например, мультимедиа и трехмерные данные, и он обеспечивает возможность работы через Интернет. Интернет позволяет пользователям делать запросы к БД с помощью World Wide Web (WWW, Сеть). Фирма Oracle также разработала СУБД Oracle 95, в которую включена поддержка объектно-ориентированных расширений и хранилищ объектов, причем все это в едином устройстве базы данных. СУРБД DB2 Universal Database Server фирмы IBM имеет схожие характеристики.
- Система DB2 Universal Database фирмы IBM представляет собой проверенную базу данных, которая используется более чем в 1000 корпораций. Система IBM поддерживает оцифрованную информацию (видео и аудио), а также определенные пользователем типы данных и процедуры. Universal Database также претендует на ключевую роль в области Интернета с поддержкой Web-доступа и интерфейса Java-программирования.
5 К моменту перевода книги выпущена версия Oracle 11. — Прим. пер.
11.10. Новое поколение
систем управления базой данных
Применение ОО-концепций в отдельных компьютерных областях меняют как саму систему, так и ее поведение. В следующее поколение СУБД, скорее всего, будут включены свойства и объектно-ориентированных систем баз данных, и систем искусственного интеллекта, и экспертных систем, и распределенных БД, и Интернета.
ООСУБД представляют собой только первый шаг на пути к следующему поколению систем баз данных. Применение ОО-концепций в будущем позволит СУБД решать более сложные задачи как с нормализованными, так и с ненормализованными данными. Расширяемость систем баз данных это один из самых весомых вкладов объектно-ориентированной идеологии, который допускает использование новых типов данных, таких как множества, списки, массивы, видео, битовая графика, голос и карты. Новый стандарт SQL3 предоставляет такую возможность расширения, обеспечивая поддержку данных, определенных пользователем в дополнение к предопределенным типам данных (числовым, целым, строковым и т. д.). Например, в SQL3 администратор БД может создавать новые абстрактные типы данных, которые представляют собой наборы объектов, и использовать эти типы данных при определении таблиц. При этом допускается, чтобы в столбцах БД содержались наборы значений вместо единственного значения.
История развития рынка СУБД показывает, что ООСУБД будут по-прежнему занимать на рынке свою нишу, связанную с приложениями, в которых требуется обработка больших объемов данных специальных типов с множеством сложных отношений. Например, ООСУБД предпочтительно использовать в системах САПР/САУ (CAD/САМ), компьютеризованном производстве, специальных приложениях мультимедиа, медицинских и архитектурных приложениях, картографии, имитационном моделировании и научных исследованиях.
Однако в современных условиях рынка объектно/реляционные БД являются доминирующими для большинства сложных бизнес-приложений. Это вызвано потребностью обеспечить совместимость новых СУБД с имеющимися системами, фактическим принятием реляционной модели в качестве стандарта, а также явным преимуществом этой модели на рынке СУБД.
Резюме
Объектно-ориентированные концепции берут свое начало в объектно-ориентированных языках программирования, ставших альтернативой традиционным программным методам. Эти идеи позволяют пользователям с высокой точностью моделировать объекты реального мира и повышают производительность труда программистов.
Объект представляет собой концептуальную модель реального мира, в которую встроены представление данных (атрибуты) и их поведение (методы). Каждый объект имеет уникальный идентификатор, который не зависит от его атрибутов. Любой объект имеет атрибуты (переменные экземпляра) и каждый атрибут может ссылаться
на другой объект. Состояние объекта представляет собой набор значений, которые объект имеет в данный момент времени. Методы реализуют поведение объектов. Методы инициируются с помощью сообщений. Методы и представление данных инкапсулируются для того, чтобы скрыть их от внешних источников. Схожие объекты группируются в классы. Класс — это коллекция похожих объектов с обшей структурой (данными) и поведением (методами). Каждый объект класса представляет собой экземпляр класса или экземпляр объекта. Набор сообщений, которые может получать объект, называется протоколом объекта. Классы организуются в иерархию классов. Объект принадлежит классу в иерархии классов. Объект наследует переменные экземпляра (атрибуты) и методы всех своих суперклассов. Единичное наследование допускает для объекта только один родительский суперкласс. Множественное наследование позволяет объекту иметь несколько родительских суперклассов. Полиморфизм — это свойство, посредством которого различные объекты могут получать одни и те же сообщения различными способами. Абстрактные типы данных (АТД) реализуются через классы. АТД позволяют конечным пользователям описывать наборы схожих объектов с инкапсулированным представлением данных и их поведением, а также манипулировать ими. Сложный объект формируется из нескольких различных объектов, находящихся в сложных отношениях. В объектно-ориентированной модели данных (ООМД) проектировщик может создавать более достоверные представления реальных объектов. ООМД поддерживает понятия инкапсуляции, наследования, OID, сложные объекты и расширяемые типы данных. Схема объекта, или пространство объекта, описывает конкретную базу данных. ООМД использует O1D для связи между объектами и для навигации по пространству классов и суперклассов объектов. В ООМД нет необходимости использовать оператор JOIN для связывания данных, как этого требует реляционная модель. ООСУБД обладает рядом преимуществ перед традиционными СУБД. К преимуществам относятся большее семантическое наполнение базы данных, поддержка сложных объектов, более высокая производительность в сложных приложениях, возможность повторного использования классов и расширяемость типов данных в БД. К недостаткам современных ООСУБД следует отнести отсутствие стандартного языка нерегламентированных запросов, сложность изучения и нехватку специалистов. Сторонники реляционного подхода расширили реляционную модель с целью поддержки некоторых ОО-функций. Расширенная реляционная модель основана на реляционной модели и обеспечивает поддержку сложных объектов, расширяемость новых, определенных пользователем типов данных, наследование, методы и создаваемые системой идентификаторы (заменители OID).
Основные термины
Абстрактный тип данных (АТД) — abstract data type (ADT)
Ассоциативный объект — associative object
Атрибут — attribute
Базовый тип данных — base data type
Глава 6. Пример проектирования базы данных: компания Mighty-Mite Motors
Не так редко бывает, что проектировщика баз данных принимают на работу для того, чтобы он переделал имеющуюся корпоративную информационную систему. Как вы увидите из примера, разбираемого в этой главе, информационные системы давно существующих компаний развивались хаотически, планированию и интеграции не уделялось почти никакого внимания. Результатом явилась смесь разнородных хранилищ данных, из которой невозможно получить информацию, необходимую для работы компании, поскольку эти сведения никак не связаны друг с другом. В такой ситуации проектировщик должен изучить предметную область в целом и сосредоточить внимание на интегрированном доступе к данным в пределах всей корпорации, а также на проектировании одной или нескольких баз данных, удовлетворяющих потребностям различных отделов.
Компания Mighty-Mite Motors, имеющая определенный опыт в обработке данных, достаточно отчетливо представляет, что именно нужно от информационной системы, хотя служащие и не могут сразу выразить это словами. Почти наверняка имеется набор бумажных форм и отчетов, которые регулярно используются. Такие документы описывают информационные нужды организации с точки зрения входа и выхода и потому упрощают задачу проектировщика базы данных.