SQL OLAP 2. óra Multi-dimenzionális adatmodell A normalizált relációs modell bonyolult a felhasználók számára TELEP(tkod, nev, kozpont, regio,...) TERMÉK(kod, megnevezes, egysegar,...) TERMELES(termek, telep, datum, db, kategoria,...) termelés alakulása a keleti régióra vonatkozóan az elmúlt három hónapra vonatkoztatva.. CREATE VIEW v1 AS SELECT termek, datum, sum(db) as odb FROM termeles WHERE datum BETWEEN sysdate() AND sysdate() 90 GROUP BY termek, datum; SELECT b.megnevezes, c.odb, b.egysegar*c.odb as ertek, c.datum FROM Telep a, termek b, v1 c WHERE a.tkod = c.telep AND c.termek = b.kod AND a.regio = Kelet ORDER BY megnevezes, datum ; 1
Multi-dimenzionális adatmodell ugyanez keresztreferencia táblázat formában.. grafikonon CREATE VIEW v2 AS SELECT b.megnevezes, c.odb, b.egysegar*c.odb as ertek, c.datum FROM Telep a, termek b, v1 c WHERE a.tkod = c.telep AND c.termek = b.kod AND a.regio = Kelet ORDER BY megnevezes, datum ; SELECT SUM(CASE megnevezes WHEN cipo THEN ertek ELSE 0) CIPO, SUM(CASE megnevezes WHEN kalap THEN ertek ELSE 0) KALAP, SUM(CASE megnevezes WHEN ing THEN ertek ELSE 0) ING, FROM v2 GROUP BY datum dátumok termékek Multi-dimenzionális adatmodell A relációs táblák egydimenziós (egy kulcs) struktúrák Lehetővé kell tenni, hogy több kulcs is rendelhető legyen az adatokhoz termek telep dátum Adatkocka felépítése 2
Adatkocka és relációs tábla összevetése termék termelés telep termek telep dátum Kétirányú átalakítás, ekvivalens struktúrák Adatkocka alkotó elemek Tény (fact) Tag (member) Dimenzió (dimension) Változó (measure) Adatkocka (cube) termek Dimenzió érték Tulajdonság (attribute) Adatcella Dimenzió hierarchia telep dátum 3
MD séma modell Dátum - év - hó -- nap Vásárlás - érték - tömeg Vevő - név - kód Bolt - név - cím - Cella -érték - darab - tömeg bolt vevő Csillag (star) modell Minta csillag modell nehéz a különböző aggregációs szintek, ismétlődő dimenziók kezelése 4
MD séma modell reklamáció hónap termék napi forgalom forgalom dátum bolt napi forgalom Galaxis (fact constellation) modell Minta a galaxis modellre Nehéz a kapcsolódó dimenziók kezelése 5
Csillag modell A forgalmat bolt és régió bontásban is szeretnénk látni a: két külön dimenzió (érték függőség, ritka kocka) régió forgalom bolt b: egy dimenzió (eltérő szint, nem egyenrangú, korlátozott) forgalom bolt - régió külön dimenzió kellene, úgy hogy a kapcsolat megmaradjon Dimenzió hierarchia Ország A Ország B ország régió AA régió AB régió megye AB1 megye AB2 megye Járás AB11 Járás AB12 járás Település AB12A Település AB122B település előfordulás bázisszint séma 6
Összetett dimenzió hierarchia MD séma modell hónap termék forgalom dátum kategória bolt munkahét Hópehely (snowflake) modell 7
Minta a hópehely modellre Example of a Snowflake Schema Supplier_Key Time Dimension Table Many Time Attributes Store Dimension Table Many Store Attributes Measures Sales Fact Table Time_Key Product_Key Store_Key Location_Key unit_sales dollar_sales Yen_sales Product Dimension Table Supplier_Key Product_Key Location Dimension Table Location_Key Country Location_Key Region Location_Key osztott dimenziók kezelése MD séma modell gyártó reklamáció termék forgalom dátum(nap) régió bolt hónap negyedév Hópehely-háló modell 8
Befoglalt adatkocka Egy adatkocka (cube) adatait a dimenzióhierarchia mentén haladva és a dimenziók bevonásával eltérő részletezettségi szinten szemlélhetjük. Ezek a cuboid-ok Tervezési irányelvek konzisztens dimenziók Teljességet adó dimenziók Degenerált dimenziók Többértékű dimenziók Product Date TV 1Qtr2Qtr3Qtr4Qtr VCR PC sum sum U.S.A Canada Mexico sum Country Aggregációs függvények lehetnek: - disztributív (min(), max(), sum()) - algebrai (avg(), stddev()) - holistic (median(), rank()) 9
Relációs modell konverziója - tényadatok feltárása - kapcsolatok feltárása - ténytáblák, tagok meghatározása - dimenziók kijelölése - idő dimenzió behozatala - egyéb dimenzió bővítés - attribútumok meghatározása - dimenzió hierarchia meghatározása közben ügyelni a következőkre: - dimenzió konzisztencia - dimenzió teljesség - osztott dimenziók - időbeliség (változik-e) Konverziós mintapélda CREATE TABLE TEL(CIM C(30), VEZ REF(DOLG), NEV C(20), HELY REF (VAROS), PK(NEV)) CREATE TABLE TERTEKESIT(ARU REF(TERM), DATUM D, TELEP REF(TEL), OSSZ N(6), SELEJT N(6), PK(ARU,DATUM,TELEP)) CREATE TABLE DOLG(KOD N(3), NEV C(20), BEOSZT REF(BEO), FIZ N(5), PK(KOD)) CREATE TABLE RENDELES(RKOD N(6), IDO D, DARAB N(5), ARU REF(TERM), VEVO REF(VEVO), PK(RKOD)) CREATE TABLE TERM (KOD N(4), NEV C(20), KATEG C(20), PK(KOD)) CREATE TABLE VEVO (KOD N(4), NEV C(20), VAROS REF VAROS, UCIM C(20), PK KOD) CREATE TABLE VAROS (NEV C(20), MEGYE C(20) CREATE TABLE BEO (BKOD N(3), NEV C(20), ALAPFIZ N(6), PK(BKOD)) 10
Konverziós mintapélda TEL VAROS DOLG TERTEKESIT RENDELES BEO TERM VEVO TELEPHELY VAROS VEZETO ERTEKESITES RENDELES BEOSZTAS TERMEK VEVO Konverziós mintapélda ERTEKESITES RENDELES TELEPHELY VEZETO BEOSZTAS VAROS MEGYE DATUM HO EV VEVO TERMEK KATEGORIA 11
Konverziós mintapélda VEZETO nev TELEPHELY cim nev ERTEKESITES OSSZDB SELEJTDB TERMEK cim nev KATEGORIA nev DATUM nap BEOSZTAS megn alapfiz VAROS megn MEGYE megn EV ev HO ho MD séma rekordszinten név típus dimenzió tábla név típus tény tábla név típus dimenzió tábla név típus dimenzió tábla 12
Fizikai megvalósítás TELEPHELY cim nev OSSZDB SELEJTDB Audi Opel Fiat Lada TERMEK cim nev KATEGORIA nev Baja 7 2 6 1 7 0 3 2 Miskolc 9 1 7 4 Dorog 7 2 4 2 Logikai struktúra Fizikai megvalósítás K G P A F L O Audi Opel Fiat Lada Baja Miskolc 7,2 6,1 7,0 3,2 9,1 7,4 Dorog 7,2 4,2 ritkán kitöltött kocka 13
Tervezési irányelvek- minőségbiztosítás Data Warehouse Back-End Quality Issues Metadata Repository Reporting / OLAP tools Sources DSA DW Quality Issues Data Marts Administrator Administrator Designer End User EDBT Summer School - Cargese 2002 17 DW Materialized Views! DS.PS_NEW DS.PS_NEW 1.PKEY, DS.PS_OLD 1.PKEY SUPPKEY=1 DS.PS 1.PKEY, LOOKUP_PS.SKEY, SUPPKEY COST DATE 1 DS.PS_OLD DIFF 1 DS.PS 1 Add_SPK 1 SK 1 rejected $2 rejected A2EDate rejected U 1 Log Log Log DS.PS_NEW 2 DS.PS_NEW 2.PKEY, DS.PS_OLD 2.PKEY SUPPKEY=2 DS.PS 2.PKEY, LOOKUP_PS.SKEY, SUPPKEY COST DATE=SYSDATE QTY>0 DIFF 2 DS.PS 2 Add_SPK2 SK 2 NotNULL AddDate CheckQTY DS.PS_OLD rejected rejected 2 Log Log DSA PKEY, DAY MIN(COST) S 1 _PARTSU PP FTP 1 DW.PARTSU PP Aggregate 1 V1 DW.PARTSUPP.DATE, DAY PKEY, MONTH AVG(COST) S 2 _PARTSU PP FTP 2 TIME Aggregate 2 V2 Sources DW A DW több mint aggregált adattáblák rendszere EDBT Summer School - Cargese 2002 21 14
Időbeli változás követése A struktúra jelentős változáson mehet át - dimenzió változás - dimenzió hierarchia változás - tényváltozó változása átiródik Változó dimenziók Változások konzisztens követése? teljes verzió tulajdonság verzió Időbeli változás követése Issues Second Case Study Location dimension: C1 C1 D D1 D2 2001 2002 D D1 D2 2001 100 - - 2002-150 50 Query: «Total number of births per year and district?» D D1 D2 1. Exact view 2. First Structure 3. Second Structure 2001 100 - - 2002-150 50 Evo??? 100 2002 200 Nov 8 2002 DOLAP 2002 McLean USA D 2001 Evo D1 D2 2001 40 * 60 ** 2002 150 50 Evo * D1 ~ 40 % of the births of D1 ** D2 ~ 60 % of the births of D1 15
Kocka megalkotása A problémakör több fogalmat fog egybe, ezek rendezhetők - hybercube sémába vagy - multicubes sémába -Hypercube egyszerűség ritka kitöltésű nagy eltérés a fizikai szinttől -Multicube: - block mode több változó egységben - series mode egy kocka csak egy változó 16