Višedimenzioni indeksi
-
Upload
veljko-antonijevic -
Category
Documents
-
view
231 -
download
0
Transcript of Višedimenzioni indeksi
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 1/50
Višedimenzioni indeksiBaze podataka 2
Mentor: mr Ana Kaplarević - Mališić
Student: Veljko Antonijević50/12
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 2/50
Sadržaj› Jednodimenzioni vs višedimenzioni indeksi
› Primene
› Strukture nalik Hash strukturama
› Stabla
› Bit-map indeksi
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 3/50
Jednodimenzioni vs. višedimenzioni in› Moraju mu se proslediti svi
atributi, inače je indeksneupotrebljiv.– Indeksi na sekvencijalnimfajlovima i B stabla
– Hash tabele
› Svaki neprazan po
atributa koji formidimenziju vraćaju
› Ubržava pretragu podataka
› Princip lokalnosti› Sve dimenzije supodjednako bitne
› B* stabla
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 4/50
Primena više dimenzionih nizova› GIS
› Dizajn integrisanih kola
› Prozori i ikonice
› Data mining
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 5/50
Primeri upita
› „Delimično podudaranje“
› „Raspon“
› „Najbliži sused“
› „Gde sam ja“
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 6/50
Ključ za pretragu
› Ključ je (F1, F2, ..Fk)– Ako je F1=abcd i F2=123, ključ je “abcd#123”
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 7/50
Kocke podataka - Data Cubes
› Lanac prodavnica može čuvati
podatke o svakoj kupovini, npr:– Datum i vreme
– Prodavnica u kojoj je obavljenakupovina
– Šta je kupljeno– Koje boje
– Koje veličine
› Primer:– Prikaži sve roze bluze za svakuprodavnicu i svaki mesec 2015godine.
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 8/50
Višedimenzioni upiti u SQL-u› Tačke su predstavljene kao relacija Points(x, y)
› Primeri upita– Nađi tačku koja je najbliža tački (10, 20)– Izračunaj udaljenost tačke (10,20) do svih ostalih tača
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 9/50
Pravougaonici
› Rectangles(id, x11, y11, x, y)
› Za upit– Nađi pravougaonike u kojima se nalazi tačka (10,20)
SELECT id
FROM Rectangles
WHERE x11 <= 10.0 AND y11 <= 20.0
AND x >=10.0 AND y >=20.0;
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 10/50
Kocka podataka
› Tabela– Prodaja (dan, prodavnica, predmet, boja, veličina)
› Upit– Prikaži prodaju crvenih bluza po prodavnici i danu
SELECT dan, prodavnica, COUNT(*) AS ukupnaPr
FROM Prodaja
WHERE predmet=‘bluza’ AND boja=‘crvena’
GROUP BY dan, prodavnica;
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 11/50
Izvršavanje range upita pomoću jednodimenzionalnih indeksa
› Motivacija: Nadji
DEPT = “Toy” AND SAL > 50k› 1. strategija: Koristi “Toy” indeks i proveri platu
› 2. strategija: Koristi “Toy” indeks i SAL indeks i npresek.
› Kompleksnost:– Toy indeks: broj pristupa disku = broj blokova
– SAL indeks: broj pristupa disku = broj record-a
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 12/50
Izvršavanje upita „najbliži sused“ p jednodimenzionalnih indeksa
› Možda ne postoji tačka u odabranom opsegu
– Ponoviti pretragu sa povećanim opsegom› Može postojati bliža tačka koji nije obuhvaćenaopsegom
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 13/50
Druga ograničenja jednodimenizionih in
› Podaci mogu biti sortirani samo po jednom atrib
› Upit sa više dimenzija
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 14/50
Pregled višedimenzionih struktura› Pristup pomoću hash nalik tabelama
› Pristup pomoću stabala
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 15/50
Record-i sa key1=V3, key2=
Grid Indeksi
Key 2X1 X2 ……
V1
V2
Key 1
Vn
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 16/50
› Brzo pronalaženje zapisa sa
– key 1 = Vi Key 2 = X j– key 1 = Vi
– key 2 = X j
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 17/50
Kako je grid indeks sačuvan na disku?
X 1
X 2
X 3
X 4
X 1
X 2
X 3
X 4
X 1
X 2
X 3
X 4
V1 V2 V3
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 18/50
RešenjeBuckets
V1V2V3V4
Buckets
------
------
------
------
------
X1 X2 X3
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 19/50
Grid indeks na opseg vrednosti
Salary Grid
Linear Scale
1 2 3
Toy Sales Personne
0-20K 1
20K-50K 2
50K- 3 8
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 20/50
Particionisane hash funkcije
Ideja:
Key1 Key2h1 h2
010110 1110010
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 21/50
Primer:h1(toy) =0 000
h1(sales) =1 001h1(art) =1 010. 011.
h2(10k) =01 100h2(20k) =11 101h2(30k) =01 110
h2(40k) =00 111..
<Fred,toy,10k>,<Joe,sales,10k><Sally,art,30k>Ubaci
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 22/50
Primer:h1(toy) =0 000
h1(sales) =1 001h1(art) =1 010. 011.
h2(10k) =01 100h2(20k) =11 101h2(30k) =01 110
h2(40k) =00 111..
<Fred,toy,10k>,<Joe,sales,10k><Sally,art,30k>Ubaci
<Joe><Sally>
<Fred>
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 23/50
Primer:h1(toy) =0 000
h1(sales) =1 001h1(art) =1 010. 011.
h2(10k) =01 100h2(20k) =11 101
h2(30k) =01 110h2(40k) =00 111..
Nadji zaposlenog sa odeljenja sales i platom od 40k
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
<Fred>
<Joe><Jan><Mary>
<Sally>
<Tom><Bill>
<Andy>
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 24/50
Primer:h1(toy) =0 000
h1(sales) =1 001h1(art) =1 010. 011.
h2(10k) =01 100h2(20k) =11 101
h2(30k) =01 110h2(40k) =00 111..
Nadji zaposlenog sa odeljenja sales i platom od 40k
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
<Fred>
<Joe><Jan><Mary>
<Sally>
<Tom><Bill>
<Andy>
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 25/50
Stabla
› Multiple key index – višestruki indeksi
› Kd-stabla› Quad stabla
› R-stabla
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 26/50
Višestruki indeksi› Više atributa koji predstavljaju dimenzije podatak
› Višestruki indeks je indeks indeksa u kom čvorovsvakom nivou su indeksi jednog atributa
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 27/50
Strategija:
› Jedna od ideja:
I1
I2
I3
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 28/50
2
Primer
Zapis
Indeks
odeljenja
Indeks
plate
Name=JoeDEPT=SalesSAL=15k
ArtSalesToy
10k 15k
17k 21k
12k 15k 15k 19k
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 29/50
KD-stabla
› K dimenziono stablo pretrage je generalizovano
binarne pretrage u višedimenzionalne podatke.› KD je binarno stablo u kojem unutrašnji čvorovi ipovezan atribut „a“ i vrednost „v“ koja deli podadva dela.
› Atributi na različitim nivoima stabla su različiti.
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 30/50
Primer kd stabla
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 31/50
Zanimljiva primena
› Geografski podaci
Podaci:
<X1,Y1, atributi>
<X2,Y2, atributi>
x
y
. . .
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 32/50
Upiti
› Koji je grad na <Xi,Yi>?
› Šta se nalazi u krugu od 5 km od <Xi,Yi>?› Koja je najbliža tačka, tački <Xi,Yi>?
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 33/50
h
nb
i
c
o
de
g
f
m
l
k
j
Primer
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 34/50
h
nb
i
c
o
d
10 20
10 20
e
g
f
m
l
k
j
Primer
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 35/50
h
nb
i
co
d
10 20
10 20
e
g
f
m
l
k
j25 15 35 20
40
30
20
10
Primer
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 36/50
h
nb
i
co
d
10 20
10 20
e
g
f
m
l
k
j25 15 35 20
40
30
20
10
5
15 15
Primer
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 37/50
h
nb
i
co
d
10 20
10 20
e
g
f
m
l
k
j25 15 35 20
40
30
20
10
h i a bcd ef g
n oml j k
5
15 15
Primer
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 38/50
h
nb
i
co
d
10 20
10 20
e
g
f
m
l
k
j25 15 35 20
40
30
20
10
h i a bcd ef g
n oml j k
• pretraži tačke blizu f • pretraži tačke blizu b
5
15 15
Primer
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 39/50
Upiti
› Nađi tačke za koje je Yi > 20
› Nađi tačke sa Xi < 5› Nađi tačke u „blizini“ i = <12,38>
› Nađi tačke u „blizini“ b = <7,24>
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 40/50
Quad stabla
› Deli višedimenzionalni prostor na kvadrante, koje
deli ponovo na kvadrante ukoliko imaju previše t jednom kvadrantu.
› Ako broj tačaka (record-a) u kvadrantu:– Staje u jedan blok, onda je to list– Veći od bloka, postaje čvor i deli se na 4 kvadranta, ko
postaju deca.
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 41/50
Primer Quad stabla
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 42/50
Slike Quad stabala
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 43/50
R stablo
› Reprezentuje kolekciju regiona grupišući ih u hije
većih regiona.
› Podaci su podeljeni u regione.› Čvor predstavlja jedan region
– region može biti bilo kog oblika› Pravougaonici su popularni
– Deca su zapravo pod regioni.
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 44/50
R-tree
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 45/50
Bitmap indeksi
› Pretpostavimo da imamo konačan broj indeksa
› Bit-map indeks je kolekcija bit vektora dužine n, jedan zavrednost koje može da se pojavi u nekom polju F.
› Vektor za vrednost v ima 1 na i-toj poziciji ako je i-ti recovrednost v za polje F, u suprotnom je 0.
› Primer za F i G polja:– (30, foo), (30,bar), (40, baz), (50, foo), (40, bar), (30, baz)
– Bit indeks za F, svaki ima 6 bita. Za 30, je 110001, za 40, je 0010000100.
– Bit indeks za G takođe ima tri vektora. Za foo je, 100100, za bar za baz je 001001.
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 46/50
Bit map indeksi: Delimično podudaranje
› Bitmape omogućavaju dobijanje „delimično podu
upita brzo i efikasno.› Primer:
– Filmovi(naziv, godina, trajanje, nazivStudija)– SELECT naziv– FROM Filmovi
– WHERE nazivStudija= ‘Disney’ and godina=2015;› Ukoliko imamo bitmapu za nazivStudija i godinupresek ili AND operacija da nam daju rezultat.
› Bit vektori ne zauzimaju mnogo mesta.
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 47/50
Bitmap indeksi: range upiti
› Primer: zlatan nakit sa 12 tačaka– 1 (25,60), 2(45,60), 3(50,75), 4(50,100), 5(50,120), 6(70, 110), 7(88(30,260), 9(25,400), 10(45,350), 11(50,275), 12(60,260)
› Godine imaju 7 različitih vektora– 25(100000001000), 30(000000010000), 45(010000000100),50(001110000010), 60(000000000001), 70(000001000000)
– 85(000000100000)
› Plata ima 10 različitih vektora– 60(000000000000), 75(001000000000), 100(000100000000)
– 110(000001000000), 120(000010000000), 140(000000100000)
– 260(000000010001), 275(000000000010), 350(000000000100)
– 400(000000001000),
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 48/50
Nastavak primera› Nađi kupce nakita starosti 45-55 i platom u rasponu od
› Nađi bit vektore za godine svih vrednosti u rasponu i kor– 010000000100 (for 45) and 001110000010 (for 50)
– Rezultat: 011110000110
› Nađi bit vektore plata između 100 i 200 hiljada.– Postoji 4: 100,110,120, i 140, kada se primeni OR dobijemo 0001
› Primenimo AND na oba vektora
– 000110000000– Postoje dva zapisa (50,100) i (50,120) koji su u opsegu.
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 49/50
Kompresovane bitmape
› Ukoliko je veliki broj različitih vrednosti, pojavljiva
retko.› Run-length kodiranje se koristi u tom slučaju– Niska 0 je praćena 1.
– Primer: 000101 ima dve prolaska, dužina 3 i 1 binarnareprezentacija je 11 i 1. Kada se dekodira dobija se 11
› Kako bi se sačuvao prostor, bitmap indeksi koji tesastoje od vektora sa vrlo malo 1 su kompresovanačinom.
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI
7/23/2019 Višedimenzioni indeksi
http://slidepdf.com/reader/full/visedimenzioni-indeksi 50/50
Dodatna literatura
› DATABASE SYSTEMS The Complete Book, Hecto
Molina, Jeffrey D. Ullman, Jennifer Widom› Database system
Design, implementation
management, Peter Rob, Carlos Coronel
› M+-tree: A New Dynamical Multid imensional Inde
Metric Spaces, Xiangmin Zhou, Guoren Wang, Je
Yu, Ge Yu
BAZE PODATAKA 2 | 2015 | IMI | PMF | KG | VIŠEDIMENZIONI