IP-08abctAB2G   Adatbázisok-2 gyakorlat
ELTE, 2014/2015.tanév I.félév, dr. Hajas Csilla gyak.vez.
Hétfő 12:15-13:45 PC3, 14:00-15:30 PC3, Szerda 10:15-11:45 PC9
backAB2gyak (főmenü)    Gyak.köv.    ABelérése     2.gyak    OracleDoc 
  
1.gyak. Adatbázisbeli objektumok, táblák és oszlopai
   
Követelmények ismertetése: Gyakorlati követelmények és ZH infó
Kérem, hogy az aktuális előadás anyagából felkészülten jöjjön a gyakorlatra,
a félév során a gyakorlatokok Kiss Attila AB2EA előadás anyagára épülnek.
További hasznos olvasmányok:
> Tankönyv: Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása, 2001.
> Oracle Dokumentáció
  
G (gépes feladatok)
> Az adatbázisok elérésének technikai kérdései: ABelérése és Mintasémák 
> Ismétlés az előző féléves Adatbázisok-1 anyagából: SELECT utasítás
G1. Adatbázisbeli objektumok, tábla, nézet, stb (DBA_OBJECTS)   
> G2. Táblák és oszlopai (DBA_TABLES, DBA_TAB_COLUMNS) 
   

Ismétlés: Előfeltétel: Adatbázisok-1 kurzus anyagából tudni kell:
> Relációs modell. Táblák létrehozása. Lekérdezések az SQL-ben: 
   OracleDoc:  SQL Language Reference (.html) és PDF (.pdf )
   --- SELECT utasítás példákkal --- 5. Függvények
   --- Táblák létrehozása --- CREATE TABLE és Data Types
> SELECT utasításhoz az Adatbázisok-1 Oracle segédanyag:
   --- SELECT listaWHERE feltétel, Sorfüggvények
   --- Csoportosítás és aggregátor függvények
   --- Join (de most mindig adjuk meg a kapcsolási feltételeket!)
   --- Alkérdések I.Alkérdések II.
> Köv.héten lekérdezések programnyelvi környezetben: PL/SQL ismétlés lesz
  
G1. Adatbázisbeli objektumok, tábla, nézet, stb
(DBA_OBJECTS)
 
Segédanyag: Adatbázis objektumok.txt + 01-DBA nézetek.pdf
>> OracleDoc: Concepts 
     --- 1 Introduction to Oracle Database: Schema Objects
     --- 2 -> Introduction to Schema Objects   --- Figure 2-1 HR Schema
   
Honnan kaphatunk információkat az adatbázisban tárolt dolgokról és azok
tulajdonságairól? -> Az adatszótár nézetekből, amyeleknek neve általában
a köv.karakterláncok valamelyikével kezdődik:
   USER (az adott user tulajdonában lévő objektumok) pl. USER_TABLES
   ALL  (amihez joga van az adott usernek) pl. ALL_TABLES
   DBA  (az adatbázis összes objektuma) pl. DBA_TABLES

Milyen dolgok vannak az adatbázisban? Például táblák, nézetek, indexek, stb.
- Minden fel van sorolva a típusával együtt a DBA_OBJECTS adatszótárban.
- Minden adatbázisbeli objektumnak van egy egyedi objektum azonosítója (OBJECT_ID),
  és amelyikhez tartozik szegmens, annak egy úgynevezett adatobjektum azonosítója is van
  (DATA_OBJECT_ID). Amelyik objektumhoz nem tartozik szegmens, annak az adatobjektum
  azonosítója NULL vagy 0, és ezeknek csak a definíciója van (szövegesen) tárolva a szótárban. 
  Ezen utóbbi objektumokra azt mondjuk, hogy tényleges tárolást nem igénylő objektumok.
   
Feladatok:
1.01. Kérdezzük le a DBA_OBJECTS, ALL_OBJECTS és USER_OBJECTS nézeteket.
1.02. Kinek a tulajdonában van a DBA_TABLES nevű nézet valamint a DBA_TABLES
         nevű szinonima? (A 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? Melyek ezek a típusok?
1.05. 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.06. 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
1.07. Kik azok a felhasználók, akiknek több mint 10 féle objektumuk van?
1.08. Kik azok a felhasználók, akiknek van triggere és nézete is?
1.09. Kik azok a felhasználók, akiknek van nézete, de nincs triggere?
1.10. Kik azok a felhasználók, akiknek több mint 40 táblájuk, de maximum 37 indexük van?
   

G2. Táblák és oszlopai, 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
>> Oracle Doc: Concepts  -- 1 Introduction to Oracle Database: Schema Objects
        --- 2 -> Introduction to Schema Objects   --- Figure 2-1 HR Schema
        --- 2 -> Overview of Tables   --- Example 2-1 CREATE TABLE
   
Mely táblák vannak egy adott felhasználó tulajdonában?
- A DBA_TABLES adatszótár az összes táblát felsorolja, például HR séma táblái ezek:
  SELECT table_name FROM dba_tables WHERE owner='HR';
Mit tudhatunk a táblák oszlopairól, milyen nevű és típusú oszlopai vannak, sorrendjük, stb.
- A DBA_TAB_COLUMNS adatszótár a táblák oszlopairól tartalmaz információt.
   
Feladatok:
2.01. Az Oracle SQL Language Reference segítségével (Data Types típusokkal, 
         vagy az innen összeállított oszloptípusok segédlettel) hozzunk létre táblákat,
         majd keressük meg az adatszótár nézetekben, hogy milyen információkat
         találhatunk a táblákról és a táblák oszlopairól. Adatszótár nézetek:
         DBA_OBJECTS, DBA_TABLES és DBA_TAB_COLUMNS 

-- Például dept, emp, salgrade táblák közvetlen létrehozása és
    sorokkal való feltöltése az INSERT 1.alakja: cr_dept_emp.sql  
-- A dept, emp, salgrade, dummy, customer, ord, item, product, price táblák
    valamint a sales nézettábla létrehozása: cr_dept_stb_sales.sql
-- Például  Example 2-1 CREATE TABLE utasítás alapján hozzunk létre saját táblát:
    DROP TABLE MY_EMPLOYEES;  CREATE TABLE MY_EMPLOYEES (...);
    majd HR.EMPLOYEES táblából az INSERT 2.alakjával (alkérdéssel) töltsük fel.
-- Keressük ki erről a saját táblánkról az adatszótár nézetekben tárolt információkat!
   
2.02. Hozzunk létre táblákat megszorításokkal, majd nézzük meg hogyan jelennek meg
         az oszlopok és a megszorítások a DBA_CONSTRAINTS katalógustáblában is.
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ú.
 
 Fel a lap tetejére (mai gyak témakörei)      Vissza az AB2gyak kezdőlapjára