Adatelemzés és adatbányászat MSc 4. téma
Multi-dimenzionális adatmodell műveleti
Dr. Kovács László ME GEIAL
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 500 fiat
dátumok
400
opel skoda
300 200 100 0
Dr. Kovács László ME GEIAL
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 …
termek
telep
dátum
mintaként a relációs algebra jöhet szóba adatkockán értelmezett, adatkockát előállító operátorok Dr. Kovács László ME GEIAL
MD műveletek Szelekcio (slice and dice) - változó szelekció σf(v)(F) A feltételnek eleget tévő cellák maradnak meg, a többi cella NULL értékű lesz - attributum szelekció σf(D.a)(F) A feltételnek eleget tévő dimenzió értékek maradnak meg, a többi kikerül a kockából
σselejtdb σselejtdb
> osszdb*0.2 > osszdb*0.2
(ertekesites) (ertekesites)
Dr. Kovács László ME GEIAL
2
MD műveletek Projekció Projekció (slice and dice) - változó projekció πv(F) A kijelölt változók maradnak meg a cellában - attributum projekció πD.a (F) A kijelölt attributumok maradnak meg a dimenziónál
π selejtdb (ertekesites) πselejtdb (σ selejtdb > osszdb*0.2 (ertekesites))
Dr. Kovács László ME GEIAL
MD műveletek Dimenzió Dimenzió összevoná sszevonás (roll up) - attributum szintű νD1.D2(F) 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)
Dr. Kovács László ME GEIAL
3
MD műveletek Dimenzió Dimenzió kibontá kibontás (drill down) - attributum szintű κD(F) 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)
Dr. Kovács László ME GEIAL
MD műveletek Aggregá Aggregáció ció (fold) - dimenzió szintű φD, aggr(F) 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)
Dr. Kovács László ME GEIAL
4
MD műveletek Kiterí Kiterítés (unfold) - dimenzió szintű δD(F) 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)
Dr. Kovács László ME GEIAL
MD műveletek Szorzá Szorzás (natural join) - adatkocka szintű F1 × F2 A megadott adatkockákból olyan eredő adatkocka készítése, melyre - dimenzióhalmaza a F1 és F2 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 Dr. Kovács László ME GEIAL
5
MD műveletek F1
D2
d24
2
d23
1
d22
3
d21
5
F2 d26 2
d24 D2
a
d23 d21
d11
a
d12
b c d31
D1
F1 × F2
d32
D3
(d11, d23,d31) = (1,null) (d11, d24,d31) = (2,a) (d11, d26,d31) = (null,null) …
Dr. Kovács László ME GEIAL
MD műveletek Dimenzió Dimenzió összevoná sszevonás (cojoin) χd1,d2((F) 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
Dr. Kovács László ME GEIAL
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))
Dr. Kovács László ME GEIAL
MD műveletek Mintapéldák - É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 ahol
κHO (C)
C = νDATUM.ho (ERTEKESITES)
- Értékesítési adatok termék és idő dimenzióban φTERMEK, DATUM, Sum (ERTEKESITES)
Dr. Kovács László ME GEIAL
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))
Dr. Kovács László ME GEIAL
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)
Dr. Kovács László ME GEIAL
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
(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 TABLE EDIT boltreg Dr. Kovács László ME GEIAL
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 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
Dr. Kovács László ME GEIAL
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 formula megszüntetés DELETE név DEFINE forgalom VARIABLE integer <ev termek> DEFINE koltseg VARIABLE integer <ev termek> DEFINE nyereseg FORMULA forgalom - koltseg Dr. Kovács László ME GEIAL
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
Dr. Kovács László ME GEIAL
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 Dr. Kovács László ME GEIAL
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)
Dr. Kovács László ME GEIAL
11
PE Információ lekérdezés Szelekció, slice and dice megadása
LIMIT dimenzió TO értékhalmaz
valuelist ADD KEEP
reldim reldim-vals
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
Dr. Kovács László ME GEIAL
PE Információ lekérdezés Szelekció, slice and dice megadása
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 Dr. Kovács László ME GEIAL
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 …) Dr. Kovács László ME GEIAL
PE Információ lekérdezés Minta lekérdezések 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) Dr. Kovács László ME GEIAL
13
Personal Express programozása Saját rutinok, függvények készíthetők DEFINE nev PROGRAM vtípus EDIT nev nev ” megjegyzés VARIABLE változó típus ARGUMENT nev tipus SHOW üzenet WINDOW V = kifejezés RETURN Első mintaprogram : Üdvözlő szöveg kiíratása DEFINE p1 PROGRAM EDIT p1 SHOW ‘HELLO VILAG!’ WINDOW p1
Dr. Kovács László ME GEIAL
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 THEN DO … DOEND SWITH kifejezés DO CASE v1 BREAK DEAFULT DOEND Dr. Kovács László
WHILE kifejezés DO ... DOEND FOR dimenzió DO … DOEND
ME GEIAL
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
Dr. Kovács László ME GEIAL
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
hónap termék
forgalom
dátum
kategória bolt
munkahét
Dr. Kovács László ME GEIAL
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 Dr. Kovács László ME GEIAL
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 -
Dr. Kovács László ME GEIALv
16