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



         

Резюме - часть 3


В течение первого десятилетия работ над ОР-отображением усилия сосредотачивались на попытках подтащить объекты поближе к базе данных, чтобы разработчики могли фокусироваться на программировании в рамках одной парадигмы (в качестве которой выступали, конечно, объекты). Однако в следующие несколько лет интерес к «скриптовым» языкам с более сильной поддержкой множеств и списков, таким как Ruby, побудил идею о возможной пригодности другого решения: ввести реляционные понятия (которые, по своей сути, ориентированы на множества) в массовые языки программирования, облегчив тем самым устранение разрыва между «множествами» и «объектами». В этой области велось не очень много работ, в основном исследовательские проекты и/или языки, «выходящие за рамки общепринятого», но некоторые работы стали популярными в сообществе, например, функционально-объектные гибридные языки Scala

и F#, а также прямая интеграция с традиционными объектно-ориентированными языками, обеспечиваемая в проекте LINQ

компании Microsoft для C# и Visual Basic. К сожалению, одну из таких работ, а именно, стратегию SQL/J, постигла неудача. Даже в этом случае подход был ограниченным. В нем не предпринимались попытки внедрить множества в Java, а просто обеспечивались возможности препроцессорной обработки встроенных вызовов SQL и их трансляции в код JDBC.

6. Интеграция реляционных понятий с оболочками. Разработчики просто соглашаются с тем, что эта проблема является разрешимой, но только при изменении ее видения. Вместо того чтобы полагаться на язык или библиотеку, разрабатываемые для решения этой проблемы, разработчики принимают другое представление «объектов», более реляционное по своей природе, образуя прикладные оболочки, более близкие к реляционным конструкциям. Например, вместо создания класса Person, в котором данные экземпляров сохраняются непосредственно в полях объектов, разработчики создают класс Person, в котором данные его экземпляров сохраняются в экземпляре RowSet (Java) или DataSet (C#).


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