AB2gyak (főmenü)    Gyak.köv.    AB2ea    1.gyak     3.gyak    OracleDoc 
2.gyak. Adattárolás, DBA-nézetek
    
G (gépes feladatok)
G2. (folyt.) Táblák és oszlopai (DBA_TAB_COLUMNS) 
> G3. Fizikai és logikai adattárolással kapcsolatos fogalmak
   

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
>> OracleDoc: Concepts  >> 2 Overview of Tables
    
2.01. Az Oracle SQL Language Reference segítségével (az itt felsorolt típusokkal)
         hozzunk létre táblákat, majd keressük meg az adatszótár nézetekben, hogy
         milyen információt találhatunk itt a táblákról és a táblák oszlopairól: 
         DBA_OBJECTS, DBA_TABLES és DBA_TAB_COLUMNS 
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.
(folyt)
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ú.

PL/SQL feladatok: Segédlet:
Oracle PL/SQL Language Reference
   
2.09. Írjunk meg egy plsql blokkot, amelyik egy karakterlánc beolvasása alapján
         kiírja azoknak a tábláknak a nevét és tulajdonosát, amelyek az adott karakterlánccal
         kezdődnek. (Ha kisbetűkkel adjuk meg a karakterláncot, akkor is működjön!)
   
Szorgalmi feladat (beküldhető)
2.10. Í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 create_table_ut(p_owner VARCHAR2, p_tabla VARCHAR2)
         Elég ha az oszlopok típusát és DEFAULT értékeit kiírja, és elég ha a következő típusú
         oszlopokra működik: CHAR, VARCHAR2, NCHAR, NVARCHAR2,
                                          NUMBER, FLOAT, BINARY_FLOAT, DATE, ROWID
         Teszteljétek a procedúrát az alábbi táblával.
         CREATE TABLE tipus1_proba
                  (c10 CHAR(10) DEFAULT 'bubu', vc20 VARCHAR2(20),
                    nc10 NCHAR(10), nvc15 NVARCHAR2(15),
                    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);
   
G3. Adattárolással kapcsolatos fogalmak
DBA_TABLES, DBA_DATA_FILES, DBA_TEMP_FILES,
DBA_TABLESPACES, DBA_SEGMENTS, DBA_EXTENTS,
DBA_FREE_SPACE


Segédanyag: LogDB_Struct.pdf  +  + 02-DBA nézetek.pdf 
>> OracleDoc: Concepts  >> 12 Logical Storage Structures
>> OracleDoc: Reference
   
3.01. Melyik táblatéren van az ORAUSER felhasználó dolgozo táblája? (DBA_TABLES)
   
3.02. Adjuk meg az adatbázishoz tartozó adatfile-ok (és temporális fájlok) nevét és méretét
         méret szerint csökkenő sorrendben. (DBA_DATA_FILES, DBA_TEMP_FILES)
   
3.03. Adjuk meg, hogy milyen táblaterek vannak létrehozva az adatbázisban,
         az egyes táblaterek hány adatfájlból állnak, és mekkora az összméretük.
         (tablater_nev, fajlok_szama, osszmeret) Vigyázat, van temporális táblatér is!
   
3.04. Mekkora a blokkok mérete a USERS táblatéren? (DBA_TABLESPACES)
   
3.05. Melyik a legnagyobb méretű tábla szegmens az adatbázisban (a tulajdonost is adjuk meg)
         és hány extensből áll? (A particionált táblakat ne vegyük figyelembe) (DBA_SEGMENTS)
   
3.06. Melyik a legnagyobb méretű index szegmens az adatbázisban és hány blokkból áll?
         (A particionált indexeket most ne vegyük figyelembe.)
   
3.07. Adjuk meg adatfájlonként, hogy az egyes adatfajlokban mennyi a foglalt hely
         összesen (írassuk ki a fájlok méretét is). (DBA_EXTENTS)
   
3.08. Melyik két felhasználó objektumai foglalnak összesen a legtöbb helyet az adatbázisban?
   
3.09. Van-e valamelyik felhasználónak olyan táblája, amelyik több adatfájlban is foglal helyet?
   
3.10. Válasszunk ki a fenti táblákból egyet (pl. nikovits.tabla_123) és adjuk meg, hogy
         ez a tábla mely adatfájlokban foglal helyet.
   
3.11. Írjunk meg egy PL/SQL procedúrát, amelyik kiírja, hogy a paraméterül  
         kapott tábla melyik fájlban mennyi helyet (hány adatblokkot) foglal el
               (Fájlnév, Méret) --> proc(tulajdonos, táblanév).
         Hívjuk meg az eljárást (’SH’, ’CUSTOMERS’) paraméterekkel.
     
Fel a lap tetejére (mai gyak témakörei)      Vissza az AB2gyak kezdőlapjára