Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
06, 2008, 07:51:44 pm
42719 Mesaj 8080 Konu Gönderen: 17918 Üye
Son üye: tlord
Turk-Php.Com Forum  |  Yardım Forumları  |  Diğer Programlama Dilleri Yardım Forumu  |  Oracle Hakkında.. « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: Oracle Hakkında..  (Okunma Sayısı 1342 defa)
SuiQaST
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 8


Üyelik Bilgileri
Oracle Hakkında..
« : 25, 2006, 10:28:06 am »

Veritabanı yapıları

1-Mantıksal (logical)
2-Fiziksel (physical)

Oracle Sistem Mimarisi

Dosyalar (files)     Bellek yapıları (memory structures)
    Sistem genel alanı (System Global Area - SGA)
    Program Genel Alanı (Program Global Area - PGA)
    Görevler (processes)
    Kullanıcı (user) görevleri
    Oracle görevleri
    Oracle An ‘ı (instance)
    Veritabanı Yapıları
    Mantıksal Yapılar
    Tablespaces


Veritabanı, tablespace olarak adlandırılan mantıksal saklama birimlerine bölünür. Tablespace, aralarında bir ilişki olan mantıksal yapıların gruplandırılmasında kullanılır.
    Bir tablespace online(erişilebilir) ya da offline(erişilemez) olabilir. Normalde tablespace ‘ler üzerlerindeki bilgiye erişimin yapılabilmesi için online konumundadır. Fakat bazı özel amaçlarla tablespace ‘ler offline konumuna alınabilirler.

Şema ve Şema nesneleri

 Şema, nesnelerden oluşan bir derlemdir. Şema nesneleri doğrudan veritabanının verilerine karşılık gelen mantıksal yapılardır.

Çizelge (Table): Oracle veritabanında verileri saklamak için kullanılan temel birimdir. Çizelgeler satırlar (rows) ve sütunlar (columns) olarak tutulurlar. Her çizelge, adı ve sütun kümesi (nitelik) ile tanımlanır. Her sütunun bir adı, türü ve genişlik ya da duyarlılığı verilir. Çizelge bir kez yaratıldıktan sonra içine geçerli satırlar konulabilir ve daha sonra da bu çizelgenin satırları sorgulanabilir, silinebilir ya da günlenebilir.

 Görüntü (view): Bir ya da daha fazla çizelgedeki verilerin özel bir gösterimidir. Bir görüntü, saklanmış bir sorgu (stored query) olarak da düşünülebilir. Görüntüler, gerçekte veri içermezler. Verilerini, temel çizelgeler (base tables) olarak adlandırılan çizelgelerden ya da başka görüntülerden türetirler. Görüntüler, çizelgeler gibi, üzerlerinde bazı sınırlamalarla ekleme, silme, günleme ve sorgulama işlemlerine izin verirler. Görüntü üzerinde gerçekleştirilen tüm işlemler, görüntünün temel tablolarını da etkiler.

Seriler (sequences): Sequence, veritabanı çizelgelerinin numerik sutunları için biricik (unique) numaralar üretir. Çizelge satırları için otomatik olarak biricik numaralar oluşturmaya yarar. Sıra numaraları çizelgelerden bağımsızdır. Bu yüzden aynı sequence faklı çizelgelerce kullanılabilir.

Program birimleri (program units): Bu terim, yordam ve işlev (procedure and function) ile paketler (package) için kullanılır.

Yordam ve işlev: Belirli bir görevin yapılabilmesi için SQL ve PL/SQL deyimlerinin çalıştırılabilir bir birim halinde gruplandırılmasıdır.

paket:(package):İlgili yordamların, işlevlerin ve başka paketlerin veritabanı içinde bir birim olarak saklanması ve kılıflanması için bir yöntem sağlar.

Eşanlamlılar (synonyms): çizelge, görüntü, sequence ya da bir program birimi bir takma addır (alias). synonym ‘in kendisi bir nesne değildir, sadece gerçek nesneye bir referanstır. Şu amaçlarla kullanılır;
- Nesnenin gerçek adını ve sahibini gizlemek amacıyla,
- Nesneye, herkese açık (public) bir erişim sağlamak için,
- Uzak veritabanlarındaki nesnelere şeffaf bir erişim sağlamak için,
- SQL deyimlerini basitleştirmek için.

index, cluster ve hash cluster : çizelgelerle ilgil seçimlik ve veri erişimindeki performansı artırmaya yönelik yapılardır.

index: Aranan bilginin nerede olduğunun anahtar (key) değerinden yararlanılarak hızlıca bulunabilmesini sağlar. Mantıksal ve fiziksel olarak veriden bağımsızdır. Bir index, diğer index ‘leri ya da çizelgeleri etkilemeksizin yok edilebilir ya da yaratılabilir


cluster: Aralarında ilişki olan verilerin disk ortamın fiziksel olarak ardışık olarak tutulmasını ve bu sayede disk erişim süresinde iyileştirme sağlar.

hash cluster(anahtarlama işlevi): Saklanacak verinin yerinin bir hash işlevi tarafından bulunduğu cluster yapısıdır. Hash işlevinden aynı sonucu veren veriler fiziksel olarak beraber saklanır.

database links: Bir veritabanından diğerine bir yol tanımlayan bir nesnedir.

Data Block, Extent ve Segment

 Oracle datablock: Veritabanındaki verilerin saklandığı enküçük birimdir. Bir veri bloğu disk üzerinde belirli bir veritabanı alanına karşılık gelir ve bir bloğun kaç baytdan oluştuğu bilgisi, veritabanı yaratılırken verilir.

extent: Ardışık olarak sıralanmış veri bloğu sayısıdır.

segment: Belirli bir mantıksal yapı için ayrılmış extent ‘lerin kümesidir (data segment, index segment, rollback segment, temporary segment gibi).

Fiziksel Yapılar: Oracle veritabanı, bir ya da daha fazla kontrol dosyasından, veri dosyalarından ve adları kontrol dosyalarında bulunan redo log dosyalarından oluşur.

Fiziksel Yapı Tanımı Veri Dosyaları (Data Files): Tüm veritabanı verilerini içerir. Mantıksal yapılar (table, index..) veri dosyaları içinde fiziksel olarak saklanır.

Redo Log Dosyaları (Redo Log Files): Kurtarma amacıyla kullanılmak üzere, veritabanına yapılan tüm değişiklikleri tutar.

Kontrol Dosyaları (Control Files): Veritabanının fiziksel yapısını ve durumunu kaydeder.

Oracle Sistem Mimarisi

Dosyalar (files)
    Veri Dosyaları (Data Files)


Oracle veritabanı bir ya da daha fazla veri kütüğünden oluşur. Veri dosyaları;

    Veritabanının kendisi hakkındaki bilgiyi saklayan veri sözlüğünü (data dictionary) ve kullanıcı verilerini içerir. Sql*Plus ya da Sql*DBA kullanılarak SQL deyimleri yardımıyla yaratılabilir ve mantıksal Oracle bloklarına bölünebilir.

    Oracle, gerekli alanı işletim sistemi tarafından yaratılırken ayırılan büyük ve sabit boylu dosyalar kullanır. Her dosya, çizelge (table) ya da dizin (index) gibi bir çok nesne içerir. Dosya alanlarının yönetimi, veritabanı yöneticisinin (Database Administrator-DBA) başlıca görevlerinden biridir.

Günlük Dosyaları (Redo Log Files) Günlük dosyaları; veritabanında yapılan değişiklerin tutulduğu dosyalardır. Döngüsel bir biçimde yazılır gruplar halinde yapılandırılır. normal olamayan bir kapanış (abnormal shutdown) ya da sonra medya arızasından (media failure) sonra kurtarma (recovery) amaçlı kullanılır. Kullanıcı tarafından doğrudan okunamaz. SQL deyimleri ile oluşturulur.

Çoklanmış (multiplexed) Günlük DosyalarıEnaz iki tane redo log grubu olmalıdır. Redo log dosyaları için önerilen konfigürasyon her grup için herbiri farklı disklerde olan enaz iki üye gerektirir. Grup üyeleri aynı zamanda günlenir ve her grupta aynı sayıda üye vardır. Bir grubun tüm üyeleri aynı bilgiyi taşır.

Kontrol Dosyaları (Control Files)Kontrol dosyası, veritabanının yapısını tarif eden küçük bir ikili (binary) dosyadır. Bu dosya;

- veritabanının açılması ve ona erişilmesi için gereklidir.
- veritabanı açıldığında Oracle ‘ın üzerine yazabilmesi sağlanmalıdır.
- tüm veri ve günlük dosyalarını tanımlar.
- veritabanının adını saklar.
- kurtarma için gerekli olan zamanuyumlama bilgisini sağlar.
- veritabanının yaratılması esnasında yaratılır.

    Güvenlik için her biri farklı diskler üzerinde olan en az iki tane kontrol dosyası olmalıdır. Tüm kontrol dosyaları aynı bilgiyi içerir. Eğer biri kaybolacak olursa diğerleri kullanılır durumda kalacaktır. Kontrol dosyasının öngörülen ismi işletim sistemine bağlıdır.

     Bellek Yapıları (memory structures)
         Sistem Genel Alanı (System Global Area - SGA)


3 tane ßirleşeni vardır :

Database Buffer Cache     Veritabanının yakın zamanlarda kullanılan veri bloklarının tutulduğu buffer ‘ların kümesidir. Bu buffer ‘lar, değişikliğe uğramış fakat diske henüz yazılmamış verilere sahip olabilirler. Sık kullanılan verileri tuttukları için de diske erişimi azaltıp performansı artırırlar.

Redo Log Buffer     Veritabanında yapılan değişikliklerin tutulduğu buffer ‘lardır. redo log buffer ‘larında tutulan redo girişleri kurtarma gerekli olduğu anda kullanılmak üzere redo log dosyalarına yazılırlar.

Paylaşılmış SQL Alanı (Shared SQL Area) ve Paylaşılmış Havuz (Shared Pool)     Paylaşılmış SQL Alanı, Oracle ‘ın özel SQL deyimlerini çalıştırmak için kullandığı bilgileri içerir. Bir SQL sorgusu işletilmeden önce ayrıştırılır ve bu sorgunun çalıştırılması için bir çalışma planı hazırlanır. İşletilen sorgular bu alanda saklanır. Aynı sorgu birkez daha işletilmek istenirse bu çalıştırma planı doğrudan uygulanabilir. Paylaşılmış SQL Alanı, SGA içindeki Paylaşılmış Havuz ‘un bir parçasıdır.

Paylaşılmış Havuz;
- SQL ve PL/SQL deyimlerini
- SQL ve PL/SQL deyimlerinin ayrıştırılmış hallerini
- SQL ve PL/SQL deyimleri için çalıştırma planlarını
- Veri sözlüğü (data dictionary) önbelleğini (cache) içerir.

Program Genel Alanı (Program Global Area - PGA)     PGA, tek bir kullanıcı yada sunumcu görevi hakkındaki verileri yada kontrol bilgisini içeren yazılabilir fakat paylaşılmamış bir bellek alanıdır. Kullanıcı görevi Oracle veritabanına bağlandığı ve bir oturum (session) başlatığı zaman bu alan bellekte ayrılır (allocate). PGA yığıt alanı (stack space) oturum değişkenlerini ve dizileri tutmak için ayrılan bellek alanıdır. Kullanıcı oturum verileri (user session data) oturum için fazladan bellek alanıdır.

Görevler (processes)     Kullanıcı ve Sunumcu Görevleri (User and Server Processes) UNIX sistemlerinde, kullanıcı bir uygulama programı çalıştırdığında Oracle bir kullanıcı görevi yaratır. Oracle ayrıca bağlanacak kullanıcı görevlerine hizmet verebilmesi için bir sunumcu görev yaratır. Sunumcu görev kullanıcı görevleri ile iletişim kurar.
    Sunumcu Görev;
    - SQL deyimlerini ayrıştırır ve çalıştırır.
    - diskten veri bloklarını okur ve SGA ‘nın paylaşılmış alanına getirir.
    - SQL deyiminin sonuçlarını kullanıcı görevine döndürür.
    - Görevin Adı Tanımı ,Ayrıştırma (Parse) Sözdizim doğruluğu, erişim gizliliği, nesne çözünürlüğü ve eniyileme kontrolünü yapar.     Ayrıştırım ağacını (Parse Tree) oluşturur.
    - Çalıştırma (Execute) Ayrıştırım ağacını veriye uygular ve gereken fiziksel okuma ve yazmaları gerçekleştirir.
    - Getirme (Fetch) SELECT deyiminin işletimi sırasında veriyi kullanıcıya geçirir.

    DBWR Görevi
    - DBWR görevi, kullanıcı görevlerinin her zaman boş bellek alanu bulabilmeleri için database buffer cache ‘i yönetir.
    DBWR Görevi;
    - Değişikliğe uğramış tüm verileri veri dosyalarına yazar.
    - Yakın zamanda kullanılan veri bloklarını bellekte tutmak için LRU (Least Recently Used) algoritmasını kullanılır.
    - Giriş/çıkış işlemlerini eniyileştirebilmek için bazı yazma işlerini erteler.

    Veri, erişilmeden önce sunumcu (server) görev tarafından mutlaka database buffer cache içine getirilmelidir. Sunumcu görev sorguları işlemek için SGA içindeki paylaşılmış belleği kullanır.

Transactionların Günlüğe İşlenmesi (Log Transactions) Oracle veritabanında yapılan tüm değişiklikleri redo log buffer içine kaydeder. LGWR (Log Writer) arka plan görevi redo log buffer içindeki bilgiyi diske yazar.

    LGWR Görevi
    LGWR, redo log buffer ‘larını şu durumlar oluştuğunda diske yazar;
    - Commit görüldüğünde
    - Redo log buffer doluluğu eşik değerine ulaştığı zaman.
    - DBWR checkpoint için buffer blokların temizlemeye gerek duyarsa
    - Time-out görülürse
    Her Oracle instance ‘ı için bir tane LGWR görevi vardır. Bir transaction redo log dosyasına işlenmeden commit edilmiş sayılmaz.
DBWR görevi, veri bloklarını veritabanına geri yazmadan önce yapılan değişiklikleri korumak amacıyla LGWR görevine redo log buffer ‘larını boşaltması sinyalini gönderir.

Arch Görevi (arşivleyici) ARCH (archive - arşiv) görevi aslında seçimlik bir arka plan görevi olmasına rağmen bir çok sistem için özellikle tavsiye edilir.     Eğer bu görev çalıştırılıyorsa veritabanı ARCHIVELOG kipinde çalışıyor demektir. Bu seçenek;
    - Tablespace ‘lerin çevrim-içi (on-line) yedeklenmesine
    - Medya failure ‘dan çevrim-içi kurtarmaya
    - Günlük dosyalarının otomatik olarak arşivlenmesine izin verir.
    - ARCH görevi, günlük dosyalarının kopyalarını, yerleri daha önce belirlenmiş disk yada teyp birimleri üzerine çıkarır.

PMon (Process Monitor) ve SMon (System Monitor) Görevleri
PMON
    - Anormal bir şekilde kesilen bağlantıları temizler.
    - Commit edilmemiş değişiklikleri eski haline getirir (rollback).
    - İşletimi kesilen görevin tuttuğu kilitleri kaldırır.
    - Çakılan görev için ayrılan SGA kaynaklarını serbest bırakır.
    - Kilitlenmeleri (deadlock) otomatik olarak yakalar ve işlemi geri döndürerek (transaction rolling back) çözümler.

« Son Düzenleme: 25, 2006, 10:43:43 am Gönderen: shapcy » Logged
shapcy
Mustafa Şapçılı
Admin
*
Offline Offline

Mesaj Sayısı: 811


PHP Coding...


Üyelik Bilgileri WWW
Ynt: Oracle Hakkında..
« Yanıtla #1 : 25, 2006, 11:16:03 am »

Bu makale ve devamı SuiQaST'in de izni dahilinde tarafımdan makaleler bölümüne eklenmiştir. Makalenin bundan sonraki bölümleri de yine sistemin o bölümünde yayınlanacaktır. Yorum yapacak arkadaşlar lütfen makale bölümündeki yorum sistemini ya da "Makale İstekleri ve Yorumlar" Bölümünü kullansın.

Makale için -> http://www.turk-php.com/index.php?action=browseArticle&catID=196&articleID=577&page=1
« Son Düzenleme: 20, 2006, 08:26:52 am Gönderen: serkan » Logged

Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.