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




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


Остается "святая ОО-троица" - инкапсуляция, наследование, полиморфизм, которая опять же достаточно легко выражается через понятия "спецификация типа" и "реализация типа". В самом деле:

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

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

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

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


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