Изменения

Funq

8 байтов добавлено, 21:13, 20 сентября 2009
Программные представления
==== Программные представления ====
''Что такое представления (views)? '' Реально это представление подзапросом некоторой логической таблицы, прозрачно подставляемое во все места её использования. Ясно, что проще всего сформировать подзапрос и подставлять его во все места использования представления. Однако этот путь очень неоптимален — во многих случаях использование подзапроса не требуется. Получается, что суть трансляции представлений — оптимизация путём удаления подзапросов к реальным таблицам. А теперь — опа! Посмотрим шире: вообще говоря, всю работу транслятора языка [[Funq ]] можно рассматривать как оптимизацию цепочки подзапросов, ведь каждое следующее преобразование применяется так, как если бы это был простой запрос из предшествующей ему цепочки таких же простых подзапросов. А весь процесс оптимизации этой цепочки сводится к рассмотрению всех подзапросов, начиная с самых внутренних, и исследования следующего вопроса: можно ли объединить подзапрос и внешний по отношению к нему в один?
==== Порядок преобразований ====