Her
Oracle veritabaninin bir veri sozlugu vardir. Veri sozlugu, Oracle
veritabani ile ilgili bilgilerin yine Oracle veritabaninda tablolar ve
goruntuler halinde saklanmasiyla olusur. Veritabani ile ilgili bu
bilgiler kullanicilar, haklar, veritabani nesneleri, tablo kisitlamalari
vb. bilgilerinden olusur. Veri sozlugu Oracle veritabanin en onemli
bolumudur. Veritabani hakkindaki tum bilgiler veri sozlugunden SQL
komutlari yazarak ogrenilebilir. Veri sozlugu, veritabani kurulurken
standart olarak olusturulur ve yapilan degisiklikler otomatik olarak
veri sozlugune yansitilir. Ornegin bir kullanici bir tabloya bir alan
eklerse, veri sozlugunde o tabloya iliskin yapi, kullanici farketmeden
degistirilir boylece veri sozlugunden veritabani hakkinda surekli olarak
guncel ve saglikli bilgi almak
mumkun olur. Veri sozlugu icerisindeki bilgiler SQL komutlariyla
sorgulanip gorulebilir. Fakat hicbir kullanici veri sozlugunu
degistiremez, ekleme yapamaz ve kayit silemez. Veritabani olusturulurken
olusturulan veri sozlugu tablolari SYS adli kullaniciya aittir. Veri
sozlugu tablolari icin goruntuler olusturulmustur. Tum kullanicilar
haklari oldugu muddetce bu goruntulerden bir ya da birkacini
sorgulayabilirler. Veri sozlugu goruntuleri, baslarindaki on eklerine
gore uc gruba ayrilir :
- USER_xxx : Veritabanina o an bagli olan kullanicinin sahip oldugu nesneler ile ilgili goruntulerdir.
- ALL_xxx : Veritabanina o an bagli olan kullanicinin sahip oldugu ve baskalarina ait olan ve kendisine kullanma hakki verilmis olan tum nesnelerle ilgili goruntulerdir.
- DBA_xxx : DBA (veritabani yoneticisi) veya DBA hakkina sahip kullanicilarin gorebilecegi goruntulerdir.
Sik kullanilan bazi data dictionary objeleri ve aciklamalari :
USER_TABLES :Kullanicilarin sahip oldugu tablolarin yapisini gosteren goruntudur.
USER_SEQUENCES : Kullanicinin sahip oldugu siralar hakkinda bilgi iceren goruntudur.
USER_VİEWS : Kullanicinin sahip oldugu goruntuler hakkinda bilgi iceren goruntudur.
ALL_OBJECTS : Kullanicinin erisebilecegi butun nesneler hakkinda bilgi iceren goruntudur.
DBA_USERS : Veritabanindaki butun kullanicilar hakkinda bilgi iceren goruntudur.
DBA_TABLESPACES : Veritabanindaki butun tablo uzaylari hakkinda bilgi iceren goruntudur.
USER_SEQUENCES : Kullanicinin sahip oldugu siralar hakkinda bilgi iceren goruntudur.
USER_VİEWS : Kullanicinin sahip oldugu goruntuler hakkinda bilgi iceren goruntudur.
ALL_OBJECTS : Kullanicinin erisebilecegi butun nesneler hakkinda bilgi iceren goruntudur.
DBA_USERS : Veritabanindaki butun kullanicilar hakkinda bilgi iceren goruntudur.
DBA_TABLESPACES : Veritabanindaki butun tablo uzaylari hakkinda bilgi iceren goruntudur.
Data Dictionary Kullanimi :
1) Oracle; kullanicilar, sema ve objeler hakkinda bilgi almak icin kullanir.
2) Oracle; gerceklesen her DDL(Data Definition Language) islemi sonunda Data Dictionary’i duzenler.
3) Kullanicilar; sadece bilgi amacli olarak kullanirlar.
1) Oracle; kullanicilar, sema ve objeler hakkinda bilgi almak icin kullanir.
2) Oracle; gerceklesen her DDL(Data Definition Language) islemi sonunda Data Dictionary’i duzenler.
3) Kullanicilar; sadece bilgi amacli olarak kullanirlar.
Bunu bir ornek ile aciklamak gerekirse bir tablo olusturdugumuzu
dusunelim.Bu tablonun hangi kolonlardan olustugu, kolonlarin tipleri,
tablonun segment, extents ve kullanici haklari gibi bilgileri Oracle
tarafindan bilinmeliki olusturma asamasindan sonra gerceklesecek tabloyu
ilgilendiren operasyonlar saglikli bicimde gerceklestirilsin.Bu amacla
ornekte gecen tum bilgiler ve fazlasi Data Dictionary e yazilir ve
olusturma yapildiktan hemen sonra dictionary sorgulandiginda bu bilgiler
gorulebilir.Bu bilgiler sadece Oracle a degil kullanicilara da
lazim(dir) olabilir.Bu amacla genel olarak data dictionary bilgileri
kullanicilara aciktir bazilari ise ozel kullanici hakki ister.
Bu
kadar sik kullanilan bir yapinin memory de tutulmasi mantikli olcaktir,
nitekim Oracle bu bilgileri SGA(System Global Area)’da “dictionary
cache” denilen yerde tutar. Data Dictionary bilgilerine klasik SQL
sorgulariyla ulasilir.Yukarida da bahsedildigi uzere bazisina tum
kullanicilar erisebilirken bazisi icin ozel kullanim haklari
tanimlanmalidir.
Dynamic Performans Tables and Views:
Oracle’in islemler gerceklestirirken gerekli bilgileri ve o anki veritabani aktivitelerini tutmak icin kullandigi tablolardir. ”Fixed Views” da denir ve DBA tarafindan bile degistirilemez ya da silinemezler. SYS altinda bulunurlar ve isimleri “V_$” ile baslar. Bunlara verilen es anlamli isimler ise “V$” ile baslar. Ornegin V$DATAFİLE veritabaninin datafile’lari hakkinda bilgileri icerir ve ornegin V$FİXED_TABLE veritabaninin kullandigi “Dynamic Performans” tablolari ve View’lari hakkinda bilgi verir.
Oracle’in islemler gerceklestirirken gerekli bilgileri ve o anki veritabani aktivitelerini tutmak icin kullandigi tablolardir. ”Fixed Views” da denir ve DBA tarafindan bile degistirilemez ya da silinemezler. SYS altinda bulunurlar ve isimleri “V_$” ile baslar. Bunlara verilen es anlamli isimler ise “V$” ile baslar. Ornegin V$DATAFİLE veritabaninin datafile’lari hakkinda bilgileri icerir ve ornegin V$FİXED_TABLE veritabaninin kullandigi “Dynamic Performans” tablolari ve View’lari hakkinda bilgi verir.
DATA DİCTİONARY İSTATİSTİGİNİN ALİNMASİ
Data dictionary'nin istatistigini iki farkli metodla alabiliriz.
Asagidaki PL/SQL kodlarini kullanarak veya direkt Sqlplus'dan begin/end
satirlarini silip basina “exec” ibaresini ekleyerek calistirabilirsiniz.
İstatistik alirken dikkat etmeniz gereken konu istatistik sonucunda bir
histogram olusturulmasidir. Bu histogram‘in olusturulmasi icin komut
icersinde mutlaka “Gather Auto” opsiyonu verilmelidir.
begin
dbms_stats.gather_dictionary_stats(options=> 'GATHER AUTO');
end;
dbms_stats.gather_dictionary_stats(options=> 'GATHER AUTO');
end;
veya
begin
dbms_stats.gather_schema_stats (ownname=> 'SYS' ,options=> 'GATHER AUTO');
end;
dbms_stats.gather_schema_stats (ownname=> 'SYS' ,options=> 'GATHER AUTO');
end;
ya da
exec dbms_stats.gather_dictionary_stats(options=> 'GATHER AUTO');
Hiç yorum yok:
Yorum Gönder