24 Ağustos 2011 Çarşamba

Overview of the Oracle Database Data Dictionary / Oracle Veritabanı Veri Sözlüğüne Genel Bakış

Each Oracle database has a data dictionary, which is a set of tables and views that serve as a reference about the database. For example, a data dictionary stores information about both the logical and physical structure of the database. A data dictionary also stores the valid users of an Oracle database, information about integrity constraints defined for tables in the database, and the amount of space allocated for a schema object and how much of that space is in use, among much other information.
A data dictionary is created when a database is created. To accurately reflect the status of the database at all times, the data dictionary is automatically updated by Oracle Database in response to specific actions, such as when the structure of the database is altered. Database users cannot modify the data dictionary. Various database processes rely on the data dictionary to record, verify, and conduct ongoing work. For example, during database operation, Oracle Database reads the data dictionary to verify that schema objects exist and that users have proper access to them.

Türkçesi:

Her Oracle veritabanı, veri tabanı hakkında bir refenrans hizmeti veren tablolar ve görünümleri olan bir veri sözlüğüne sahihtir.Örneğin, bir veri sözlüğü veri tabanını mantıksal ve fiziksel yapının her ikisi hakkında bilgileri depo eder.Bir veri sözlüğü bir Oracle veritabanını geçerli kullanıcılarını, veritabanı içinde tablolar için tanımlanan bütünlük kısıtlamaları hakkında bilgileri, ve bir şema nesnnesi için ayrılan alan miktarını ve ne kadar alanın kullanımda olduğunu, çok daha fazla diğer bilgileri içinde hafızaya alır ve saklar.

Bir veri sözlüğü veri tabanı oluşturulduğu zaman oluşturulur.Her zaman doğru bir şekilde veritabanının durumunu yansıtmak için, veri sözcüğü otomatik olarak veritabanın değişikliği gibi özel haraketlerde Oracle Veritabanı taradından güncellenir.Veri Tabanı Kullanıcıları veri sözlüğünde değişiklik yapamaz.Birçok veritabanı süreçleri kayıt yapmak, doğrulamak ve devam eden çalışmalar yönetmek için veri sözlüğüne dayanır.Oracle Veritabanı şeme nesnelerini var oduğunu ve kullanıcıların onlara uygun erişime sahip olup olmadıklarını doğrulamak için veri sözlüğünü okur.


Daha Fazla Türkçe Kaynak Eklemek İstersek:

* Veri Sözlüğü

Veri sözlüğü, veri tabanındaki kullanıcılar, kullanıcıların nesneleri, tabloların özellikleri gibi veri tabanı hakkındaki sadece okunabilir bilgilerin bulunduğu tablo ve görüntüler kümesidir. Oracle veri tabanının en önemli bölümüdür. Bir Oracle veri tabanı hakkındaki tüm bilgiler, veri sözlüğünden SQL cümlecikleri yazılarak öğrenilebilir.
Veri sözlüğü, veri tabanı kurulurken otomatik olarak yaratılır ve veri tabanında yapılan her türlü değişiklik otomatik olarak yansıtılır. Örneğin, kullanıcı tarafından bir tabloya bir alan eklenirse ya da kullanıcı bir uygulama çalıştırırsa, veri sözcüğü de o tabloya ait olan yapı kullanıcı fark etmeden değiştirilmektedir. Sistemde hangi işlemlerin aktif olduğu, kimlerin çalıştığı, hangi makineden ne kadar süre ile bağlandıkları, oluşan sistem problemlerini veri sözlüğünü değiştiremez, ekleme ve silme yapamaz; çünkü veri tabanının bütünlüğü bozulur.
Veri sözlüğündeki nesneleri sahibi SYS kullanıcısıdır. En çok kullanılan veri sözlüğü görüntüleri ve açıklamaları şunlardır.

DIST: Veri sözlüğünde bulunan bütün görüntülerin isim ve açıklamalarını içeren görüntüdür.

USER_TABLES: Kullanıcıların sahip olduğu tabloların yapısını gösteren bir görüntüdür.

USER_SEQUENCES: Kullanıcının sahip olduğu sıralar hakkında bilgi içeren görüntüdür.

USER_VIEWS: Kullanıcının sahip olduğu görüntüler hakkında bilgi içeren görüntüdür.ALL_OBJECTS: Kullanıcının erişebileceği tüm nesneler hakkında bilgi içeren görüntüdür.

DBA_USERS: Veri tabanındaki tüm kullanıcılar hakkında bilgi içeren görüntüdür.

DBA_TABLESPAPECES : Veri tabanındaki bütün tablo boşlukları hakkında bilgi içeren görüntüdür.

USER_INDEXES: Veri tabanında bulunan tüm indeksler hakkında bilgi içeren görüntüdür.

V$DATAFILE: Veri tabanında bulunan tüm veri dosyaları hakkında bilgi içeren bir görüntüdür.

V$SESSION: Veri tabanı üzerinde aktif olan işlemlerin numaralarını, hangi kullanıcı, hangi makine ve hangi program tarafından çalıştırıldığını ve çalıştırdığı SQL hakkında detaylı bilgileri içeren görüntüdür.

V$SYSTAT: Veri tabanı açıldığından beri yapılan toplam fiziksel okuma sayısı, sıralanan kayıt sayısı, bu sıralanan kayıtların kaç tanesinin bellekte kaç tanesinin disk üzerinde yapıldığı, toplam okunan blok sayısı, redo log yapılan giriş sayısı, redo log dosyalarında boş yer arama gibi bilgileri dinamik olarak veren görüntüdür.
Eğer 1-( physical reads / (db block gets + consistens gets)) yani disk üzerinde yapılan okuma sayısının toplam okuma sayısına oranı 1’den farklı %90’dan düşük çıkarsa okunan veri bloklarının büyüklüğü yeterli değil demektir. Gereksiz I/O’dan kurtulmak için bu değerin büyütülmesi gerekir.
Eğer redo log dosyalarında yazmak iççin yapılan boş yer arama sayısının bu dosyalara yapılan giriş sayısına oranı (redo log space request / redo entries ) 1 / 5000’den büyük çıkarsa değişiklikler ara belleğinin yeterince büyük olmadığının anlaşılması gerekir. 

V$LIBRARYCACHE : Paylaşımlı bellek alanının performansını değerlendirmek amacıyla kullanılan bir görüntüdür. Bu görüntüde yer alan “get hit ratio” değeri %90’aın altında çıkarsa, SGA’ın büyülüğü yeterli olmadığı sonucu çıkar ve bu parametrenin tekrar gözden geçirilmesi gerekir. “Get hit ratio”değeri kullanılan SQL sayısı / paylaşımlı bellek alanında aradıkça bulunan SQL sayısıdır.

V$ROWCACHE : Paylaşımlı bellek alanının performansını değerlendirmek amacıyla kullanılan diğer bir görüntüdür. Bu görüntüdeki nesne tanımlarının (object definition) “ gets / getsmisses” oranı %10’dan büyük çıkarsa, paylaşımlı bellek alanının büyüklüğü yeterli değil ve nesne tanımları için I/0 yapılıyor demektir.

V$PROCESS: Veri tabanı üzerinde aktif olan işlemlerin, hangi kullanıcı, hangi makine ve hangi program tarafından çalıştırıldığını ve herhangi bir beklemenin olup olmadığını gösteren görüntüdür.

V$SQL: Veri tabanı üzerinde çalışan aktif SQL cümleleri hakkında detaylı bilgi içeren bir görüntüdür


* Veri Sözlüğü
Veri sözlüğü, Oracle veritabanı ile ilgili bilgilerin yine Oracle veritabanında tablolar ve görüntüler halinde saklanmasıyla oluşur. Veritabanı ile ilgili bu bilgiler kullanıcılar, haklar, veritabanı nesneleri, tablo kısıtlamaları vb. bilgilerinden oluşur. Veri sözlüğü Oracle veritabanın en önemli bölümüdür. Veritabanı hakkındaki tüm bilgiler veri sözlüğünden SQL komutları yazarak öğrenilebilir.
Veri sözlüğü, veritabanı kurulurken standart olarak oluşturulur ve yapılan değişiklikler otomatik olarak veri sözlüğüne yansıtılır. Örneğin bir kullanıcı bir tabloya bir alan eklerse, veri sözlüğünde o tabloya ilişkin yapı kullanıcı farketmeden değiştirilir böylece veri sözlüğünden veritabanı hakkında sürekli olarak güncel ve sağlıklı bilgi almak mümkün olur. Veri sözlüğü içerisindeki bilgiler SQL komutlarıyla sorgulanıp görülebilir. Fakat hiçbir kullanıcı veri sözlüğünü değiştiremez, ekleme yapamaz ve kayıt silemez. Veritabanı oluşturulurken oluşturulan veri sözlüğü tabloları SYS adlı kullanıcıya aittir. Veri sözlüğü tabloları için görüntüler oluşturulmuştur. Tüm kullanıcılar hakları olduğu müddetçe bu görüntülerden bir ya da birkaçını sorgulayabilirler. Veri sözlüğü görüntüleri, başlarındaki ön eklerine göre üç gruba ayrılır:
  • USER_xxx : Veritabanına o an bağlı olan kullanıcının sahip olduğu nesneler ile ilgili görüntülerdir.
  • ALL_xxx : Veritabanına o an bağlı olan kullanıcının sahip olduğu ve başkalarına ait olan ve kendisine kullanma hakkı verilmiş olan tüm nesnelerle ilgili görüntülerdir.
  • DBA_xxx : DBA(veritabanı yöneticisi) veya DBA hakkına sahip kullanıcıların görebileceği görüntülerdir.
Görüntü İsimleri Açıklama
USER_TABLES Kullanıcıların sahip olduğu tabloların yapısını gösteren görüntüdür.
USER_SEQUENCES Kullanıcının sahip olduğu sıralar hakkında bilgi içeren görüntüdür.
USER_VİEWS Kullanıcının sahip olduğu görüntüler hakkında bilgi içeren görüntüdür.
ALL_OBJECTS Kullanıcının erişebileceği bütün nesneler hakkında bilgi içeren görüntüdür.
DBA_USERS Veritabanındaki bütün kullanıcılar hakkında bilgi içeren görüntüdür.
DBA_TABLESPACES Veritabanındaki bütün tablo uzayları hakkında bilgi içeren görüntüdür.
SCOTT kullanıcısının bütün nesnelerini görmesi
SELECT * FROM USER_OBJECTS
Bir kullanıcın kendine ait bütün tabloların adlarını listelemesi
SELECT TABLE_NAME FROM USER_TABLES
Bir kullanıcının tüm indeks bilgilerini listelemesi
SELECT INDEX_NAME,TABLE_NAME,TABLESPACE_NAME FROM ALL_INDEXES



*
Figure 1: Hierachical structure of the data dictionary.


(Excerpt from: http://w2.syronex.com/jmr/edu/db/oracle-data-dictionary/ )



Hiç yorum yok:

Yorum Gönder