Adatelemzés és adatbányászat MSc 4. téma Multi-dimenzionális adatmodell műveleti MD műveletek Felhasználói igény: - ad-hoc lekérdezések a kocka különböző szeleteire - táblázatos megjelentés (többdimenziós eredmény) - áttekinthető megjelenítés termelés alakulása a keleti régióra vonatkozóan az elmúlt három hónapra vonatkoztatva.. termékek Auto tipusok adatai 700 600 dátumok 500 400 300 200 fiat opel skoda 100 0 darab atlag ar 1
MD műveletek Nincs egységes modell gyakorlatban elterjedt műveletek: - szűrés - aggregálás - szintváltás - összekapcsolás - kibontás telep termek dátum mintaként a relációs algebra jöhet szóba adatkockán értelmezett, adatkockát előállító operátorok MD műveletek Szelekcio (slice and dice) - változó szelekció σ f(v) A feltételnek eleget tévő cellák maradnak meg, a többi cella NULL értékű lesz - attributum szelekció σ f(d.a) A feltételnek eleget tévő dimenzió értékek maradnak meg, a többi kikerül a kockából σ selejtdb > osszdb*0.2 (ertekesites) σ selejtdb > osszdb*0.2 (ertekesites) 2
MD műveletek Projekció (slice and dice) - változó projekció π v A kijelölt változók maradnak meg a cellában - attributum projekció π D.a A kijelölt attributumok maradnak meg a dimenziónál π selejtdb (ertekesites) π selejtdb (σ selejtdb > osszdb*0.2 (ertekesites)) MD műveletek Dimenzió összevon sszevonás (roll up) - attributum szintű ν D1.D2 A megadott dimenzióból a megadott dimenzióba való áttérés a dimenzió hierarchia mentén aggregáltabb adatokra való áttérés megváltozik a szint a megadott dimenziónál durvább felbontást kapunk ν termek.kategoria (ertekesites) 3
MD műveletek Dimenzió kibontás (drill down) - attributum szintű κ D A megadott attributum részletező dimenziójára val áttérés a dimenzió hierarchia mentén részletezőbb adatokra való áttérés megváltozik a szint az aktuális dimenziónál finomabb felbontást kapunk κ varos (ertekesites) MD műveletek Aggregáci ció (fold) - dimenzió szintű φ D, aggr A megadott dimenziók maradnak meg, az összevont cellák tartalmából az aggr aggregáció alapján képződik az eredő cella összesítőbb adatokra való áttérés szűkül a dimenzió készlet, csökken a dimenziószám durvább felbontást kapunk φ termek, termelte, sum() (ertekesites) 4
MD műveletek Kiterítés (unfold) - dimenzió szintű δ D Behozza a kockába a megadott dimenziót (ha lehet) részletezőbb adatokra való áttérés bővül a dimenzió készlet, növekszik a dimenziószám finomabb felbontást kapunk δ termek (ertekesites) MD műveletek Szorzás (natural join) - adatkocka szintű F 1 F 2 A megadott adatkockákból olyan eredő adatkocka készítése, melyre - dimenzióhalmaza a F 1 és F 2 dimenzió halmazának uniója - váltózólistája a két lista összevonása, párosa - változó értékei a megfelelő koordinátájú értékek párosa ertekesites rendeles 5
MD műveletek F 1 F 2 d24 2 d26 a d23 1 2 d24 a D2 d22 3 D2 d23 b d21 5 d21 c d11 d12 d31 d32 D1 F 1 F 2 D3 (d11, d23,d31) = (1,null) (d11, d24,d31) = (2,a) (d11, d26,d31) = (null,null) MD műveletek Dimenzió összevon sszevonás (cojoin) χ d1,d2( Két dimenzióból egyet állit elő, melyben minden értékpáros előfordul A dimenziószám eggyel változik, A cellák száma változatlan D1 (a,b,c) D2 (1, 2) => D12(a1,a2,b1,b2,c1,c2) Ilyen lesz az MDX-ben is és a PE cojoint dimension is ilyen 6
MD műveletek Mintapéldák - Az x-nél olcsóbb termékekre vonatkozó adatok σ TERMEK.ear > x (ERTEKESITES) - Az x-nél rosszabb selejtarányú eladásra vonatkozó adatok: σ selejtdb/osszdb > x (ERTEKESITES) - Adatkocka a selejtarányok nélkül π osszdb (ERTEKESITES) - Az x-nél nagyobb eladások ahol a terméknek csak a neve szerepel π TERMEK.nev (σ osszdb > x (ERTEKESITES)) Mintapéldák MD műveletek - Értékesítési adatok város szerinti bontásban ν TELEPHELY.varos (ERTEKESITES) -Az x-nél rosszabb selejtarányú eladásra vonatkozó adatok megye bontásban: ν VAROS.megye (ν TELEPHELY.varos (σ selejtdb/osszdb > x (ERTEKESITES))) - Áttérés hónap bontásról napi bontásra κ HO (C) ahol C = ν DATUM.ho (ERTEKESITES) - Értékesítési adatok termék és idő dimenzióban φ TERMEK, DATUM, Sum (ERTEKESITES) 7
MD műveletek Mintapéldák - Az x-nél rosszabb selejtarányú eladásra vonatkozó adatok megye és hónap bontásban: φ MEGYE, HONAP, Sum (ν DATUM.ho (ν VAROS.megye (ν TELEPHELY.varos (σ selejtdb/osszdb > x (ERTEKESITES)))) - Az értékesítési adatok összevonása egy KOLTSEG (ertek, TELEPHELY,HO) adatkockával: φ TELEPHELY, HONAP, Sum (ν DATUM.ho (ERTEKESITES)) KOLTSEG - Havi költségadatok megjelenítése dollárban φ TELEPHELY, Sum (α ertek/ 225 dollar (KOLTSEG)) MD műveletek Kezelő felületek típusai: - grafikus (menü vezérelt, drag and drop) - parancsorientált -- parancssori --- Oracle (PE) --- MDX -- OOP API --- MDO REPORT TOTAL (FORGALOM HONAP) SELECT {HONAP.HONAP} ON (0) FROM FORGALOM 8
PE : dimenzió hierarchia kezelése PE Relációk A reláció a dimenzió két kapcsolódó szintjét köti össze, 1:N kapcsolatot jelöl A dimenzió hierarchia felépítését teszi lehetővé reláció létrehozás DEFINE név RELATION dim1 <dim2> (1:N kapcsolat dim2:dim2 között) reláció megszüntetés DELETE név reláció felvitel TABLE EDIT név. MAINTAIN név DEFINE bolt DIMENSION TEXT DEFINE regio DIMENSION TEXT DEFINE boltreg RELATION regio <bolt> TABLE EDIT boltreg PE kapcsolt dimenziók Hatékonysági elem Riktán kitöltött kockáknál több dimenzió tengelyt egyetlen tengelybe vonunk össze. A kapcsolt dimenzió egy értéke a kapcsolt dimenziók értékeinek párosát jelöli kapcsolt dimenziók létrehozása (co-joint) DEFINE név DIMENSION <dim1 dim2,..> dimenzió megszüntetés DELETE név kapcsolat felvitel TABLE EDIT név. MAINTAIN név dimenzió értékek, értéklista rendezése SORT dim A D rendezési elv 9
Egyéb adatbázis elemek Formula: számított kifejezés Változóként használható, dimenzió köthető hozzá Formula létrehozása DEFINE név FORMULA kifejezés DEFINE név FORMULA tipus <dim > formula megszüntetés DELETE név DEFINE forgalom VARIABLE integer <ev termek> DEFINE koltseg VARIABLE integer <ev termek> DEFINE nyereseg FORMULA forgalom - koltseg PE modell eleme Modell: összetartozó formulák együttese megadott paraméterhalmazon kiértékelhetők Elemei: - független változók - függő változók (formulák) - tároló kocka - formulákat leíró program Működése - egy külön dimenzió tárolja a formulákat - a független változók saját dimenziót kapnak - a vizsgálandó paraméter értékeket ide vihetjük fel - a modellprogram futtatása kitölti a kockát a modellnek megfelelően 10
Modell működése Modell program létrehozás DEFINE név MODEL MODEL END DEFINE sor DIMENSION text MAINTAIN sor ADD ossz1, ossz2, ossz3 DEFINE v1 VARIABLE integer <aru sor> TABLE EDIT v1 DEFINE m1 MODEL EDIT m1 DIMENSION sor ossz2 = ossz1 + 100 ossz3 = ossz1 *2 m1 v1 TABLE v1 PE Információ lekérdezés Táblázatos lekérdezés TABLE kifejezés Grafikon lekérdezés GRAPH mód kifejezés (LINE, PIE, BAR, ) Jelentés REPORT mód kifejezés REPORT [NOHEAD] [GRANDTOTALS] [[SUBTOTALS] GROUP dimension] [DOWN dimension] - [ACROSS dimension] expression(s) 11
Szelekció, slice and dice megadása PE Információ lekérdezés LIMIT dimenzió TO valuelist értékhalmaz ADD reldim reldim-vals KEEP az adatkezelő, adatlekérdező műveletek előtt kell a szűkítés LIMIT parancsát kiadni A szűkítés a visszavonásig érvényes Visszavonás parancsa: LIMIT x TO ALL Szelekció, slice and dice megadása PE Információ lekérdezés a kapcsolt dimenziókon keresztül is lehet szűkíteni LIMIT X KEEP Y Hierarchia mentén történő szűkítés: 1. Szűkítés a szülőnél: LIMIT y TO lista 2. Szűkítés a gyereknél: LIMIT x KEEP y LIMIT regio TO KELET LIMIT regio TO ALL LIMIT bolt TO KEEP REGIO LIMIT termek TO TOTAL (forgalom termek) GT 100000 12
PE Információ lekérdezés Fold és roll up/ drill down műveletek megadása Az aggregációs függvények szolgálnak ezen funkciókra Fnev (alapkocka dim1 dim2 ) dim: az eredménykocka dimenziót jelöli, tetszőleges szinten állhat Aggregációs függvények TOTAL (kifejezés dim1 dim2..) COUNT(logikai kif. dim1 dim2 ) ANY (logikai kif. dim1 dim2 ) ALL (logikai kif. dim1 dim2 ) AVERAGE (kifejezés dim1 dim2 ) STDDEV (kifejezés dim1 dim2 ) SMALLEST (kifejezés dim1 dim2 ) LARGEST (kifejezés dim1 dim2 ) Minta lekérdezések PE Információ lekérdezés Teljes összforgalom: REPORT TOTAL (forgalom) Havonkénti forgalom: REPORT TOTAL (forgalom honap) Kategoriánkénti és havonkénti forgalom: REPORT TOTAL (forgalom kategoria honap) Januari termékenkénti forgalom: LIMIT honap TO jan REPORT TOTAL (forgalom termek) LIMIT honap TO ALL Januari termékenkénti forgalom az italokból: LIMIT honap TO jan LIMIT kategoria TO ital LIMIT termek KEEP kategoria REPORT TOTAL (forgalom termek) 13
Personal Express programozása Saját rutinok, függvények készíthetők megjegyzés VARIABLE változó típus ARGUMENT nev tipus SHOW üzenet WINDOW V = kifejezés RETURN DEFINE nev PROGRAM vtípus EDIT nev nev Első mintaprogram : Üdvözlő szöveg kiíratása DEFINE p1 PROGRAM EDIT p1 SHOW HELLO VILAG! WINDOW p1 Personal Express programozása Adatértéke beolvasása, Vezérlési szerkezetek V = GET (típus módosítók) PROMPT szöveg DEFAULT érték CHOOSE lista VERIFY kifejezés (VALUE) MANY IF kifejezés WHILE kifejezés THEN DO DO... DOEND DOEND SWITH kifejezés DO CASE v1 BREAK DEAFULT DOEND FOR dimenzió DO DOEND 14
Personal Express programozása Negyedik mintaprogram : új dimenzió érték felvitele VARIABLE uj TEXT uj = GET(TEXT PROMPT regio: ) IF ISVALUE(region, uj) THEN DO SHOW Mar letezik WINDOW RETURN DOEND MAINTAIN region ADD uj SHOW JOINCHARS( db=, CONVERT(STATLEN(region),TEXT)) WINDOW Feladatok 1. Adja meg a következő műveletek MD algebrai alakját az alábbi séma mellett. - a B1 bolt adatai - a T1 termék adatai a B2 boltnál - a T2 termék adatai a H1 hónapban - a K1 kategóriájú termékek adatai a H2 hónapban - az összforgalom a tárolt adatoknál - a B2 bolt összforgalma - a boltok összforgalma a T1 termékből - a boltok havonkénti összforgalma - a boltok havonkénti összforgalma a T3 terméknél termék kategória forgalom bolt dátum hónap munkahét 15
Feladatok 2. Készítse el a 1. feladatban megadott sémához a PE megvalósítást. 3. Készítsen el olyan PE programot, amellyel feltölthetők a kocka és dimenziók adatai 4. Adja meg az alábbi lekérdezések PE alakját, az előző sémára vonatkozólag: - a B1 bolt adatai - a T1 termék adatai a B2 boltnál - a T2 termék adatai a H1 hónapban - a K1 kategóriájú termékek adatai a H2 hónapban - az összforgalom a tárolt adatoknál - a B2 bolt összforgalma - a boltok összforgalma a T1 termékből - a boltok havonkénti összforgalma - a boltok havonkénti összforgalma a T3 terméknél Feladatok 5. Készítse el egy könyvesbolthálózat séma modelljét és a PE adatbázisát. A rendszernek a következő információkra kell kiterjednie: - könyvek és kiadott példányok - könyvek eladott példányai - könyvek kiadási éve - könyvek témaköre - kiadók és országaik - boltok és régióik 6. Adja meg az alábbi lekérdezések PE alakját, az előző sémára vonatkozólag: - a témakörök forgalma a X évben - v 16