SQL – OLAP 7. óra. Hatékonysági kérdések Időigényes műveletek (ahol lehet javítani):  f(v) (C),  f(D.a) (C), D.a (C),  D, aggr (C) (és ahol nem…) C.

Slides:



Advertisements
Hasonló előadás
Oktatásszervezési változások. Mintatantervi változások.
Advertisements

10. gyakorlat SQL SELECT.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
ADATBÁZISOK.
Analitikus függvények
SQL modellezés Turáni Balázs.
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
Anyagadatbank c. tárgy gyakorlat
Adatbázis-kezelés.
Oracle tuning server.101/b10752/toc.htm.
Delphi programozás alapjai
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
Térinformatikai elemzések. Megválaszolható kérdések Pozíció - mi van egy adott helyen Feltétel - hol vannak …? Trendek - mi változott meg? Minta - milyen.
1 Hash-elés. 2 Mi a hash-elés? Gyorsan teszi lehetővé a keresést, törlést, beszúrást, módosítást Nem szükséges az elemek rendezettsége Nincsenek rendezéshez.
Adatbázis-kezelés.
KOVÁCS DÁVID. ALAPFOGALMAK Adatbázis: Olyan adatgyűjtemény, amely egy adott feladathoz kapcsolódó adatokat szervezett módon tárolja, és biztosítja az.
MI 2003/ Alakfelismerés - még egy megközelítés: még kevesebbet tudunk. Csak a mintánk adott, de címkék nélkül. Csoportosítás (klaszterezés, clustering).
Adatbázis-kezelés ACCESS program:
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 4. Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
SQL – OLAP 2. óra.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
ADATBÁZISOK
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
Az adatfeldolgozás forrásai
F28DM Query Optimization 1 F28DM adatbáziskezelő rendszerek Lekérdezések optimalizálása Monica Farrow Szoba: EMG30, Ext: 4160 Anyag.
Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
Algebrai műveleti gráf optimalizálása ● Mennyi könyvet készített az idén legtöbbet kinyomtató Budapesti könyvkiadó? ● kiado(kod,nev,cim) ● konyv ( kiado,cim,ar,ev.
SQL – OLAP 3. óra.
SQL.
Az SQL nyelv alapjai.
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Térkép. Mi az adat? Minden információ, amit tárolni kell. Minden információ, amit tárolni kell.  szám  szöveg  dátum  hang  kép, stb.
1 Informatikai Szakképzési Portál Adatbázis kezelés Alapfogalmak.
Adatszerkezetek 1. előadás
Részletező csoportosítások Hári Veronika
Optimalizáció modell kalibrációja Adott az M modell, és p a paraméter vektora. Hogyan állítsuk be p -t hogy a modell kimenete az x bemenő adatokon a legjobban.
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
Adatbázis kezelés.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
Adatbázisok tervezése, megvalósítása és menedzselése
CUDA C/C++ programozás Szál struktúra A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
Függvények II..
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Deduktiv adatbázisok. Normál adatbázisok: adat elemi adat SQL OLAP adatbázisok: adat statisztikai adat OLAP-SQL … GROUP BY CUBE(m1,m2,..)
Algoritmusok és adatszerkezetek
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
PÁRHUZAMOS ARCHITEKTÚRÁK – 13 INFORMÁCIÓFELDOLGOZÓ HÁLÓZATOK TUDÁS ALAPÚ MODELLEZÉSE Németh Gábor.
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
Indexek 22 Index Table Key Row pointer … WHERE key = 22.
Informatikai gyakorlatok 11. évfolyam
Adatbázisszintű adatmodellek
Ami még kimaradt. Halmazműveletek A lekérdezések eredmény sorainak halmazát tekintve több lekérdezés között értelmezhetjük a szokásos halmaz műveleteket.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Relációs adatmodell, normálformák
1.3 Relációk Def. (rendezett pár) (a1 , a2) := {{a1} , {a1 , a2 }} .
Adatbázis-kezelés 2. Relációs adatbázisok.
Informatikai gyakorlatok 11. évfolyam
2-3-fák A 2-3-fa egy gyökeres fa az alábbi tulajdonságokkal:
Algoritmus készítés.
Előadás másolata:

SQL – OLAP 7. óra

Hatékonysági kérdések Időigényes műveletek (ahol lehet javítani):  f(v) (C),  f(D.a) (C), D.a (C),  D, aggr (C) (és ahol nem…) C 1  C 2 Adott kulcsú cellák megkeresése k1k2k3v1v2v3 A: szekvenciális keresés ? reménytelen !! B: index alapú keresés ? k1+k2+k3 : ha mindegyik kulcs adott költség : log (N 3 )ez OK !! de asszimnetrikus !

Hatékonysági kérdések k1k2k3v1v2v3 Több-dimenziós keresőfa : minden szint egy-egy dimenzióhoz rendelt ciklikusan k1 k2 k3 k1 k2

ha valamelyik kulcs tetszőleges (intervallum) akkor több ágon fut a keresés Ha keresési feltétel: k1 = %, k2=x, k3=% csomópontok száma: L,L 2,L 3 (L a B-fa fokszáma) költség: első k2 szinten: L, második k2 szinten: L*L 2, i. k2 szinten: L 2*i+1 ez is túl nagy még !!! Hatékonysági kérdések

Grid file Szimmetrikus az egyes dimenziókra Hash függvény jelöli ki a rekeszt h1(k1) h2(k2) Ha túlcsordul, egyik dimenzió mentén felhasad Lemez blokk Hátránya : reláció-őrző hash függvény kellene Hatékonysági kérdések

Legbiztosabb megoldás: többszörös indexelés, többszintű pointer láncolat k1 indexk2 indexk1-k2 index

Dorog Miskolc Baja AudiOpelFiatLada Fizikai megvalósítás 7,26,17,03,2 9,17,4 7,24,2 K GP LAFO többletköltség?

Hatékonysági kérdések k1 index Keresés menete: - megfelelő szintű index kiválasztása - érték megkeresés (log (N k )) - fő pointer-lánc bejárása - mellék pointer-láncok bejárása Csak a szükséges elemeket érinti

Indexelés:sparse - dense index ritka index: nem minden rekord indexelt (index szekvenciális) feltétel: rendezettség szélső elemre mutat lsd: cluster index sűrű index: minden rekord indexelt idő: log M (N/k) + [k] = log M N - log M k + [k] hely: N/k/M blokk

Indexelés:bitmap index értékek A B C rekordok 0 1 szűk domain esetére támogatja a logikai operátorokat gyakran társítják a projekciós index-szel C rekordok érték B 1 0 táblázatos tárolás

Összetett feltételek, több kulcs esetére is alkalmas a bitmap index fetétel: K1 = 5 and K2 > 5 B-fa szerint: K1=5 megkeresése majd szekvencia a K2> 5 ellenőrzésre K metszetképzés / unió / komplementer K2

Bitindexek típusai normál mód: minden érték egy sor előnyös egzakt érték keresésnél tartomány mód: minden érték több sor (a tőle nagyobb értékek) előnyös tartomány érték keresésnél

Bitindexek típusai dekompozíciós mód: a tábla több résztáblára bontott szám n-es alapján képzi a bitmintát: C = b 1 + b 2 *r 1 + … + b n+1 *r n Pl. n =1, b 1 = 3 –hez: 5 = 1* r n = D/szorzat n-1 (r i )

Bitindexek típusai hierarchikus bitindex: a zéró helyek felsőbb szinten jelzi

Join index A kapcsolódó rekordpárok kijelölése kulcs szerint rendezve Nem kell explicit keresést végezni TELEPHELY cim nev TERMEK cim nev OSSZDB SELEJTDB TELEP TERMEKOSSZDB B-fa tény-kulcshoz dimenzió-kulcsot vagy dimenzió-kulcshoz tény-kulcsot rendel

Cella keresési költségek B-fa teljes kulcsintervallum log M N módszer Grid-file bitmap részkulcs 1 fa: N k-fa: K’ log M N + K’*N’ 1 (metszetek) log M N+N/(2B) H K-K’ (H/2) K N :elemszám, M fokszám V : értékek száma, K’ kiválasztott dim. db B: blokkméret, H: bucketek száma, K:dimenziók száma V*N/B’V’*N/B’V*N/2/B’

Aggregációs számítások SELECT sum(fiz) FROM dolgozok WHERE beosztas = ‘irnok’ - alap módszer: a kijelölt rekordok közvetlen beolvasása N: rekord db., B: blokk méret, R: eredmény rekord db. érintendő blokkok száma: O(N/B * (1 – e -RN/B )) nem egyszerű feladat a = szumma B (B* P(B)) P(B) = ((N:B))szorzat i ((S:i)) : 1<= i <= S R N/B a feltételt teljesítő rekordok pozíciót ismertnek tekintjük (B f )

Aggregációs számítások - projekciós index módszer: a kijelölt mező értékeket a a projekciós indexből vesszük be. előny: kevesebb blokk olvasás (B’ >> B) O(N/B’ * (1 – e -RN/B’ )) - mező indexen keresztül (B’’ >> B’): sum = 0 foreach v in DOM(fiz) { B v = foundset az index alapján sum = sum + v*|B f metszet B v | } O(V*N/B’’ + N/B’)

Aggregációs számítások A költség függ az aggregáció jellegétől SELECT max(fiz) FROM dolgozok WHERE beosztas = ‘irnok’ - közvetlen elérés: O(N/B * (1 – e -RN/B )) - bitmap index az elemre (metszet a B f -fel): O(V*N/B’’ ) - projekciós index: O(N/B’ * (1 – e -RN/B’ )) - mező index O(V/2*N/B’’ + N/B’)

Hatékonysági kérdések Az aggregáció gyorsítása: elő-aggregációk tárolása elemi érték (k1,k2) k1 szerinti aggregáció k2 szerinti aggregáció k1.k2 szerinti aggregáció

Cube-tree struktúra az alapadatok és az aggregált adatok hatékony elérésére szolgál alapadat aggregált adatok v(x,y,z) v(x,y,0) az adatok R-tree struktúrában tároltak v(0,0,0)

Előaggregáció előnye: gyorsabb válaszadás Hátránya: több helyfoglalás lassabb módosítás (load) Cél az egyéb költségek minimalizálása Csak a szükséges előszámításokat végezzük el Tapasztalat: egyes aggregációk kiszámíthatók más aggregációs értékekből  A, Sum (C)  A,B, Sum (C)  A,B,C, Sum (C) Származtatási háló ez egyes aggregációs szintek között

A,B,C A,BA,CB,C ABC Minden view-hoz helyköltség, minden élhez időköltség rendelhető   hely-költség +   idő-költség => minimális

Greedy algoritmus addig növeli a bevont elemek halmazát, amíg egy szigorú korlátba nem ütközik S = {alap-view} loop { v i = argmax i {B(v i,S) : v i  S} S = S  {v i } } B(v,S) =  w < v B w B w = Cost S (w) - Cost v (w), ha Cost S (w) > Cost v (w) 0, különben

Az eredő nyereség kiszámítsánál a v hivatkozási valószínűségét is figyelembe lehet venni.

Lekérdezések kapcsolati viszonya Milyen feltételek mellett lehet egy Q lekérdezést más V view-kból leszármaztatni? relációk: view-k egyenértékűsége és view-k egymásbafoglalása Általános esetre nem ismert még a megoldás speciális eset: pontos illeszkedés V1 < V2: - V1 mezői, hivatkozásai V2-ben is benne vannak - azonos aggregáció - V2 szelekciói V1-ben is benne vannak - V1 szelekciói szűkebbek V2: SELECT a,sum(b), avg(c), d FROM t1 WHERE t1.c > 5 GROUP BY a V1: SELECT a,sum(b) FROM t1 WHERE t1.c > 5 AND t1.d = 5 GROUP BY a

Hatékonyabb művelet optimalizálás a hagyományos QGM optimalizálás is módosulhat eddig csak SPJ műveleteket vettünk : szelekcio(proj) - join – szelekcio – csoportképzés? –aggregáció? SELECT B.b, sum(A.a) FROM A,B,C WHERE A.m=B.n AND A.h = C.f AND C.l = x GROUP BY B.b De! Az A és B tábla join-ja közben lehet aggregálni és csoportosítani, nem kell utána újra átfutni a táblát

Hatékonyabb művelet optimalizálás szabály : a csoportosítás lesüllyesztése minél lentebbre SELECT B.b, sum(A.a) FROM A,B,C WHERE A.m=B.n AND A.h = C.f AND C.l = x GROUP BY B.b alap left-deep join aggregáció ekvijoin scan transzformáció

Lesüllyesztés feltételei - a csomópont felett csak kulcs- idegenkulcs alapú join műveletek vannak - a csomópontban minden aggregációs mező szerepel - minden felettes join mező egyben csoportképzési mező is ez szűk esetben teljesül kapcsolt lesüllyesztések: - több csomópontra szétbontott select C.n,sum(A.c) from A,B,C where A.x = B.x and B.y=C.y group by C.n C.a C A A.x B B.y sum(A.c) ABC