Классика баз данных - статьи

       

Принципы организации иерархии


, к.т.н.

Благодаря наличию большого количества коммерческих и свободно распространяемых реляционных систем баз данных (РСУБД), именно данные продукты являются доминирующим программным обеспечением, используемым для хранения информации широкого круга прикладных предметных областей. При этом для построения графического интерфейса пользователя (ГИП), серверов приложений, распределённых объектов и т.п. чаще всего используют объектно-ориентированные языки программирования (ООЯП). Из-за различий в концепциях и областях применения РСУБД и ООЯП возникает так называемое объектно-реляционное несоответствие (ОРН) 1.

Для снижения последствий ОРН широко используются методы (паттерны) объектно-реляционного отображения (ОРО, Object-Relational Mapping), суть применения которых заключается в возможности реализации элементов объектной системы (описания классов, создания иерархии наследования, описание отношений между классами и т.п.) на основе реляционной БД. Методы ОРО особое внимание уделяют проблеме сохранения экземпляров классов, значений атрибутов и т.п. С точки зрения реализации все методы ОРО можно разделить на две категории:

  • Методы ОРО без поддержки метаинформации .

  • Методы ОРО с поддержкой метаинформации .

    Под метаинформацией подразумевается наличие информации об объектной системе, такой как состав атрибутов и структура классов, описание иерархии наследования и принадлежности атрибутов к определенным классам.

    Учитывая тенденцию повсеместного добавления метаинформации в объектно-ориентированные языки программирования (Delphi, Java, С#), можно утверждать, что именно методы второй категории наиболее перспективны, так как их применение позволяет значительно расширять и изменять модель предметной области системы, не внося изменений в физическую структуру базы данных (БД).

    Несмотря на различие в подходах и физической структуре таблиц, конечным результатом применения методов ОРО является реализация возможности объявления классов и сохранения объектов (экземпляров классов с заданными значениями атрибутов), представляющих сущности прикладной предметной области.

    Содержание    Вперед