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/ )



Overview of Schemas and Common Schema Objects / Şemalar ve Ortak Şema Nesnelerine Genel Bakış

A schema is a collection of database objects. A schema is owned by a database user and has the same name as that user. Schema objects are the logical structures that directly refer to the database's data. There is no relationship between a tablespace and a schema. Objects in the same schema can be in different tablespaces, and a tablespace can hold objects from different schemas. Schema objects include structures such as tables, views, and indexes. Some of the most common schema objects are defined in the sections that follow.
This section includes the following topics:

Tables

Tables are the basic unit of data storage in an Oracle database. Database tables hold all user-accessible data. Each table has columns and rows. A table that has employee information, for example, can have a column called employee_number, and each row in that column is an employee number.

Indexes

Indexes are optional structures associated with tables. You can create indexes to increase the performance of data retrieval. Just as the index in this manual helps you quickly locate specific information, an Oracle database index provides an access path to table data.
When processing a request, Oracle Database can use some or all of the available indexes to locate the requested rows efficiently. Indexes are useful when applications frequently query a table for a range of rows (for example, all employees with a salary greater than 1000) or a specific row (for example, the employee with the highest salary).
You create an index on one or more columns of a table. Thereafter, Oracle Database automatically uses and maintains the index. Changes to table data (such as adding new rows, updating rows, or deleting rows) are automatically incorporated into all relevant indexes.

Views

Views are customized presentations of data in one or more tables or other views. A view can also be considered a stored query. Views do not contain actual data. Rather, they derive their data from the tables on which they are based, referred to as the base tables of the views.
You can query, update, insert into, and delete views as you can with tables, with some restrictions. If the view is updatable, then all operations performed on the view actually affect the base tables of the view.
Views can provide table security by restricting access to a predetermined set of rows and columns of a table. They also hide data complexity and store complex queries.

Clusters

Clusters are groups of one or more tables physically stored together because they share common columns and are often used together. Because related rows are physically stored together, disk access time improves.
Like indexes, clusters do not affect application design. Whether a table is part of a cluster is transparent to users and to applications. SQL statements access data stored in a clustered table in the same way that they access data stored in a nonclustered table.

Synonyms

A synonym is an alias for any table, view, materialized view, sequence, operator, procedure, function, package, Java class schema object, user-defined object type, or another synonym. A synonym is simply an alias, so it requires no storage other than its definition in the data dictionary.
Türkçesi:

Overview of Schemas and Common Schema Objects (Şema ve Yaygın Şema Nesneleri)

Bir şema, veritabanı nesnelerinin bir koleksiyonudur.şema, bir veritabanı kullanıcı tarafından sahip olunan ve bu kullanıcı olarak aynı isme sahiptir.Şema nesneleri doğrudan veritabanının verilerine işaret eden mantıksal yapılardır.Bir tablespace ve şema arasında ilişki yoktur.Aynı şema Nesneler farklı tablespace'ler olabilir, bir tablespace içerisinde, farklı şemalardan nesneleri tutabilir.Şema nesneleri, tablolar, görünümler, dizinler gibi yapıları içerir. Bazı en yaygın şema nesneleri aşağıdaki bölümlerde tanımlanmıştır.
Bu bölüm aşağıdaki konuları içerir:


Tables

Tablolar bir Oracle veritabanı, veri depolama temel birimidir. Veritabanı tabloları, tüm kullanıcı erişilebilir veri tutar. Her tablo, sütun ve satırı vardır. Çalışan bilgileri bir tablo, örneğin, employee_number adında bir sütun olabilir, ve o sütundaki her satır bir çalışanın sayıdır.

Indexes

İndeksler tablo ile ilişkili isteğe bağlı yapılardır. Veri alma performansını artırmak için index oluşturabilirsiniz.Bu kılavuzda index özel bilgileri hızla bulmanıza yardımcı olur gibi, bir Oracle veritabanı dizini veri tablosu için bir erişim yolu sağlar.

Bir isteği işlerken, Oracle Veritabanın içindeki verimli bir şekilde istenen satırları bulmak için mevcut dizinlerin bazılarını veya tümünü kullanabilirsiniz.uygulamalar sık sık satır aralığı (örneğin, 1000'den daha yüksek bir maaş ile tüm çalışanlar) veya özel bir satır (örneğin, en yüksek maaş ile çalışan) için bir tablo sorgulandığında indeksler kullanışlıdır.

Bir tabloda bir veya daha fazla sütun üzerinde bir dizin oluşturabilirsiniz. Bundan sonra, Oracle Veritabanın içindeki otomatik olarak kullanır ve dizin korur. Tablo verileri yapılan değişiklikler (örneğin, yeni satırlar ekleyerek, satır, güncelleme veya silme satır gibi) otomatik olarak ilgili tüm dizinler içine dahil edilmiştir.

Views

Views, bir veya daha fazla tablo veya diğer görünümlerde veri sunumları isteğe uyarlanmıştır.Bir view de saklı bir sorgu olarak kabul edilebilir.Görüntüleme gerçek veri içermez.Bilakis, Onlar view'lerin temel tablosu olarak başvurulan, kendi veri dayandığı tablolardan dayanan bilgilerinden türetilir.

Bazı kısıtlamalarla birlikte, view'leri sorgulayabilir güncelleyebilir ,içine ekleyebilir ve tabloları ile silebilirsiniz.Görünümü güncellenebilir ise, görünümü üzerinde gerçekleştirilen tüm işlemler aslında görünümün temel tablolar etkilemez.

View'ler erişimi kısıtlamak için, satır ve sütunların önceden belirlenmiş bir tablo güvenlik sağlayabilir. Ayrıca veri karmaşıklığını gizler ve karmaşık sorguları saklar.

Clusters

Kümeler ortak sütunlar paylaşırlar ve genellikle birlikte kullanılır, çünkü fiziksel olarak birlikte saklanan bir veya daha fazla tablo gruplardır.Çünkü, ilgili satırlar fiziksel olarak bir arada saklandığı için, disk erişim süresini artırır.

İndeksler gibi, kümeler uygulama tasarımı etkilemez. Bir tablo bir kümenin parçası olup olmaması, kullanıcılar ve uygulamalar için şeffaftır.SQL ifadeleri kümelenmemiş bir tabloda depolanan veri erişir aynı şekilde kümelenmiş bir tabloda saklanan verilere erişir.

Synonyms

Bir Synonym herhangi bir tablo, görünüm, gerçekleşmiş view, sekans, operatör, prosedür, fonksiyon, paket, Java sınıfı şema nesnesi, kullanıcı tanımlı nesne türü, ya da başka bir eş anlamlısı için bir takma adıdır.Bir Synonym sadece bir takma addır, bu nedenle veri sözlüğünde tanımı dışında hiçbir depolama gerektirmez.



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

*Veri Tabanı Şema Nesneleri
Şema nesneleri mantıksal veri depolama yapıları olarak bilinir. Veritabanı üzerinde kullanıcının belirli işleri yapabilmesi için tanımlanan bu yapılar tablolar, görüntüler, sıralar, eşanlamlar, indeksler, kümeler, veritabanı bağlantıları, prosedürler, fonksiyonlar, ve paketlerdir. Bir şema ise bu nesnelerin oluşturduğu gruptur.
Küme(CLUSTER)
Aynı anda sorgulanan birden fazla tablonun bir arada kaydedilmesine “cluster” denir. Bu yapı, beraber sorgulanan tablolarda hız kazanmak için çok önemlidir. Örneğin “isci” tablosu ile “bolum” tablosunun(bu tabloların yapısı için SQL bölümüne bkz.) her ikisi de ortak olarak “bolum” ve “bolumno” alanlarını içermekte. Yani “isci” tablosundaki “bolum”, “bolum” tablosundaki “bolumno” alanına karşılık geliyor. Burada oluşturulacak bir cluster’da her iki tablo veritabanında yan yana getirilerek aynı veri bloğu içerisine kaydedilir.Böylece daha hızlı erişim sağlanır.
İndeks(INDEX)
İndeksler tablo ve cluster’lar için kullanılan veri tabanı nesneleridir. Burada amaç aranılan bir kayda daha hızlı erişimdir. Özellikle üzerinde çok arama yapılan alan veya alanlar üzerinde indeks oluşturmak çok etkilidir.  İndeks oluşturulduğunda ilgili tablonun kayıtları yer değiştirmez. Sadece ilgili kayıtların kayıt numaraları olarak adlandırılan “rowid” ‘ler alınarak sıralama yapılır.
Bir tablo üzerinde oluşturulabilecek indeks sayısı sütunların kombinasyonları farklı olduğu müddetçe sınırsızdır. Bir sütun diğer sütunlarla değişik kombinasyonlarda kullanıldığı müddetçe birden fazla indeks içerisinde yer alabilir.  Aynı sütun kombinasyonlarının indeksi, faklı indeks ismi kullanarak oluşturulmaya çalışılsa bile gerçekleştirilemez.
İndeksleme işleminin gerçekleştirilmesinde Oracle çoğunlukla B-tree indeksleme metodunu kullanır. Bunun yanında “hash cluster indexes”, “reverse key indexes”, ve “bitmap indexes” yöntemlerini de kullandığı bilinmektedir.
İndeksler mantıksal ve fiziksel olarak oluşturuldukları tablodan bağımsızdırlar. Eğer bir indeks silinirse, ilgili tablo zarar görmez, çalışmaya devam eder. Fakat indeks olmadığı için veri erişim süresi artacaktır.
Oracle bir indeks oluşturulduğunda onu otomatik olarak kullanmaya başlar ve  indeksin oluşturulduğu tablodaki silme, güncelleme ve ekleme işlemleri indekse otomatik olarak yansıtılır.
Rol(ROLE)
Oracle veritabanında her nesnenin ait olduğu bir kullanıcı vardır. Bir kullanıcı bir başka kullanıcının nesneleri üzerinde işlem yapmak isterse buna hakkı olması gerekir. Bir nesne üzerinde işlem yapabilme yetkisine hak denir. Örneğin veritabanına bağlanma, tablo oluşturma, bir başkasına ait tablodan kayıt listeleme, bir başkasının prosedürünü çalıştırma birer haktır. Bu haklar kullanıcılara atanmak suretiyle kullanıcıların bu işlemeleri gerçekleştirmeleri sağlanır. Hakların kullanıcılara atanması iki şekilde olabilir. Birinci olarak  bir tabloya kayıt ekleme, kayıt silme vb. haklar bir kullanıcıya ya da kullanıcılara ayrı ayrı atanır. İkinci şekilde ise verilmek istenen haklar bir rol altında birleştirilir ve bu rol istenen kullanıcılara aktarılır.
Haklar “sistem hakları” ve “nesne hakları” olmak üzere ikiye ayrılır. Sistem hakları veritabanı ile ilgili olarak önceden tanımlanmış rollerdir. Oracle’da 60’tan fazla sistem hakkı tanımlanmıştır. Nesne hakları ise veri tabanı nesneleri üzerinde işlem yapma haklarıdır. “Create Table”, “Create TableSpace”, “Drop Any Index” gibi haklar sistem haklarına örnek olarak verilebilir.  Nesne hakları ise 8 çeşittir. “Select”, “Insert”, “Update”, “Delete”, “Alter”, “Index”, “Execute”, “References”, “All” çeşittir. “All” ayrı bir hak olarak adlandırılmaz. Diğer tüm hakları kapsar. Bu haklar sırayla kayıt seçme, kayıt güncelleme, kayıt silme, nesnelerin yapısını değiştirme, indeks oluşturma, alt program çalıştırma, yabancı anahtar tanımlayabilme işlemlerini içerirler. Rol tanımlama ve hak verme komutları ileride ayrıntılı olarak işlenecektir.
Geri Alma Parçası(ROLLBACK SEGMENT)
Oracle veritabanının güvenliği açısından “Select”, “Insert”, “Update”, “Delete” gibi işlemlerin yedeğini almaktadır. Alınan bu yedeklerin konulduğu yerlere geri alma parçası denir. Kullanıcı bu tip işlemleri yaptıktan sonra “Rollback” komutunu uygularsa, yaptığı değişiklikler geri alma parçalarından getirilir ve böylece kayıtlar eski haline dönmüş olur. Kullanıcı “Commit” komutunu verirse yaptığı değişiklikler geri alma parçalarından geri getirilemez. Her veritabanında bir ya da birkaç tane geri alma parçası olabilir.
Sıra(SEQUENCE)
Tablolardaki kayıtlar için otomatik sıra numarası verilmesi isteniyorsa sıra nesnesi kullanılabilir. Bu sıra numarası veritabanı tarafından otomatik olarak üretilir.  Özellikle çok kullanıcılı ortamlarda tekil olarak numara üretilmek istendiğinde çok kullanışlıdır.  Birden fazla kullanıcı aynı anda böyle bir sayı üretmek isterse bunun program koduyla yapılması işlem hızını yavaşlatır. Çünkü bir kullanıcı diğeri işini bitirene kadar beklemek zorundadır. Sıra nesnesi bu işi otomatik olarak ve çok seri bir şekilde başarır.
Sıra numaraları Oracle’da tanımlı 38 rakama kadar tamsayılardan oluşur. Bir sıra tanımlaması sıranın adını, artan ya da azalan olacağını, iki sayı arasındaki fark miktarını içerir. Oracle tüm sıra numarası tanımlarını SYSTEM tablo uzayının içerisindeki bir veri sözlüğü tablosuna kaydeder. SYSTEM tablo uzayı sürekli çalışır durumda olduğu için tüm sıra numaraları da aktiftir. Sıra numaraları tablolardan bağımsız olarak üretilir. Yani bir sıra numarası bir ya da daha çok tablo için kullanılabilir.
Kayıtlı Fonksiyonlar(STORED FUNCTION) ve Kayıtlı Prosedürler(STORED PROCEDURE)
Bir grup SQL ya da PL/SQL komutunun belli bir işi gerçekleştirmek için bir araya getirilip veritabanına kaydedilmesi kayıtlı prosedürler ve fonksiyonlar sayesinde olur. Birden fazla uygulama programı içerisinde aynı işi yapan kodları sürekli yazmak yerine kayıtlı prosedür ve fonksiyonlar bir kere yazılır ve tüm uygulamalar tarafından kullanılır. SQL*Plus, Oracle Forms ya da Oracle Reports içerisinden bu prosedürler çağrılabilir. Prosedürler geriye birden fazla değer döndürebilirken, fonksiyonlar  sadece bir değer döndürürler.
Eşanlam(SYNONYM)
Eşanlam bir tablo, görüntü, sıra, prosedür, fonksiyon ya da paket için “alias” olarak adlandırılan bir takma isimdir. Eşanlam bir takma isim olduğu için veri sözlüğü içerisindeki tanımının kapladığı yer haricinde, veritabanında yer kaplamaz. Eşanlamlar güvenlik ve daha rahat kod yazma amacıyla kullanılırlar. Bir eşanlam kullanıldığında ilgili nesnenin adı ve sahibi gizlenir ve SQL komutu içerisinde kullanımı kolaylaşır.
Eşanlamlar genel(Public) ve özel(Private) olarak tanımlanabilirler. “Genel” olarak tanımlanan eşanlamlara tüm veritabanı kullanıcıları erişebilir. “Özel” olarak tanımlanan eşanlamlara sadece ilgili nesnenin sahibi ve sahibi tarafından hak verilmiş bir başka kullanıcı erişebilir.
Bir nesnenin adı değiştirilmek istendiğinde ya da silinmek istendiğinde, bu nesneyi kullanan tüm uygulama programları değiştirilmek zorundadır. Oysa ki bu nesnenin bir eşanlamı oluşturulursa ve uygulama programları bu eşanlamı kullanırsa, eşanlam üzerinde yapılacak değişikliklerle bu silme vb. işlemlerden uygulama programlarının etkilenmesi önlenebilir.
Bir kullanıcı bir başka kullanıcının nesnesini kullanmak istediğinde “kullanıcı_adı.nesne_adı” şeklinde bir yazım kuralına uymak zorundadır. Eğer bir “genel” olarak bir eşanlam tanımı yapılırsa tüm kullanıcılar direk eşanlam ismini kullanarak işlemlerini gerçekleştirebilirler.
Tablo(TABLE)
İlişkisel Veri Tabanı Yönetim Sistemleri’nde veriler tablolar içerisinde yer alır. Her tablo bir isimle tanımlanır ve her biri  bir “kayıt” olarak adlandırılan satırlar ile bu kayıtlardaki verilerin özelliklerini belirleyen sütunlardan oluşur. Her tablo bir ya da daha fazla sütuna sahip olabilir. Her sütunun bir adı ve veri tipi vardır.
Bir tablo oluşturulduğunda Oracle verileri depolamak için bir tablo uzayı içerisinde bir veri segmenti ayırır. Veri segmentinin değerleri değiştirilerek bir tablo için ayrılacak yer miktarı da değiştirilebilir.
Görüntü(VIEW)
Görüntü bir ya da birkaç tablodan istenilen alanların alınmasıyla oluşturulan sanal bir tablodur. Görüntü bu tablolar üzerinde gerçekleştirilen bir sorgu sonucu oluşturulur. Bir görüntü üzerinde silme, güncelleme gibi işlemler yapılamaz. Çünkü görüntü oluşturulduğu tabloların sadece o anlık görüntüsüdür ve veritabanında kendi tanımının kapladığı yer haricinde yer kaplamaz.



*Tablolar (Tables)

Veritabanınında bilgilerin tutulduğu alanlar tablolardır. Tablolar belirli karakteristiklere sahip kolonlardan oluşur. Bilgiler satır satır tutulmaktadır. Bir tabloda sınırsız sayıda satır olabilir.
İndeksler (indexes)

Tablolarda aranan kaydı daha çabuk bulabilmek için tanımlanan nesnelere indeks denir. İndeksler daha çok kullanılan kolonlar üzerine tanımlanır. İndeksin seçiciliği ne kadar fazla ise sorgulama o kadar hızlı olur.
Görüntüler (views)

Görüntüler bir anlamda saklanmış sorgulamalardır. Aynı veya farklı veri tabanları üzerinde bulunan bir veya birden fazla tablonun belirli kolonların , belirli bir kritere göre bir araya getirilmiş şeklidir, bu nedenle tablolarda herhangi bir değişiklik olduğunda görüntülerde buna bağlı olarak değişir. Görüntüler sorgulanabilir. Arkalarında tablo olduğu için giriş, güncelleme ve silme işlemleri de yapılabilmektedir. Sadece Oracle veri tabanında birden fazla tabloda oluşan görüntüler üzerinde veriler değiştirilebilmektedir. Örneğin informix sadece bir tablodan oluşan görüntüdeki değiştirilebilmesini desteklemektedir. DB2 ise farklı veri tabanları üzerindeki tablolardan görüntü yaratılmasına olanak vermez. Görüntüler bir veya birden fazla tablonun bir kritere göre bir araya getirilmiş şekli olduğundan performansı çok iyi değildir.
Sıralar (Sequences)

Sıra, veri tabanındaki bir tablonun sayısal bir kolonuna tek (unique) bir sayı listesi üretir. bu sayı listesi olarak bir havuz düşünülebilir. Eğer oracle kolona bir sayı girilecekse kullanıcı oracle havuzdan sıradaki numarayı seçer. Bu durum, çok kullanıcı ortamlarda, sıralı gitmesi gereken veri tabanı asla çakışmaması gereken kolonlarda çok işe yaramaktadır.
Kaydedilmiş Fonksiyon Veri Tabanı Yordamlar

Oracle veri tabanında kullanıcılara ait fonksiyon ve yordamlar, uygulamalarda sıkça kullanılacaksa veri tabanına kaydedilebilmektedir. Eğer bu fonksiyon ve yordamlara kullanım hakkı verilirse, tüm kullanıcılar tarafından çalıştırılabilir. Veri tabanı üzerinde saklanan bu program parçaları, uygulama tarafında yazılan program parçalarından daha hızlı çalışır.




23 Ağustos 2011 Salı

Overview of Logical Database Structures / Mantıksal Veri Tabanı Yapısına Genel Bakış



*This section discusses logical storage structures: data blocks, extents, segments, and tablespaces. These logical storage structures enable Oracle Database to have fine-grained control of disk space use.
This section includes the following topics:

Oracle Database Data Blocks

At the finest level of granularity, Oracle Database data is stored in data blocks. One data block corresponds to a specific number of bytes of physical database space on disk. The standard block size is specified by the DB_BLOCK_SIZE initialization parameter. In addition, you can specify up to four other block sizes. A database uses and allocates free database space in Oracle Database data blocks.

Extents

The next level of logical database space is an extent. An extent is a specific number of contiguous data blocks, obtained in a single allocation, used to store a specific type of information.

Segments

Above extents, the level of logical database storage is a segment. A segment is a set of extents allocated for a table, index, rollback segment, or for temporary use by a session, transaction, or SQL parser. In relation to physical database structures, all extents belonging to a segment exist in the same tablespace, but they may be in different data files.
When the extents of a segment are full, Oracle Database dynamically allocates another extent for that segment. Because extents are allocated as needed, the extents of a segment may or may not be contiguous on disk.

Tablespaces

A database is divided into logical storage units called tablespaces, which group related data blocks, extents, and segments. For example, tablespaces commonly group together all application objects to simplify some administrative operations.
Each database is logically divided into two or more tablespaces. One or more datafiles are explicitly created for each tablespace to physically store the data of all logical structures in a tablespace. The combined size of the datafiles in a tablespace is the total storage capacity of the tablespace.
Every Oracle database contains a SYSTEM tablespace and a SYSAUX tablespace. Oracle Database creates them automatically when the database is created. The system default is to create a smallfile tablespace, which is the traditional type of Oracle tablespace. The SYSTEM and SYSAUX tablespaces are created as smallfile tablespaces.
Oracle Database also lets you create bigfile tablespaces, which are made up of single large file rather than numerous smaller ones. Bigfile tablespaces let Oracle Database utilize the ability of 64-bit systems to create and manage ultralarge files. As a result, Oracle Database can scale up to 8 exabytes in size. With Oracle-Managed Files, bigfile tablespaces make datafiles completely transparent for users. In other words, you can perform operations on tablespaces, rather than the underlying datafiles.
Online and Offline Tablespaces
A tablespace can be online or offline. A tablespace is generally online, so that users can access the information in the tablespace. However, to simplify administration, sometimes a tablespace is taken offline to make a portion of the database unavailable while allowing normal access to the remainder of the database.
Read-only Tablespaces
A tablespace can be read only, which means that data in the tablespace cannot be modified. The primary purpose of read-only tablespaces is to eliminate the need to perform backup and recovery of large, static portions of a database. Oracle Database never updates the files of a read-only tablespace, and therefore the files can reside on read-only media such as CD-ROMs or WORM drives.

Türkçesi:

Mantıksal Veritabanı Yapısı

Mantıksal depolama yapıları:veri blokları, kapsam, segment ve tablespace'ler bu bölümde tartışıyor.Bu mantıksal depolama yapıları, disk alanı kullanımı ince taneli kontrol etmek için Oracle Veritabanı için sağlar.

Bu bölüm aşağıdaki başlıkları içerir:

Oracle Database Data Blocks


Taneciklik iyi düzeyde, Oracle Veritabanında veri, veri blokları halinde saklanır.Bir veri bloğu disk üzerindeki fiziksel veritabanı alanı belirli bir sayıda byte karşılık gelir.Standart blok boyutu DB_BLOCK_SIZE başlatma parametresi tarafından belirlenir.Buna ek olarak, diğer dört blok boyutları belirleyebilirsiniz. Bir veritabanı Oracle Veritabanın içindeki veri bloklarının boş veritabanı alanını kullanır ve ayırır.

Extents

Mantıksal veritabanı alanı bir sonraki seviyeyesi bir extent'tir.Bir kapsam, belirli bir tip bilgi depolamak için kullanılan tek bir tahsis olarak elde edilen bitişik veri bloklarının belirli bir sayısıdır.

Segments

Extents'in yukarısında, mantıksal bir veritabanı depolama düzeyi bir segment'tir.Bir segment, bir tablo,kapsamlar,bir dizi, indeks, geri alma segmenti veya bir oturum, işlem veya SQL ayrıştırıcı geçici kullanım için için ayrılmış bir settir.Fiziksel veritabanı yapıları ile ilgili olarak, bir segmente ait tüm extents aynı tablospace var, ama onlar farklı veri dosyaları olabilir.Bir segment extents dolduğunda, Oracle Veritabanın içindeki, bu segment için başka bir boyutu dinamik olarak ayırır. extents gerektiği gibi tahsis edilir, çünkü bir segmentin extent'leri ya da disk üzerinde bitişik olamaz ya da olabilir.

Tablespaces

Gruba bağlı veri bloklarının, extents ve segmentleri bir veritabanı tablespace'ler olarak adlandırılan mantıksal depolama ünitelere bölünmüştür.Örneğin, tablespace'ler birlikte yaygın olarak tüm uygulama nesneleri bazı idari işlemleri basitleştirmek için gruplandırılır.Her veritabanı mantıksal olarak iki veya daha fazla tablespace'ler ayrılmıştır. Bir veya daha fazla veri dosyaları açıkça her tablespace fiziksel olarak bir tablespace içerisinde tüm mantıksal yapıların verileri depolamak için oluşturulur.Bir tablespace içerisinde datafiles'lerin birleştirilmiş boyutu tablo toplam depolama kapasitesidir.

Her Oracle veritabanı bir SYSTEM tablespace ve SYSAUX tablo alanı içerir. Oracle Veritabanın içindeki, veritabanı oluşturulduğunda otomatik olarak oluşturur.sistem varsayılanı Oracle tablospace'ın geleneksel tipi bir smallfile tablo oluşturmaktır.SİSTEM ve SYSAUX tablespace'ler smallfile tablespace'ler olarak oluşturulur.

Oracle Veritabanın içindeki, ayrıca çok sayıda küçük olanları yerine tek bir büyük dosya oluşur bigfile tablespace'ler oluşturmanızı izin verir.Bigfile tablespace'ler Oracle Veritabanın içindeki ultralarge dosyaları oluşturmak ve yönetmek için 64-bit sistemlerde yeteneği kullanmasına izin verin. Sonuç olarak, Oracle Veritabanın içindeki boyutu 8 eksabayt kadar yükseltilebilir.Oracle Managed Files, bigfile tablespace'ler datafiles kullanıcılar için tamamen şeffaf hale getirir.Diğer bir deyişle, temel veri dosyaları daha ziyade, tablespace'ler işlemleri gerçekleştirebilirsiniz.
Online and Offline Tablespaces
Bir tablespace online ya da offline olabilir. Tablespace genellikle çevrimiçi kullanıcılar tablo bilgilere erişebilirsiniz.Ancak, yönetim kolaylaştırmak için, bazen bir tablespace içerisinde veritabanı geri kalanı normal erişim sağlayan veritabanının kullanılamaz bir kısmı çevrimdışı haline getirir.
Read-only Tablespaces
Bir tablespace tablo veri değişiklik olamayacağı, yani sadece okunabilir.salt okunur tablespace'ler birincil amacı, büyük bir veritabanı, statik bölümlerini yedekleme ve kurtarma gerçekleştirmek için gereksinimini ortadan kaldırmatır.Oracle Veritabanın içindeki dosyaları salt okunur bir tablospace'ın asla güncellemez ve bu nedenle örneğin, CD-ROM veya WORM sürücüleri gibi salt okunur medya dosyaları bulunabilir.


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

*Mantıksal Bölüm
Oracle veritabanının mantıksal yapısı tablo uzaylarını(tablespaces), şema nesnelerini(schema objects), veri bloklarını(data blocks), genişlemeleri(extents) ve parçaları(segments) içerir.

Tablo Uzayı(TableSpace)

Bir veritabanı, ilişkili mantıksal yapıların gruplanmasını sağlayan ve tablo uzayı olarak bilinen mantıksal depolama ünitelerine bölünmüştür.
Yukarıdaki şekil veritabanı, tablo uzayı ve veri dosyaları arasındaki ilişkiyi açıklamaktadır. Buna göre:
  • Bir veritabanı bir ya da daha fazla tablo uzayına bölünmüştür.
  • Tablo uzayı içerisindeki tüm mantıksal yapıları fiziksel olarak depolayabilmek için, her tablo uzayı bir ya da daha fazla veri dosyasına sahip olabilir.
  • Tablo uzaylarının toplam kapasitesi, sahip oldukları veri dosyalarının toplam kapasitesine eşittir.(Yukarıdaki şekil için SYSTEM tablo uzayı 2MB, USERS tablo uzayı 4MB).
  • Tablo uzaylarının toplam kapasitesi veritabanının toplam kapasitesini belirler.(6 MB)
Bir tablo uzayı açık ya da kapalı olabilir. Tablo uzayı kapalı olduğunda bu tablo uzayının içerisindeki nesnelere erişilemez. Bir tablo uzayı yönetim amaçlı olarak kapalı duruma alınabilir.

Veri Blokları(Data Blocks), Genişlemeler(Extents),Parçalar(Segments)

Oracle veritabanında verilerin depolandığı en küçük birim veri bloğu olarak adlandırılır.Bir veri bloğu veritabanının depolama alanı üzerindeki belli bir byte uzunluğuna karşılık gelir. Veri bloğunun uzunluğu veritabanı oluşturulurken belirlenir.
Veri bloklarının bir üst birimi genişleme olarak adlandırılır. Bir genişleme art arda olan belirli sayıda veri bloğundan oluşur.
Genişleme’lerin bir üst birimi de parça’lardır. Parçalar belli bir mantıksal yapı için ayrılmış bir dizi genişleme’den oluşurlar. Farklı amaçlar için kullanılan parçalar vardır. Bunlar veri parçaları(data segments), indeks parçaları(index segments), geri alma parçaları(rollback segments) ve geçici parçalardır(temporary segment).
Bir tablo bir veri parça’sından oluşur. Tablonun verileri bu parça içerisindeki genişlemelere kaydedilir.(Oracle8i ile birlikte gelen yeni bir özellik olan bölümlenmiş tablo yapısında her bölüm bir veri parça’sına karşılık gelir.). Yine bir küme(cluster)’de bir veri parça’sından oluşur ve küme içerisindeki tüm tablolar o kümenin veri parça’sında yer alır.
Her bir indeks’te bir indeks parçasından oluşur ve indeks’in bütün verileri indeks parça’sında yer alır. Bir veritabanında, veritabanı kurtarma işlemleri(database recovery) ve yapılan değişkilikleri geri alma işlemleri(rollback) için bir ya da daha fazla geri alma parça’ları yer alır. Geçici parça’lar Oracle tarafından SQL komutları işletilirken ihtiyaç olduğunda oluşturulur ve SQL komutu işlemini bitirdiğinde bu parça tekrar sistemin kullanımına bırakılır.



*Mantıksal Olarak Oracle Veritabanı

Mantıksal olarak veritabanı, en temel anlamda tablo boşlukları , tablolar , indeksle, görüntüler, sıralar veritabanı prosedür ve fonksiyonları gibi yapılardan oluşur.

Tablo Boşlukları (Tablespace)

Tablo boşluğu , kullanıcıların sahip olduğu nesnelerin , veritabanında mantıksal olarak tutulduğu yere verilen addır. Tablo boşlukları, veritabanını daha etkin kullanmak için yaratılır. Bir tablo boşluğu fiziksel olarak , birden fazla veri dosyasına sahip olabilir. Aynı şekilde bir veri dosyasında da , birden fazla tablo boşluğu olabilir. Bir veritabanı kurulduğunda 5 tane tablo boşluğu yaratılması idealdir. Bunlar:
1. System : Oracle ‘ın kendi kullandığı bir tablo boşluğudur. Veri sözlüğü (Data Dictionary),
saklı fonksiyon ve yordam tanımları bu tablo boşluğunda bulunur. Mutlaka yaratılması gerekir. System tablo boşluğunda kullanıcılara ait nesnelerin bulunmaması gerekir.
2. Temporary_data : Veritabanının , sorgu sonucu dönen kayıtları sıralarken veya indeks
yaratırken kullandığı geçici tablo boşluğudur.
3. Rollback_data : Geri alma parçalarının (rollback segment) bulunduğu tablo boşluğudur.
4. User_data : Kullanıcıya ait indeks dışındaki nesnelerin bulunduğu tablo boşluklarıdır.
5. User_index : Kullanıcıya ait indekslerin bulunduğu tablo boşluklarıdır.
Aslında User_data ve User_index tablo boşlukları yerine tüm nesneler tek bir tablo boşluğunda saklanabilir. İki tablo boşluğunun kullanılmasının sebebi , okuma ve yazma işlemleri sırasında hem verinin , hemde indeksin paralel okunmasını sağlayıp , performans kazanmaktır.

Blok , Genişleme ve Parça Kavramı (block,extents, segments)

Blok; Oracle veri tabanında verilerin tutulduğu en küçük birime veri bloğu denilmektedir. Bir veri bloğu , işletim sistemindeki veri dosyalarının , belirli bir sayıdaki byte’ı kadar uzunluğa sahiptir. Bu uzunluklar işletim sistemindeki blok uzunluklardan farklı olabilir. Bir tablo boşluğu yaratılırken , işletim sisteminde veri dosyalarının bulunduğu yer , Oracle tarafından kendi blok yapısına göre düzenlenir. Veri dosyasının tamamı dolu olmasa bile , işletim sistemi ayrılan yeri dolu olarak görür. Veriler, veri bloklarında tutulduğundan dolayı, veri tabanında nesneler için tutulan yer byte olarak görülebildiği gibi , blok sayısı olarak da görülebilmektedir.
Genişlemeler; Nesnelerin büyümek için aldıkları , birbirini takip eden bloklardan oluşan , mantıksal veri tabanı alanlarına “genişleme” adı verilir. Bir yada daha fazla genişleme parçayı(segment) oluşturur. Bir parça eğer tamamen dolarsa , Oracle bu parça için bir genişleme alır. Genişleme kavramı giriş bölümünde Oracle’ın tercih edilme nedenleri arasında gösterilmiştir. Çünkü parçaların genişleme alarak büyümesi , veri tabanındaki büyümenin kontrol altında tutulmasını sağlar. Yaratılan tüm mantıksal nesnelerin (tablo boşluğu , tablo , indeks vs.) ilk genişlemelerin (initial extent) ve sonraki genişlemelerin (next extenets) kaç megabyte olacağı ve en fazla kaç genişleme alabileceği (max extents) veri tabanı yöneticileri tarafından belirlenir ve sisteme tanımlanır.
Parçalar; Birbirini takip eden genişlemelerden oluşan ve bir nesne için ayrılmış mantıksal veri tabanı alanlarına parça adı verilir. Oracle parça oluşturabilmek amacıyla her tablo için veri parçasından, her indeks için de indeks parçasından bir veya daha fazla sayıda genişleme ayırır. Oracle veri tabanı 4 tip parça kullanır:

1. Veri parçaları
2. İndeks Parçaları
3. Geçici Parçalar
4. Geri Alma Parçaları

1.
Veri Parçaları : Veri tabanındaki tüm tabloların, veriyi tutacak bir veri parçası vardır. bu veri parçası tablo yaratılırken oluşturulur veri tabanı tablo büyüdükçe belirlenen saklama parametreleri doğrultusunda genişleme alır.

2.
İndeks Parçaları : Veri tabanındaki tüm indekslerin, indeks bilgilerini tutacak bir indeks parçası bulunur. Büyümeleri veri parçaları gibidir, indeks büyüdükçe indeks parçası genişleme alır.

3.
Geçici Parçalar : Veri tabanında bir sorgulama yapıldığında, Oracle, SQL cümlesini çalıştırabilmek için geçici bir alana ihtiyaç duyar. Özellikle sıralama işlemlerinde veri tabanı indeks yaratılırken bu alan sıkça kullanılır. Geçici parçalar “Temporary”tablo boşluğunda bulunur veri tabanı genişleme alarak büyür. SQL cümleciğinin çalışması bittikten sonra bu parçalar otomatik olarak boşaltılır. Eğer veri tabanında bir geçici tablo boşluğu yaratılmamış ise, geçici parça sistem tablo boşluğunda genişleme alır. Eğer yapılan işlem büyükse ve sistem tablo boşluğunda yer kalmamışsa, işlem yarıda kesilir.

4.
Geri Alma Parçaları : Geri alma parçalarında, işlemler sonucu değişen bilgilerin eski hali tutulur. Bu sayede kullanıcı bir güncelleme işlemi yaptıktan sonra “rollback” diyerek işlemi geri alabilmektedir. Geri alma parçaları “rollback” tablo boşluğuna yaratılır veri tabanı isimleri “init.ora” parametre dosyasında “rollback_segments” parametresinde verilir. Bir veri tabanı için aktif kullanıcı sayısı / 4 adet geri alma parçası yaratılmalıdır.

Eğer kullanıcı olarak bir SQL cümlesi yardımıyla bir tabloyu belirli bir kritere göre güncellerse, Oracle, okunan veri bloklarında yer alan değiştirilmiş bilgiyi tablodaki veri parçası bloklarına, bilginin eski hali de geri alma parçalarındaki bloklara yazar. Kullanıcı “commit” derse, geri alma parçalarındaki bilgiler boşaltılır. Eğer kullanıcı “rollback” derse, geri alma parçalarındaki bilgiler tablodaki veri parçası bloklarına tekrar yazılır. Geri alma parçaları, “commit” komutu gelene kadar büyümeye devam ederse, genişleme alır.






Overview of Physical Database Structures / Fiziksel Veritabanı Yapısına Genel Bakış

*The following sections explain the physical database structures of an Oracle database, including datafiles, control files, redo log files, archived redo log files, parameter files, alert and trace log files, and backup files. This section includes the following topics:

Datafiles

Every Oracle database has one or more physical datafiles, which contain all the database data. The data of logical database structures, such as tables and indexes, is physically stored in the datafiles allocated for a database.
Datafiles have the following characteristics:
  • One or more datafiles form a logical unit of database storage called a tablespace.
  • A datafile can be associated with only one tablespace.
  • Datafiles can be defined to extend automatically when they are full.
Data in a datafile is read, as needed, during normal database operation and stored in the memory cache of Oracle Database. For example, if a user wants to access some data in a table of a database, and if the requested information is not already in the memory cache for the database, then it is read from the appropriate datafiles and stored in memory.
Modified or new data is not necessarily written to a datafile immediately. To reduce the amount of disk access and to increase performance, data is pooled in memory and written to the appropriate datafiles all at once, as determined by the background process database writer process (DBWn).
Datafiles that are stored in temporary tablespaces are called tempfiles. Tempfiles are subject to some restrictions, as described in "Temporary Datafiles".
See Also:
"Overview of the Oracle Database Instance" for more information about the Oracle Database memory and process structures

Control Files

Every Oracle database has a control file. A control file contains entries that specify the physical structure of the database, including the following information:
  • Database name
  • Names and locations of datafiles and redo log files
  • Timestamp of database creation
Oracle Database can multiplex the control file, that is, simultaneously maintain a number of identical control file copies, to protect against a failure involving the control file.
Every time an instance of an Oracle database is started, its control file identifies the datafiles, tempfiles, and redo log files that must be opened for database operation to proceed. If the physical makeup of the database is altered (for example, if a new datafile or redo log file is created), then the control file is automatically modified by Oracle Database to reflect the change. A control file is also used in database recovery.

Online Redo Log Files

Every Oracle Database has a set of two or more online redo log files. These online redo log files, together with archived copies of redo log files, are collectively known as the redo log for the database. A redo log is made up of redo entries (also called redo records), which record all changes made to data. If a failure prevents modified data from being permanently written to the datafiles, then the changes can be obtained from the redo log, so work is never lost.
To protect against a failure involving the redo log itself, Oracle Database lets you create a multiplexed redo log so that two or more copies of the redo log can be maintained on different disks.

Archived Redo Log Files

Archived redo log files are database-generated offline copies of online redo log files. Oracle Database automatically archives redo log files when the database is in ARCHIVELOG mode. Oracle recommends that you enable automatic archiving of the online redo log.

Parameter Files

Parameter files contain a list of configuration parameters for that instance and database. Both parameter files (pfiles) and server parameter files (spfiles) let you store and manage your initialization parameters persistently in a server-side disk file. A server parameter file has these additional advantages:
  • The file is concurrently updated when some parameter values are changed in the active instance.
  • The file is centrally located for access by all instance in a Real Application Services database.
Oracle recommends that you create a server parameter file as a dynamic means of maintaining initialization parameters.

Alert and Trace Log Files

Each server and background process can write to an associated trace file. When an internal error is detected by a process, the process dumps information about the error to its trace file. Some of the information written to a trace file is intended for the database administrator, while other information is for Oracle Support Services. Trace file information is also used to tune applications and instances. The alert file, or alert log, is a special trace file. The alert log of a database is a chronological log of messages and errors.
The following features provide automation and assistance in the collection and interpretation of trace and alert file information:
  • The Automatic Diagnostic Repository (ADR) is a system-managed repository for storing and organizing trace files and other error diagnostic data. ADR provides a comprehensive view of all the critical errors encountered by the database and maintains all relevant data needed for problem diagnosis and eventual resolution. When the same type of incident occurs too frequently, ADR performs flood control to avoid excessive dumping of diagnostic information.
  • The Incident Packaging Service (IPS) extracts diagnostic and test case data associated with critical errors from the ADR and packages the data for transport to Oracle.

Backup Files

To restore a file is to replace it with a backup file. Typically, you restore a file when a media failure or user error has damaged or deleted the original file.
User-managed backup and recovery requires you to actually restore backup files before you can perform a trial recovery of the backups.
Server-managed backup and recovery manages the backup process, such as scheduling of backups, as well as the recovery process, such as applying the correct backup file when recovery is needed.

Türkçesi:

Bu bölüm aşağıdaki başlıkları içerir
  • Datafiles (Veri Dosyası ya da Veri Kütüğü)
  • Control Files (Denetim ya da Kontrol Dosyası )
  • Online Redo Log Files ( Çevrimiçi Yineleme Log(Kütük) Dosyaları
  • Archived Redo Log Files (Arşivlenmiş Yineleme Log Dosyası)
  • Parameter Files (Parametre Dosyaları)
  • Alert and Trace Log Files (Uyarı ve izleme Log Dosyaları)
  • Backup Files (Yedek Dosyaları)

Datafiles(Veri Dosyaları)


Her Oracle Veritabanı bütün verilerin içeren bir ya da daha fazla datafiles içerir.Tablo, indeksler gibi Mantıksal Veri Tabanı yapılarının dosyalarını, fiziksel olarak datafiles içine saklayarak bir veri tabanı için gerekli alını ayırır

Datafiles aşağıdaki karakteristik özelliklere sahiptir:
  • Bir ya da Daha fazla datafiles , tablespace olarak adlandırılan veritabanı belleğinin bir mantıksal birimini oluşur.
  • Bir datafile sadece bir tek tablespace ile ilişkile olabilir
  • Datafiles tamamen doldugunda, otomatik olarak kendini uzatmak için tanımlanabilir.

Oracle Veritabanı önbellekte depolanan ve normal veritabanı işlemi sırasında bir veri dosyası Veri gerektiği gibi okunur.Eğer bir kullanıcı bir veritabanın tablosuna birkaç veri girişi yapmak isterse, ve bu istenen bilg veri tabanı için zaten önbellekte değilse, o zaman uygun veri dosyaları okunulur ve bellekte depolanır.
Değiştirilen veya yeni verileri mutlaka hemen bir veri dosyası yazılı değildir.Disk erişim miktarını azaltmak ve performansı artırmak için, Veriler bellek içinde bir araya getirilir, uygun veri dosyalarına arka plan işlemi veritabanı yazar süreci (DBWn) tarafından belirlenerek hepsi birlikte yazılır.Datafiles tempfiles olarak adlandırılan geçiçi tablolarda saklanır.Tempfiles "Geçici DATAFILES" açıklandığı gibi bazı kısıtlamalar, tabidir.

Control Files(Kontrol ya da Denetim Dosyaları)


Her Oracle Veritabanı bir konrol dosyasına sahiptir.Bir control dosyası Veri tabanın Fiziksel Yapısını tanımlayan kayıtlar içerir ve aşağıdaki bilgileri kapsar:
  • Veri Tabanı ismi
  • İsimler ve datafiles'ın yerleri ve redo(yineleme) log dosyaları
  • Veritabanı oluşturma zaman damgası

Oracle Veritavanı konrol dosyalarını aynı anda aynı kontrol dosyası kopya sayısı korumak, kontrol dosyası içeren bir başarısızlık karşı korumak için çoğaltabilir.

Oracle veritabanı bir örneğini başlatılan her zaman, kontrol dosyası veritabanı işlemlerinin devam etmek içim datafiles, tempfiles ve Redo log dosyalarını tanımlanır ve açılmalıdır.

Veritabanının fiziksel makyaj (örneğin, yeni bir veri dosyası veya günlük dosyası yeniden oluşturulur) değiştirilirse, o zaman otomatik olarak kontrol dosyası Oracle Veritabanı değişikliği yansıtmak için değiştirilir. Bir kontrol dosyası veritabanı kurtarma da kullanılır.

Online Redo Log Files (Online Yineleme Log Dosyaları)


Her Oracle Veritabanı, iki veya daha fazla online redo log file bir dizi vardır.Redo log dosyaları arşivlenen kopyaları ile birlikte bu online redo log dosyalarını, redo log veritabanı için toplu olarak ilişkilendirilir.Redo log kayıt verileri yapılan tüm değişiklikleri redo girişleri (redo kayıtları da denilir oluşur.Bir arıza kalıcı olarak değiştirilmiş verileri veri dosyalarına yazılmasını önlerse, ardından değişiklikleri redo log elde edilebilir, bu nedenle çalışma asla kaybolmaz.

Redo log kendini içeren bir arıza karşı korumak için, Oracle Veritabanı redo log oluşturulmasına izin verir ve böylece farklı diskler üzerinde redo günlük iki ya da daha fazla kopya ile korunabilir.

Archived Redo Log Files(Arşivlenmiş Yineleme Log Dosyaları)

Arşivlenmiş redo log dosyaları online redo log dosyaları veritabanı oluşturulan çevrimdışı kopyalarıdır. Oracle Veritabanı, veritabanı ARCHIVELOG modunda iken otomatik olarak arşivler log dosyalarını yeniden. Oracle online redo log otomatik arşivleme etkinleştirmek önerir.

Parameter Files(Parametre Dosyaları)


Parametre dosyaları, aşamalar ve veritabanı için yapılandırma parametrelerinin bir listesini içerir.Her iki parametre dosyaları (PFILES) ve sunucu parametresi dosyaları (spfiles) depolaya ve ısrarla bir sunucu tarafı disk dosyası içinde başlatma parametreleri yönetmeye izin verir

  • Bazı parametre değerleri etkin bir örneği değiştirildiğinde dosyayı eş zamanlı olarak güncellenir.
  • Dosya tüm örnek bir Real Application Services veritabanı erişim merkezi yer almaktadır.

    Oracle başlatma parametreleri koruyarak dinamik bir araç olarak bir sunucu parametre dosyası oluşturmanızı önerir.

    Alert and Trace Log Files(Uyarı ve İzleme Logları)

Her sunucu ve arka plan süreci ile ilişkili bir izleme dosyası yazabilirsiniz.Bir işlem tarafından bir iç hata tespit edildiğinde, bu işlem hata bilgilerini kendi trace dosyasına atar.Bir trace dosyasına yazılmış bazı bilgiler veritabanı yöneticileri için düşünülmüştür, diğer bilgiler ise Oracle Destek Hizmetleri içindir.Trace dosya bilgileri, uygulamaları ve örnekleri ayarlamak için kullanılır .Uyarı dosyası, ya da uyarı logu, özel bir izleme dosyası. Bir veritabanı Uyarı logları, iletileri ve hatalarının bir kronolojisidir.

Aşağıdaki özellikler, otomasyon, izleme ve Uyarı dosya bilgileri toplama ve yorumlama ve yardım sağlar:
  • Otomatik Tanımlama Deposu (ADR) izleme dosyaları ve diğer hata teşhis verileri depolamak ve düzenlemek için bir sistem tarafından yönetim deposudur.ADR, veritabanı tarafından karşılaşılan tüm kritik hataları kapsamlı bir bakış sağlar ve problem tanı ve nihai bir çözüm için gerekli olan tüm ilgili verileri korur. Aynı tür olay çok sık oluştuğunda, ADR tanısal bilgi damping aşırı önlemek için taşkın kontrolü gerçekleştirir.
  • Olay Ambalaj Servisi (IPS) ADR ve taşınması için Oracle veri paketleri kritik hatalar ile ilişkili olarak tanım ve test durum verilerini çıkartır.

Backup Files


Bir dosyayı geri yüklemek için bir yedek dosyası ile değiştirmek içindir.Tipik olarak, bir medya hatası veya kullanıcı hatası orijinal file.a yedekleme dosyası hasar görmüş veya silinmiş olduğunda bir dosya geri yüklenir.

Kullanıcı tarafından yönetilen yedekleme ve kurtarma yedeklerin bir deneme kurtarma işlemini gerçekleştirmek için önce gerçekten yedekleme dosyaları geri yüklemek gerekir

Sunucu tarafından yönetilen yedekleme ve kurtarma, kurtarma gerektiğinde doğru yedekleme dosyası uygulayarak gibi yedeklerin zamanlama olarak yedekleme işlemi, yanı sıra kurtarma işlemini yönetir.



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

*Fiziksel Bölüm

Fiziksel bölüm veritabanını oluşturan işletim sistemi dosyalarıdır. Bir Oracle veritabanı fiziksel olarak bir ya da daha fazla veri dosyası, iki ya da daha fazla log dosyası, bir ya da daha fazla kontrol dosyasından oluşur.

Veri Dosyaları(Data Files)

Veri dosyaları veri tabanındaki tüm verileri tutan dosyalardır. Tablo, indeks gibi mantıksal veritabanı yapılarının içerisindeki veriler fiziksel olarak veri dosyalarında tutulurlar. Bir veri dosyası kendisi için ayrılan alan dolduğunda,  kendi sahip olduğu alanı artırabilecek özelliklere sahiptir. Bir ya da daha fazla veri dosyası mantıksal bir veritabanı depolama ünitesi olan bir tablo uzayını oluşturular.
Normal veritabanı işlemleri boyunca bir veri dosyası içerisindeki veriler okunur ve Oracle için ayrılan belleğe getirilirler. Örneğin bir kullanıcının veritabanındaki bir tablonun verilerine erişmek istediğini varsayalım. Eğer istenilen veriler bellekte yer almıyorsa, ancak o zaman uygun veri dosyasından okunur ve belleğe getirilirler.
Değişikliğe uğrayan veriler ya da yeni eklenen veriler veri dosyalarına hemen yazılmazlar. Sabit diske erişimi azaltmak ve böylece sistemin performansını artırmak için veriler bellek havuzunda tutulur ve gerektiğinde hepsi birden uygun veri dosyalarına kaydedilirler. Bunu Oracle artalan işlemleri belirler.

Kontrol Dosyaları(Control Files)

Tüm Oracle veritabanları kontrol dosyasına sahiptir.  Bir kontrol dosyası veritabanı adı, veri dosyaları ve log dosyalarının adı ve diskteki yeri, veritabanının oluşturulma tarihi vb. veritabanı ile ilgili bilgileri tutar.
Her veritabanı oturumu açıldığında Oracle bu dosyayı kontrol ederek gerekli bilgileri alır. Eğer veritabanında fiziksel bir değişme olursa(yeni bir log dosyası ya da veri dosyası oluşturulması gibi), yapılan değişiklikler Oracle tarafından otomatik olarak kontrol dosyalarına yansıtılır.

Log Dosyaları(Log Files)

Redo Log dosyaları olarak bilinen bu dosyaların amacı veriler üzerinde yapılan tüm değişiklikleri kaydetmektir. Eğer veri dosyalarına kalıcı olarak kaydedilmiş olan, değişikliğe uğramış kayıtlarda bir bozukluk olursa yapılan değişiklikler redo log dosyalarından sağlanabilir ve işlemler kaybolmaz. Birden fazla tekrarlanan bozukluk durumlarında redo log dosyalarının da bozulmasını engellemek için Oracle farklı diskler üzerinde redo log dosyalarının birden fazla kopyasının alınmasına olanak sağlar.
Bir veritabanı işlemi sırasında elektrik kesilirse, bellekteki veriler veri dosyalarına kaydedilmeyecek ve verilerin kaybolması durumuyla karşılaşılacaktır. Oracle veritabanı tekrar açıldığında redo log dosyalarında yapılan son değişiklikler veri dosyalarına yansıtılarak verilerin kaybolması engellenir.



*Fiziksel Olarak Oracle Veri tabanı

Fiziksel olarak bir veri tabanı ; veri dosyaları, kontrol dosyaları veri tabanı redo log dosyalarından oluşmaktadır.
Kontrol Dosyaları

Veri tabanının durumunu veri tabanı fiziksel yapısını tutan dosyalardır. Veri tabanı açılırken , kontrol dosyasını okuyarak , fiziksel olarak tüm veri dosyalarını , redo log dosyalarını kontrol eder. Eğer bu dosyalarda bir uyumsuzluk söz konusu ise veya kontrol dosyası bozulmuş ise veri tabanı açılmaz .
Bu nedenle kontrol dosyaları çok önemlidir veri tabanı en az iki kopya olarak ve iki farklı disk üzerine yaratılmalıdır. Kontrol dosyalarının isimleri “init.ora” parametre dosyasında “control_files” parametresinde verilmektedir.
Veri Dosyaları

Veritabanındaki tablolar, indeksler gibi tüm mantıksal yapıların , fiziksel olarak saklandığı dosyalardır. Bir veri tabanının performanslı çalışabilmesi fiziksel olarak ayrı disklere yerleştirilecek minimum 5 veri dosyası olmalıdır. Bunlar:

1. Oracle’ın arka plandaki işlemleri için kullandığı sistem dosyası,
2. Sadece tablo kayıtlarının tutulduğu indeks dosyası,
3. Tabloların indekslerinin tutulduğu indeks dosyası ,
4. Sıralama işlemleri için veri tabanının geçici olarak kullanıldığı “temporary” dosyası,
5. Geri alma işlemlerinin tutulduğu “rollback” dosyası

Eğer bu dosyalar fiziksel olarak ayrı disk üzerinde tutulmaz ise paralel , okuma veri tabanı yazma yapılamayacağı için performansı negatif olarak etkiler. Veri tabanı çok büyükse , veri ve indeksler birden fazla veri dosyasında tutulabilir. Bazı işletim sistemlerinde , yaratılan veri dosyalarının boyu ile ilgili kısıtlamalar vardır. Örneğin Sun Solaris işletim sisteminde 2GB ‘dan daha büyük dosya yaratılamaz. Bu durumda datalarımız 9 GB’lık yer kaplıyor ise en az 5 tane veri dosyası yaratmamız gerekir. Yaratılabilecek maksimum veri dosyası sayısı “init.ora” parametresindeki “db_files” parametresi ile verilmelidir.
Redo Log Dosyaları

Veritabanındaki tüm “commit” olmuş değişikliklerin , kurtarma yapılırken kullanılmak üzere kaydedildiği dosyalardır. En az iki redo log grubu tanımlanır. Bu dosyaların boyu ve grup sayısı veri tabanı yaratılırken sisteme tanımlanır. Sonradan bu tanımlar değiştirilebilmektedir. Redo log dosyalarının boyu , ideal olarak yarım saatte bir değişecek (swich) şeklinde ayarlanmalıdır. Redo log dosyalarının çok küçük olması , sistemde beklemelere neden olur. Çok büyük olmasa da veri tabanı açılırken yapılan otomatik kurtarma işleminin çok uzun sürmesine yol açar ve aktif redo log dosyalarının silinmesi yada bozulması durumunda da daha fazla veri kaybı olmasına neden olur. Redo log dosyalarının boyunun iyi ayarlanamaması Oracle’ın dezavantajlarına bir örnek oluşturmaktadır.
Sistemin güvenliği açısından her gruptaki redo log’u iki kopya olarak veri tabanı farklı disketlerde yaratmak gerekir. Redo log’lar kesinlikle raid disk üzerine konulmamalıdır. Çünkü redo log dosyaları üzerine sürekli yazma yapılmaktadır ve raid diskler yazma işleminin yavaşlatır.
Redo log dosyaları bir döngü içersindedir. Bir gruptaki redo log dolduğunda otomatik olarak diğer gruba geçer ve işlem bu şekilde devam eder.
Eğer veri tabanı arşiv modda ise bu dolan redo log dosyasının bir kopyası arşiv.log olarak kopyalanır ve kurtarma amaçlı saklanır.
İnit.ora Parametre Dosyası

Parametre dosyası, bir instance başlığında okunan , konfigurasyon parametrelerinin tutulduğu bir text dosyasıdır. Bu dosyada kontrol dosyalarının isimleri ve yeri , veri tabanının adı , SGA da yer alan bellek yapılarının boyutları ve veri tabanındaki işlemler ile ilgili bazı ayarlar tutulur. Veri tabanın arşiv modta olup olmayacağı da yine bu dosyada bulunur.

(Excerpt from : http://www.csharpnedir.com/articles/read/?id=388&title=Oracle%20Ve%20%C4%B0li%C5%9Fkisel%20Veritaban%C4%B1%20Y%C3%B6netim%20Sistemleri%20%202 )