Funkcjonalność języka MDX w implementacji HYPERION
|
|
- Czesław Czarnecki
- 8 lat temu
- Przeglądów:
Transkrypt
1 Funkcjonalność języka MDX w implementacji HYPERION Paweł Kędziora, Marek Lewandowski Politechnika Poznańska pawel.kedziora@gmail.com, lewandowski.marek@gmail.com
2 Spis Treści: 1 Standard MDX Postać zapytania w języku MDX Hyperion Funkcje w języku MDX Hyperion Predefiniowane funkcje języka MDX implementacji Hyperion Funkcje definiowane przez użytkownika Narzędzia wydawania zapytań do bazy danych Konsola MaxL Script Editor oraz konsola MDX Script Editor Hyperion Visual Explorer Hyperion Essbase Query Designer (Microsoft Excel) Przeprowadzony eksperyment Cel i zakres eksperymentu Schemat hurtowni danych Dostępne dane Zapytania Wycięcie oraz obrót Wycięcie jednej warstwy kostki danych (zapytania 1, 2) Wycięcie więcej niż jednej warstwy kostki danych (zapytanie 3) Wycięcie z kostki za pomocą zakresu wymiarów (zapytania 4, 5) Drill up i Drill down Drill up i Drill down z wykorzystaniem standardowych funkcji (zapytania 6, 7, 8) Operacje Drill up i Drill down z wykorzystaniem własności drzewa hierarchii elementów (zapytania 10, 11, 12, 13) Funkcje standardowe języka MDX w implementacji Hyperion Distinct (zapytanie 14) Except (zapytanie 15) Head, Tail (zapytania 16, 17) Union (zapytanie 18) Subset (zapytanie 19) Intersect (zapytanie 20) Elementy obliczone (calculated members) (zapytanie 21) Nazwane zbiory (named sets) (zapytanie 22) Filtrowanie wyników zapytań (zapytanie 23) Predykcja wartości (zapytanie 24) Sortowanie wyników zapytań (zapytanie 25) Podsumowanie Literatura Standard MDX MDX został wprowadzony w roku 1997 przez firmę Microsoft, jako część OLEDB dla specyfikacji OLAP. Specyfikacja ta została rozwinięta w 1998 roku, przez komercyjną wersję Microsoft OLAP Services 7.0 oraz później przez Microsoft Analysis Services. Mimo, iż MDX nie był otwartym standardem, szybko został zaadaptowany przez innych twórców systemów hurtowni danych, m.in.: Hyperion, SAS, SAP. 2
3 2 Postać zapytania w języku MDX Hyperion Ogólna postać zapytania w języku MDX wygląda następująco: SELECT {set} ON COLUMNS [, {set} ON ROWS] FROM aplikacja.baza_danych [WHERE {set}] gdzie set to jedna bądź wiele krotek, a krotka rozumiana jest jako odwołanie do elementu (member) lub kombinacji elementów z różnych wymiarów. Elementy podawane są w nawiasach kwadratowych ( [ ] ) i oddzielane przecinkiem (, ). Słowa kluczowe ON COLUMNS, ON ROWS określają format wyświetlania wierszy i kolumn wyniku zapytania. Przykład: SELECT { [Sales] } ON COLUMNS, { [Shops] } ON ROWS FROM app_shops.shops_db WHERE { [2005]}; Powyższe zapytanie zwróci w wartość sprzedaży (Sales) dla poszczególnych sklepów (Shops) w roku 2005 obliczoną na podstawie danych zawartych w bazie danych shops_db znajdującej się w aplikacji app_shops. Wynik zapytania przyjmie postać tabeli: Shops Shops Shop_1 Shop_2 Shop_n Sales Sales_1 + Sales_2 + + Sales_n Sales_1 Sales_2 Sales_n W pierwszym rzędzie tabeli znajduje się wynik zapytania o atrybut Sales dla wszystkich sklepów. Jeśli atrybut Sales jest atrybutem addytywnym, wielkość ta będzie sumą wartości Sales dla wszystkich krotek spełniających warunki zapytania. 3 Funkcje w języku MDX Hyperion 3.1 Predefiniowane funkcje języka MDX implementacji Hyperion Abs (liczba) przyjmuje wartość bezwzględną podanego parametru. Ancestor (element warstwa) przyjmuje wartość bezpośredniego poprzednika podanego elementu w hierarchii wymiarów. 3
4 Ancestors (element, warstwa indeks) zwraca zbiór poprzedników wskazanego elementu, występujących w hierarchii wymiarów do wysokości określonej przez indeks. Avg (zbiór [,liczba [, InculdeEmpty]]) zwraca średnią wartość krotek znalezionych we wskazanym zbiorze. W przypadku wyszczególnienia elementu liczba obliczana jest średnia dla zbioru krotek i drugiego parametru. Klauzula InculdeEmpty pozwala na uwzględnienie pustych wartości (#MISSING) podczas obliczania średniej. BottomCount (zbiór, indeks [,liczba]) funkcja zwraca podzbiór o liczebności indeks elementów zbioru set uporządkowanych od wartości najmniejszej do największej. Liczba wskazuje kryteria selekcji. BottomPercent (zbiór, procentowość, liczba) zwraca najmniejszy istniejący podzbiór zbioru zbiór, dla którego całkowity wynik przeliczeń jest nie mniejszy niż zadeklarowana procentowość przeliczeń całego zbioru zbiór. Procentowość jest liczbą z zakresu [0; 100]. Liczba wskazuje kryteria selekcji. Elementy zwróconego podzbioru uporządkowane są od najmniejszego do największego. BottomSum (zbiór, suma, liczba) zwraca najmniejszy istniejący podzbiór zbioru zbiór, dla którego całkowity wynik przeliczeń jest co najmniej równy podanemu wyrażeniu suma. Elementy zwróconego podzbioru uporządkowane są od najmniejszego do największego. Case słowo kluczowe rozpoczynające instrukcję warunkową case. Children (element) funkcja zwraca zbiór elementów potomnych wyszczególnionego elementu element. ClosingPeriod( [warstwa [, element]]) zwraca ostatni element wymiaru typu Time dla podanych parametrów. CoalesceEmpty ( element, wartość1 ) funkcja zwraca wartość wartość1 jeśli wartość elementu element jest pusta (#MISSING). W przeciwnym przypadku zwracana jest wartość elementu element. Count (zbiór [, IncludeEmpty]) funkcja zwraca liczebność zbioru zbiór. Parametr IncludeEmpty określa czy wartości puste (#MISSING) mają być ignorowane. Cousin (element1, element2) zwraca potomka innego elementu element2, znajdującego się na tym samym poziomie w hierarchii wymiarów co element element1. CrossJoin (zbiór1, zbiór2) zwraca iloczyn kartezjański zbioru zbiór1 i zbioru zbiór2. Zbiór2 nie może zawierać żadnych wymiarów wykorzystywanych w zbiorze zbiór1. CurrentMember (wymiar) zwraca aktualnie przetwarzany element dla wskazanego wymiaru wymiar. Funkcja wykorzystywana m.in. w funkcjach iteracyjnych. CurrentTupple (zbiór) zwraca aktualnie przetwarzaną krotkę wskazanego zbioru zbiór. Funkcja wykorzystywana w m.in. w funkcjach iteracyjnych. 4
5 DefaultMember (wymiar) zwraca domyślny element wyszczególnionego wymiaru wymiar. W Analytic Services domyślnym elementem jest element znajdujący się na pierwszym miejscu wśród elementów z najwyższego poziomu hierarchii wymiaru wymiar. Descendants (element [{ warstwa indeks}[, flaga]]) - zwraca elementy podrzędne znajdujące się w warstwie warstwa, lub na głębokości indeks w hierarchii wymiarów elementu element. Flaga wskazuje, które elementy mają być zwracane / pomijane. Wartości, jakie może przyjmować element flaga to: SELF zwraca tylko elementy z warstwy warstwa oraz element element, jeśli należy on do warstwy warstwa. AFTER zwraca elementy leżące poniżej warstwy warstwa. BEFORE zawraca element element oraz elementy znajdujące się w hierarchii wymiarów powyżej warstwy warstwa. BEFORE_AND_AFTER zwraca element element oraz wszystkie elementy znajdujące się poniżej niego w hierarchii wymiarów, ale nie należące do warstwy warstwa. SELF_AND_AFTER zwraca wszystkie elementy leżące w warstwie warstwa, oraz w warstwach leżących poniżej niej w hierarchii wymiarów. SELF_BEFORE_AFTER zwraca element element oraz wszystkie elementy leżące poniżej niego w hierarchii wymiarów. LEAVES zwraca elementy podrzędne elementu element, znajdujące na najniższym poziomie hierarchii wymiarów (liście drzewa wymiarów). Distinct (zbiór) funkcja eliminująca zduplikowane krotki ze zbioru zbiór. Dimension (element warstwa) funkcja zwracająca wymiar, do którego należy element lub warstwa. DrilldownByLayer ( zbiór [, warstwa indeks]) - funkcja wykonująca operację DrillDown na zbiorze zbiór, w ramach elementów należących do warstwy warstwa lub występujących na poziomie drzewa hierarchii określonego przez indeks. DrilldownMember (zbiór1, zbiór2 [, RECURSIVE]) funkcja wykonująca operację DrillDown na elementach należących do zbioru zbiór1, które również należą do zbioru zbiór2. RECURSIVE słowo kluczowe, którego użycie umożliwia wykonywanie powtarzających się porównań na elementach zbiorów. DrillupByLayer (zbiór, [, warstwa]) funkcja przeprowadzająca operację DrillUp wszystkich elementów zbioru zbiór leżących poniżej warstwy warstwa. DrillupMember (zbiór1, zbiór2) funkcja sprawdza, czy w zbiorze elementów zbiór2 znajdują się przodkowie zbioru elementów zbiór1 i wykonująca operację DrillUp do poziomu elementów przodków w zbiorze zbiór2. Except (zbiór1, zbiór2 [, ALL]) funkcja zwracająca różnicę zbiorów zbiór1 i zbiór2. Flaga ALL pozwala na pozostawienie duplikatów. Exp (potęga) funkcja matematyczna zwracająca liczbę e (podstawę logarytmu naturalnego) podniesioną do potęgi potęga. 5
6 Extract (zbiór [, wymiar]) funkcja zwracająca zbiór krotek należących do zbioru elementów zbiór, z podanego wymiaru wymiar. Factorial (liczba) funkcja matematyczna zwracająca silnię podanej liczby liczba. Filter (zbiór, warunek) funkcja zwracająca krotki należące do zbioru elementów zbiór, spełniające kryteria selekcji określone przez warunek. FirstChild (element) funkcja zwracająca pierwszego potomka (zależnie od kolejności definiowania) elementu element. FirstSibling (element) funkcja zwracająca pierwszy element (zależnie od kolejności definiowania) znajdujący się na tym samym poziomie hierarchii co element i mający taki sam jak element element nadrzędny. Generate (zbiór1, zbiór2 [, ALL]) funkcja zwracająca zbiór powstały w wyniku wykonania operacji: dla każdego elementu ze zbioru zbiór1 zwróć zbiór2. Klauzula ALL pozwala na pozostawienie duplikujących się elementów w zbiorze wynikowym. Generation (element) funkcja zwracająca elementy pokolenia, do którego należy element element. Generations (wymiar, indeks) funkcja zwracająca elementy pokolenia wymiaru wymiar do zadanej głębokości w hierarchii wymiarów określonej przez indeks. Head (zbiór [, liczba]) funkcja zwracająca liczba pierwszych krotek lub elementów należących do zbioru zbiór. Hierarchize (zbiór [, POST]) funkcja zwracająca elementy należące do zbioru zbiór w takim porządku, w jakim zostały one zdefiniowane w hierarchii wymiarów. Użycie klauzuli POST powoduje elementów podrzędnych przed nadrzędnymi. IIF (warunek, prawda, fałsz) funkcja weryfikująca prawdziwość warunku warunek i zwracająca wartość prawda, jeśli warunek jest prawdziwy, lub fałsz w przeciwnym przypadku. Prawda i fałsz mogą być zbiorami elementów! Int (liczba) funkcja matematyczna zwracająca najmniejszą liczbę całkowitą większą niż liczba. Intersection (zbiór1, zbiór2 [, ALL]) funkcja zwracająca iloczyn zbiorów zbiór1 i zbiór2. ALL pozwala na pozostawienie duplikujących się elementów w zbiorze wynikowym. Is (element1, element2) funkcja porównująca dwa elementy. Przyjmuje wartość TRUE, jeśli elemen1 i element2 są identyczne. 6
7 IsAccType (element, AccTag) funkcja sprawdzająca, czy element element należy do wymiaru zadeklarowanego jako Accounts i posiadającego odpowiednią etykietę AccTag. Etykieta może przyjąć jedną z następujących wartości: First, Last, Average, Expense, Two-pass. IsAncestor (element1, element2) funkcja przyjmująca wartość TRUE, jeśli element element1 jest przodkiem elementu element2. IsChild (element1, element2) funkcja przyjmująca wartość TRUE, jeśli element element1 jest potomkiem elementu element2. IsEmpty (element) funkcja przyjmująca wartość TRUE w przypadku, gdy element jest pusty (#MISSING). IsGeneration (element, indeks) funkcja przyjmująca wartość TRUE, jeśli element element należy do pokolenia wskazanego przez indeks. IsLeaf (element) funkcja przyjmująca wartość TRUE, jeśli element element znajduje się na najniższym poziomie hierarchii wymiarów (jest liściem drzewa wymiarów). IsLevel (element, poziom) - funkcja przyjmująca wartość TRUE, jeśli element element znajduje się w hierarchii wymiarów na poziomie określonym przez poziom. IsSibling (element1, element2) - funkcja przyjmująca wartość TRUE, jeśli element element1 znajduje się na tym samym poziomie w hierarchii wymiarów i ma ten sam element nadrzędny co element element2. IsUDA (element, nazwa) - funkcja przyjmująca wartość TRUE, jeśli element element jest powiązany z etykietą UDA (user defined attribute) o nazwie nazwa. IsValid (element krotka zbiór warstwa własność) - funkcja przyjmująca wartość TRUE, jeśli wyszczególniony parametr jest poprawny. Item (krotka, indeks) ekstrahuje element o numerze indeks z krotki krotka. Lag (element, indeks) zwraca element, który znajduje się indeks kroków wstecz od elementu element w hierarchii wymiarów. LastChild (element) funkcja zwracająca ostatniego potomka (zależnie od kolejności definiowania) elementu element. LastPeriods (liczba [, element]) funkcja zwracająca ciąg elementów o liczebności liczba, który zakończony jest elementem element. LastSibling (element) funkcja zwracająca ostatni element (zależnie od kolejności definiowania) znajdujący się na tym samym poziomie hierarchii co element i mający taki sam jak element element nadrzędny. 7
8 Lead (element, indeks) funkcja zwracająca element, który znajduje się indeks kroków w przód od elementu element w ramach tej samej warstwy w hierarchii wymiarów. Level (element) funkcja zwracająca poziom w hierarchii wymiarów, na którym znajduje się element element. Levels (wymiar, indeks) funkcja zwracająca poziom wymiaru wymiar określony przez głębokość indeks. Ln (liczba) funkcja matematyczna zwracająca logarytm naturalny z liczby liczba. Log (liczba [, podstawa]) - funkcja matematyczna zwracająca logarytm o podstawie podstawa z liczby liczba. Domyślną wartością parametru podstawa jest 10. Log10 (liczba) - funkcja matematyczna zwracająca logarytm dziesiętny z liczby liczba. Max (zbiór [, liczba]) - funkcja matematyczna zwracająca element o największej wartości spośród elementów zbioru zbiór. Liczba jest parametrem opcjonalnym. MemberRange (element1, element2) zwraca wszystkie elementy występujące pomiędzy element1 i element2 w hierarchii wymiarów. Members (wymiar warstwa) funkcja zwraca wszystkie elementy należące do wymiaru wymiar bądź warstwy warstwa. Min (zbiór [, liczba]) - funkcja matematyczna zwracająca element o najmniejszej wartości spośród elementów zbioru zbiór. Liczba jest parametrem opcjonalnym. Mod (liczba1, liczba2) funkcja matematyczna zwracająca resztę z dzielenia liczby liczba1 przez liczbę liczba2. NextMember (element [, GENERATION LEVEL]) funkcja zwracająca kolejny element (zależnie od kolejności definiowania) w stosunku do element, w ramach pokolenia (GENERATION) lub poziomu (LEVEL). NonEmptyCount (zbiór [, liczba]) funkcja zwracająca liczbę krotek posiadających niepuste wartości. OpeningPeriod ( [warstwa [, element]]) - zwraca pierwszy element wymiaru typu Time dla podanych parametrów. Order (zbiór, wyrażenie liczba [, BASC BDESC] ) funkcja porządkująca elementy zbioru zbiór zgodnie z regułami określonymi przez wyrażenie. BASC rosnąco; BDESC malejąco. Ordinal (warstwa) funkcja zwracająca numer pokolenia lub poziomu w hierarchii wymiarów dla warstwy warstwa. 8
9 ParallelPeriod ( [warstwa [, indeks [, element]]]) funkcja zwraca element z wcześniejszego okresu czasu dla podanych parametrów. Parent ( element ) funkcja zwracająca element nadrzędny w hierarchii wymiarów w stosunku do elementu element. PeriodsToDate ( [warstwa [, element]]) funkcja zwracająca elementy, które występują wcześniej niż aktualny element z wymiaru Time dla podanych parametrów. Power (liczba, potęga) funkcja matematyczna przyjmująca wartość liczby liczba podniesionej do potęgi potęga. PrevMember (element [, GENERATION LEVEL]) funkcja zwracająca poprzedni element (zależnie od kolejności definiowania) w stosunku do element, w ramach pokolenia (GENERATION) lub poziomu (LEVEL). RelMemberRange (element, poprzednie, następne [, GENERATION LEVEL]) funkcja zwracająca poprzednie poprzednich elementów elementu element, następne następnych elementów elementu element w ramach danego pokolenia (GENERATION) lub poziomu (LEVEL). Remainder (liczba) funkcja matematyczna zwracająca część ułamkową z liczby liczba. Round (liczba, dokładność) - funkcja matematyczna zaokrąglająca liczbę liczba zgodnie z precyzją wskazaną parametrem dokładność. Siblings (element) funkcja zwracająca zbiór elementów znajdujących się na tym samym poziomie w hierarchii co element i mających ten sam element poprzedni. Subset (zbiór, indeks1 [, indeks2]) funkcja zwracająca podzbiór (wyspecyfikowany zakresem krotek: od indeks1 do indeks2) zbioru zbiór. Sum (zbiór [, liczba]) funkcja zwracająca sumę elementów wchodzących w skład zbioru zbiór. Tail (zbiór [, liczba]) funkcja zwracająca liczba ostatnich krotek lub elementów należących do zbioru zbiór. ToDate (ciąg1, ciąg2) funkcja zmieniająca datę na liczbę. Ciąg1 określa format daty ( mm-dd-yyyy lub dd-mm-yyyy ), a ciąg2 to data (np ). TopCount (zbiór, indeks [, liczba]) funkcja zwracająca indeks elementów zbioru zbiór uporządkowanych od największego do najmniejszego. TopPercent (zbiór, procentowość, liczba) zwraca najmniejszy istniejący podzbiór zbioru zbiór, dla którego całkowity wynik przeliczeń jest nie mniejszy niż zadeklarowana procentowość przeliczeń całego zbioru zbiór. Procentowość jest liczbą z zakresu [0; 100]. Liczba wskazuje kryteria selekcji. Elementy zwróconego podzbioru uporządkowane są od największego do najmniejszego. 9
10 TopSum (zbiór, suma, liczba) zwraca najmniejszy istniejący podzbiór zbioru zbiór, dla którego całkowity wynik przeliczeń jest co najmniej równy podanemu wyrażeniu suma. Elementy zwróconego podzbioru uporządkowane są od największego do najmniejszego. Truncate (liczba) funkcja matematyczna zwracająca całkowitą część liczby liczba. Uda (wymiar element, nazwa) funkcja zwraca wszystkie elementy wyszczególnione etykietą UDA (user defined attribute) o nazwie nazwa związane z wymiarem wymiar lub poddrzewem wymiarów o korzeniu w elemencie element). Union (zbiór1, zbiór2 [, ALL]) funkcja zwracająca sumę zbiorów zbiór1 i zbiór2. ALL pozwala na pozostawienie duplikujących się elementów w zbiorze wynikowym. Value (element) funkcja zwracająca wartość elementu element. WithAttr (element, LITERAŁ [, literał_numeryczny, literał_znakowy] ) funkcja zwracająca wszystkie elementy, które są związane z elementem element w wskazany sposób. Wartości, które mogą być przyjmowane przez LITERAŁ: >, >=, <, <=, = =, <>! =, In. xtd ([element]) funkcja równoważna PeriodsToDate. 3.2 Funkcje definiowane przez użytkownika System Hyperion umożliwia użytkownikowi tworzenie własnych funkcji. Funkcje te definiowane są w języku JAVA, kompilowane przez zewnętrzny kompilator języka JAVA, a następnie dołączane do schematu bazy danych. Język MDX służy jedynie do zadeklarowania funkcji poprzednio zdefiniowanych. Przykład definicji funkcji w języku JAVA: public class CalcFunc { public static double sum (double[] data) { int i, n = data.length; double sum = 0.0d; for (i=0; i<n; i++) { double d = data [i]; sum = sum + d; } return sum; } } Przykład deklaracji zdefiniowanej funkcji: create function Sample.'@JSUM' as 'CalcFunc.sum' spec '@JSUM(memberRange)' comment 'adds list of input members'; Wszystkie nazwy funkcji w języku MDX w implementacji Hyperion muszą zaczynać się od 10
11 4 Narzędzia wydawania zapytań do bazy danych 4.1 Konsola MaxL Script Editor oraz konsola MDX Script Editor Do bezpośredniego wpisywania zapytań do bazy danych w języku MDX służą dwie konsole: MaxL Script Editor oraz MDX Script Editor. MDX Script Editor posiada opcję podpowiadania składni języka MDX, natomiast konsola MaxL Script Editor jest zauważalnie szybsza i z tego powodu została wybrana do przeprowadzenia eksperymentu. Wysłanie zapytania do bazy danych następuje poprzez wciśnięcie przycisku F5. Wynik zapytania przedstawiany jest w postaci tabeli. Rys. 4.1 Widok okna konsoli MaxL Script Editor wraz z wynikiem zapytania. 4.2 Hyperion Visual Explorer Hyperion Visual Explorer włączony zostaje poprzez uruchomienie pliku runvss.exe z katalogu \essbase\bin znajdującego się w katalogu głównym systemu Hyperion. Hyperion Visual Explorer jest narzędziem do graficznego przedstawiania wyników zapytań do bazy danych, którego użytkowanie nie wymaga znajomości języka MDX. Zapytania wydawane są poprzez umieszczanie żądanych elementów (metodą przeciągnij i upuść ) w odpowiednich polach (oznaczających osie rzędnych i odciętych na wykresach). Ograniczanie wyników zapytań realizowane jest przez zaznaczanie / odznaczanie pól typu check box przyporządkowanych do każdego elementu. 11
12 Wynik zapytania przedstawiany jest domyślnie w postaci wykresu słupkowego. Typ wykresu może być modyfikowany. Rys. 4.2 Hyperion Visual Explorer i wynik zapytania o [Obrót] w pierwszych trzech miesiącach lat [2005] i [2006] Rys. 4.3 Ograniczanie zakresu elementu w zapytaniu w Hyperion Visual Explorer. 4.3 Hyperion Essbase Query Designer (Microsoft Excel) Po zainstalowaniu systemu Hyperion, w głównym menu programu Microsoft Excel pojawia się dodatkowa opcja Essbase, umożliwiająca m.in. podłączanie do bazy danych oraz otwarcie narzędzia Hyperion Query Designer. Wybór opcji New Query powoduje przejście do kreatora zapytania, którego poszczególne składniki wybierane są przez użytkownika za pomocą kliknięć myszką na żądanych elementach odpowiednich wymiarów, co podobnie jak w przypadku Hyperion Visual Explorer, nie wymaga od użytkownika znajomości języka MDX. Wysłanie zapytania do bazy danych dokonane 12
13 zostaje poprzez wybór opcji Apply Query z menu kontekstowego przygotowywanego zapytania. Rys. 4.4 Widok okna kreatora zapytania w Hyperion Essbase Query Designer. Rys. 4.5 Wynik zapytania w Microsoft Excel 5 Przeprowadzony eksperyment. 5.1 Cel i zakres eksperymentu. Celem eksperymentu było zbudowanie hurtowni danych oraz zbadanie funkcjonalności języka MDX w implementacji Hyperion. Hurtownia została zbudowana dla rzeczywistych danych następujących spółek giełdowych: PKO BP, INGBSG, BZWBK, Prokom, 13
14 Comarch, Comp, KGHM, STALEXP, ATM, TPSA, Orbis, Amrest. Dla każdej spółki i dla każdego jej notowania dostępne były następujące dane: wartość podczas otwarcia oraz zamknięcia notowania, wartość minimalna i maksymalna w danym dniu, zmiana notowania, dzienny obrót. 5.2 Schemat hurtowni danych. Zaproponowany schemat przewiduje istnienie jednej tabeli faktów (Notowanie), oraz czterech wymiarów: Czas, Rok, Sektor, Index. Hyperion proponuje stosowanie określenia element (member) zarówno jako terminu opisującego wystąpienie wymiaru, wymiaru nadrzędnego, bądź też konkretnej wartości wymiaru. W zastosowanym schemacie element Czas jest więc nadrzędny w stosunku do elementów grupujących wystąpienia wymiaru (poszczególne dni) w miesiące, a Sektor posiada elementy podrzędne określające typ działalności spółek do niego należących (banki, informatyka, p_metalowy, telekomunikacja, usługi). Utworzono bazę danych spolkidb w aplikacji SPOLKI. Rys. 4.1 Tabela faktów (Notowanie) oraz wymiar Index 14
15 Rys. 4.2 Elementy: Rok, Czas, Sektor wraz z elementami podrzędnymi. Rys. 4.3 Pojedyncze wystąpienia dni w elemencie agregującym [Jan] (styczeń). 15
16 5.3 Dostępne dane Udostępnione do analizy dane znajdowały się w plikach.csv o następującym formacie: Data;Otw.;Min;Maks.;Zamkn.;Zmiana;Obrót ;147.00;146.00;148.50;147.00;+1.03; ;145.00;145.00;147.00;145.50;+1.39; ;144.00;141.00;144.00;143.50;-1.03; ;149.00;145.00;149.00;145.00;-2.36;20590 ( ) W celu dostosowania danych do wymaganego przez Hyperion formatu i zgodności z skonstruowanym schematem napisany został skrypt w języku AWK: { gsub (";", "\t"); if (NR == 1) {print;} if (NR == 2) {print;} if(nr > 2) { gsub("+", ""); if($0 ~ /^2005\.*/) { gsub(" ", "\"Jan "); gsub(" ", "\"Feb "); gsub(" ", "\"Mar "); gsub(" ", "\"Apr "); gsub(" ", "\"May "); gsub(" ", "\"Jun "); gsub(" ", "\"Jul "); gsub(" ", "\"Aug "); gsub(" ", "\"Sept "); gsub(" ", "\"Oct "); gsub(" ", "\"Nov "); gsub(" ", "\"Dec "); print "\"2005\"\t" $1 " " $2 "\"\t" $3"\t" $4"\t" $5"\t" $6"\t" $7"\t" $8; } else if($0 ~ /^2006\.*/) { gsub(" ", "\"Jan "); gsub(" ", "\"Feb "); gsub(" ", "\"Mar "); gsub(" ", "\"Apr "); gsub(" ", "\"May "); gsub(" ", "\"Jun "); gsub(" ", "\"Jul "); gsub(" ", "\"Aug "); gsub(" ", "\"Sept "); gsub(" ", "\"Oct "); gsub(" ", "\"Nov "); gsub(" ", "\"Dec "); print "\"2006\"\t" $1 " " $2 "\"\t" $3"\t" $4"\t" $5"\t" $6"\t" $7"\t" $8; } } } 16
17 Wynikiem działania skryptu jest plik tekstowy o następującym formacie: PROKOM WIG20 Otw. Min Maks. Zamkn. Zmiana Obrót "2006" "Mar 31" "2006" "Mar 30" "2006" "Mar 29" Dane wczytano do systemu wybierając opcję Load Data ( Load Data File) z menu kontekstowego bazy danych spolkidb. 5.4 Zapytania Wycięcie oraz obrót Wycięcie jednej warstwy kostki danych (zapytania 1, 2) Zapytanie o obrót z dnia dla spółek sektora bankowego wchodzących w skład indeksu WIG20: {[Obrót]} on rows, { ([May 09], [2005], [banki], [wig20])} on columns Równoznaczne zapytanie z zastosowanie prefiksów w postaci nazw wymiarów (dla czytelności zapytania): {[Obrót]} on rows, { ( [czas].[may 09], [rok].[2005], [sektor].[banki], [index].[wig20] ) } on columns Columns i rows mogą zostać zastąpione przez axis(1) i axis(0) : {[Obrót]} on axis(1), { ([May 09], [2005], [banki], [wig20])} on axis(0) 17
18 Zapytanie o obrót wszystkich spółek wchodzących w skład indeksu WIG20 (dla wszystkich notowań w bazie danych): {[Obrót]} on rows, {[wig20]} on columns Wycięcie więcej niż jednej warstwy kostki danych (zapytanie 3) Zapytanie o obroty (w roku 2005) spółki Techwig oraz wszystkich spółek wchodzących w skład indeksu WIG20: {[Obrót]} on rows, { ([techwig], [2005]), ([wig20], [2005])} on columns Zastosowanie nawiasów okrągłych () oznacza rozpoczęcie nowej kolumny w wyniku zapytania. Równoważne zapytanie może być sformułowane z wykorzystaniem funkcji CrossJoin, lub za pomocą klauzuli ograniczającej: where {[Obrót]} on rows, crossjoin({[techwig], [wig20]}, {[2005]}) on columns {[Obrót]} on rows, {[techwig], [wig20]} on columns SPOLKI.spolkiDB ([2005]); 18
19 Wycięcie z kostki za pomocą zakresu wymiarów (zapytania 4, 5) Zapytanie o obrót spółek z notowań od stycznia do marca, z podziałem na lata: { ( [Obrót], [2005] ), ( [Obrót], [2006] ) } on rows, {[Jan]:[Mar]} on columns Równoważne zapytanie może zostać sformułowane z użyciem funkcji MemberRange: { ( [Obrót], [2005] ), ( [Obrót], [2006] ) } on rows, {MemberRange([Jan],[Mar])} on columns Zapytanie o obrót spółek wchodzących w skład indeksu WIG20 w dniach od do : crossjoin ({[Obrót]}, {[wig20]}) on rows, crossjoin ({Memberrange([Jan 12], [Jan 14])}, {[2005]}) on columns 19
20 5.4.2 Drill up i Drill down Drill up i Drill down z wykorzystaniem standardowych funkcji (zapytania 6, 7, 8) Zapytanie o obroty w roku 2005 wszystkich spółek. Wynik przedstawiony z podziałem na sektory. drilldownbylayer ({ [sektor]} ) on columns, {([Obrót], [2005])} on rows spolki.spolkidb; Zapytanie o obroty wszystkich elementów podrzędnych w stosunku do elementu Sektor (aż do pierwszego poziomu w pokoleniu) z notowań z roku 2005: drillupbylayer ( {sektor, [sektor].children }, generations (sektor, 1) ) on columns, {([Obrót], [2005])} on rows spolki.spolkidb; Zapytanie o obroty wszystkich elementów podlegających pod spółkę PKOBP. drillupmember({[pkobp]}, {[sektor]}) on columns, {Obrót} on rows spolki.spolkidb; Na wyniku przeprowadzana jest operacja DrillUp aż do elementu sektor, jeśli tylko sektor jest elementem nadrzędnym w stosunku do spółki PKOBP. 20
21 Operacje Drill up i Drill down z wykorzystaniem własności drzewa hierarchii elementów (zapytania 10, 11, 12, 13) Zapytanie o obroty (w roku 2005) wszystkich sektorów spółek znajdujących się na tym samym poziomie w drzewie hierarchii elementów co sektor informatyka: {([Obrót], [2005])} on rows, { [informatyka].siblings } on columns Zapytanie o obroty (w roku 2005) wszystkich spółek elementu nadrzędnego w stosunku do elementu informatyka: {([Obrót], [2005])} on rows, { [informatyka].parent } on columns Zapytanie o obroty (w roku 2005) wszystkich spółek podrzędnych w stosunku do elementu informatyka: {([Obrót], [2005])} on rows, { [informatyka].children } on columns Zapytanie o obroty (w roku 2005) spółki, która została zdefiniowana jako pierwszy element podrzędny w stosunku do elementu informatyka: 21
22 {([Obrót], [2005])} on rows, { [informatyka].firstchild } on columns Zapytanie o obroty (w roku 2005) wszystkich elementów leżących o jeden poziom niżej w hierarchii niż element sektor wraz z agregacją do poziomu sektor: crossjoin ({[Obrót]},{ members(sektor.levels(1)), members(sektor.levels(0))}) on rows, {[2005]} on columns Funkcje standardowe języka MDX w implementacji Hyperion Distinct (zapytanie 14) Zapytanie o obroty (w roku 2005) wszystkich spółek z sektora informatyka, z eliminacją duplikujących się krotek: 22
23 {([Obrót], [2005])} on rows, distinct ({ [informatyka].children}) on columns Except (zapytanie 15) Zapytanie o obroty (w roku 2005) wszystkich spółek z sektora informatyka, które równocześnie nie należą do sektora bankowego. {([Obrót], [2005])} on rows, except ({ [informatyka].children}, { [banki].children}) on columns Head, Tail (zapytania 16, 17) Zapytanie o obroty (w roku 2005) pierwszego elementu (znajdującego się w drugim pokoleniu elementu sektor). Pierwszy wskazuje w tym przypadku kolejność definiowania elementów podczas tworzenia bazy danych. {([Obrót], [2005])} on rows, head( members([sektor].generations(2))) on columns Zapytanie o obroty (w roku 2005) ostatniego elementu (znajdującego się w drugim pokoleniu elementu sektor). Ostatni wskazuje w tym przypadku kolejność definiowania elementów podczas tworzenia bazy danych. 23
przygotował: pawel@kasprowski.pl Podstawy języka MDX Tworzenie zbiorów
Podstawy języka MDX Tworzenie zbiorów Używanie zbiorów Zbiór to: wynik działania funkcji (np. funkcji members) lista elementów otoczona {...} {[Store Sales], [Unit Sales]} on columns, [Product].[Prod].[Category].members
Bardziej szczegółowoPodstawy MDX. Podstawy MDX. Podstawy MDX. Struktura kostki [BiznesG]
Podstawowe zapytanie MDX ma strukturę podobną do zapytań SQL. Najprostsza postać zwraca dwuwymiarową kostkę: opis osi ON COLUMNS, opis osi ON ROWS FROM nazwa_kostki [WHERE opis_plastra] Najprostsza postać
Bardziej szczegółowoOnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX
OnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX 24 kwietnia 2014 Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą
Bardziej szczegółowoKostki OLAP i język MDX
Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,
Bardziej szczegółowoSpis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services
Spis treści Wstęp... ix Odkąd najlepiej rozpocząć lekturę?... ix Informacja dotycząca towarzyszącej ksiąŝce płyty CD-ROM... xi Wymagania systemowe... xi Instalowanie i uŝywanie plików przykładowych...
Bardziej szczegółowoORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL
ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Raportowanie z wykorzystaniem fraz rollup, cube Frazy cube, rollup, grouping sets umożliwiają rozszerzoną
Bardziej szczegółowoMS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25
MS Excel 2007 Kurs zaawansowany Obsługa baz danych prowadzi: Dr inż. Tomasz Bartuś Kraków: 2008 04 25 Bazy danych Microsoft Excel 2007 udostępnia szereg funkcji i mechanizmów obsługi baz danych (zwanych
Bardziej szczegółowoPrzestrzenne bazy danych Podstawy języka SQL
Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured
Bardziej szczegółowoSystem imed24 Instrukcja Moduł Analizy i raporty
System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów
Bardziej szczegółowoOLAP i hurtownie danych c.d.
OLAP i hurtownie danych c.d. Przypomnienie OLAP -narzędzia analizy danych Hurtownie danych -duże bazy danych zorientowane tematycznie, nieulotne, zmienne w czasie, wspierjące procesy podejmowania decyzji
Bardziej szczegółowoBazy danych Access KWERENDY
Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych
Bardziej szczegółowoSposób tworzenia tabeli przestawnej pokażę na przykładzie listy krajów z podstawowymi informacjami o nich.
Tabele przestawne Tabela przestawna to narzędzie służące do tworzenia dynamicznych podsumowań list utworzonych w Excelu lub pobranych z zewnętrznych baz danych. Raporty tabeli przestawnej pozwalają na
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje
Bardziej szczegółowoWyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2
- 1 - MS EXCEL CZ.2 FUNKCJE Program Excel zawiera ok. 200 funkcji, będących predefiniowanymi formułami, słuŝącymi do wykonywania określonych obliczeń. KaŜda funkcja składa się z nazwy funkcji, która określa
Bardziej szczegółowoWykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.
Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,
Bardziej szczegółowoMDX ZAWARTOŚĆ O MDX. Wyk onał: Zatwi erdził: KSPBC_Szkolenie_20090623. doc. Spra wdził: Strona 1 z 15
ZAWARTOŚĆ Zawartość...1 O...1 Podstawowe typy danych...2 1.1. Wymiar / hierarhia...2 1.2. Poziom...2 1.3. Element...2 1.4. Kolekcje (Tuples)...2 1.5. Zbiory (Sets)...2 1.6. Osie (Axes)...2 Pierwsze zapytanie...3
Bardziej szczegółowoSQL (ang. Structured Query Language)
SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze
Bardziej szczegółowoWstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9
Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9 Uruchamianie edytora OpenOffice.ux.pl Writer 9 Dostosowywanie środowiska pracy 11 Menu Widok 14 Ustawienia dokumentu 16 Rozdział 2. OpenOffice
Bardziej szczegółowoTabele przestawne tabelą przestawną. Sprzedawcy, Kwartały, Wartości. Dane/Raport tabeli przestawnej i wykresu przestawnego.
Tabele przestawne Niekiedy istnieje potrzeba dokonania podsumowania zawartości bazy danych w formie dodatkowej tabeli. Tabelę taką, podsumowującą wybrane pola bazy danych, nazywamy tabelą przestawną. Zasady
Bardziej szczegółowoSystemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska
Systemy OLAP I Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2008/09 Studia
Bardziej szczegółowoSystemy GIS Tworzenie zapytań w bazach danych
Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE
Bardziej szczegółowoCw.12 JAVAScript w dokumentach HTML
Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane
Bardziej szczegółowoJęzyk SQL. Rozdział 2. Proste zapytania
Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na
Bardziej szczegółowoJęzyki skryptowe w programie Plans
Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów
Bardziej szczegółowoTechnologie baz danych
Plan wykładu Technologie baz danych Wykład 6: Algebra relacji. SQL - cd Algebra relacji operacje teoriomnogościowe rzutowanie selekcja przemianowanie Małgorzata Krętowska Wydział Informatyki Politechnika
Bardziej szczegółowoMS Access - bazy danych.
MS Access - bazy danych. Sugerowany sposób rozwiązania problemów. Pomoc dla Lektury - ćwiczenie 1. Wykorzystaj kreator kwerend i utwórz zapytanie dla tabeli Lektury z kryterium b* (wielkość liter bez znaczenia)
Bardziej szczegółowoPracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji
Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki Podstawy Informatyki i algorytmizacji wykład 6 dr inż. Maria Lachowicz Zagadnienia poruszane w ramach
Bardziej szczegółowo5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów
5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów 1. W chwili obecnej formularz Edycja prowadzących utworzony w poprzednim zestawie ćwiczeń służy tylko i wyłącznie do edycji
Bardziej szczegółowoetrader Pekao Podręcznik użytkownika Strumieniowanie Excel
etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie
Bardziej szczegółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoInformatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych
Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy
Bardziej szczegółowoProjekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31
Strona: 1 z 31 Explorer Analyzer 1 Uruchamianie programu i raportu PoniŜsze czynności uruchamiają program Bex Analyzer oraz wybrany raport z hurtowni danych. 1. uruchom z menu Start>Programy>Business Explorer>Analyzer
Bardziej szczegółowoOracle11g: Wprowadzenie do SQL
Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom
Bardziej szczegółowo- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy
Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla
Bardziej szczegółowoQUERY język zapytań do tworzenia raportów w AS/400
QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora
Bardziej szczegółowoRelacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Bardziej szczegółowo% sumy wiersza nadrzędnego. % sumy kolumny nadrzędnej. % sumy elementu nadrzędnego. Porządkuj od najmniejszych do największych.
bieżąca w wyświetla wartości w kolejnych wierszach lub kolejnych kolumnach jako wartości skumulowane (w drugim wierszu wyświetla sumę wartości odpowiadających wierszom od do ; w wierszy od wiersza do,
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może
Bardziej szczegółowoZałącznik nr 8. do Studium Wykonalności projektu Sieć Szerokopasmowa Polski Wschodniej województwo podkarpackie
MINISTERSTWO ROZWOJU REGIONALNEGO Załącznik nr 8 do Studium Wykonalności projektu Sieć Szerokopasmowa Polski Wschodniej Instrukcja obliczania wskaźnika pokrycia. Strona 2 z 24 Studium Wykonalności projektu
Bardziej szczegółowoMicrosoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych
Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych Projekt: Wdrożenie strategii szkoleniowej prowadzony przez KancelarięPrezesa Rady Ministrów Projekt współfinansowany przez
Bardziej szczegółowoPlan. Raport. Tworzenie raportu z kreatora (1/3)
3 Budowa prostych raportów opartych o bazę danych Plan Co to jest raport? Tworzenie za pomocą kreatora Tworzenie opartego o polecenie SQL Edycja atrybutów Atrybuty regionu Atrybuty Atrybuty kolumn 2 Raport
Bardziej szczegółowoIntegracja i Eksploracja Danych
Integracja i Eksploracja Danych Laboratorium nr 4 Wprowadzenie do języka MDX. Zadania: 1) Analogicznie do przykładu zawartego na poprzednich zajęciach, korzystając z SQL Server Business Intelligence Development
Bardziej szczegółowoSQL do zaawansowanych analiz danych część 1.
SQL do zaawansowanych analiz danych część 1. Mechanizmy języka SQL dla agregacji danych Rozszerzenia PIVOT i UNPIVOT Materiały wykładowe Bartosz Bębel Politechnika Poznańska, Instytut Informatyki Plan
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoPracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji
Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki Podstawy Informatyki i algorytmizacji wykład 1 dr inż. Maria Lachowicz Wprowadzenie Dlaczego arkusz
Bardziej szczegółowoTP1 - TABELE PRZESTAWNE od A do Z
TP1 - TABELE PRZESTAWNE od A do Z Program szkolenia 1. Tabele programu Excel 1.1. Wstawianie tabeli 1.2. Style tabeli 1.3. Właściwości tabeli 1.4. Narzędzia tabel 1.4.1. Usuń duplikaty 1.4.2. Konwertuj
Bardziej szczegółowoAutor: dr inż. Katarzyna Rudnik
Bazy danych Wykład 2 MS Access Obiekty programu, Reprezentacja danych w tabeli, Indeksy, Relacje i ich sprzężenia Autor: dr inż. Katarzyna Rudnik Obiekty programu MS ACCESS Obiekty typu Tabela są podstawowe
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może
Bardziej szczegółowoProgram szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL
Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień
Bardziej szczegółowoMicrosoft.NET: ASP.NET MVC + Entity Framework (Code First)
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta
Bardziej szczegółowoZaawansowane aplikacje internetowe - laboratorium
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest
Bardziej szczegółowoProjektowanie relacyjnych baz danych
Mam nadzieję, że do tej pory przyzwyczaiłeś się do tabelarycznego układu danych i poznałeś sposoby odczytywania i modyfikowania tak zapisanych danych. W tym odcinku poznasz nieco teorii relacyjnych baz
Bardziej szczegółowoCzęść I Istota analizy biznesowej a Analysis Services
Spis treści Część I Istota analizy biznesowej a Analysis Services 1 Analiza biznesowa: podstawy analizy danych... 3 Wprowadzenie do analizy biznesowej... 3 Wielowymiarowa analiza danych... 5 Atrybuty w
Bardziej szczegółowoKolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy
1 Podstawowym przeznaczeniem arkusza kalkulacyjnego jest najczęściej opracowanie danych liczbowych i prezentowanie ich formie graficznej. Ale formuła arkusza kalkulacyjnego jest na tyle elastyczna, że
Bardziej szczegółowoLibreOffice Calc VBA
LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć
Bardziej szczegółowoJAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Bardziej szczegółowoTworzenie i wykorzystanie usług sieciowych
Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć
Bardziej szczegółowoLaboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING
Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.
Bardziej szczegółowoPodstawy języka SQL cz. 2
Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.
Bardziej szczegółowoBazy danych. Polecenia SQL
Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony
Bardziej szczegółowoWYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu
WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu 1 Algorytmika i programowanie Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, stosowanie
Bardziej szczegółowoMicrosoft SQL Server Podstawy T-SQL
Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania
Bardziej szczegółowoBAZY DANYCH Panel sterujący
BAZY DANYCH Panel sterujący Panel sterujący pełni z reguły rolę centrum, z którego wydajemy polecenia i uruchamiamy różnorodne, wcześniej zdefiniowane zadania, np. wyświetlamy formularze lub drukujemy
Bardziej szczegółowoWprowadzenie do Hurtowni Danych. Mariusz Rafało
Wprowadzenie do Hurtowni Danych Mariusz Rafało mrafalo@sgh.waw.pl WARSTWA PREZENTACJI HURTOWNI DANYCH Wykorzystanie hurtowni danych - aspekty Analityczne zbiory danych (ADS) Zbiór danych tematycznych (Data
Bardziej szczegółowoP&I Scout Pro Wygodne i proste tworzenie raportów
P&I Scout Pro Wygodne i proste tworzenie raportów - opis funkcjonalny - Dmz-chemak sp. z o.o. dostawca rozwiązań informatycznych z zakresu zarządzania zasobami ludzkimi. Autoryzowany partner Personal &
Bardziej szczegółowoSystemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska
Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2007/08 Studia uzupełniajace magisterskie
Bardziej szczegółowoo nazwie: adresy.xls. Fragment danych źródłowych przestawiono na rysunku 1. Rysunek 1. Dane źródłowe - plik "adresy.xls"
Laboratorium 4 Strona 1 z 11 Spis treści: 1. Filtrowanie automatyczne z wykorzystaniem pakietu Microsoft Excel 2. Filtr zaawansowany w pakiecie Microsoft Excel 3. Mechanizm tworzenia sum pośrednich 4.
Bardziej szczegółowoPodstawy języka SQL. SQL Structured Query Languagestrukturalny
Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych
Bardziej szczegółowoTworzenie tabeli przestawnej krok po kroku
Tabele przestawne Arkusz kalkulacyjny jest narzędziem przeznaczonym do zapisu, przechowywania i analizy danych. Jeśli w arkuszu zamierzamy gromadzić dane o osobach i cechach je opisujących (np. skąd pochodzą,
Bardziej szczegółowoWstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9
Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn
Bardziej szczegółowoJAVAScript w dokumentach HTML - przypomnienie
Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w
Bardziej szczegółowoGrupowanie i funkcje agregacji
Grupowanie i funkcje agregacji Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula GROUP BY Grupowanie polega
Bardziej szczegółowoTechnologie baz danych
Technologie baz danych Wykład 4: Diagramy związków encji (ERD). SQL funkcje grupujące. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka Plan wykładu Diagramy związków encji elementy ERD
Bardziej szczegółowo5.5. Wybieranie informacji z bazy
5.5. Wybieranie informacji z bazy Baza danych to ogromny zbiór informacji, szczególnie jeśli jest odpowiedzialna za przechowywanie danych ogromnych firm lub korporacji. Posiadając tysiące rekordów trudno
Bardziej szczegółowoKwerendy (zapytania) wybierające
Access 2. Kwerendy (zapytania) wybierające Kwerendy wybierające (nazywane też zapytaniami wybierającymi) są podstawowymi obiektami w MS Access służącymi do wyszukiwania danych w tabelach. W wyniku uruchomienia
Bardziej szczegółowoWprowadzenie do hurtowni danych
Wprowadzenie do hurtowni danych przygotował: Paweł Kasprowski Kostka Kostka (cube) to podstawowy element hurtowni Kostka jest wielowymiarowa (od 1 do N wymiarów) Kostka składa się z: faktów wektora wartości
Bardziej szczegółowoRelacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Bardziej szczegółowoBaza danych sql. 1. Wprowadzenie
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który
Bardziej szczegółowoArkusz kalkulacyjny Excel
Arkusz kalkulacyjny Excel Ćwiczenie 1. Sumy pośrednie (częściowe). POMOC DO ĆWICZENIA Dzięki funkcji sum pośrednich (częściowych) nie jest konieczne ręczne wprowadzanie odpowiednich formuł. Dzięki nim
Bardziej szczegółowoSpis treści. 1: Wyszukiwanie elementu : Do linii modelu : Powiel arkusze : Długość kabla : Rozmieszczenie widoków...
Co nowego 2018 R2 Spis treści NOWOŚCI... 5 1: Wyszukiwanie elementu... 5 2: Do linii modelu... 6 3: Powiel arkusze... 7 4: Długość kabla... 8 5: Rzędne poziomów... 9 ULEPSZENIA... 10 1: Połączenie z Excel...
Bardziej szczegółowoKASK by CTI. Instrukcja
KASK by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Pierwsze uruchomienie... 4 3. Okno główne programu... 5 4. Konfiguracja atrybutów... 6 5. Nadawanie wartości atrybutom... 7 6. Wybór firmy z
Bardziej szczegółowo2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji
2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji 1. Utwórz aplikację ze skoroszytu emp_prac.csv. W tym celu wykonaj poniższe czynności: a. Zaloguj się do systemu APEX jako użytkownik
Bardziej szczegółowoModel relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Bardziej szczegółowoAnalityczny język zapytań MDX: zaawansowane
ITA-102 Hurtownie Danych Moduł 8 Wersja 1.0 Spis treści Analityczny język zapytań MDX: zaawansowane Analityczny język zapytań MDX: zaawansowane... 1 Informacje o module... 2 Przygotowanie teoretyczne...
Bardziej szczegółowoERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010
ERGODESIGN - Podręcznik użytkownika Wersja 1.0 Warszawa 2010 Spis treści Wstęp...3 Organizacja menu nawigacja...3 Górne menu nawigacyjne...3 Lewe menu robocze...4 Przestrzeń robocza...5 Stopka...5 Obsługa
Bardziej szczegółowoInformatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS
Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.4 Slajd 1 Excel Slajd 2 Wykresy Najlepszym sposobem prezentacji danych jest prezentacja graficzna. Z pomocą
Bardziej szczegółowoSortowanie i filtrowanie list
Sortowanie i filtrowanie list Program Excel jest doskonałym narzędziem do analizowania liczb, a także świetnie się nadaje do tworzenia list i zarządzania nimi. Na liście można śledzić wszystko, od adresów
Bardziej szczegółowoInformatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3
Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3 Slajd 1 Excel Slajd 2 Adresy względne i bezwzględne Jedną z najważniejszych spraw jest tzw. adresacja. Mówiliśmy
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze
Bardziej szczegółowoNiestandardowa tabela częstości
raportowanie Niestandardowa tabela częstości Przemysław Budzewski Predictive Solutions Do czego dążymy W Generalnym Sondażu Społecznym USA w 1991 roku badaniu poddano respondentów należących do szeregu
Bardziej szczegółowoGrupowanie i funkcje agregacji. Grupowanie z użyciem rollup
Grupowanie i funkcje agregacji Grupowanie z użyciem rollup Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula
Bardziej szczegółowoUstalanie dostępu do plików - Windows XP Home/Professional
Ustalanie dostępu do plików - Windows XP Home/Professional Aby edytować atrybuty dostępu do plikow/ katalogow w systemie plików NTFS wpierw sprawdź czy jest Wyłączone proste udostępnianie czyli przejdź
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoBazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych
Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy
Bardziej szczegółowoTeoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 8b: Algebra relacyjna http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Algebra relacyjna Algebra relacyjna (ang.
Bardziej szczegółowoUkłady VLSI Bramki 1.0
Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie
Bardziej szczegółowoSAS Institute Technical Support
SAS Institute Technical Support Optymalizacja kostek krok po kroku Pracując z kostkami OLAP często nie zdajemy sobie sprawy, że można przygotować je w taki sposób, aby praca z nimi była efektywniejsza
Bardziej szczegółowoInformatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS
Wyższa Szkoła Ekologii i Zarządzania Excel Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.4 Slajd 1 Slajd 2 Najlepszym sposobem prezentacji danych jest prezentacja graficzna. Z pomocą wykresu
Bardziej szczegółowo