Объектно-ориентированные базы данных: понятие, основные концепции, управление, примеры
В объектно-ориентированных базах данных (ООБД) пользователи могут устанавливать операции с определенной базой данных, состоящей из объектов, что могут быть самых разных типов и для которых установлены операции. Они могут эффективно обрабатывать двоичную информацию, например, мультимедийные объекты. Еще одним дополнительным преимуществом ООБД является то, что она может быть запрограммирована с небольшими процедурными различиями, не затрагивая всю систему.
Предпосылки создания стандарта
История объектно-ориентированные базы данных ООБД начинается с конца прошлого столетия. Они были созданы, чтобы удовлетворить потребности новых приложений. При этом предполагалось, что объектно-ориентированные базы данных будут революционизировать в программных системах в течение 90-х годов. В настоящее время понятно, что это не так. Однако возрождение этой концепции благодаря сообществам свободного ПО и выявлению подходящих для него приложений мотивирует пересмотр характеристик ООБД, являющейся альтернативой вездесущим реляционным базам данных.
Ориентация на объекты обеспечивает гибкость для обработки некоторых или всех требований и не ограничивается типами данных и языками запросов традиционных БД. Ключевой особенностью ООБД является возможность, которую они предоставляют разработчику, позволяя ему указывать как структуру сложных объектов, так и операции применения. Еще одной причиной создания ООБД является растущее использование языков для разработки ПО.
Базы данных стали фундаментальными основами многих информационных систем, но традиционные БД сложно использовать, когда приложения, которые к ним обращаются, написаны на языке C ++, Smalltalk или Java. Например, объектно-ориентированные базы данных 1С были разработаны таким образом, чтобы их можно было напрямую интегрировать с приложениями, использующих объектно-ориентированные языки, приняв их концепции: Visual Studio.Net,C ++, C #, Microsoft SQL Server и другие.
Основное преимущество ООБД — полное устранение необходимости в RMs1 (импеданс) с последующим улучшением производительности.
Недостатки:
- Очень примитивные консультационные механизмы, без самостоятельного стандарта принятой платформы.
- Невозможность хранимых процедур, поскольку с объектами можно ознакомиться только в клиенте.
- Незрелость на рынке.
- Нет физической группировки объектов.
Парадигма объекта
Объектно-ориентированные базы данных - это программируемая БД, которая хранит сложные данные и их взаимосвязи напрямую, без назначения строк и столбцов, что делает их более подходящими для приложений, работающих с большими пакетами. Объекты имеют отношения «многие ко многим» и доступны через использование указателей, которые связаны с ними для установления отношений. Как и любая программируемая, ООБД предоставляет среду для разработки приложений и постоянный репозиторий, готовый к эксплуатации. Она хранит и манипулирует информацией, которая может быть оцифрована в виде объектов, обеспечивает быстрый доступ и предоставляет большие возможности обработки.
Основные понятия, используемые в объектно-ориентированной базе данных:
- идентичность объектов;
- тип конструктора;
- совместимость с языками;
- иерархии типов и наследования;
- обработка сложных объектов;
- полиморфизм и перегрузка операторов;
- создание версий.
Для того чтобы полностью рассмотреть все аспекты, какие понятия характеризуют объектно-ориентированную базу данных, важно отметить все важные парадигмы объекта:
- Инкапсуляция — свойство, которое позволяет скрыть информацию для остальных объектов, предотвращая тем самым неправильный доступ или конфликты.
- Наследование — свойство, посредством которого объекты наследуют поведение в иерархии классов.
- Полиморфизм — свойство операции, с помощью которого она может применяться к различным типам объектов.
- Интерфейс или подпись операции включает в себя имя и типы данных ее аргументов или параметров.
- Реализация или метод операции указывается отдельно и может быть изменена без влияния на интерфейс. Пользовательские прикладные программы могут работать с данными, вызывая указанные операции через их имена и аргументы, независимо от того, каким образом они были реализованы.
Классы и функциональность
Рассматривая концепцию классов в ООБД, нужно различать термины «класс» и «тип». Тип применяется для описания набора объектов со схожим поведением. В этом смысле он зависит от того, какие операции могут быть вызваны на объекте. Класс — это набор объектов, имеющих одинаковую внутреннюю структуру, поэтому он определяет реализацию, а тип описывает способ использования.
Термин «создание экземпляров» нацелен на тот факт, что конкретизацию класса можно применять для образования набора объектов, которые имеют одинаковую структуру и поведение, устанавливаемые классом.
Особенность, которая очень важна для эволюции объектов, заключается в том, что он может изменить свой класс, в том числе атрибуты и операции, при этом сохраняя идентичность. Это потребует наличия механизма для обработки возникающей семантической целостности.
Наследование объектно-ориентированной базы данных организации позволяет определить класс, как подкласс уже существующего суперкласса. Он будет наследовать все атрибуты и методы от последнего и может дополнительно определять свои собственные. Эта концепция является важным механизмом поддержки повторного использования. Одинаковые части структуры двух разных классов могут быть определены только один раз в общем суперклассе, таким образом, будет написано меньше кода. Есть некоторые системы, позволяющие классу быть подклассом у более, чем одного суперкласса. Эта функция называется множественным наследованием, в отличие от одиночного наследования.
Пример объектно-ориентированной базы данных
Часто бывает полезно использовать одно и то же имя для разных, но похожих методов суперкласса media из классов picture и video. Многие файлы могут просматриваться разными зрителями. У них часто возникает потребность просматривать все фото и видео с помощью метода «просмотр», и должна быть запущена соответствующая программа. При вызове функции и передаче ссылки на видео запускается медиаплеер. Для реализации этой возможности, прежде всего, необходимо определить операцию «представление» в общем суперклассе media из классов picture и video. Каждый из подклассов переопределяет операцию просмотра для своих конкретных потребностей. Это приводит к различным методам, которые имеют одно и то же имя операции. В этом случае использование этой функции имеет важное преимущество.
Структура ООБД
Объектно-ориентированная парадигма основана на инкапсуляции данных и кода, относящегося к каждому объекту в одном модуле. Концептуально все взаимодействия между ним и остальной частью системы осуществляются с помощью сообщений. Следовательно, интерфейс между ними определяется разрешенным набором.
В общем, каждый объект связан с набором:
- Переменных, которые содержат данные объекта и соответствуют атрибутам модели ER.
- Сообщений, на которые он отвечает. Каждое может иметь или нет параметры, один, или несколько.
- Методов, каждый из которых является кодом, реализующий сообщения и возвращает значение в ответ на него.
Сообщение в ОО-среде не подразумевает использование физических смс в компьютерных сетях. Наоборот, это относится к обмену запросами между объектами независимо от правильных деталей их реализации. Иногда выражение вызывает метод, чтобы инициировать факт отправки сообщения объекту, и использует выполнение соответствующего метода.
Идентичность объектов
Система объектно-ориентированных баз данных предоставляет уникальную идентификацию каждому независимому объекту, хранящемуся в базе данных. Он обычно реализуется с помощью уникального идентификатора объекта, сгенерированного системой, или OID. Значение OID невидимо для внешнего пользователя, но система использует его внутри для управления ссылками между объектами.
Основное свойство OID - быть неизменным. Значение OID для конкретного объекта никогда не должно меняться. Это сохраняет идентичность представляемого реального мира. Также предпочтительно, чтобы каждый OID использовался только один раз, даже если он удален из базы данных, его OID не должен быть назначен другому. Также часто считается неуместным основывать его на физическом адресе объекта в хранилище, поскольку реорганизация их в БД может изменить OID. Однако некоторые системы используют физический адрес в качестве OID для увеличения эффективности получения объектов. Объектно-ориентированная структура автоматически накладывает реляционные ограничения, обычно более применимые: домен, ключ, целостность объекта и ссылочная целостность.
Три основных конструктора
В ООБД значения или состояния сложных объектов могут быть созданы из других с помощью конструкторов определенных типов. Один из способов представления их состоит в том, чтобы рассматривать каждый, как триплет (i, c, v), где i - уникальный идентификатор объекта (OID), c - конструктор, то есть указатель того, как создается значение объекта, а v является значением или состоянием объекта. В зависимости от модели данных и системы ОО может быть несколько конструкторов.
Три основных конструктора объектно-ориентированных баз данных:
- атомов;
- кортежей;
- наборов.
Другие более общего пользования — это списки и схемы. Существует также домен D, который содержит все основные атомарные значения, доступные непосредственно в системе. Обычно они включают целые и действительные числа, символьные строки, даты и любые другие типы данных, которые система обрабатывает напрямую. Как структура объектов, так и операции включены в определения классов.
Совместимость с языками программирования
Основные концепции объектно-ориентированные базы данных используются в качестве инструментов проектирования и кодифицируются для работы с БД.
Существует несколько возможных языков, на которых эти понятия могут быть интегрированы:
- Расширение языка для обработки данных, таких как SQL, путем добавления сложных типов и ООП. Системы предоставляют объектно-ориентированные расширения для реляционных систем, называемые объектно-ориентированными реляционными системами.
- Применяют существующий объектно-ориентированный язык программирования и расширяют его для работы с базами данных. Они называются постоянными языками программирования и позволяют разработчикам работать напрямую с данными, без необходимости проходить через язык для обработки данных, таких как SQL. Они называются постоянными, поскольку данные продолжают существовать после завершения программы, которая их создала.
Принимая решение о том, какой вариант использовать, нужно иметь в виду, что постоянные языки, как правило, являются мощными, и относительно легко допустить ошибки программирования, которые повреждают БД. Сложность языков затрудняет автоматическую оптимизацию высокого уровня, такую как сокращение дискового ввода-вывода. Во многих приложениях возможность декларативных запросов имеет большое значение, но постоянные языки в настоящее время не допускают такие запросы без проблем.
Иерархия типов наследования
Схемы объектно-ориентированных баз данных обычно требуют большого количества классов. Однако несколько классов похожи друг на друга.Чтобы разрешить прямое представление сходств между ними, потребуется поместить их в иерархию специализаций. Эта концепция похожа на модели ER. Специализации классов называются подклассами, которые определяют дополнительные атрибуты и методы для существующего класса. Объекты, созданные с помощью подклассов, наследуют все от родительского. Некоторые из этих унаследованных характеристик, возможно, сами были позаимствованы от более высоких в иерархии.
Объекты считаются сложными потому, что они требуют значительной области хранения и не являются частью стандартных типов данных, которые обычно предлагает управление объектно-ориентированными базами данных (СООБД). Поскольку размер объектов является значительным, СООБД может получить часть объекта и предоставить ее прикладной программе до получения всего объекта. А также может использовать методы буфера и кэширования для получения частей объекта заранее, до того, как прикладная программа получит к ним доступ.
ООБД позволяет пользователям создавать новые типы, которые включает в себя как структуру, так и операции, в этом случае - это система расширяемых типов. Можно создавать библиотеки новых типов, определяя их структуру и операции. Многие из них могут хранить и получать обширный структурированный объект в форме строк и символов или битов, которые передают «как есть» в прикладную программу для интерпретации.
Метод может напрямую обращаться к атрибутам целевого объекта по имени, включая любые, унаследованные от родительских классов, но должен иметь доступ к атрибутам других объектов со вторичными сигналами. Концепция позволяет связывать одно и то же имя или символ оператора с двумя или более различными реализациями его в зависимости от типа объектов, к которым он применяется.
Создание приложений
Многие приложения баз данных, использующие ОО-системы, требуют наличия нескольких версий одного и того же объекта. Обычно действия по обслуживанию применяются к программной системе по мере изменения их требований, и включает в себя смену некоторых модулей разработки и реализации. Если система уже работает, и если необходимо изменить один или несколько модулей, разработчик должен создать новую версию каждого из них, внеся изменения.
Следует отметить, что может быть более двух версий объекта, в случае, если требуются две в дополнение к оригинальному модулю. Собственные версии одного и того же программного модуля могут обновляться одновременно. Это называется параллельным проектированием объектно-ориентированных баз данных. Однако всегда наступает момент необходимости их объединения, чтобы гибридная ООБД включала сделанные изменения потребуется, чтобы они были совместимы.
Объектно-ориентированные условия
Все компьютерные системы должны обладать свойствами своей архитектуры, чтобы их можно было рассматривать. Например, система должна иметь таблицы, чтобы считаться реляционной. ООБД не является исключением и содержит некоторые базовые свойства объектной архитектуры. Однако в реальном мире многие из этих свойств обсуждаются, а некоторые, такие как множественное наследование, рассматриваются, как усовершенствования модели объектно-ориентированная базы данных, а не как часть базовой основы. Например, в объектно-ориентированном языке Smalltalk множественное наследование не поддерживается, даже если оно считается частью объектной архитектуры.
Методы для класса определяют набор операций, которые могут быть выполнены над объектом. Например, когда он применяется к объекту, он либо возвращает значение, либо выполняет некоторую операцию для обновления значений. Иногда методы не возвращают его. Если бы метод был разработан, чтобы обновить количество пассажиров для транспортного средства, никакое значение не было бы возвращено, но элемент данных в целевом объекте изменил бы его.
Объекты являются фундаментальной концепцией в ООБД. По сути, объекты являются абстрактным представлением вещей реального мира, которые хранятся в ней. Объект является экземпляром класса в том смысле, что он исключен из его определения.
Можно думать об объекте, как об автономном пакете, который состоит из трех частей:
- Собственная личная информация, значения данных.
- Частные процедуры, которые будут манипулировать значениями, через определение класса.
- Открытый интерфейс, чтобы этот объект мог общаться с другими.
Примеры ООБД
Использование ООБД упрощает концептуализацию, поскольку более естественным образом представлять информацию, которую необходимо сохранить. Для моделирования структуры или логики базы данных, использование диаграмм классов, позволяет ввести классы с их структурными отношениями и наследованием. Для того чтобы смоделировать часть динамики, взаимодействие и поведение между объектами, диаграмма последовательности будет использоваться для представления взаимодействия между объектами, расположенным во временной связи, описывая возможные состояния, таким образом, чтобы они могли быть найденными с учетом измененного состояния после возникновения события.
Пример объектно-ориентированные баз данных представлен ниже.
Они имеют имя и время жизни, которое может быть кратковременным или постоянным. Ключ ООБД — это способность, которую они предоставляют разработчику, чтобы указать столько структур и операций будут применены к ним. Существует гибкость и поддержка обработки сложных типов данных. Можно создать классы и подклассы, например, клиентская база может иметь подкласс ссылки этого клиента, и он будет наследовать все атрибуты и характеристики исходного класса, такой подход позволяет быстро и гибко обрабатывает сложные данные.