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




ОО- и Р-. Может ли существовать объектно-ориентированная модель данных?


Отмечу, что я вопрошаю именно про модель данных

и не в коем случае не утверждаю, что невозможными или ненужными является ОО-парадигма (концепция) или ОО-системы (в конце концов, это наша цель). Дело в том, что мне неоднократно встречалось очень расплывчатое представление о том, что кроется за самим понятием "модель данных" – хотя он имеет весьма четкое формальное определение, данное Е. Коддом [, ], более известным в качестве автора реляционной модели данных. Модель данных определяется как совокупность коллекции типов (где тип – это множество значений), коллекции возможных операций над экземплярами этих типов и коллекции применимых к ним ограничений целостности.

Следуя данному формальному определению понятия "модель данных", реляционная модель данных

  • определяет тип "отношение",
  • вводит операции реляционной алгебры (применив которые к значениям отношений, мы получим другие значения отношений),
  • определяет ключи, позволяющие ограничить целостность данных, представленных в виде одного (ключи отношения) или нескольких (внешние ключи) отношений.

    Эти три пункта составляют то, что в дальнейшем мы будем обозначать как формальная реляционная модель данных (фРМД).

    Что же касается ОО-парадигмы, то я не смогу привести каких-либо формальных утверждений за фактическим отсутствием оных: более-менее серьезные авторы перед рассуждениями на ОО-темы всегда тщательно расшаркиваются в неопределенности и неоднозначности ОО-терминов и идей. В самых же общих словах ОО-система описывается буквально одной фразой – речь идет о множестве идентифицируемых инкапсулированных объектов полиморфных наследуемых классов.

    Давайте сформулируем эту фразу в терминах, которые существовали до эры ОО-языков. Вместо "идентифицируемый объект" будем говорить "идентифицируемая переменная, служащая для хранения значения некоторого типа, для которого определено множество операций". Вместо термина "класс" мы будем использовать термин "тип".


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