Kezdőlap     AB2ea     AB2gyak (főmenü)     Gyak.köv.      2.gyak  
1.gyak. Adatbázis objektumok
   
G (gépes feladatok)
> G1. Adatbázis objektumok (DBA_OBJECTS)   
> G2. Táblák oszlopai (DBA_TAB_COLUMNS) 
     

A gyakorlati foglalkozások az előadások anyagára épülnek 
1.EA: Bevezetés, a félév tematikája, a számonkérés módja.
> Tudnivalók az előadásról  (link Kiss Attila AB2EA oldalára)
   A félév tematikája. Számonkérés módja.
   Egy adatbáziskezelő működése vázlatosan, a legfontosabb fogalmak az Oracle-ben:
   adatbázis, példány, séma, adatbázisbeli objektumok abterv_ea1.ppt
   Adattárolással kapcsolatos fogalmak storage.ppt (RAID végéig, 26.o.-ig)
> Pár szó az Oracle Junior képzésről (Oracle szeminárium az ELTE-n)
   
Előadáshoz kapcsolódó további olvasmányok:
> Oracle 11.2 dokumentáció -> Concepts és Reference
> Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása, Panem, 2001.
   
Gépes gyakorlathoz: Oracle adatbázis elérhetősége
A gyakorlatokon az Oracle 11g tomx adatbázisban az sqldeveloper3-al dolgozunk,
ahol a SELECT-teket az Run Statement (Ctrl+Enter) hajtjuk végre és az eredményt
a Result ablakban láthatjuk. Később a végrehajtási terveket az Explain Plan (F10)
segítségével készítjük majd el, annak eredményét pedig az Explain ablakban találjuk.
    

G1. Adatbázis objektumok
(DBA_OBJECTS)
 
Segédanyag: Adatbázis objektumok.txt + 01-DBA nézetek.pdf
A rendszerkatalógus maga is egy adatbázisnak tekinthető, amit lekérdezve egyre többet
tudhatunk meg az ORACLE adatbázisban tárolt dolgokról és azok tulajdonságairól.
Elnevezésük: DBA_..., ALL_..., USER_...
  
1.01. Kinek a tulajdonában van a DBA_TABLES nevű nézet (illetve a DUAL nevű tábla)?
1.02. Kinek a tulajdonában van a DBA_TABLES nevű szinonima (illetve a DUAL nevű)?
        (Az iménti két lekérdezés megmagyarázza, hogy miért tudjuk elérni őket.)
1.03. Milyen típusú objektumai vannak az orauser nevű felhasználónak az adatbázisban?
         (a katalógustáblákban nagy betűvel vannak az adatok 'orauser' helyett 'ORAUSER')
1.04. Hány különböző típusú objektum van nyilvántartva az adatbázisban?
1.05. Melyek ezek a típusok?
1.06. Kik azok a felhasználók, akiknek több mint 10 féle objektumuk van?
1.07. Kik azok a felhasználók, akiknek van triggere és nézete is?
1.08. Kik azok a felhasználók, akiknek van nézete, de nincs triggere?
1.09. Kik azok a felhasználók, akiknek több mint 40 táblájuk, de maximum 37 indexük van?
1.10. Melyek azok az objektum típusok, amelyek tényleges tárolást igényelnek, vagyis
         tartoznak hozzájuk adatblokkok? (A többinek csak a definíciója tárolódik adatszótárban)
1.11. Melyek azok az objektum típusok, amelyek nem igényelnek tényleges tárolást, vagyis nem
         tartoznak hozzájuk adatblokkok? (Ezeknek csak a definíciója tárolódik adatszótárban)
        Az utóbbi két lekérdezés metszete nem üres. Vajon miért? -> lásd majd partícionálás
   
Fel a lap tetejére (mai gyak témakörei)      Vissza az AB2gyak kezdőlapjára  

   
G2. Táblák oszlopai és megszorítások
(DBA_TABLES, DBA_VIEWS, DBA_TAB_COLUMNS, DBA_CONSTRAINTS)
   
Segédanyag: Táblák létrehozása, oszloptípusok.txt  + 01-DBA nézetek.pdf
    
2.01. Táblák létrehozása: a fenti oszloptípusok (segédlet) alapján hozzunk létre táblákat,
         majd keressük meg milyen információt találunk a tábláinkról és a táblák oszlopairól
         a DBA_OBJECTS, DBA_TABLES és DBA_TAB_COLUMNS katalógustáblákban.
2.02. Hozzunk létre táblákat megszorításokkal, majd nézzük meg hogyan jelennek meg
         a megszorítások a DBA_CONSTRAINTS katalógustáblában.
2.03. Hozzunk létre nézettáblákat, majd nézzük meg a DBA_VIEWS katalógustáblában.
2.04. Hány oszlopa van a sila.emp táblának?
2.05. Milyen típusú a sila.emp tábla 6. oszlopa?
2.06. Adjuk meg azoknak a tábláknak a tulajdonosát és nevét, amelyeknek van 'Z' betűvel
         kezdődő oszlopa.
2.07. Adjuk meg azoknak a tábláknak a nevét, amelyeknek legalább 8 darab dátum tipusú oszlopa van.
2.08. Adjuk meg azoknak a tábláknak a nevét, amelyeknek 1. es 4. oszlopa isVARCHAR2 tipusú.
   

Házi feladat:
   
HF01.  Írjunk meg egy plsql procedúrát, amelyik a paraméterül kapott karakterlánc alapján
        kiírja azoknak a tábláknak a nevét és tulajdonosát, amelyek az adott karakterlánccal
        kezdődnek. (Ha a paraméter kisbetűs, akkor is működjön a procedúra!)
                 PROCEDURE tabla_kiiro(p_kar VARCHAR2)
        A fenti procedúra segítségével írjuk ki a E betűvel kezdődő táblák nevét és tulajdonosát. 
   
HF02.  Írjunk meg egy plsql procedúrát, amelyik a paraméterül kapott táblára kiírja
        az őt létrehozó CREATE TABLE utasítást.
                PROCEDURE cr_tab(p_owner VARCHAR2, p_tabla VARCHAR2)
        Elég ha az oszlopok típusát és DEFAULT értékeit kíírja, és elég ha a következő típusú
        oszlopokra működik.
               CHAR, VARCHAR2, NCHAR, NVARCHAR2, BLOB, CLOB, NCLOB,
               NUMBER, FLOAT, BINARY_FLOAT, DATE, ROWID
       Teszteljétek a procedúrát az alábbi táblával.
       CREATE TABLE tipus_proba(c10 CHAR(10) DEFAULT 'bubu', vc20 VARCHAR2(20),
       nc10 NCHAR(10), nvc15 NVARCHAR2(15), blo BLOB, clo CLOB, nclo NCLOB,
       num NUMBER, num10_2 NUMBER(10,2), num10 NUMBER(10) DEFAULT 100,
       flo FLOAT, bin_flo binary_float DEFAULT '2e+38', bin_doub binary_double DEFAULT 2e+40,
       dat DATE DEFAULT TO_DATE('2007.01.01', 'yyyy.mm.dd'), rid ROWID);
   
Fel a lap tetejére (mai gyak témakörei)      Vissza az AB2gyak kezdőlapjára