Előadáshoz
kapcsolódó
elméleti feladatok a
"zöldkönyvből"
Indexstruktúrák I.
Feladatok - Molina-Ullman-Widom:
Adatbázisrendszerek
megvalósítása
a "zöld könyv" 4.1, 4.2, 4.3, 4.4 fejezetei
alapján
A fogalmak: Oracle
dokumentációkból - a
"Concepts" itt:
Part II. Oracle Database
Architecture - 5. Schema Objects
és itt Overview
of Indexes részben Segédanyagok:EA:
Indexstruktúrák
(1-66.o.)
4.1.1.feladat:
- Minden blokkba 3 rekord, vagy 10
indexrekord (érték-mutató
pár) fér.
Összesen n rekordunk van.
Hány blokkos az adatfájl, a sűrű index
és
a ritka index?
4.1.2.feladat:
- Minden blokkba 30 rekord, vagy 200
indexrekord (érték-mutató
pár) fér.
Összesen n rekordunk van.
Egyik blokk telítettsége sem lehet több,
mint 80%.
Hány blokkos az
adatfájl, a sűrű index és a ritka index?
4.1.3.feladat:
- Minden blokkba 3 rekord, vagy 10
indexrekord (érték-mutató
pár) fér.
Összesen n rekordunk van.
Többszintű indexünk legfelső szintje csak
1 blokkból áll.
Hány blokkos az indexfájl, ha az első szinten
sűrű az index,
és ha az első szinten ritka
az index?
4.1.4.feladat:
- Minden blokkba 3 rekord, vagy 10
indexrekord (érték-mutató
pár) fér.
Hány adatblokkot kell
átlagosan beolvasni az összes adott
értékű rekord
eléréséhez, ha rendezett
állományunk van, egy érték
1,2 vagy 3-szor
szerepelhet 1/3, 1/3, 1/3
valószínűségekkel, és olyan
sűrű indexünk van,
amelyben csak az első
előforduláshoz tartozik indexrekord?
- Feltesszük, hogy tudjuk
előre, hogy mennyi
előfordulásunk van
az adott
értékből.
4.1.5.feladat:
- Minden blokkba 3 rekord, vagy 10
indexrekord (érték-mutató
pár) fér.
Hány blokkot kell
átlagosan beolvasni az összes adott
értékű rekord
eléréséhez, ha egy
érték 1,2 vagy 3-szor szerepelhet 1/3, 1/3, 1/3
valószínűségekkel, és olyan
sűrű indexünk van, amelyben minden
előforduláshoz tartozik
indexrekord?
- Feltesszük, hogy már
kiszámoltuk, hogy melyik indexblokkban van
az első
keresett indexérték, és
tudjuk, hogy hány van belőle.
Molina-Ullman
4.2. fejezete: Másodlagos
indexek
4.2.1.feladat:
- Az adatfájlba
történő
beszúrás és törlés
esetén a
másodlagos indexfájlnak
változnia kell.
Javasoljunk
néhány módszert arra,
hogy lehet naprakészen
tartani a másodlagos
indexet az adatfájlok változásaival
szinkronban.
4.2.4.feladat:
- Minden blokkba 3 rekord, vagy 10
indexrekord (kulcs-mutató
pár), vagy
50 mutató fér.
Tegyük fel, hogy
átlagosan 10-szer szerepel minden
indexérték.
Összesen 3000 rekordunk van.
Másodlagos
indexet készítünk, úgy, hogy
az
egy indexértékhez
tartozó
mutatókat kosarak blokkjaiban tároljuk. Mekkora
az állomány
mérete
összesen, beleértve az adatokat, indexeket
és
mutatókat
tartalmazó
blokkokat?
Molina-Ullman
4.3. fejezete: B-fák
B-fa.feladat:
- Az alábbi feladatban a
tankönyben
szereplő algoritmussal építsünk fel egy
B-fát!
Tegyük fel, hogy egy B-fa
blokkjaiba 3 kulcs
fér el plusz 4 mutató. A kulcsok
különbözőek.
Szúrjuk be a
B-fába az alábbi
kulcsértékeket a megadott
sorrendben:
39, 15,
50, 70, 79,
83, 72, 43, 75, 45
Adjuk meg a B-fa minden olyan
állapotát, amikor egy csomópont
kettéosztására
volt
szükség. Például, az
első
kettéosztás utáni állapot:
50
15
| 39 50 | 70
- [Egy kis segítség:]
-------------------
Levél csúcs
kettéosztásakor minden kulcsot megőrzünk
a
régi és az új (szomszédos)
csúcsban. 1 új
kulcs-mutató
párt küldünk felfelé a
szülő
csúcsba, amit ott kell elhelyezni.
Belső csúcs
kettéosztásakor
(N,M csúcsra) a mutatók első fele az N-be
kerül,
a második az M-be. A
kulcsok első fele az
N-be kerül a második fele az M-be,
de középen kimarad
egy kulcs, ami az
M-en keresztül (első gyermekén keresztül)
elérhető legkisebb kulcsot
tartalmazza. Ez
nem kerül sem N-be, sem M-be, hanem
ez megy fölfelé N
és M
közös szülőjébe az M-re
mutató
mutatóval együtt.
4.3.1.feladat:
- Legyen a rekordok száma 1
000 000, és az indexelt oszlopban minden
érték
különböző.
Sűrű indexre
készítünk B-fát. Egy blokkba
10 rekord vagy
(99 kulcs és 100
mutató) fér.
Legyen a telítettség 70%, azaz
legalább
69
kulcs és 70 mutató
szerepel az
indexblokkban. Mekkora az adatfájl és
az index
együttes mérete? Mennyi a
keresés blokkolvasási
költsége?