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

       

ОО-запреты


  1. Relvar не являются доменами.

    Комментарии:

    • Иными словами, мы категорически отвергаем равенство вида "отношение = объектный класс" (более точно, равенство "relvar = объектный класс"), отстаиваемое, например, в [23]).
  2. Никакое значение (скалярное или любого другого вида) не должно обладать какого-либо рода идентификатором (ID), который как-либо отличается от значения самого по себе.

    Комментарии:

    • Иными словами, мы отвергаем идею "объектных идентификаторов" (object ID). Как следствие этого, мы отвергаем: a) идею о том, что "объекты" могли бы использовать такие идентификаторы для совместного использования "подобъектов"; b) идею о том, что пользователи могли бы вынуждаться "разыменовывать" (dereference) такие идентификаторы (либо явно, либо неявно), чтобы получать значения.
    • Мы отвергаем также идею "идентификаторов кортежей" (tuple ID) (некоторые авторы, как нам кажется, отождествляют идентификаторы кортежей и объектные идентификаторы).
    • Этот запрет не препятствует тому, чтобы объекты вне dbvar обладали идентификаторами, которые являются "каким-либо образом отличными" от самих объектов. Он также не препятствует появлению таких идентификаторов в dbvar. (Мы должны подчеркнуть, что термин "объект" используется здесь в его общем смысле, а не в специализированном смысле объектно-ориентированного подхода.) Поэтому, например, домен имен файлов базовой операционной системы является допустимым доменом.
  3. Любая нотация "публичной переменной экземпляра" (public instance variable), обеспечиваемая для оперирования значениями в доменах, должна быть всего лишь сокращенной синтаксической формой для вызова некоторых специальных функций (и возможно, “ссылок на псевдопеременные”, если такие переменные экземпляра могут появляться в левой части операций присваивания). Какая-либо непосредственная взаимосвязь между такими переменными экземпляра и реальным представлением значений из соответствующего домена не должна иметь обязательного характера.
  4. В D не должна поддерживаться ни концепция "защищенных" (protected) переменных экземпляра (в отличие от приватных (private)), ни концепция "друзей" (friends). Пояснение этих понятий см. [20].

    Комментарии:

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


  • Relvar не являются доменами
  • Никаких идентификаторов объектов
  • Никаких "публичных переменных экземпляра"
  • Никаких "защищенных переменных экземпляра" или "друзей"


  • Содержание раздела