1.Témakör: Adatbázis objektumok Mi minden van egy (Oracle) adatbázisban? ======================================== Adatbázisok szintjei 1. Fizikai szint (fájlok) Adatfájlok (ebben vannak tárolva ténylegesen az adatok -> *.dbf) Naplófájlok (ebbe íródnak a módosításokról készült naplóbejegyzések -> *.log) Vezérlőállományok (mindenféle információk az adatbázisról -> *.ctl) Paraméterállomány (init.ora), jelszóállomány... stb. 2. Logikai szint Az adatbázis objektumai (tábla, nézet, index ... stb.) Séma: egy adott felhasználó tulajdonában lévő összes objektum (de vannak olyan objektumok is, amelyek egyik sémába se tartoznak bele) => Séma objektumok és Sémán kívüli objektumok ('közösek', amikre mindenkinek szüksége van) A táblák mindig valamilyen sémában vannak! (azért van kivétel) Például: egy adatbázis kapcsolat (database link) az séma objektum, de lehet public database link-et is létrehozni, ami már sémán kívüli objektum. Hasonló a helyzet a szinonimával. Van két speciális séma: SYS és SYSTEM (kötelezően létrejönnek, ebben vannak a rendszerkatalógus táblák) Egy objektumra történő teljes hivatkozás: schema.objektum@database_link (-> elosztott adatbázis) Táblák tulajdonságainak vizsgálata ================================== describe T1; -- egy tábla oszlopainak és azok típusának kiíratása Érdekesség: az adatbázis-kezelő nem ismer describe-ot, már a kliens 'lefordítja' egy SQL utasításra (valamilyen select-re) De akkor honnan veszi a rendszer a tábla oszlopaira vonatkozó infokat? -> Rendszerkatalógus Rendszerkatalógus: táblákból (nézetekből) áll, melyek az adatbázis telepítésekor létrejönnek és különböző adminisztrációs infókat tárolnak. Nevezik adatszótárnak, rendszer-katalógusnak vagy meta-adatbázisnak is. Valójában nem is igazi táblák, hanem nézetek. Általában beszédes nevük van: prefix_nev Példák prefixre: 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 Például az egyes táblák oszlopairól a DBA_TAB_COLUMNS táblából lehet infóhoz jutni. Azért egy igazi rendszerben egy 'mezei' felhasználónak nincs joga mindenhol nézelődni. Nektek most van. Az összes katalógus tábla neve és oszlopai -> Oracle doksi: Reference itt: Part II Static Data Dictionary Views A legfontosabb adatszótár, ahonnan érdemes kiindulni a kereséskor: DBA_OBJECTS (ALL_OBJECTS)