Adattrhzak n Adattrhz alapfogalmak n Adattrhz modellek adatkockk

  • Slides: 82
Download presentation
Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n Adattárházak megvalósítása n Adatok általánosítása és fogalmi leírások n Az adattárháztól az adatbányászatig 2021. 03. 10. Adattárházak 1

Mi az adattárház? n Sokféleképpen definiálják, nincs egyértelmű meghatározás. n Olyan döntéstámogató adatbázis, amelyet

Mi az adattárház? n Sokféleképpen definiálják, nincs egyértelmű meghatározás. n Olyan döntéstámogató adatbázis, amelyet a szervezet működéséhez szükséges adatbázisától elkülönítve üzemeltetnek n Egyesített, történeti (időtől függő) adatok elemzését, információ feldolgozását támogató platform. n “Az adattárház olyan témaspecifikus, integrált, időfüggő, fizikailag is tárolt adatgyűjtemény, amely a menedzsment döntéshozó folyamataihoz szükséges lehet. ”—W. H. Inmon n Adattár-háztartás (Data warehousing): n 2021. 03. 10. Az adattárházak készítésének, felhasználásának folyamatai Adattárházak 2

Mit jelent a témaspecifikusság (Subject-Oriented)? n Mit vizsgálunk: vásárlókat, termékeket, eladásokat? n Nem a

Mit jelent a témaspecifikusság (Subject-Oriented)? n Mit vizsgálunk: vásárlókat, termékeket, eladásokat? n Nem a napi működéshez szükséges folyamatokkal, tranzakciós folyamatok foglalkozunk, hanem a modellezéssel, a döntéshozók számára hasznos adatelemzésekkel n Egy speciális témakörhöz szükséges adathalmaz egyszerű, tömör reprezentálása. Kihagyjuk azokat az adatokat, amelyek nem kellenek a döntéshozáshoz. 2021. 03. 10. Adattárházak 3

Mit jelent az integráltság? n n Többféle, heterogén adatforrás adataiból készítjük el az adattárházat

Mit jelent az integráltság? n n Többféle, heterogén adatforrás adataiból készítjük el az adattárházat n relációs adatbázisok, sima szöveges fájlok, tranzakciós rekordok Integrációs technikákat és adattisztítást kell alkalmaznunk. n Biztosítani kell a különböző helyről származó adatok esetén is az egységes elnevezéseket, egységes struktúrákat, egységes attribútum mértékeket. n n 2021. 03. 10. például a szállodai szobaár: 10000 Ft, 2700 Ft AFA, reggelivel Az adattárházba kerüléskor rögtön konvertáljuk az adatokat a megfelelő formátumra Adattárházak 4

Mit jelent az időfüggés? n Általában hosszabb időtartamra (akár évekre visszamenőleg) vizsgáljuk az adatokat

Mit jelent az időfüggés? n Általában hosszabb időtartamra (akár évekre visszamenőleg) vizsgáljuk az adatokat n n n A működési adatbázisban: az adatok aktuális értéke szerepel Az adattárházban: az adatok múltja is szerepel Az adattárház kulcsai (azonosítói) n n 2021. 03. 10. mindig tartalmaznak időpontot, explicit vagy implicit formában a működési adatbázisban nincs mindig időpont megadva Adattárházak 5

Mi jellemző a fizika tárolásra? n A működési környezetből átvett adatokat fizikailag elkülönítve tároljuk

Mi jellemző a fizika tárolásra? n A működési környezetből átvett adatokat fizikailag elkülönítve tároljuk n A működési környezetben történő módosítások nem láthatók egyből az adattárházban n Nincs szükség tranzakció-kezelésre, naplózásra, konkurenciakezelésre n Két alapvető adatelérési művelet kell csak: n 2021. 03. 10. a kezdeti adatbetöltés és a lekérdezésekhez szükséges adatelérés Adattárházak 6

Adattárház vagy heterogén adatbázis-kezelés? n A heterogén adatbázisok hagyományos integrálása: lekérdezésvezérelt n Burkolókat és

Adattárház vagy heterogén adatbázis-kezelés? n A heterogén adatbázisok hagyományos integrálása: lekérdezésvezérelt n Burkolókat és közvetítőket (wrappers/mediators) használunk a heterogén adatbázisok feletti rétegben n A lekérdezést egy metaszótár segítségével a heterogén adatbázisok számára értelmezhető alkérdésekké alakítjuk, a megfelelő adatbázisban végrehajtjuk az alkérdést, majd az eredményeket visszaadjuk, és ezekből összerakjuk az eredeti lekérdezésre a választ n bonyolult információszűrő folyamat, ráadásul az erőforrásokért versenyezni is kell (mi van, ha nem érhető el éppen az adatbázis? ) n Adattárház: frissítésvezérelt, nagy teljesítmény, gyorsaságot lehet elérni vele n a heterogén adatforrások adatait előzetesen integráljuk és betöltjük egy adattárházba, majd ezt kérdezzük le, ezen végezzük el az elemzéseket. 2021. 03. 10. Adattárházak 7

Adattárház vagy működési adatbázis? n OLTP (on-line transaction processing) on-line tranzakciós feldolgozás n n

Adattárház vagy működési adatbázis? n OLTP (on-line transaction processing) on-line tranzakciós feldolgozás n n a hagyományos adatbázis-kezelés fő feladata a napi működést szolgálja ki: vásárlás, raktárnyilvántartás, bankolás, gyártás, bérszámfejtés, regisztrálás, könyvelés. OLAP (on-line analytical processing) on-line elemző feldolgozás n az adattárházak fő feladata n adatok elemzése, döntéshozás Mik az eltérések az OLTP és az OLAP között: n n n 2021. 03. 10. felhasználói kör, a rendszer célja: ügyfelek kiszolgálása, illetve piaci pozíciók megszerzése adattartalom: részletes, aktuális, illetve redukált, történeti adatok az adatbázis tervezése: az alkalmazásoknak megfelelő egyed-kapcsolat modell, illetve a témához tartozó adatok csillagsémában tárolva nézőpont: aktuális helyi adatok, illetve több helyről származó, integrált adatok időbeli változása hozzáférések célja: módosítás, illetve bonyolult, csak olvasási lekérdezések Adattárházak 8

Az OLTP és az OLAP közti különbségek OLTP OLAP a felhasználók ügyfelek, adminisztrátorok, programozók

Az OLTP és az OLAP közti különbségek OLTP OLAP a felhasználók ügyfelek, adminisztrátorok, programozók adatelemző tudásmunkások a funkcionalitás célja napi működés kiszolgálása döntéshozás az adatbázis tervezése alkalmazásorientált témaorientált az adatok aktuálisak, részletesek, relációsak, vagy szöveges állományok, elkülönítettek történeti, összesített, többdimenziós, egységesített, integrált a felhasználás módja folyamatos, ismétlődő időnkénti, ad-hoc a hozzáférés módja olvas/írás, indexek az elsődleges kulcsokra lekérdezések, sokféle, speciális index használata a tipikus munkaegység rövid, egyszerű tranzakció összetett lekérdezés a munkaegységbe bevont rekordok száma pár tucat milliós nagyságrend a felhasználók száma több ezer száznál kevesebb az adatbázis mérete 100 megabájt – pár gigabájt 100 gigabájt – több terabájt a teljesítmény mérése tranzakciószám/másodperc lekérdezés száma/másodperc, átlagos válaszidő 2021. 03. 10. Adattárházak 9

Miért különítjük el az adattárházat? n Nagy teljesítmény akarunk elérni mindkét rendszerben n Az

Miért különítjük el az adattárházat? n Nagy teljesítmény akarunk elérni mindkét rendszerben n Az adattárház az OLAP-ot támogatja: összetett OLAP lekérdezéseket, többdimenziós nézeteket, összesítéseket Más a cél, másfélék az adatok, mint OLTP esetén: n n Az adatbázis-kezelő rendszerek az OLTP-t támogatják: különböző adatelérési módszerekkel, indexelésekkel, konkurenciakezeléssel, helyreállítási mechanizmusokkal hiányzó adatok: A döntésekhez nagyon régi adatok is kellhetnek, ami a napi működéshez nem kellene (már archiválva van) összesítések: heterogén forrásokból származó adatokat kell összesíteni, aggregálni adatminőség változatos: a különböző rendszerek eltérően reprezentálják, kódolják az adatokat, így ezeket össze kell egyeztetni Megjegyzés: Léteznek adattárház nélküli OLAP rendszerek, amelyek közvetlenül az relációs adatbázisból dolgoznak. 2021. 03. 10. Adattárházak 10

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n Adattárházak megvalósítása n Adatok általánosítása és fogalmi leírások n Az adattárháztól az adatbányászatig 2021. 03. 10. Adattárházak 11

A táblázatoktól az adatkockákig n Az adattárház többdimenziós adatmodellt valósít meg, tipikusan adatkockákat használ.

A táblázatoktól az adatkockákig n Az adattárház többdimenziós adatmodellt valósít meg, tipikusan adatkockákat használ. n Egy adatkocka, mint például az eladások, esetén az adatokat több dimenzióban nézhetjük, modellezhetjük n Dimenziótáblákat használunk: cikk(cikk_név, márka, típus), vagy idő(nap, hét, hónap, negyedév, év) n A ténytábla tartalmazza az értékeket, mértékeket (például eladott_mennyiség_dollárban) és kulcsokat a megfelelő dimenziótáblákhoz, amely alapján a dimenzió részleteit tudjuk a tényekhez hozzákapcsolni n Az n-dimenziós (n-D) alapkockát alapkuboidnak (alaptéglának) hívjuk. Ez a legrészletezettebb nézete a tényeknek. A legfelső szintű 0 -D kuboid a teljes összesítést tartalmazza, (függetlenül helytől, időtől, egyéb dimenzióktól). Ez az apex kuboid. A kuboidok hálóját hívjuk adatkockának. 2021. 03. 10. Adattárházak 12

Az adatkocka: a kuboidok hálója összes (all) idő cikk idő, hely idő, cikk 0

Az adatkocka: a kuboidok hálója összes (all) idő cikk idő, hely idő, cikk 0 -D (apex) kuboid hely szállító cikk, hely idő, szállító hely, szállító cikk, szállító idő, hely, szállító idő, cikk, hely idő, cikk, szállító 1 -D kuboidok 2 -D kuboidok 3 -D kuboidok cikk, hely, szállító 4 -D (alap) kuboid idő, cikk, hely, szállító 2021. 03. 10. Adattárházak 13

Az adattárház fogalmi modelljei n Adattárházak modelljei: dimenziók és mértékek n Csillagséma: Középen áll

Az adattárház fogalmi modelljei n Adattárházak modelljei: dimenziók és mértékek n Csillagséma: Középen áll a ténytábla, ami dimenziótáblákkal van összekapcsolva. n Hópehelyséma: A csillagséma finomítása, a dimenziótáblákat dekomponáljuk normálformájú kisebb dimenziótáblákra. n Csillagkép vagy galaxisséma: Több ténytábla közös dimenziótáblákat használ. 2021. 03. 10. Adattárházak 14

Csillagséma time item time_key day_of_the_week month quarter year Sales ténytábla time_key item_key branch_key branch_name

Csillagséma time item time_key day_of_the_week month quarter year Sales ténytábla time_key item_key branch_key branch_name branch_type location_key units_sold dollars_sold avg_sales item_key item_name brand type supplier_type location_key street city state_or_province country Mértékek 2021. 03. 10. Adattárházak 15

Hópehelyséma time_key day_of_the_week month quarter year item Sales ténytábla time_key item_key branch location_key branch_name

Hópehelyséma time_key day_of_the_week month quarter year item Sales ténytábla time_key item_key branch location_key branch_name branch_type units_sold dollars_sold avg_sales Mértékek 2021. 03. 10. Adattárházak item_key item_name brand type supplier_key supplier_type location_key street city_key city state_or_province country 16

Galaxisséma ( 2 ténytáblával) time_key day_of_the_week month quarter year item Sales ténytábla time_key item_key

Galaxisséma ( 2 ténytáblával) time_key day_of_the_week month quarter year item Sales ténytábla time_key item_key item_name brand type supplier_type location_key branch_name branch_type units_sold dollars_sold avg_sales Mértékek 2021. 03. 10. Adattárházak time_key item_key shipper_key from_location branch_key branch Shipping ténytábla location to_location_key street city province_or_state country dollars_cost units_shipped shipper_key shipper_name location_key shipper_type 17

Adatbányász (adattárház) nyelvek n n Szabvány nincs, de több kísérlet történt a funkciók SQL-szerű

Adatbányász (adattárház) nyelvek n n Szabvány nincs, de több kísérlet történt a funkciók SQL-szerű leírására. DMQL – egy adatbányász lekérdező nyelv relációs adatbázisokra (Han definiálta 1996 -ban) GMQL (Geo Mining Query Language) - térbeli adatok adatbányászó nyelve, DMQL-re épül (Koperski definiálta 1999 -ben) SDMOQL (Spatial Data Mining Object Query Language) itérbeli adatok objektum alapú lekérdező nyelve, OQL-re épül (Malerba definiálta 2002 -ben) 2021. 03. 10. Adattárházak 18

Adatkocka definiálása (BNF) DMQL-ben n Kocka (ténytábla) definiálása define cube <kockanév> [<dimenzió_lista>]: <mérték_lista> Dimenziótáblák

Adatkocka definiálása (BNF) DMQL-ben n Kocka (ténytábla) definiálása define cube <kockanév> [<dimenzió_lista>]: <mérték_lista> Dimenziótáblák definiálása define dimension <dimenziónév> as (<attribútum_vagy_aldimenzió_lista>) Közös dimenziótáblák definiálása n ha már egy kockában definiáltuk a dimenziót n define dimension <dimenziónév> as <dimenziónév_a_másik_kockában> in cube <a_másik_kocka_neve> 2021. 03. 10. Adattárházak 19

Csillagséma definiálása DMQL-ben define cube sales_star [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales

Csillagséma definiálása DMQL-ben define cube sales_star [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city, province_or_state, country) 2021. 03. 10. Adattárházak 20

Hópehelyséma definiálása DMQL-ben define cube sales_snowflake [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales

Hópehelyséma definiálása DMQL-ben define cube sales_snowflake [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier(supplier_key, supplier_type)) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city(city_key, province_or_state, country)) 2021. 03. 10. Adattárházak 21

Galaxisséma definiálása DMQL-ben define cube sales [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales

Galaxisséma definiálása DMQL-ben define cube sales [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city, province_or_state, country) define cube shipping [time, item, shipper, from_location, to_location]: dollar_cost = sum(cost_in_dollars), unit_shipped = count(*) define dimension time as time in cube sales define dimension item as item in cube sales define dimension shipper as (shipper_key, shipper_name, location as location in cube sales, shipper_type) define dimension from_location as location in cube sales define dimension to_location as location in cube sales 2021. 03. 10. Adattárházak 22

Adatkockák az Oracle-ben 2021. 03. 10. Adattárházak 23

Adatkockák az Oracle-ben 2021. 03. 10. Adattárházak 23

Dimenzió készítése Oracle-ben 2021. 03. 10. Adattárházak 24

Dimenzió készítése Oracle-ben 2021. 03. 10. Adattárházak 24

Szintek és hierarchiák készítése Oracle-ben 2021. 03. 10. Adattárházak 25

Szintek és hierarchiák készítése Oracle-ben 2021. 03. 10. Adattárházak 25

Attribútumok készítése Oracle-ben 2021. 03. 10. Adattárházak 26

Attribútumok készítése Oracle-ben 2021. 03. 10. Adattárházak 26

Kocka készítése Oracle-ben 2021. 03. 10. Adattárházak 27

Kocka készítése Oracle-ben 2021. 03. 10. Adattárházak 27

A kocka mértékeinek megadása Oracle-ben 2021. 03. 10. Adattárházak 28

A kocka mértékeinek megadása Oracle-ben 2021. 03. 10. Adattárházak 28

Az adatkockákban háromféle mérték szerepelhet n Disztributív: partíciókra kiszámolva és az eredményekre alkalmazva ugyanazt

Az adatkockákban háromféle mérték szerepelhet n Disztributív: partíciókra kiszámolva és az eredményekre alkalmazva ugyanazt kapjuk, mintha a teljes adathalmazra alkalmaztuk volna: f( {f(P 1), …, f(Pn)} ) = f(P 1∪ … ∪Pn) n n n ilyen például a count(), sum(), min(), max() Algebrai: ha egy N változós algebrai függvénybe disztributív függvényeket helyettesítünk n ilyen például avg() = sum()/count(), n min_N() : n-ik legkisebb, n standard_deviation() Holisztikus (teljes): nem korlátos számú argumentumú függvény n 2021. 03. 10. például median(), mode(), rank() Adattárházak 29

Egy fogalmi hierarchia a HELY dimenzióban bármi (all) összes - bármi (all) Europe régió

Egy fogalmi hierarchia a HELY dimenzióban bármi (all) összes - bármi (all) Europe régió ország város iroda 2021. 03. 10. Germany Frankfurt . . Spain North_America Canada Vancouver. . . L. Chan Adattárházak . . . Mexico Toronto M. Wind 30

Adattárházak, hierarchiák megjelenítése Hierarchiák specifikálása: n séma szintű hierarchia nap < {hónap < negyedév;

Adattárházak, hierarchiák megjelenítése Hierarchiák specifikálása: n séma szintű hierarchia nap < {hónap < negyedév; hét} < év n értékhalmaz szintű hierarchia {1. . 10} < olcsó 2021. 03. 10. Adattárházak 31

Többdimenziós adatok Az eladott mennyiséget a termék, hónap és régió függvényében adjuk meg Dimenziók:

Többdimenziós adatok Az eladott mennyiséget a termék, hónap és régió függvényében adjuk meg Dimenziók: Termék, Hely, Idő Hierarchikus összesítő utak Ré gi ó n Ipar Régió Év Termék Kategória Ország Negyedév Termék Város Hónap Iroda Nap Hét Hónap 2021. 03. 10. Adattárházak 32

TV PC MP 3 1. n. é. Dátum 2. n. é. 3. n. é.

TV PC MP 3 1. n. é. Dátum 2. n. é. 3. n. é. 4. n. é. Éves TV eladás az USA-ban U. S. A Kanada Mexico Ország Te rm ék Az összesítéseket tartalmazó adatkocka 2021. 03. 10. Adattárházak 33

A kockának megfelelő kuboidok all 0 -D (apex) kuboid termék, dátum ország termék, ország

A kockának megfelelő kuboidok all 0 -D (apex) kuboid termék, dátum ország termék, ország 1 -D kuboidok dátum, ország 2 -D kuboidok termék, dátum, ország 2021. 03. 10. Adattárházak 3 -D (alap) kuboid 34

Adatkocka böngészése n n n Az adatkocka használatánál szükséges a megjelenítés OLAP műveletek kezelése

Adatkocka böngészése n n n Az adatkocka használatánál szükséges a megjelenítés OLAP műveletek kezelése interaktív kezelés Mi jellemző a legnagyobb összesített eladásra? Legnagyobb kocka: Észak. Amerika, szabadtéri, olcsó termék: legfeljebb 20000 az ára 2021. 03. 10. Adattárházak 35

Tipikus OLAP műveletek n Felgörgetés - Roll up (drill-up): összesítjük (pl. összegezzük) az adatokat

Tipikus OLAP műveletek n Felgörgetés - Roll up (drill-up): összesítjük (pl. összegezzük) az adatokat n n Lefúrás - Drill down (roll down): kirészletezünk adatokat (a felgörgetés fordítottja) n n alacsonyabb szintű összesítést veszünk, részletezzük az adatokat, vagy bevezetünk egy új dimenziót Szeletelés és kockázás - Slice and dice: vetítés és kiválasztás Forgatás (pivotálás) - Pivot (rotate): n n a hierarchián feljebb lépve vagy a dimenziót elhagyva elforgatjuk a kockát, vagy a vizualizációját, a 3 D-t alkotó 2 D-s síkszeletek sorozatát átrendezzük Egyéb műveletek Keresztülfúrás - drill across: egynél több ténytáblában fúrunk le Átfúrás -drill through: n a lefúrást SQL utasításokkal a kockában a legrészletezettebb adatokig, azaz az alap relációs táblákig folytatjuk n n 2021. 03. 10. Adattárházak 36

Példa az OLAP műveletekre: felgörgetés (Roll-up) A városokat összesítjük az országokban 2021. 03. 10.

Példa az OLAP műveletekre: felgörgetés (Roll-up) A városokat összesítjük az országokban 2021. 03. 10. Adattárházak 37

Példa az OLAP műveletekre: lefúrás (Drill-down) Kibontjuk a negyedéveket hónapokra 2021. 03. 10. Adattárházak

Példa az OLAP műveletekre: lefúrás (Drill-down) Kibontjuk a negyedéveket hónapokra 2021. 03. 10. Adattárházak 38

Példa az OLAP műveletekre: kockázás (Dice) Egy részkockát képzünk két városra, két negyedévre és

Példa az OLAP műveletekre: kockázás (Dice) Egy részkockát képzünk két városra, két negyedévre és két termékre 2021. 03. 10. Adattárházak 39

Példa az OLAP műveletekre: szeletelés (Slice) Az első negyedév szerinti kétdimenziós szeletet vesszük 2021.

Példa az OLAP műveletekre: szeletelés (Slice) Az első negyedév szerinti kétdimenziós szeletet vesszük 2021. 03. 10. Adattárházak 40

Példa az OLAP műveletekre: forgatás (Pivot) A hely és termék tengelyeket felcseréljük 2021. 03.

Példa az OLAP műveletekre: forgatás (Pivot) A hely és termék tengelyeket felcseréljük 2021. 03. 10. Adattárházak 41

A dimenziók fogalmi hierarchiáinak reprezentálása csillagháló (Star-Net) modellben Rendelések Szállítás Vásárló szerződések légi rendelések

A dimenziók fogalmi hierarchiáinak reprezentálása csillagháló (Star-Net) modellben Rendelések Szállítás Vásárló szerződések légi rendelések negyedév Idő év kamion márka nap ország város termékcsoport Termék cikk értékesítő karácsonyi kerület régió Hely 2021. 03. 10. téli Minden kör egy lábnyom (footprint) Akciók Adattárházak osztály Szervezet 42

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n Adattárházak megvalósítása n Adatok általánosítása és fogalmi leírások n Az adattárháztól az adatbányászatig 2021. 03. 10. Adattárházak 43

Adattárház tervezése n Négyféle szempont az adattárház tervezéséhez n Fentről le n n Adatforrás

Adattárház tervezése n Négyféle szempont az adattárház tervezéséhez n Fentről le n n Adatforrás n n milyen tény és dimenziótáblákat tárolunk az adattárházban Üzlet n 2021. 03. 10. mit tárolunk a működési rendszereinkben Adattárház n n az adattárházhoz szükséges lényeges információ kiválasztása (mire van és mire lehet majd szükség) a végfelhasználó milyen célra használhatja majd az adatokat Adattárházak 44

Az adattárház tervezési folyamata n Fentről le, vagy lentről fel, vagy kombinálva n n

Az adattárház tervezési folyamata n Fentről le, vagy lentről fel, vagy kombinálva n n n Lentről fel (Bottom-up): Próbálgatunk, prototípusokat adunk (gyors) Szoftvertervezési szempontból n n n Fentről le (Top-down): Gondosan, fokozatosan részletezve mindent megtervezünk (időigényes) Vízesés modell (Waterfall): strukturált, szisztematikus elemzés, mielőtt a következő lépést megtesszük Spirális modell (Spiral): gyorsan, egyre több funkcionalitást teszünk a készülő rendszerbe Az adattárház tervezési folyamatának tipikus lépései n Határozzuk meg az üzleti folyamatokat, amelyekben modellezzünk például a rendeléseket, számlákat n Határozzuk meg az üzleti folyamatok atomi adatszintjét n Határozzuk meg a tényrekordokhoz tartozó dimenziókat n Határozzuk meg a rekordokban szereplő mértékeket 2021. 03. 10. Adattárházak 45

Adattárház megvalósítása többrétegű architektúrában Más források Működési adatbázis Metaadat Kiszed Tisztít Transzformál Betölt Frissít

Adattárház megvalósítása többrétegű architektúrában Más források Működési adatbázis Metaadat Kiszed Tisztít Transzformál Betölt Frissít Monitor & Integrátor Adattárház OLAP Szerver szolgáltat Elemzés Lekérdezés Jelentések Adatbányászat Adatpiacok Adatforrások 2021. 03. 10. Tárolt adatok Adattárházak OLAP motor Kliens eszközök 46

Az adattárház három típusa n n Vállalati adattárház (Enterprise warehouse) n a teljes szervezet

Az adattárház három típusa n n Vállalati adattárház (Enterprise warehouse) n a teljes szervezet összes fontos információját tartalmazza, amely bármilyen témájú elemzéshez valaha is kellhet Adatpiac (Data Mart) n egy adott témához (például marketing) szükséges adatok gyűjteménye n n külön is megépíthetjük, de lehet része a vállalati adattárháznak is Virtuális adattárház (Virtual warehouse) n A működési adatbázisra építünk nézeteket n Egyes összesítő nézeteket materializálunk 2021. 03. 10. Adattárházak 47

Adattárház építése 4. Többrétegű adattárház architektúra 3. Osztott adatpiacok építése 2. Adatpiac építése 2.

Adattárház építése 4. Többrétegű adattárház architektúra 3. Osztott adatpiacok építése 2. Adatpiac építése 2. Vállalati adattárház építése 2. Adatpiac építése A modell finomítása 1. Magas szintű szervezeti adatmodell definiálása 2021. 03. 10. Adattárházak 48

Adattárház-építő segédeszközök n n n Adatgyűjtéshez n több, heterogén, akár külső adatforrásból összegyűjti, kiválasztja

Adattárház-építő segédeszközök n n n Adatgyűjtéshez n több, heterogén, akár külső adatforrásból összegyűjti, kiválasztja a szükséges adatokat Adattisztításhoz n adathibákat kijelzi, ha lehet ki is javítja Adattranszformációhoz n az örökölt adatbázisokból az adatokat az adattárház formátumára transzformálja Betöltéshez n rendez, összesít, egyesít, nézeteket készít, ellenőrzi az integritási feltételeket, indexeket készít, particionál Frissítéshez n időközönként az új adatokat, változásokat betölti az adattárházba 2021. 03. 10. Adattárházak 49

A leíró adatok kezelése (Metadata Repository) n A metaadatok az adattárház objektumainak definícióit tárolják.

A leíró adatok kezelése (Metadata Repository) n A metaadatok az adattárház objektumainak definícióit tárolják. n Adattárház struktúráinak leírása n n Működési metaadatok n n n sémák, nézetek, dimenziók, hierarchiák, számolt adatok definíciói, adatpiacok elérési helye és tartalma adatvonal (a migrált adatok története és a transzformációk sorozata), adatállapot (aktív, archivált, törölt), monitorozási információk (használati statisztikák, hibajelentések, ellenőrzések) Az összesítésekhez, aggregációkhoz szükséges algoritmusok Azok a leképezések (mappings), amelyek a működési adatbázisból áttöltik az adatokat az adattárházba Rendszer szintű adatleírások a jobb teljesítményhez n indexek definíciói, frissítési periódusok Üzleti adatok n 2021. 03. 10. üzleti fogalmak, definíciók, díjkalkulációk Adattárházak 50

OLAP szerver architektúrák n Relációs OLAP (ROLAP) n n n az adatbázis-kezelő lehetőséget biztosít

OLAP szerver architektúrák n Relációs OLAP (ROLAP) n n n az adatbázis-kezelő lehetőséget biztosít az optimalizálásra, aggregációra és egyéb kiegészítő eszköz, szolgáltatás használatára jól skálázható Multidimenziós OLAP (MOLAP) n ritka tömbök kezelésére kifejlesztett többdimenziós tárkezelő n az összesített, aggregált adatok speciális indexelési lehetősége Hibrid OLAP (HOLAP) (pédául Microsoft SQLServer) n n alsó rétegben egy relációs vagy objektumrelációs adatbázis-kezelő tárolja, kezeli az adattárház adatait, erre épül rá az OLAP köztes réteg az alsó szint relációs, felső szint tömbkezelő Speciális SQL szerver (például Redbricks) n 2021. 03. 10. SQL lekérdező utasítások csillagsémákra, hópehelysémákra Adattárházak 51

Adattárházak felhasználása n Felhasználási területek n Alapinformáció szolgáltatása n n Elemzések n n n

Adattárházak felhasználása n Felhasználási területek n Alapinformáció szolgáltatása n n Elemzések n n n többdimenziós elemzések OLAP műveletek (szeletelés, kockázás, lefúrás, forgatás) használata Adatbányászat n n 2021. 03. 10. lekérdezések, alapvető statisztikai elemzések, jelentések, (táblák, kereszttáblák, diagramok, grafikonok) rejtett minták feltárása asszociációs szabályok keresése, analitikus modell készítése, osztályozás és előrejelzés, az eredmények vizuális megjelenítése Adattárházak 52

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n Adattárházak megvalósítása n Adatok általánosítása és fogalmi leírások n Az adattárháztól az adatbányászatig 2021. 03. 10. Adattárházak 53

Adatkockák hatékony előállítása n Az adatkocka kuboidok hálója n A háló legalján az alapkuboid

Adatkockák hatékony előállítása n Az adatkocka kuboidok hálója n A háló legalján az alapkuboid áll. n A háló tetején az egy cellából álló apex kuboid áll. n n Hány darab n-dimenziós kuboid van, ha Li (+1 az ANY miatt) szint van egy dimenzióban? Az adatkockát érdemes materializálni n n n részleges materializálás: néhány kuboidot n nincs materializás Melyik kuboidot materializáljuk? n 2021. 03. 10. teljes materializálás: összes kuboidot (2 n vagy még több, ha szintek is vannak) gyakran van rá szükség, mennyi hely van a kuboidok tárolására, sok összesítést tudunk belőle képezni Adattárházak 54

Adatkocka műveletek n A kocka definiálása DMQL-ben define cube sales[item, city, year]: sum(sales_in_dollars) compute

Adatkocka műveletek n A kocka definiálása DMQL-ben define cube sales[item, city, year]: sum(sales_in_dollars) compute cube sales n () Kifejezhető SQL-ben a cube by (Gray 1996) művelettel SELECT item, city, year, SUM (amount) (city) (item) (year) FROM SALES (city, item) (city, year)(item, year) n CUBE BY item, city, year Mindez az alábbi Group-By –ok képzését jelenti (city, item, year) (date, product, customer), (date, product), (date, customer), (product, customer), (date), (product), (customer) () 2021. 03. 10. Adattárházak 55

A jéghegy kocka n Csak azokat a kuboidokat számoljuk ki, amelyekhez tartozó aggregátorérték elég

A jéghegy kocka n Csak azokat a kuboidokat számoljuk ki, amelyekhez tartozó aggregátorérték elég nagy, például elég sok adatot tartalmaz HAVING COUNT(*) >= minsup n Motiváció n Általában csak kevés kuboid érdekes egy ritka kockában n Azok lesznek az érdekesek, amelyben az aggregáció elér egy küszöbindexet n Nem kell exponenciális sok kockát kiszámolni 2021. 03. 10. Adattárházak 56

A jéghegy kocka n SELECT Part, Store. Location, Customer, SUM(Price) FROM R CUBE BY

A jéghegy kocka n SELECT Part, Store. Location, Customer, SUM(Price) FROM R CUBE BY Part, Store. Location, Customer HAVING COUNT(*) >=2 Az R adatbázis A jéghegy kuboidjai PRICE 23 34 45 56 67 78 89 90 2021. 03. 10. Adattárházak 57

Az OLAP adatok indexelése: Bitmap index n n n Olyan oszlopra jó, amelyben kevés

Az OLAP adatok indexelése: Bitmap index n n n Olyan oszlopra jó, amelyben kevés különböző értéke szerepel (az oszlop képmérete kicsi) Minden értéknek egy bitvektor felel meg, mivel a bitműveletek gyorsak A bitvektornak annyi eleme van, ahány sora van a táblának A bitvektor j-ik komponense 1, ha a j-ik rekordban ez az értéke szerepel az indexelt oszlopban, egyébként 0. Jól használható AND, OR, COUNT, GROUP BY számítására Az alap tábla 2021. 03. 10. Index a Region oszlopra Adattárházak Index a Type oszlopra 58

Az OLAP adatok indexelése: összekapcsolási index (Join Index) n n n A join index:

Az OLAP adatok indexelése: összekapcsolási index (Join Index) n n n A join index: JI(R-id, S-id) formájú, ahol R (R-id, …) S (S-id, …) A join index párok formájában materializálja az összekapcsolható sorokat, ezzel gyorssá teszi az összekapcsolási műveletet Az adattárház csillagsémájában a dimenziótáblák rekordjait kell a ténytábla rekordjaihoz kapcsolni, így erre nagyon jól használható. n Például a Sales ténytáblához kapcsoljuk a location és az item dimenziókat n A city join index azokat a párokat tartalmazza, hogy egy adott városban milyen azonosítóval rendelkező eladások történtek n Lehetne hármasokat is tárolni (a három tábla összekapcsolható rekordazonosítóit) 2021. 03. 10. Adattárházak 59

Az OLAP lekérdezések hatékony végrehajtása n Határozzuk meg, milyen műveleteket kellene elvégezni a rendelkezésre

Az OLAP lekérdezések hatékony végrehajtása n Határozzuk meg, milyen műveleteket kellene elvégezni a rendelkezésre álló kuboidokon n A lefúrás, felgörgetés, stb. műveleteket írjuk át SQL-be, például a kockázás művelet kiválasztással és vetítéssel fejezhető ki. n Határozzuk meg, mely materializált kuboidokból számolható ki az OLAP művelet. Például adott a következő kocka és a hierarchiák a szokásosak. define cube sales_star [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city, province_or_state, country) n Egy olyan lekérdezés kell kiszámolni, amely a {brand, province_or_state} értékekre vonatkozik a “year = 2004” feltétellel. A következő 4 materializált nézet közül melyiket használhatjuk? 1) {year, item_name, city} 2) {year, brand, country} 3) {year, brand, province_or_state} 4) {item_name, province_or_state}, ahol year = 2004 A 2. nem jó, mert a country adatokban elveszítjük a finomabb province_or_state értékeket. A többi jó. Az 1. választása a sok city érték miatt kevésbé hatékony. Ha sok item tartozik ugyanahhoz a brand értékhez, akkor 4. se elég hatékony. A 3. a legjobb. (Indexek esetén más lehet a helyzet!) 2021. 03. 10. Adattárházak 60

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n

Adattárházak n Adattárház: alapfogalmak n Adattárház modellek: adatkockák és OLAP n Adattárház architektúrák n Adattárházak megvalósítása n Adatok általánosítása és fogalmi leírások n Az adattárháztól az adatbányászatig 2021. 03. 10. Adattárházak 61

What is Concept Description? n n Descriptive vs. predictive data mining n Descriptive mining:

What is Concept Description? n n Descriptive vs. predictive data mining n Descriptive mining: describes concepts or task-relevant data sets in concise, summarative, informative, discriminative forms n Predictive mining: Based on data and analysis, constructs models for the database, and predicts the trend and properties of unknown data Concept description: n Characterization: provides a concise and succinct summarization of the given collection of data n Comparison: provides descriptions comparing two or more collections of data 2021. 03. 10. Adattárházak 62

Data Generalization and Summarization-based Characterization n Data generalization n A process which abstracts a

Data Generalization and Summarization-based Characterization n Data generalization n A process which abstracts a large set of task-relevant data in a database from a low conceptual levels to higher ones. 1 2 3 4 5 n 2021. 03. 10. Conceptual levels Approaches: n Data cube approach(OLAP approach) n Attribute-oriented induction approach Adattárházak 63

Attribute-Oriented Induction n Proposed in 1989 (KDD ‘ 89 workshop) n Not confined to

Attribute-Oriented Induction n Proposed in 1989 (KDD ‘ 89 workshop) n Not confined to categorical data nor particular measures n How it is done? n n 2021. 03. 10. Collect the task-relevant data (initial relation) using a relational database query Perform generalization by attribute removal or attribute generalization Apply aggregation by merging identical, generalized tuples and accumulating their respective counts Interactive presentation with users Adattárházak 64

Basic Principles of Attribute-Oriented Induction n n Data focusing: task-relevant data, including dimensions, and

Basic Principles of Attribute-Oriented Induction n n Data focusing: task-relevant data, including dimensions, and the result is the initial relation Attribute-removal: remove attribute A if there is a large set of distinct values for A but (1) there is no generalization operator on A, or (2) A’s higher level concepts are expressed in terms of other attributes Attribute-generalization: If there is a large set of distinct values for A, and there exists a set of generalization operators on A, then select an operator and generalize A Attribute-threshold control: typical 2 -8, specified/default Generalized relation threshold control: control the final relation/rule size 2021. 03. 10. Adattárházak 65

Attribute-Oriented Induction: Basic Algorithm n n Initial. Rel: Query processing of task-relevant data, deriving

Attribute-Oriented Induction: Basic Algorithm n n Initial. Rel: Query processing of task-relevant data, deriving the initial relation. Pre. Gen: Based on the analysis of the number of distinct values in each attribute, determine generalization plan for each attribute: removal? or how high to generalize? Prime. Gen: Based on the Pre. Gen plan, perform generalization to the right level to derive a “prime generalized relation”, accumulating the counts. Presentation: User interaction: (1) adjust levels by drilling, (2) pivoting, (3) mapping into rules, cross tabs, visualization presentations. 2021. 03. 10. Adattárházak 66

Example n n DMQL: Describe general characteristics of graduate students in the Big-University database

Example n n DMQL: Describe general characteristics of graduate students in the Big-University database use Big_University_DB mine characteristics as “Science_Students” in relevance to name, gender, major, birth_place, birth_date, residence, phone#, gpa from student where status in “graduate” Corresponding SQL statement: Select name, gender, major, birth_place, birth_date, residence, phone#, gpa from student where status in {“Msc”, “MBA”, “Ph. D” } 2021. 03. 10. Adattárházak 67

Class Characterization: An Example Initial Relation Prime Generalized Relation 2021. 03. 10. Adattárházak 68

Class Characterization: An Example Initial Relation Prime Generalized Relation 2021. 03. 10. Adattárházak 68

Presentation of Generalized Results n Generalized relation: n n Cross tabulation: n n Relations

Presentation of Generalized Results n Generalized relation: n n Cross tabulation: n n Relations where some or all attributes are generalized, with counts or other aggregation values accumulated. Mapping results into cross tabulation form (similar to contingency tables). n Visualization techniques: n Pie charts, bar charts, curves, cubes, and other visual forms. Quantitative characteristic rules: n 2021. 03. 10. Mapping generalized result into characteristic rules with quantitative information associated with it, e. g. , Adattárházak 69

Mining Class Comparisons n Comparison: Comparing two or more classes n Method: n Partition

Mining Class Comparisons n Comparison: Comparing two or more classes n Method: n Partition the set of relevant data into the target class and the contrasting class(es) n Generalize both classes to the same high level concepts n Compare tuples with the same high level descriptions n Present for every tuple its description and two measures n n n support - distribution within single class n comparison - distribution between classes Highlight the tuples with strong discriminant features Relevance Analysis: n 2021. 03. 10. Find attributes (features) which best distinguish different classes Adattárházak 70

Quantitative Discriminant Rules n n Cj = target class qa = a generalized tuple

Quantitative Discriminant Rules n n Cj = target class qa = a generalized tuple covers some tuples of class n but can also cover some tuples of contrasting class d-weight n range: [0, 1] quantitative discriminant rule form 2021. 03. 10. Adattárházak 71

Example: Quantitative Discriminant Rule Count distribution between graduate and undergraduate students for a generalized

Example: Quantitative Discriminant Rule Count distribution between graduate and undergraduate students for a generalized tuple n Quantitative discriminant rule n 2021. 03. 10. where 90/(90 + 210) = 30% Adattárházak 72

Class Description n Quantitative characteristic rule n necessary Quantitative discriminant rule n sufficient Quantitative

Class Description n Quantitative characteristic rule n necessary Quantitative discriminant rule n sufficient Quantitative description rule n n n 2021. 03. 10. necessary and sufficient Adattárházak 73

Example: Quantitative Description Rule Crosstab showing associated t-weight, d-weight values and total number (in

Example: Quantitative Description Rule Crosstab showing associated t-weight, d-weight values and total number (in thousands) of TVs and computers sold at All. Electronics in 1998 n Quantitative description rule for target class Europe 2021. 03. 10. Adattárházak 74

Concept Description vs. Cube-Based OLAP n n Similarity: n Data generalization n Presentation of

Concept Description vs. Cube-Based OLAP n n Similarity: n Data generalization n Presentation of data summarization at multiple levels of abstraction n Interactive drilling, pivoting, slicing and dicing Differences: n n 2021. 03. 10. OLAP has systematic preprocessing, query independent, and can drill down to rather low level AOI has automated desired level allocation, and may perform dimension relevance analysis/ranking when there are many relevant dimensions Adattárházak 75

Chapter 3: Data Warehousing, Data Generalization, and On-line Analytical Processing n Data warehouse: Basic

Chapter 3: Data Warehousing, Data Generalization, and On-line Analytical Processing n Data warehouse: Basic concept n Data warehouse modeling: Data cube and OLAP n Data warehouse architecture n Data warehouse implementation n Data generalization and concept description n From data warehousing to data mining 2021. 03. 10. Adattárházak 76

From On-Line Analytical Processing (OLAP) to On Line Analytical Mining (OLAM) n Why online

From On-Line Analytical Processing (OLAP) to On Line Analytical Mining (OLAM) n Why online analytical mining? n High quality of data in data warehouses n DW contains integrated, consistent, cleaned data n Available information processing structure surrounding data warehouses n ODBC, OLEDB, Web accessing, service facilities, reporting and OLAP tools n OLAP-based exploratory data analysis n Mining with drilling, dicing, pivoting, etc. n On-line selection of data mining functions n Integration and swapping of multiple mining functions, algorithms, and tasks 2021. 03. 10. Adattárházak 77

An OLAM System Architecture Mining query Mining result Layer 4 User Interface User GUI

An OLAM System Architecture Mining query Mining result Layer 4 User Interface User GUI API OLAM Engine OLAP Engine Layer 3 OLAP/OLAM Data Cube API Layer 2 MDDB Meta Data Filtering&Integration Database API Filtering Layer 1 Databases 2021. 03. 10. Data cleaning Data integration Warehouse Adattárházak Data Repository 78

Chapter 3: Data Warehousing, Data Generalization, and On-line Analytical Processing n Data warehouse: Basic

Chapter 3: Data Warehousing, Data Generalization, and On-line Analytical Processing n Data warehouse: Basic concept n Data warehouse modeling: Data cube and OLAP n Data warehouse architecture n Data warehouse implementation n Data generalization and concept description n From data warehousing to data mining n Summary 2021. 03. 10. Adattárházak 79

Summary: Data Generalization, Data Warehousing, and On-line Analytical Processing n Data generalization: Attribute-oriented induction

Summary: Data Generalization, Data Warehousing, and On-line Analytical Processing n Data generalization: Attribute-oriented induction n Data warehousing: A multi-dimensional model of a data warehouse n Star schema, snowflake schema, fact constellations n A data cube consists of dimensions & measures n OLAP operations: drilling, rolling, slicing, dicing and pivoting n Data warehouse architecture n OLAP servers: ROLAP, MOLAP, HOLAP n Efficient computation of data cubes n n Partial vs. full vs. no materialization n Indexing OALP data: Bitmap index and join index n OLAP query processing From OLAP to OLAM (on-line analytical mining) 2021. 03. 10. Adattárházak 80

References (I) n n n n n S. Agarwal, R. Agrawal, P. M. Deshpande,

References (I) n n n n n S. Agarwal, R. Agrawal, P. M. Deshpande, A. Gupta, J. F. Naughton, R. Ramakrishnan, and S. Sarawagi. On the computation of multidimensional aggregates. VLDB’ 96 D. Agrawal, A. E. Abbadi, A. Singh, and T. Yurek. Efficient view maintenance in data warehouses. SIGMOD’ 97 R. Agrawal, A. Gupta, and S. Sarawagi. Modeling multidimensional databases. ICDE’ 97 S. Chaudhuri and U. Dayal. An overview of data warehousing and OLAP technology. ACM SIGMOD Record, 26: 65 -74, 1997 E. F. Codd, S. B. Codd, and C. T. Salley. Beyond decision support. Computer World, 27, July 1993. J. Gray, et al. Data cube: A relational aggregation operator generalizing group-by, cross -tab and sub-totals. Data Mining and Knowledge Discovery, 1: 29 -54, 1997. A. Gupta and I. S. Mumick. Materialized Views: Techniques, Implementations, and Applications. MIT Press, 1999. J. Han. Towards on-line analytical mining in large databases. ACM SIGMOD Record, 27: 97 -107, 1998. V. Harinarayan, A. Rajaraman, and J. D. Ullman. Implementing data cubes efficiently. SIGMOD’ 96 2021. 03. 10. Adattárházak 81

References (II) n n n n n C. Imhoff, N. Galemmo, and J. G.

References (II) n n n n n C. Imhoff, N. Galemmo, and J. G. Geiger. Mastering Data Warehouse Design: Relational and Dimensional Techniques. John Wiley, 2003 W. H. Inmon. Building the Data Warehouse. John Wiley, 1996 R. Kimball and M. Ross. The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling. 2 ed. John Wiley, 2002 P. O'Neil and D. Quass. Improved query performance with variant indexes. SIGMOD'97 Microsoft. OLEDB for OLAP programmer's reference version 1. 0. In http: //www. microsoft. com/data/oledb/olap, 1998 A. Shoshani. OLAP and statistical databases: Similarities and differences. PODS’ 00. S. Sarawagi and M. Stonebraker. Efficient organization of large multidimensional arrays. ICDE'94 OLAP council. MDAPI specification version 2. 0. In http: //www. olapcouncil. org/research/apily. htm, 1998 E. Thomsen. OLAP Solutions: Building Multidimensional Information Systems. John Wiley, 1997 n P. Valduriez. Join indices. ACM Trans. Database Systems, 12: 218 -246, 1987. n J. Widom. Research problems in data warehousing. CIKM’ 95. 2021. 03. 10. Adattárházak 82