Три манифеста баз данных ретроспектива и перспективы

       

Однородность


Ведутся жаркие споры о степени однородности таких систем. Является ли тип объектом? Является ли метод объектом? Следует ли эти три понятия рассматривать отдельно? Эту проблему можно рассматривать на трех разных уровнях: уровне реализации, уровне языка программирования и уровне интерфейса.

На уровне реализации необходимо решить, будет ли информация о типе храниться как объект или будет реализована некоторая специализированная система. Это тот же самый вопрос, с которым сталкиваются проектировщики систем реляционных баз данных при принятии решения о том, как следует хранить схему  – в виде таблицы или некоторым специальным образом. Решение следует принимать с учетом эффективности и простоты реализации. Какое бы ни было принято решение, оно не зависит от решения, принимаемого на более высоком уровне. Что касается объектно-ориентированных систем, то разногласия по поводу того, являются ли типы объектами, сохранились до сих пор. Правильнее сказать, что появилась некоторая каноническая точка зрения (где типы и классы объектами не являются, но сохраняется позиция однородности). По отношению к стандартным SQL -ориентированным базам данных уже не существует сомнений относительно методов сохранения схемы базы данных – в стандарте SQL , начиная с SQL /92, специфицирована структура таблиц (точнее, представлений), описывающих схему базы данных (информационной схемы в терминах SQL ).

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

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



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