Предисловие Системы управления базами данных (субд) – это программные комплексы, предназначенные для работы со специально организованными файлами (массивами данных, долговременно хранимыми во внешней памяти вычислительных систем), которые называются

Вид материалаДокументы

Содержание


From customer
From customer
FTpaeimo 1. Система должна поддерживать сложные объекты.
Правило 2. Система должна поддерживать идентификацию объекта.
Правшго 3. Объекты должны быть инкапсулированы.
Правило 4. Система должна поддерживать типы или классы.
Правило 7. Система должна быть законченной в вычислительном отношении.
Правило 8. Система должна быть расширяемой.
Правило 9. Система должна помнить местонахождение данных.
Правило 10. Система должна обеспечивать возможность управления большими ба­зами данных.
Правило 13. Запросы к данным должны быть простыми.
Поддержка множественного наследования.
Поддержка распределенных ООСУБД.
Поддержка контроля версий.
11.7. Влияние объектно-ориентированного подхода на проектирование баз данных
11.8.00СУБД: преимущества и недостатки
11.9. Влияние объектно-ориентированных представлений на реляционную модель
IBM представляет собой проверенную базу данных, которая используется более чем в 1000 корпораций. Система IBM
11.10. Новое поколение
Основные термины
...
Полное содержание
Подобный материал:
1   ...   10   11   12   13   14   15   16   17   ...   23

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, имеющая определенный опыт в обработке данных, достаточно отчетливо представляет, что именно нужно от информа­ционной системы, хотя служащие и не могут сразу выразить это словами. По­чти наверняка имеется набор бумажных форм и отчетов, которые регулярно используются. Такие документы описывают информационные нужды органи­зации с точки зрения входа и выхода и потому упрощают задачу проектиров­щика базы данных.