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

       

Отображение данных (T1)


Примитивные типы в языках программирования обычно не соответствуют типам в базе данных, и примитивные типы в разных базах данных обычно различаются. Например, в SQL-92 не определяется абсолютная точность многих числовых типов. Операции также могут быть не согласованными; распространенным примером является сравнение интернациональных строк.

Методы отображения классов в реляционные базы данных являются предметом расширенных исследований и разработок []. В общих словах, наиболее распространенный подход заключается в определении отображений между моделью «сущность-связь» (entity/relationship, ER-моделью) и объектно-ориентированной моделью классов. ER-модель обеспечивает логическое представление структуры реляционной базы данных. В ER-модели атрибуты представляют примитивные значения данных, такие как строки символов и целые числа. Они отображаются в члены экземпляра объекта в объектно-ориентированной модели. Связи ER-модели отображаются в ссылки между объектами. Многозначная связь является коллекцией ссылок. В ER-модели может быть также представлена подтипизация, имеющаяся в объектно-ориентированной модели. В некоторых случаях имеется несколько способов выполнения отображения, и результирующие проектные решения обычно основываются на производительности или других факторах.

Например, на рис. 1 определена простая модель служащих и отделов в виде двух Java-классов. В терминах баз данных поля department и employees представляют связь один-ко-многим между Departments и Employees.

Персистентность методов. При рассмотрении отображения между объектами и базами данных некоторые исследователи предлагают персистентно сохранять методы объекта, а не только состояние объекта []. Иногда предлагается разрешить даже персистентность потоков управления, элементов управления пользовательских интерфейсов и сетевых соединений []. Учитывая, что интеграция состояния и поведения является одной из ключевых концепций объектно-ориентированного программирования, можно утверждать, что персистентное отображение, в котором не сохраняются поведение/методы, нарушает базовые принципы объектно-ориентированного программирования. С другой стороны, разделение данных и поведения оказалось достаточно полезным при разработке и развитии приложений, требующих переработки большого объема данных. Этот вопрос остается без ответа, и в данном обзоре не предлагается какой-либо критерий для оценки полезности персистентности методов.



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