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 ;
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 termékek dátumok
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 telep termek dátum Adatkocka felépítése
Adatkocka és relációs tábla összevetése telep termek dátum termék termelés Kétirányú átalakítás, ekvivalens struktúrák
Adatkocka alkotó elemek Változó (measure) Adatkocka (cube) Tény (fact) Tag (member) Dimenzió (dimension) Dimenzió érték Tulajdonság (attribute) Adatcella Dimenzió hierarchia telep termek dátum
MD séma modell Csillag (star) modell Vásárlás - érték - tömeg Dátum - hó -- nap Vevő - név - kód Bolt - cím - vevő Cella -érték - darab - tömeg bolt Csillag (star) modell
Minta csillag modell nehéz a különböző aggregációs szintek, ismétlődő dimenziók kezelése
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
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ó bolt forgalom b: egy dimenzió (eltérő szint, nem egyenrangú, korlátozott) bolt forgalom - régió külön dimenzió kellene, úgy hogy a kapcsolat megmaradjon
Dimenzió hierarchia ország régió megye járás település előfordulás Ország A Ország B régió AA régió AB megye AB1 megye AB2 Járás AB11 Járás AB12 Település AB12A Település AB122B ország régió megye járás település előfordulás bázisszint séma
Összetett dimenzió hierarchia
MD séma modell hónap termék forgalom dátum kategória bolt munkahét Hópehely (snowflake) modell
Minta a hópehely modellre osztott dimenziók kezelése
MD séma modell reklamáció gyártó termék forgalom dátum(nap) hónap régió bolt negyedév Hópehely-háló modell
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
All, All, All Tervezési irányelvek Product Date konzisztens dimenziók Country All, All, All sum TV VCR PC 1Qtr 2Qtr 3Qtr 4Qtr U.S.A Canada Mexico konzisztens dimenziók Teljességet adó dimenziók Degenerált dimenziók Többértékű dimenziók Aggregációs függvények lehetnek: - disztributív (min(), max(), sum()) - algebrai (avg(), stddev()) - holistic (median(), rank())
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), FUVAROZO REF(FUV), 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 FUV (FKOD N(3), NEV C(20),CÍM C(50), PK(FKOD))
Konverziós mintapélda FUV TEL DOLG TERM TERTEKESIT VAROS VEVO RENDELES TELEPHELY FUVAROZO TERMEK ERTEKESITES VAROS VEVO RENDELES
Konverziós mintapélda ERTEKESITES RENDELES TELEPHELY FUVAROZO DATUM HO TERMEK VAROS EV KATEGORIA MEGYE VEVO
Konverziós mintapélda TERMEK cim nev TELEPHELY cim nev OSSZDB SELEJTDB ERTEKESITES KATEGORIA nev FUVAROZO nev, cim DATUM nap VAROS megn HO ho MEGYE megn EV ev
MD séma rekordszinten név dimenzió tábla típus név típus tény tábla név név típus típus dimenzió tábla dimenzió tábla
Fizikai megvalósítás TERMEK cim nev OSSZDB SELEJTDB TELEPHELY cim nev KATEGORIA nev Audi Opel Fiat Lada 7 2 6 1 7 3 2 Baja 9 1 7 4 Miskolc 7 2 4 2 Dorog Logikai struktúra
Fizikai megvalósítás K G P A F L O Audi Opel Fiat Lada Baja 7,2 6,1 7,0 3,2 Miskolc 9,1 7,4 Dorog 7,2 4,2 ritkán kitöltött kocka
Tervezési irányelvek- minőségbiztosítás
A DW több mint aggregált adattáblák rendszere
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 teljes verzió tulajdonság verzió Változások konzisztens követése?
Időbeli változás követése
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ó
Projekt feladat Minta MD modell kidolgozása PE-re Katica csavargyár modulok: 1. raktár 2. gyártás 3. rendelés/vevői és saját 4. számlázás 5. munkaügy 6. szerviz 7. bérügy