Главная » SQL, Базы данных » ВЫБОРКА ДАННЫХ ИЗ ПРЕДСТАВЛЕНИЙ

0

В предыдущих разделах кратко описывалась процедура преобразования операций выборки из представлений в эквивалентные операции выборки из одной или нескольких базовых переменных отношения. В данном разделе приводится более формальное описание этого преобразования.

Прежде всего, следует отметить (как указано в конце раздела 6.4 главы 6), что любое заданное реляционное выражение можно рассматривать как функцию на множестве отношений. Иными словами, текущие значения различных переменных отношения, упоминаемых в выражении, представляют собой фактические параметры  данного вызова этой функции, а результатом ее вычисления является другая  переменная отношения. Пусть D — это база данных (которая будет представлена в данном случае как множество переменных отношения), а V— это представление,  определенное на множестве D, т.е. представление, определение которого является функцией х на множестве D, как показано

ниже.

V   =   X   (   D   )

А теперь предположим, что RO — операция выборки из представления V. Тогда очевидно, что RO также является функцией на множестве отношений, а результат выборки будет иметь следующий вид.

RO   (   V   )    =   RO   (   X   (   D   )    )

Таким образом, результат операции выборки по определению совпадает с результатом вычисления функции X на множестве D, т.е. с результатом материализации копии отношения, являющегося текущим значением представления V, с последующим применением операции RO к этой материализованной копии. Но на практике обычно эффективнее вместо этой операции использовать описанную выше процедуру подстановки (см. раздел 10.1).

Эта процедура равносильна формированию функции с (…), являющейся композицией RO ( х ( …) ) функций х и RO (именно в этом порядке), и вычислению результата применения функции с непосредственно к множеству D. Но как бы то ни было, все-таки удобнее, по крайней мере, концептуально, дать определение семантики операции выборки из представлений в терминах материализации, а не подстановки. Другими словами, подстановка допустима лишь постольку, поскольку она гарантирует получение того же результата, который мог быть получен при использовании материализации (и это, безусловно, гарантируется).

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

причинам.

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

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

■     В-третьих, хотя, в принципе, процедура замены представления его определением вполне понятна и теоретически полностью обоснована, весьма огорчает тот факт, что в некоторых программных продуктах SQL (ко времени написания данной книги) этот процесс практически не действует успешно! Иначе говоря, в подобных продуктах выборка данных из представлений может совершенно неожиданно за вершаться неудачей. Процедура подстановки определения не реализована в верси ях стандарта SQL, предшествующих версии SQL: 1992. А причиной, по которой в приложениях и предыдущих версиях стандарта SQL операции выборки из пред ставлений не действуют должным образом, является неполная поддержка ими ре ляционного свойства замкнутости (см. упр. 10.15, часть а).

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

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