1.gyak. Adatbázis objektumok
   
>> 1.témakör: Adatbázis objektumok (DBA_OBJECTS)   
>> 2.témakör: Táblák oszlopai (DBA_TAB_COLUMNS) 
     

A gyakorlati foglalkozás és az előadások anyagára épül. 
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)
Lekérdezések optimalizálása algebrai opt.ppt (KA) (91-105.o.)
Oracle adatbázis felépítése Abterv_ea1.ppt (NT)
Pár szó az Oracle Junior képzésről (Oracle szeminárium az ELTE-n)
   
-- Előadáshoz kapcsolódó további olvasmány:
Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása, Panem, 2001.
1.fej. Bevezetés az adatbázis-kezelő rendszerek implementálásába.
   
Gépes gyakorlathoz: Oracle adatbázis elérhetősége
 - A gyakorlatokon a tomx adatbázisban az sqldeveloper-rel dolgozunk, ahol
    a SELECT-teket az Execute Statement (F9) hajtjuk végre és az eredményt
    a Result ablakban látjuk, a végrehajtási terveket az Execute Explain Plan (F6)
    segítségével készítjük el, annak eredményét pedig az Explain ablakban találjuk.
    

1.témakör: 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?
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
   
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. 
 

2.témakör: Táblák oszlopai és megszorítások
(DBA_TABLES, 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 fento 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. Hány oszlopa van a sila.emp táblának?
2.04. Milyen típusú a sila.emp tábla 6. oszlopa?
2.05. Adjuk meg azoknak a tábláknak a tulajdonosát és nevét, amelyeknek van 'Z' betűvel
         kezdődő oszlopa.
2.06. Adjuk meg azoknak a tábláknak a nevét, amelyeknek legalább 8 darab dátum tipusú oszlopa van.
2.07. Adjuk meg azoknak a tábláknak a nevét, amelyeknek 1. es 4. oszlopa isVARCHAR2 tipusú.
 
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);
   
 Vissza az AB2 gyakorlat oldalára             Vissza a Kezdőlapra