Обобщени Изгледи |
![]() ![]() |
Обобщения изглед има две бази: основна и спомагателна, т.е. две таблици с бази данни (или системни таблици, или изгледи) са използвани за събирането на изискваната информация. Пълната дефиниция на обобщения изглед се състои от базите, така наречените „match“ и „where“ условия и дефиниции на колоните. Условието „match“ е израз приложен към двете бази, които връщат истински или неистински стойности (True / False). Същото условие се използва за избор на двойки редове от двете таблици. Условието „where“ и изразите на колоните са приложени към двете базови редови множества, но по различен начин. Може да адресира колони от спомагателното редово множество единствено в така наречените обобщаващи функции. Тези функции са приложени не само към един ред, а към цялото множество. Следователно изразите на двата последни вида: адресни редове на главната таблица и адресът на спомагателната като цяло, са филтрирани предварително с условието „match“. Останалото е също както при простите изгледи. За всеки ред на главната база е проверено условието „where“. Ако стойността на условието е Истина, то всички изрази на колони са изчислени, те образуват нов ред от обобщения изглед. Пример: Продължавайки нашия преден пример. Сега разглеждаме населението в столиците на всеки континент. Има две атрибутни таблици: „Continents“ и „Capitals“. Таблицата „Capitals“ съдържа информация за населението на всеки град. Искаме да имаме атрибутен изглед на имената на континентите и сборното население на техните столици. Therefore, we define a new aggregation view based on tables ‘Continents’ and ‘Capitals’. The ‘match’ condition is defined as geographical coincidence (a capital is inside the continent polygon). A ‘where’ condition is defined as “Name not empty”, which means that we want to make sure, that we take only existing continent names from the table. Column expressions are defined as “Name” and “Sum(Aux.Population)”. ‘Sum’ here is the name of a built-in aggregate function returning the sum of all values along a rowset. |