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

       

Один из подходов к организации объектной системы на основе реляционной СУБД


, к.т.н.

Из-за наличия большого количества работ, посвящённых методам объектно-реляционного отображения (ОРО), широкую популярность получили инструменты, позволяющие организовать объектную систему на основе РСУБД [1-4]. В данной статье описан один из подходов, использованный при организации объектной системы в среде СУБД Microsoft SQL Server 2005, на основе которого разработан инструмент, успешно применяемый автором в течение последних пяти лет при разработке крупной ERP-системы.

Проектирование и реализация любого программного продукта (ПО) начинается с формулирования требований (критериев) оптимальности (КО), которым должна соответствовать полученная реализация. Для инструмента, позволяющего организовать объектную систему в среде РСУБД, были выдвинуты следующие КО:

  1. Поддержка обширной метаинформации;
  2. Поддержка связей между отношениями;
  3. Трансформация отношений в классы;
  4. Поддержка методов обработки данных;
  5. Поддержка отношений наследования и возможности полиморфизма для методов.

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

Физическая структура реляционной базы данных реального приложения содержит множество таблиц и связей. Поэтому необходим общий унифицированный механизм представления связей между отношениями (КО2). Следует учесть главное отличие между внешним ключом, организующим ссылочную целостность между таблицами и принципы реализации отношений между классами. В первом случае в подчинённой таблице создаётся поле, значение которого должно равняться null или быть равным одному из имеющихся значений альтернативного ключа в главной таблице.

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