AB2gyak (főmenü)    Gyak.köv.    AB2ea    4.gyak     6.gyak    OracleDoc 

5.gyak. Indexstruktúrák-II.
    
G (gépes témakör)
> G7. Feladatok index szervezett táblákra (IOT)
> !! Szerdai gyak.csoportnak: 6.gyak gépes témái is!! 
  
E (elméleti témakör)
> E3. B-fák (Tk.4.3. fejezete)
> E4. Bitmap indexek (Tk.5.4. fejezete)
  

G7. Feladatok index szervezett táblákra (IOT)

Segédanyagok:  Lásd IOT.txt - Index szervezett táblák, IOT részei (index, tábla)
>> OracleDoc: Concepts  >> 3 Overview of Index-Organized Tables
 
Állapítsuk meg ezeknek az IOT táblák a különböző tulajdonságait a katalógusokból. 
DBA_INDEXES, DBA_TABLES, DBA_OBJECTS, DBA_SEGMENTS
 
7.01. Hozzuk létre a IOT.txt segédletben szereplő cikk_iot indexszervezésű táblát.
         Adjuk meg mely felhasználók tulajdonában vannak ezek ('CIKK_IOT'-vel
         kezdődő) index-szervezett táblák. Adjuk meg a táblák és táblaterek nevét is. 
        (Melyik táblatéren vannak ezek a táblák? -> miért nem látható?)
   
7.02. Adjuk meg a fenti táblák index részét, és azt, hogy ezek az index részek (szegmensek)
         melyik táblatéren vannak? Keressük meg a szegmensek között az előző táblákat
         illetve indexeket, és adjuk meg a méretüket. Keressük meg az adatbázis objektumok
         között a fenti táblákat és indexeket, és adjuk meg az objektum azonosítójukat és
         adatobjektum azonosítójukat (DBA_INDEXES,DBA_TABLES,DBA_OBJECTS). 

 7.03. Adjuk meg a fenti táblák túlcsordulási részeit (ha van). Keressük meg
          a túlcsordulási részeket a szegmensek között és adjuk meg a méretüket.
          Keressük meg az objektum azonosítóikat és az adatobjektum azonosítóikat is.

 7.04. Adjuk meg azokat az index szervezett táblákat, amelyeknek pontosan egy
          dátum típusú oszlopa van.
 
7.05. Írjunk meg egy plsql procedúrát, amelyik a paraméterül kapott index szervezett
          tábláról kiírja a tábla méretét.
         PROCEDURE iot_meret(p_owner VARCHAR2, p_tabla VARCHAR2)
         Vigyázzunk, mert a táblának lehet index és túlcsordulási szegmense is.
   
Fel a lap tetejére (mai gyak témakörei)      Vissza az AB2gyak kezdőlapjára  
 

E3. B-fák (Tk.4.3. fejezete)

Segédanyagok: B-fák, lásd 3.előadás: fizika.pp49-58 
Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása, Panem, 2001.
4.fej. Indexstruktúrák -> 4.3. B-fák  B_fa.pdf
>> OracleDoc: Concepts  >> 3 Overview of Indexes
>> Oracle10g Concepts/Part II. Architecture/5. Schema Objects >>Overview of Indexes
      
Tk.B-fa felépítésére feladat, lásd előadás fizika.pp49-58 
   - 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,  54, 75, 64, 68
     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.
 
Tk.4.3.1.feladat (kicsit más adatokkal)
   - Legyen a rekordok száma 6000, és az indexelt oszlopban minden érték
      különböző. Sűrű indexre készítünk B-fát. Egy blokkba 4 rekord vagy
      (99 kulcs és 100 mutató) fér. Legyen a telítettség 50%, azaz legalább
      Mekkora az adatfájl és az index együttes mérete?
      Mennyi a keresés blokkolvasási költsége?
   
Fel a lap tetejére (mai gyak témakörei)      Vissza az AB2gyak kezdőlapjára  
 

E4. Bittérképindexek  (Tk.5.4. fejezete)
   
Segédanyagok:
lásd előadáson 9ituning 83-84.o: Bitmap index  + Oracle Concepts doksi
Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása, Panem, 2001.
5.4. Bittérképindexek  szakaszhossz_kodolas.pdf
>> OracleDoc: Concepts  >> 3 Overview of Indexes
>> Oracle10g Concepts/Part II. Architecture/5. Schema Objects >>Overview of Indexes
      
1.feladat: Tegyük fel, hogy a dolgozó tábla 14 sorból áll

DKOD DNEV   FIZETES  FOGLALKOZAS  BELEPES  OAZON
---------------------------------------------------
1    SMITH     800   CLERK        1980     20  
2    ALLEN    1600   SALESMAN     1981     30      
3    WARD     1250   SALESMAN     1981     30      
4    JONES    2975   MANAGER      1981     20      
5    MARTIN   1250   SALESMAN     1981     30      
6    BLAKE    2850   MANAGER      1981     30      
7    CLARK    2450   MANAGER      1981     10      
8    SCOTT    3000   ANALYST      1982     20      
9    KING     5000   PRESIDENT    1981     10      
10   TURNER   1500   SALESMAN     1981     30      
11   ADAMS    1100   CLERK        1983     20      
12   JAMES     950   CLERK        1981     30      
13   FORD     3000   ANALYST      1981     20      
14   MILLER   1300   CLERK        1982     10     

   - Tegyük fel, hogy fenti táblához a FOGLALKOZAS, a BELEPES és az OAZON
     oszlopokra létezik bitmap index (3 index). Készítsük el az alábbi lekérdezésekhez
     szükséges bitvektorokat, majd végezzük el rajtuk a szükséges műveleteket, és
     adjuk meg azt az előállt bitvektort, ami alapján a végeredmény sorok megkaphatók.
     Ellenőrzésképpen adjuk meg a lekérdezést SQL-ben is!
 
a. ) Adjuk meg azoknak a dolgozóknak a nevét, akik 1981-ben léptek be és a foglalkozásuk
      hivatalnok (CLERK), vagy a 20-as osztályon dolgoznak és a foglalkozásuk MANAGER.

b.) Adjuk meg azoknak a dolgozóknak a nevét, akik nem 1981-ben léptek be és a 10-es
     vagy a 30-as osztályon dolgoznak.

2.feladat, lásd Tankönyv 5.4.Bittérképindexek: Szakaszhossz_kodolas
   
   - Tömörítse az előző feladatban kapott bitvektorokat a szakaszhossz kódolással.

   - Fejtsük vissza a következő, szakaszhossz kódolással tömörített bitvektort:
     11101101001011
      
Fel a lap tetejére (mai gyak témakörei)      Vissza az AB2gyak kezdőlapjára