320 likes | 433 Views
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
E N D
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
termek telep dátum 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 Adatkocka felépítése
termék termelés telep termek telep dátum Adatkocka és relációs tábla összevetése Kétirányú átalakítás, ekvivalens struktúrák
termek telep dátum Adatkocka alkotó elemek Változó (measure) Adatkocka (cube) Tény (fact) Tag (member) Dimenzió (dimension) Dimenzió érték Tulajdonság (attribute) Adatcella Dimenzió hierarchia
Vásárlás - érték - tömeg Dátum - év - hó -- nap Vevő - név - kód Bolt - név - cím - Cella -érték - darab - tömeg bolt vevő MD séma modell 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 napi forgalom termék 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
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 Dimenzió hierarchia ország régió megye járás település bázisszint előfordulás séma
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
Date Product 2Qtr 1Qtr sum 3Qtr 4Qtr TV U.S.A PC VCR Country sum Canada Mexico sum All, All, All Tervezési irányelvek 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 6 1 7 0 3 2 7 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
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?
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