• Nie Znaleziono Wyników

Rozszerzenia języka SQL dla operacji ROLAP w bazie ORACLE8I

N/A
N/A
Protected

Academic year: 2021

Share "Rozszerzenia języka SQL dla operacji ROLAP w bazie ORACLE8I"

Copied!
13
0
0

Pełen tekst

(1)ROZSZERZENIA JĉZYKA SQL DLA OPERACJI ROLAP W BAZIE ORACLE8I GRZEGORZ DZIEA, ANDRZEJ MAKULSKI Uniwersytet Technologiczno – Przyrodniczy w Bydgoszczy Streszczenie W pracy przedstawiono elementy rozszerzenia jĊzyka zapytaĔ SQL bazy Oracle8i, które mają za zadanie wspomagaü przetwarzania danych pod kątem analitycznym (przetwarzanie OLAP). Rozszerzenia te mogą mieü charakter teoretyczny w formie propozycji umieszczenia ich w standardzie SQL lub praktyczny w postaci operatorów zaimplementowanych w rozwiązaniach konkretnych producentów systemów bazodanowych umoĪliwiających relacyjne przetwarzanie analityczne. Słowa kluczowe: OLAP, Bazy danych, rozszerzenia funkcji SOL 1. WstĊp Wielowymiarowe operacje OLAP w systemach relacyjnych s przeprowadzane za pomoc zapyta w jzyku SQL. Wikszo operacji moe by zrealizowana za pomoc standardowych zapyta w jzyku SQL. W niektórych przypadkach tłumaczenie operacji wielowymiarowych na standard zgodny z jzykiem SQL wymaga wprowadzenia pewnych rozszerze tego jzyka poprzez uwzgldnienie funkcji w klauzuli GROUP BY oraz definiowanych przez uytkownika funkcji agregujcych, które zwracałyby wyniki w klauzuli SELECT [1,2,3]. 2. Rozszerzenia SQL zaimplementowane w bazie Oracle8i Oracle przystosowujc ósm wersj relacyjnej bazy danych Oracle8i rozszerzył standard SQL o nastpujce elementy6: 9 rozszerzenie moliwoci GROUP BY poprzez zastosowanie CUBE oraz ROLLUP, 9 dodatkowe analityczne funkcje SQL, 9 funkcj liniowej regresji, 9 wyraenie CASE. Według danych producenta wprowadzenie tych rozszerze spowoduje midzy innymi: 9 uproszczenie programowania poprzez redukcj iloci kodu dla wielu operacji SQL, 9 szybsze i efektywne przetwarzanie zapyta, 9 redukcj ruchu sieciowego poprzez wykonywanie agregacji po stronie serwera, 9 moliwo przechowywania agregatów, które mog by wykorzystywane przez podobne zapytania. ROLLUP Operator ROLLUP umoliwia konstrukcji SELECT obliczanie rozmaitych poziomów podsumowa oraz sum całkowitych we wskazanych grupach wymiarów. Proste uycie tego operatora jest spowodowane tym, e jest on cile zwizany z klauzul GROUP BY stanowic jego pojedyncze rozsze6 „Oracle 8i Data Warehousing Guide”, Oracle Corp.s. 5.

(2) 60. Grzegorz DzieĪa, Andrzej Makulski Rozszerzenia jĊzyka SQL dla operacji rolap w bazie ORACLE8I. rzenie. Składnia zapytania z uyciem ROLLUP wyglda nastpujco: select ... group by rollup (lista kolumn grupujcych) ROLLUP jest operacj działajc w sposób bezporedni na danych, tworzy podsumy od najniszego poziomu hierarchii do sumy całkowitej według listy grupowania zawartej w klauzuli. W pierwszej kolejnoci obliczane s podstawowe wartoci agregatów podane przez GROUP BY, nastpnie zaczynajc od pierwszej wymienionej kolumny oblicza wartoci agregatów na wyszych poziomach hierarchii, a do ostatniej kolumny znajdujcej si na licie. Na koniec jest obliczana suma całkowita. Przeprowadzenie operacji ROLLUP na danych, których liczba kolumn grupujcych wynosi n spowoduje wygenerowanie podsum na (n+1)-poziomach. Działanie operatora ROLLUP mona zobrazowa na przykładzie bazy danych nalecej do firmy sprzedajcej i wypoyczajcej tamy video. Baza danych oparta jest na kostce, której wymiarami s: Time (1996, 1997), Department (Video Sprzeda, Video Rentals), Region (East, West, Central), Jednym z elementów kostki jest warto okrelajca zysk (profit). Zapytanie tworzce szczegółowy raport podsumowujcy zyski bdzie miało nastpujc posta : select time, region, department, sum(profit) as profit from sprzedaz group by rollup (time, region, department); Wynik działania tego zapytania bdzie zawierał: a) zagregowane wiersze wygenerowane przez GROUP BY bez uycia ROLLUP, b) wiersze zawierajce podsumy pierwszego poziomu zagregowane dla oddziału (department) przy uyciu kadej kombinacji czasu (time) i regionu (region), c) wiersze zawierajce podsumy drugiego poziomu agregowane dla oddziału (department) i regionu (region) przy uyciu kadej wartoci czasu, d) wiersz zawierajcy sum całkowit (grand total). Tabela (1) zawiera wynik zwrócony przez zapytanie. Symbolami ostatniej kolumny oznaczono poszczególne fazy wykonywania si operacji ROLLUP. Wartoci NULL s wywietlane jedynie dla czytelnoci, w oryginalnej odpowiedzi bazy Oracle komórki bd puste. Tabela 1. Agregacja z wykorzystaniem ROLLUP na danych 3-wymiarowych Time 1996 1996 1996 1996 1996 1996 1996 1996 1996. Region Central Central Central East East East West West West. Departament VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL. Profit 75000 74000 149000 89000 115000 204000 87000 86000 173000. A A B A A B A A B.

(3) POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 17, 2008. Time 1996 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997. Region NULL Central Central Central East East East West West West NULL NULL. Departament NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL NULL NULL. Profit 526000 82000 85000 167000 101000 137000 238000 69000 97000 193000 598000 1124000. 61. C A A B A A B A A B C D. ródło: opracowanie własne Rozszerzenie jzyka SQL w bazie Oracle8i umoliwia równie przeprowadzanie czciowej operacji zwijania (PARTIAL ROLLUP) (tab. 2.). Operacja ta polega na obliczaniu tylko niektórych sum czciowych. Rónica w składni pomidzy zwijaniem „całkowitym” oraz czciowym polega oddzielnym wskazaniu parametrów dla operatora GROUP BY oraz dla ROLLUP: group by expr1, rollup(expr2,expr3); W tym przypadku PARTIAL ROLLUP tworzy podsumy na (2+1=3) poziomach agregacji, tj. na poziomie (expr1, expr2, expr3), (expr1, expr2) i (expr1). Wan cech tego zapytania jest fakt, e nie jest obliczana suma całkowita (grand total). Przykładem zastosowania operatora zwijania czciowego moe by nastpujce zapytanie: select time, region, department, sum(profit) as profit from sprzedaz group by time, rollup(region, dept); Wynik działania tego zapytania bdzie składał si z: a) zagregowanych wierszy wygenerowanych przez GROUP BY bez uycia ROLLUP, b) podsum pierwszego poziomu zagregowanych dla oddziału (department) przy uyciu kadej kombinacji czas (time) i regionu (region), c) podsum drugiego poziomu zagregowanych dla regionu (region) i oddziału (department) dla kadej wartoci czasu..

(4) 62. Grzegorz DzieĪa, Andrzej Makulski Rozszerzenia jĊzyka SQL dla operacji rolap w bazie ORACLE8I. Tabela 2. Wyniki zwijania czĊĞciowego (PARTIAL ROLLUP) dla przykładowych danych Time 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997. Region Central Central Central East East East West West West NULL Central Central Central East East East West West West NULL. Departament VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL NULL. Profit 75000 74000 149000 89000 115000 204000 87000 86000 173000 526000 82000 85000 167000 101000 137000 238000 69000 97000 193000 598000. A A B A A B A A B C A A B A A B A A B C. ródło: opracowanie własne Uycie operacji ROLLUP wymaga mniejszego zapotrzebowania na moc obliczeniow ni odpowiednie zapytanie złoone z unii podzapyta. Na przykład aby zastpi ROLLUP oparty na 4 kolumnach naley zastosowa zapytanie składajce si z 5 podzapyta połczonych funkcj UNION. Kade z tych piciu podzapyta wymaga oddzielnego dostpu do tabeli (tabela jest przegldana piciokrotnie), przy czym ROLLUP moe wykona si z pojedynczym dostpem (tabela jest przegldana jednokrotnie). Zastpienie zapytania tradycyjnego, zapytaniem opartym o ROLLUP zredukuje dostp do tabel o 80%. Oracle Corp. zaleca stosowanie ROLLUP w zapytaniach obliczajcych sumy czciowe, w szczególnoci do: 9 wyliczania sum czciowych opartych o wymiar majcy charakter chronologiczny ROLLUP(y, m, day) lub geograficzny ROLLUP(country, state, city), 9 generowania tymczasowych tabel podsumowujcych przez administratorów hurtowni. CUBE Podsumy wygenerowane za pomoc ROLLUP stanowi tylko cz podsum, które mona wygenerowa dla wszystkich moliwych kombinacji wymiarów. Wygenerowanie danych, które maj by umieszczone np. w zbiorze tabel przestawnych (cross-tabular) za pomoc ROLLUP wymaga zastosowania kilkakrotnego tego zapytania za kadym razem zmieniajc kolejno kolumn, które maj by grupowane. Duo prostszym sposobem jest uycie do tego celu w zapytaniu operatora.

(5) POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 17, 2008. 63. CUBE. Jako operator słucy do analizy danych operator CUBE oferuje niespotykan dotd elastyczno analizy danych n-wymiarowych. Zastosowanie do analizy operatora CUBE pokazuje rysunek 1. CUBE umoliwia konstrukcji SELECT obliczenie podsum dla kadej moliwej kombinacji grupy wymiarów oraz sum całkowitych. Jak ju wczeniej wspomniano, wynik zapytania zawierajcego operator CUBE moe zosta przedstawiony za pomoc tabeli przestawnej. Podobnie jak w przypadku ROLLUP, uycie operatora CUBE jest stosunkowo proste, poniewa stanowi on pojedyncze rozszerzenie klauzuli GROUP BY. Składnia zapytania opartego o CUBE wyglda nastpujco: select ... group by cube (lista kolumn grupujcych). Rys. 1. Porównanie moĪliwoĞci 3-wymiarowego operatora CUBE do 2-wymiarowej tabeli przestawnej, 1-wymiarowego grupowania z sum i agregatu mającego charakter punktowy ródło: www.olapreport.com [4] CUBE oblicza podsumy na podstawie listy kolumn (wymiarów) podanych w zapytaniu. Jeeli w zapytaniu zostanie podane n-kolumn, to wynik zapytania bdzie zawierał 2n agregatów dla rónych kombinacji wymiarów. Przykład zastosowania operatora w przypadku bazy danych firmy.

(6) 64. Grzegorz DzieĪa, Andrzej Makulski Rozszerzenia jĊzyka SQL dla operacji rolap w bazie ORACLE8I. wypoyczajcej/sprzedajcej kasety wideo (baza została wykorzystana przy operatorze ROLLUP) wyglda nastpujco: select time, region, department, sum(profit) as profit from sprzedaz group by cube (time, region, department); Wynikiem działania tego zapytania bdzie odpowied podana w tabeli 3.9: Tabela 3. Agregacja z wykorzystaniem CUBE dla danych 3-wymiarowych Time 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL. ródło: opracowanie własne. Region Central Central Central East East East West West West NULL NULL NULL Central Central Central East East East West West West NULL NULL NULL Central Central Central East East East West West West NULL NULL NULL. Department VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VirdeoRental VideoSprzedaz NULL. Profit 75000 74000 149000 89000 115000 204000 87000 86000 173000 251000 275000 526000 82000 85000 167000 101000 137000 238000 96000 97000 193000 279000 319000 598000 157000 159000 316000 190000 252000 442000 183000 183000 366000 530000 594000 1124000.

(7) POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 17, 2008. 65. Wyniki te mona przedstawi za pomoc kilku tabel przestawnych o wymiarach: time – department, time – region, department – region. Podobnie jak w przypadku PARTIAL ROLLUP istnieje moliwo ograniczenia agregacji do wymaganych wymiarów. W przypadku PARTIAL CUBE mona ograniczy podsumy wszystkich moliwych kombinacji do wymiarów bdcych parametrami CUBE: group by expr1, cube(expr2, expr3) Skonstruowane w ten sposób zapytanie wygeneruje 4 podsumy oparte na: (expr1, expr2, expr3), (expr1, expr2), (expr1, expr3), (expr1). Uywajc bazy danych wykorzystanej w poprzednich przykładach działanie PARTIAL CUBE mona przedstawi za pomoc nastpujcego zapytania (tab. 3.): select time, region, department, sum(profit) as profit from sprzedaz group by time cube (region, dept); Zapytanie z operatorem CUBE mona oczywicie zastpi zapytanie o konstrukcji UNION ALL składajce si kilku podzapyta, z których kade bdzie obliczało agregat dla jednej ze wszystkich moliwych kombinacji. Gdyby istniała konieczno sformułowania zapytania z wykorzystaniem standardowych funkcji, które miałoby zwróci wynik tak jak w przypadku zapytania z CUBE okrelonym na 3 wymiarach, to zapytanie to składałoby si z 8-podzapyta. Redukcja w dostpie do tabeli dla zapytania opartego o CUBE przy grupowaniu 4-kolumnowy siga a 93,75% w porównaniu do zapytania opartego na technikach klasycznych. Zarówno operator ROLLUP jak i CUBE umoliwia zastosowanie w agregacji nastpujcych funkcji: 9 count, 9 avg, 9 min, 9 max, 9 stddev, 9 variance..

(8) 66. Grzegorz DzieĪa, Andrzej Makulski Rozszerzenia jĊzyka SQL dla operacji rolap w bazie ORACLE8I. Tabela 3. Agregacja z wykorzystaniem PARTIAL CUBE dla danych 3-wymiarowych Time. Region. Department. Profit. 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997 1997. Central Central Central East East East West West West NULL NULL NULL Central Central Central East East East West West West NULL NULL NULL. VideoRental VideoSprzedaz NULL Video Rental VideoSprzedaz NULL Video Rental VideoSprzedaz NULL Video Rental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL Video Rental VideoSprzedaz NULL. 75,000 74,000 149,000 89,000 115,000 204,000 87,000 86,000 173,000 251,000 275,000 526,000 82,000 85,000 167,000 101,000 137,000 238,000 96,000 97,000 193,000 279,000 319,000 598,000. ródło: opracowanie własne Funkcja COUNT, która jest bardzo czsto uywana przy analizie tabel przestawnych jest najczciej wykorzystywan funkcj w zapytaniach ROLLUP i CUBE obok funkcji SUM. Bazy danych firmy Oracle, nie umoliwiaj stosowania operatora DISTINCT wraz z ROLLUP lub CUBE ze wzgldu na jego dwojaki charakter. Ograniczenie to ma na celu zmniejszenia ryzyka wystpienia błdu przy analizie danych. Funkcja GROUPING Funkcja grouping stanowi rozszerzenie funkcji ROLLUP oraz CUBE słucej do zmiany formatu wyniku wygenerowanego poprzez zapytanie. Uycie tej funkcji jest wymagane, gdy wynik działania zapytania ma by przetwarzany z wykorzystaniem metod numerycznych, a w szczególnoci gdy: 9 konieczne jest rozpoznanie wierszy, w których s zawarte sumy czciowe oraz suma całkowita np. przy obliczaniu udziałów procentowych itp.; 9 zapytanie moe zwróci w wynikowych wierszach warto NULL, która wynika z danych ródłowych, a nie jest wartoci nadawan przez operator CUBE lub ROLLUP (w wierszu podsumy warto NULL danego atrybutu okrela sum po tym włanie atrybucie)..

(9) POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 17, 2008. 67. Działanie funkcji GROUPING polega na zwracaniu wartoci „1” w przypadku gdy dany wiersz wyniku zawiera warto NULL nadan w wyniku działania operatora CUBE lub ROLLUP. Jeeli warto NULL wynika z charakteru danych ródłowych w odpowiednim polu jest zwracana warto. „0”. Ogólna składnia uycia tej funkcji wyglda w sposób nastpujcy: select ... [grouping(kolumny_wymiarów)...] ... group by ... {cube|rollup} (kulumny_wymiarów) Operujc na bazie danych, wykorzystywanej przy okazji prezentowania poprzednich operatorów mona sformułowa nastpujce zapytanie na bazie operatora ROLLUP (tab. 4.): select time, region, department, sum(profit) as profit, grouping (time) as t, grouping (region) as r, grouping (department) as d from sprzedaz group by rollup (time, region, department); Tabela 4. Wynik zapytania ROLLUP z wykorzystaniem funkcji GROUPING Time 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 1997 1997 1997 1997 1997 1997 1997 1997. Region Central Central Central East East East West West West NULL Central Central Central East East East West West. Department VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz NULL VideoRental VideoSprzedaz. Profit 75000 74000 149000 89000 115000 204000 87000 86000 173000 526000 82000 85000 167000 101000 137000 238000 96000 97000. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. T 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0. R 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0. D. 1997 1997 NULL. West NULL NULL. NULL VideoRental NULL. 193000 0 598000 0 1124000 1. 0 1 1. 1 1 1. ródło: opracowanie własne Umieszczenie w strukturze wyniku 3 dodatkowych kolumn umoliwi łatwe przetwarzania numeryczne rezultatu zapytania. Procedura analizujca dane kontrolujc wartoci w polach T, R i D w sposób jednoznaczny bdzie mogła okreli charakter danej podsumy poprzez metod maskowania. Wiersze posiadajce mask „0 0 1” bd naleały do podsum pierwszego poziomu,.

(10) 68. Grzegorz DzieĪa, Andrzej Makulski Rozszerzenia jĊzyka SQL dla operacji rolap w bazie ORACLE8I. maska „0 1 1” bdzie charakteryzowała wiersze podsum poziomu drugiego, za maska „1 1 1” bdzie oznaczała sum całkowit. Funkcja grouping moe okaza si przydatna równie w zapytaniach opartych o operator CUBE. Przedstawiony w tabeli 5. przykład przedstawia wynik zapytania CUBE, który nie moe by interpretowany w sposób jednoznaczny. Tabela 5. Wynik zapytania CUBE bez uĪycia GROUPING Time 1996 1996 NULL NULL NULL NULL NULL. Region East NULL East NULL NULL NULL NULL. Profit 200000 200000 200000 190000 190000 190000 390000. ródło: opracowanie własne Wartoci NULL wystpujce w wyniku przedstawiony w tabeli 5. wynikaj z: działania operatora CUBE, który umieszcza warto NULL w wierszu dla atrybutu dla którego jest przeprowadzane sumowanie; charakteru danych ródłowych;dla niektórych rekordów pola atrybutów time lub region były wypełnione wartociami NULL. W celu poprawienia czytelnoci wyniku naley zastosowa kombinacj funkcji grouping i decode w nastpujcym zapytaniu (tab. 6.): Select decode(grouping(time), 1, 'all times', time) as time, decode(grouping(region), 1, 'all regions', 0, null)) as region, sum(profit) as profit from sprzedaz group by cube(time, region); Tabela 6. Wynik działania operator CUBE z funkcjami GROUPING i DECODE Time 1996 1996 All Times NULL NULL All Times All Times. Region East All Regions East NULL All Regions NULL All Regions. Profit 200000 200000 200000 190000 190000 190000 390000. ródło: opracowanie własne Zastosowanie DECODE w powyszym zapytaniu umoliwia rozpoznanie wierszy zawierajcych podsumy i zamian w nich wartoci NULL na okrelon w zapytaniu. Jak ju wczeniej wspomniano funkcja GROUPING zwraca „1” jeeli wiersz zawiera warto agregatu lub w kadym innym przypadku „0”. Funkcja DECODE w nastpujcym fragmencie zapytania:.

(11) POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 17, 2008. 69. decode(grouping(time), 1, 'all times', time) as time, dla wartoci „1” uzyskanej od GROUPING podstawia tekst „all times”, a dla wartoci „0” warto. czasu przechowywan w tabeli ródłowej, która moe by liczb lub wartoci NULL. Funkcje Analityczne Przetwarzanie analityczne OLAP wymaga duej iloci danych, które s w odpowiedni sposób przetwarzane. Pocztkowo, wszystkie operacje analityczne były przeprowadzane za pomoc odpowiednich narzdzi po stronie klienta. W obecnych systemach baz danych przystosowanych do przetwarzania w technologii OLAP mona zaobserwowa skłonno producentów do umieszczania specjalizowanych funkcji analitycznych, które mog wykonywa analiz po stronie serwera. Przykładem takich funkcji mog by funkcje zaimplementowane w bazie danych Oracle8i, znajdujce si obecnie w standardzie ANSI SQL2000, które przedstawia tabela 7.: Tabela 7. Funkcje analityczne zaimplementowane w Oracle8i Funkcja Ranking Windowing. Reporting. LAG/LEAD. Statistic. ródło: opracowanie własne. Zastosowanie obliczanie rankingów, obliczanie rednich łcznych i chwilowych. Współpracuje z nastpujacymi funkcjami: - SUM - AVG - IN - MAX - COUNT - VARIANCE - STDEV - FIRST_VALUE - LAST_VALUE - oraz nowymi funkcjami statystycznym Obliczanie udziałów. Współpracuje z nastpujcymi funkcjami: - SUM - AVG - MIN - MAX - COUNT (z/bez DISTINCT) - VARIANCE - STDDEV - RATIO_TO_REPORT - oraz nowymi funkcjami statystycznym Funkcje te mog siga do wartoci okrelonych atrybutów znajdujcych si w ssiednich wierszach w tej samej partycji. obliczanie regresji liniowej, współczynnik nachylenia, przecicie itp..

(12) 70. Grzegorz DzieĪa, Andrzej Makulski Rozszerzenia jĊzyka SQL dla operacji rolap w bazie ORACLE8I. Sposób przetwarzania funkcji analitycznych obrazuje rysunek 2.. Rysunek 2. KolejnoĞü przetwarzania zapytaĔ analitycznych ródło: opracowanie własne 3. Podsumowanie Zbiór funkcji oferowanych przez Oracle, które nale do grupy funkcji analitycznych i nie s jednoczenie objte standardem SQL 92 lub 99 jest bardzo duy. Funkcje te umoliwiaj szczegółowe przetwarzanie analityczne pod ktem analizy statystycznej, finansowej, ekonomicznej, raportowania itp. Kada z nich posiada wiele parametrów umoliwiajcych zdefiniowanie postaci wynikowej. Bardzo wan rzecz jest równie fakt, e funkcje te działaj w kombinacjach z opisanymi wczeniej operatorami CUBE oraz ROLLUP. Jedn z najczciej wykorzystywanych funkcji analitycznych jest funkcja naleca do grupy funkcji rankingowych słuca do obliczania pozycji danego rekordu ze zbioru danych na licie uporzdkowanej w odpowiedni sposób według wybranych wartoci miar.. Bibliografia 1. 2. 3. 4.. Oracle 8i Data Warehousing Guide, Oracle Corp. 1999. Oracle 8i. Concepts, Oracle Corp. 1999. Materiały informacyjne: Oracle OLAP Technology, Oracle Corp. 1999. N. Pendse: OLAP Report 2000, http://www.olapreport.com..

(13) POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ Seria: Studia i Materiały, nr 17, 2008. 71. EXPANDING SQL LANGUAGE FOR THE ROLAP OPERATIONS IN THE ORACLE8I DATABASE Summary In the paper elements of expanding SQL query language for the ROLAP operations in the Oracle8i database were presented. Their task is supporting the data processing to make possible analytical OLAP processing. Those expands can have theoretical dimension in the form of the proposals to put them in the SQL standard or practical one including operators implemented in solutions of concrete producers of database systems which enable relational analytical processing. Keywords: OLAP, databases, expanding the SOL function. Grzegorz Dziea Katedra Informatyki w Zarzdzaniu, Wydział Zarzdzania Uniwersytet Technologiczno – Przyrodniczy w Bydgoszczy 85-970 Bydgoszcz, ul. Kaliskiego 7 e-mail: zis@utp.edu.pl.

(14)

Cytaty

Powiązane dokumenty

• Podzapytanie dla każdego rekordu zapytania głównego musi zwrócić dokładnie jedną wartość.

Najkrócej mówiąc czasu Past Perfect używamy do wyrażenia czynności wykonanej przed inną czynnością przeszłą.. After

Istotny jest także wpływ orzecznictwa Europejskiego Trybunału Praw Człowieka (ETPC) oraz Trybunału Sprawiedliwości Unii Europejskiej (TSUE) na krajowe standardy.. ETPC

Wyżej wznosi się Kra­ szewski, obrazując współczesne życie klas średnich i wyższych, a choć chłód, krytycyzm, czasem ironia nie opuszczają pisarza, zdarzają

Zwróćmy uwa- gę, że splot retencji trzeciego stopnia w przypadku quasi-obiektu historycz- nego przybiera formę Baudrillardowskiej symulacji: Błyskawica w rękach gracza, wzajemnie

Оценку внешнего рецензента на третьем этапе получают все Авто­ ры, тексты которых приняты в этот номер издания, и они должны ответить на

The mesoscale Hydrologic Model (mHM; Samaniego(2010)) is a distributed model which was proven to be transferable to other regions, due to the used regionalization

Pas wanneer een stad een bepaalde functie niet heeft en er wel draagvlak voor biedt, maar dit niet kan benutten doordat een naburige stad deze functies al sterk heeft