- •Введение
- •1. Объектно-ориентированные базы данных
- •Определение базы данных
- •Архитектура базы данных. Физическая и логическая независимость данных
- •Концептуальный уровень
- •1.3. Необходимость создания и состояние развития ообд
- •1.4. Принципы объектно-ориентированного подхода
- •1.5. Объектно-ориентированная модель данных
- •1.6. Объектно-реляционная модель данных
- •2. Технология проектирования ообд с применением языка uml
- •2.1. Общая методология проектирования баз данных
- •2.2. Объектно-ориентированное проектирование
- •2.3. Унифицированный язык моделирования
- •2.4. Определение прецедентов (вариантов использования)
- •2.5. Диаграммы классов
- •2.6. Диаграммы последовательностей, деятельности и состояний
- •2.7. Диаграммы активности
- •2.31. Движение заказа между отделами
- •2.8. Диаграммы сотрудничества (кооперации)
- •2.9. Диаграммы компонентов
- •2.10. Диаграммы развертывания
- •Создание объектной модели данных
- •3.1. Инструментальная среда AllFusion Component Modeler
- •3.2. Диаграммы объектной модели
- •3.3. Диаграммы вариантов использования
- •3.4. Диаграммы классов
- •3.5. Диаграммы последовательности
- •3.6. Диаграммы активности
- •3.7. Диаграммы состояний
- •3.8. Диаграммы кооперации
- •3.9. Диаграммы компонентов и диаграммы развертывания
- •Заключение
- •Библиографический список
- •Оглавление
- •Учебное издание
- •394026 Воронеж, Московский просп., 14
1.3. Необходимость создания и состояние развития ообд
Наиболее распространенной моделью данных является реляционная модель данных. Однако при увеличении объемов данных начинают проявляться недостатки реляционной модели данных и баз данных, построенных на ее основе. К этим недостаткам можно отнести следующие [1]:
- сложность структуры данных, вызванная необходимостью поддерживать требования нормализации;
- низкая производительность при поиске информации; поиск реализуется по ключу, что увеличивает в 3-5 раз количество операций доступа;
- ограниченный набор типов данных;
- представление данных только в виде взаимосвязанных двумерных таблиц и невозможность реализации таблиц с нелинейной структурой;
- невозможность послойного рассмотрения данных с учетом разного уровня агрегирования (например: выборка всех работников (первый уровень агрегирования), выборка преподавателей (второй уровень агрегирования), выборка докторов наук из преподавателей (третий уровень агрегирования);
- невозможность поддержки объектно-ориентированной идеологии; невозможность задать для определенного типа данных набора операторов-методов и/или набора типовых свойств;
- сложность совмещения с технологией хранилищ данных.
Одним из способов устранения указанных недостатков является построение и использование объектно-ориентированной базы данных (ООБД).
В 1989 году был опубликован «Манифест ООБД» [2]. В нем была предложена формула
ООСУБД = СУБД + ООЯП,
где сокращение ОО означает объектно-ориентированный, ЯП – язык программирования.
ООСУБД должна поддерживать объекты с нелинейной структурой, имеющие иерархию типов, реализовывать идеи инкапсуляции и наследования.
В 1991 году была сформирована группа Object Database Management Group (ODMG), которая должна была создать стандарты для ООБД. В 1993 году эта группа предложила стандарт для ООБД, названный ODMG-3. Данный стандарт включает:
- объектную модель Object Data Model (ODM);
- язык определения объектов Object Definition Language (ODL);
- объектный язык запросов Object Query Language (OQL);
- интерфейсы языков программирования (С++ и другие).
Реализовать в полном объеме рекомендации ODMG-3 пока не удается.
Использование объектно-ориентированных принципов позволяет создать описание (модель) предметной области в виде совокупности объектов – сущностей, объединяющих данные и методы обработки этих данных (процедуры). Каждый объект обладает собственным поведением и моделирует некоторый объект реального мира.
В объектном подходе акцент переносится на конкретные характеристики физической или абстрактной системы, являющейся предметом программного моделирования. Свойства, характеризующие объект и его поведение, остаются неизменными. Объект может только менять состояние, управляться или становится в определенное отношение к другим объектам.
Основные положения ООБД, базирующиеся на объектно-ориентированном подходе, следующие [1]:
- в качестве значения столбца может быть использован произвольный кортеж; другими словами столбец может быть некоторой другой таблицей; таким образом, создается возможность реализации таблиц с нелинейной структурой;
- процедура манипуляции данными позволяет присоединять процедуры, определенные значениями столбцов;
- данные столбцов могут наследоваться;
- элементами отношений могут служить не только отдельные элементы, как в реляционных БД, но и множества;
- формируются классы данных, которые организуют столбцы в иерархию.
Базовым языком ООБД чаще всего является С++. Для работы с такими ООБД разрабатывается новый вариант языка SQL, получивший название SQL3 и содержащий внутри себя в качестве частного случая реляционную модель (SQL2).
В технологии разработки ООБД конкурируют два направления [1].
- Distributed Object Linking and Embedding (OLE) фирмы Microsoft;
- Common Object Request Broker Architecture (CORBA) группы OBDMG, поддерживаемая фирмами IBM, Novell, DEC. В рамках этого направления выделены и сформированы указанные ранее язык определения объектов ODL, объектный язык запросов OQL, язык определения интерфейсов IDL.
Во втором направлении обычно выделяют два стандарта управления БД:
- ODL/OQL, в котором объекты и методы формируются обычно с помощью языка программирования С;
- язык SQL3.
Необходимо отметить, к объектно-ориентированным можно отнести только те базы данных, у которых все структурные элементы реализации (база данных, алгоритм работы, интерфейс пользователя) построены с использованием объектно-ориентированного подхода.
В настоящее время насчитывается свыше 300 объектно-ориентированных СУБД (ООСУБД). Сведения о некоторых из них приведены в табл. 1.
Таблица 1
Характеристики некоторых ООСУБД
Фирма – производитель |
Название ООСУБД |
Средства разработки |
Подход к разработке |
|
Objectivity |
Objectivity/DB |
C, C++, SQL, Java |
Расширение объектно-ориентированных библиотек классов |
|
Poet Software |
Poet |
C, C++, ODBC, Java |
||
Object Design |
Object Store |
C, C++, Java |
||
Ontos Inc. |
|
C++, Java |
Расширение объектно-ориентированных библиотек классов |
|
Versant Object Technology |
Ontos DB, Versant |
C++, Java |
||
Computer Associate |
Jasmine |
C++, Java |
||
НПЦ «Интеллект Плюс» |
ODB-Jupiter |
C++ |
||
O2 Technology |
O2 |
C++, Java |
Вставка объектно-ориентиро-ванного языка БД в обычный базовый язык |
|
GemStone Inc. |
GemStone |
C++, Java |
Расширение языка (С++) возможностями работы с БД |
|
InterSystems |
Cache |
Semantic Information Manager, Cache ObjectScript |
Новый язык базы данных или модели данных |
Можно выделить следующие сферы применения ООСУБД и ООБД:
- моделирование работы технических устройств и технологических процессов;
- САПР;
- управление производством;
- обработка изображений;
- CASE-системы для автоматизации разработки информационных вычислительных систем;
- гипертекстовые и издательские системы;
- экспертные системы.
Многие фирмы–разработчики коммерческих СУБД обратились к объектным технологиям и доработали свои СУБД. Например, фирмы IBM и Oracle добавили объектную надстройку над реляционным ядром системы (продукты DB2 и ORACLE). Фирма Informix приобрела объектно-ориентированную СУБД Illustra и встроила ее в свою СУБД.