İçerikler :

Automatic Storage Management - ASM Background Process Client Process Control File Database Configuration Type - Veritabanı Kon.. Database Instance - Instance Database ile Instance Kavramının Farkı Database Object - Veritabanı Nesnesi Database - Veritabanı Data Block Data File Dedicated Server Enterprise Edition Express Edition Extent Global Database Name listener.ora Listener - Oracle Net Listener Oracle'da Fiziksel Depolama Yapıları Oracle'da Mantıksal Depolama Yapıları Oracle'da Process'ler Oracle 12c Pattern Matching Oracle Net Oracle Net Services Oracle - Oracle RDBMS Oracle Process Oracle Sürüm Tipleri Oracle Versiyonları oraenv - coraenv oraInventory Parameter File Personal Edition PGA - Process Global Area Redo Log File Schema Schema Object - Schema Nesnesi Segment Server Process Service Name - Servis Adı SGA - System Global Area Shared Server SID ile Service Name Farkı SID - System ID - System Identifier sqlnet.ora Standard Edition Standard Edition One Tablespaces tnsnames.ora

Bu Sayfayı Paylaş:

Kavram

Oracle - Oracle RDBMS

Tanım: Oracle firmasına ait bir Relational Database Management System'i (İlişkisel Veritabanı Yönetim Sistemi). Larry Ellison , Bob Miner ve Ed Oates tarafından 1977 yıllarında kurulan bir danışmanlık firması tarafından geliştirilmiştir.

Veri

Oracle Versiyonları

Oracle'ın versiyonları ve çıkış tarihleri aşağıdaki gibidir:
  • Oracle 1 - 1978
  • Oracle 2 - 1980
  • Oracle 3 - 1982
  • Oracle 4 - 1984
  • Oracle 5 - 1986
  • Oracle 6 - 1989
  • Oracle 7 - 1993
  • Oracle 8 - 1997
  • Oracle 8i (8.1.5) - 2000
  • Oracle 9i Release 1 (9.0.1) - 2001
  • Oracle 9i Release 2 (9.2.0) - 2002
  • Oracle 10g Release 1 (10.1.0) - 2004
  • Oracle 10g Release 2 (10.2.0) - 2005
  • Oracle 11g Release 1 (11.1.0.6) - 2007
  • Oracle 11g Release 2 (11.2.0.1) - 2009
  • Oracle 12c Release 1 (12.1.0.1) - 2013


Kavram

SID - System ID - System Identifier

Tanım: Oracle'da bir instance'a verilen uniq (benzersiz) id.

Kavram

Service Name - Servis Adı

Tanım: Oracle'da dışarıdan bağlanan sistemlerin ve servislerin (connection) veritabanına bağlanmak için kullandıkları uniq (benzersiz) alias.

Kavram

Global Database Name

Tanım: Oracle'da bir database'nin domain name ve database name'in birleşmesinden oluşmuş adı. Genel yapısı database_name.database_domain şeklindedir

Veri

SID ile Service Name Farkı

Oracle'da SID ve Service Name (servis adı) zaman zaman karıştırılmaktadır. SID bir database instance'ına verilen uniq(benzersiz) bir id'dir. Servis name ise bu instance'a dışarıdan erişenler (connection kuranlar için) için verilen bir alias'dır.

Kavram

tnsnames.ora

Tanım: Oracle'da veritabanına dışarıdan erişilebilmesi için isimlerin tanımlandığı dosya. Ağ hizmetlerinin isimlerinin bağlantı tanımlayıcılarına map'lenmesini sağlar. Varsayılan olarak ../ORACLE_HOME/network/admin klasörü içinde bulunur.

Kavram

sqlnet.ora

Tanım: Oracle'da client veya server için kullanılan konfigürasyon dosyası

Kavram

listener.ora

Tanım: Listener ile ilgili ayarların tutulduğu dosya

Kavram

oraenv - coraenv

Tanım: Oracle veritabanında, ORACLE_SID, ORACLE_HOME and PATH gibi sistem değişkenlerini set eden, Unix/Linux sistemlerinde çalışan bir komut satırı aracı. Bu komut çalıştırılmadığı takdirde SQL*Plus, imp, exp gibi araçlar kullanılamaz.

Kavram

Tablespaces

Tanım: Oracle'da fiziksel veri dosyalarından oluşan mantıksal birim. Tablespace'ler fiziksel data dosyalarının belirli bir şekilde gruplandırılmasından oluşur.

Kavram

Data File

Tanım: Oracle'da veri tutan fiziksel (disk üzerinde saklanan) dosyalar

Kavram

Redo Log File

Tanım: Oracle'da, tüm işlemlerde veri değişikliklerinin saklandığı dosyalar. Eğer işlem sırasında veri dosyasında değişiklikler yapılamaz ise bu dosyalardaki bilgiler kullanılabilir

Kavram

Control File

Tanım: Oracle'da, veritabanın fiziksel yapısı , data ve redo dosyaları hakkında bilgi içeren dosya

Kavram

Parameter File

Tanım: Oracle'da database adı, memory ayarları, control file'ın konumu vb.. bilgilerini içeren dosya

Veri

Oracle'da Fiziksel Depolama Yapıları

Oracle'da fiziksel depolama birimleri (physical storage structures) aşağıdaki gibidir :
  • Data Files : verilerin saklandığı tablo
  • Control Files : veritabanın fiziksel yapısı , data ve redo dosyaları hakkında bilgi içerir
  • Redo log Files : işlemlerde veri değişikliklerinin saklandığı dosya.

Kavram

Data Block

Tanım: Oracle'da, en küçük data birimi. Bir data block'un diskte kaç byte'a karşılık geleceği veritabanı yaratılması sırasında verilebilmektedir

Kavram

Extent

Tanım: Oracle'da, belirli tipteki bir bilgi için, ardışık olarak sıralanmış data block'ları (data block Oracle'da en küçük veri birimidir)

Kavram

Segment

Tanım: Oracle'da, veritabanı nesneleri (tablo, index vb..) için ayrılan, extent'lerden oluşan küme. Segment, extent'lerden oluşur. Extent'ler de data block'larından oluşmaktadır.

Veri

Oracle'da Mantıksal Depolama Yapıları

Oracle'da mantıksal depolama birimleri (logical storage structure) küçük birimden daha büyük birime aşağıdaki gibidir:
  • Data block : en küçü data birimi
  • Extent : ardışık data block'lardan oluşur
  • Segment : extent'lerden oluşan bir kümedir
  • Tablespace : Segment'lerden oluşur. Bir veritabanı mantıksal olarak tablespace'lerden oluşur

Kavram

Schema

Tanım: Oracle'da, birbiriyle ilişkili table, view, stored procedure, function, index vb.. veritabanı nesnelerinden (database objects) oluşan bir grup

Kavram

Database Object - Veritabanı Nesnesi

Tanım: Orarcle'da schema nesneleri ( table, view, stored procedure, function, index vb..), user - role gibi schema dışı nesnelerden oluşan , veritabanı ile ilgili mantıksal yapılar.

Kavram

Schema Object - Schema Nesnesi

Tanım: Oracle'da, bir schema'yı oluşturan table , view, stored procedure, function, index gibi mantıksal yapılar

Kavram

Database - Veritabanı

Tanım: Oracle'da, bir sunucu üzerinde bulunan, veri saklama ve veri üzerindeki diğer işlemleri yapmayı sağlayan ürün

Kavram

Database Instance - Instance

Tanım: Oracle'da, database server'ın çalışmasını sağlayan ve data dosyalarına erişimi sağlayan bileşen. Database Instance, SGA ve background process'lerinden oluşur.

Veri

Database ile Instance Kavramının Farkı

Oracle'da, "database" kavramıyla "database instance" (veya sadece "instance") kavramı karıştırılabilir. Zaman zaman birbirinin yerine de kullananlar bulunmaktadır.
"Database" bir sunucu üzerindeki fiziksel dosyalardan oluşan yapıyı belirtir. "Instance" ise bu database'e ulaşmak için gerekli olan hafıza işlemleri ve background process'lerini içerir. "Instance" hafızada çalışır ve mantıksal bir yapıdır, "database" diskde depolanan fiziksel bir yapıdır.
Bir client doğrudan database'e bağlanamaz, instance üzerinden iletişim kurabilir.

Kavram

SGA - System Global Area

Tanım: Oracle'da, bir veritabanı instance'nın veri ve kontrol bilgilerini tutan hafıza alanı. Bir oracle instance'ının hafızada kendisine ayırdığı alandır.

Kavram

PGA - Process Global Area

Tanım: Oracle'da, bağlanan her servis işlemcisi için veri ve kontrol bilgilerini tutan hafıza alanı

Kavram

Oracle Process

Tanım: Oracle'da, işletim sistemi düzeyinde çalışan her türlü birim. "Server process" ve "background process" şeklinde process'ler bulunmaktadır

Kavram

Server Process

Tanım: Oracle'da, veritabanı üzerinde client ve kullanıcıların isteklerini yerine getiren süreç

Kavram

Background Process

Tanım: Oracle'da, arkaplanda, asenkron olarak çalışan ve bazı görevleri yerine getiren süreç

Kavram

Client Process

Tanım: Oracle'da, instance üzerinde client tarafında çalıştırılan (bir uygulama veya SQL*Plus benzeri bir oracle aracı) süreç

Veri

Oracle'da Process'ler

Oracle'da process tipleri aşağıdaki gibidir:
  • Server Process : Veritabanı üzerinde client ve kullanıcıların isteklerini yerine getirir
  • Background Process : Arkaplanda, asenkron olarak çalışır ve bazı görevleri yerine getirir
  • Client Process : Instance üzerinde client tarafından çalıştırılır

Kavram

Oracle Net Services

Tanım: Oracle'da, çeşitli network protokollerini destekleyen, network üzerinde bağlanan client'lara hizmet sağlayan servisler. Bu servisler ile veritabanı dağıtık olarak çalışabilmektedir. Oracle Net, listener, Oracle Connection Manager, Oracle Net Configuration Assistant ve Oracle Net Manager bu servislerindendir

Kavram

Oracle Net

Tanım: Oracle'da, client ile database arasında netwok üzerinden session açılması, yönetimi , client ile database arasında mesaj alışverişini sağlayan servis.

Kavram

Listener - Oracle Net Listener

Tanım: Oracle'de client'lardan gelen request'leri işleyen ve trafiği yöneten servis

Kavram

Dedicated Server

Tanım: Oracle'da, bir server process'inin sadece tek bir client isteğini işlediği sunucu

Kavram

Shared Server

Tanım: Oracle'da, birden fazla client isteğini sınırlı sayıda sunucu process'leri tarafından işlendiği servis

Veri

Oracle Sürüm Tipleri

Oracle aşağıdaki sürüm tiplerinde kurulabilir:
  • Enterprise Edition : Tüm özellikler desteklenir, kurumsal projeler için kullanılır
  • Standard Edition : Orta ve küçük kurumlar için kullanılır
  • Standard Edition One : Orta ve küçük kurumlar ve web projeleri için kullanılır. Standart Edition'a göre daha kısıtlıdır (örneğin cluster desteği bulunmaz) ve daha küçük sistemlerde çalışmak içindir
  • Personal Edition : Tek kullanıcılı , geliştirme için kullanılan sürüm
  • Express Edition : Geliştirme amaçlı , kısıtlı özellikleri olan ücretsiz sürüm.

Kavram

Enterprise Edition

Tanım: Oracle'da, tüm özellikler desteklendiği, büyük çaplı veya kurumsal projeler için kullanılan sürüm.

Kavram

Standard Edition

Tanım: Oracle'da orta ve küçük kurumlar için tercih edilen sürüm

Kavram

Standard Edition One

Tanım: Oracle'da orta , küçük kurumlar ve web projeleri için tercih edilen sürüm. Standart edition'a göre daha kısıtlıdır ve daha küçük sistemlerde çalışması içindir.

Kavram

Personal Edition

Tanım: Oracle'da Enterprice Edition'ın tek kullanıcılı sürümü. Sadece windows işletim sistemi içindir

Kavram

Express Edition

Tanım: Oracle'da sadece geliştirme amaçlı kullanılan, bazı özellikleri desteklenmediği ücretsiz sürüm

Kavram

oraInventory

Tanım: Oracle'da, bir sunucuda kurulan Oracle ürünleri ve Oracle ile ilgili diğer ürünlerin kurulumları hakkında bilgi tutan sistem. Bir sunucuda tüm Oracle kurulumlarında aynı oraInventory konumu seçilebilir.

Kavram

Automatic Storage Management - ASM

Tanım: Oracle'da, 10g den sonraki sürümlerde bulunan bir depolama (storage) sistemi. Oracle'da dosyaların doğrudan işletim sistemi tarafından kontrol edilmesi yerine ASM tarafından yönetilmesini sağlayabilirsiniz. ASM ile data, redo ve control dosyalarının daha kolay yönetilmesi sağlanmaktadır

Veri

Database Configuration Type - Veritabanı Konfigürasyon Tipleri

Oracle kurulumu sırasında yaratılacak veritabanı için aşağıdaki gibi konfigürasyon tiplerinden seçmenizi istemektedir:
  • General Purpose : Genel amaçlı (işlem yoğun veya data yoğun özelliği birinin diğerine göre fazla olmadığı) veritabanları için
  • Transaction Processing : Daha çok okuma-yazma gibi işlemlerin yoğun kullanıldığı veritabanları için
  • General Purpose/Transaction Processing : Daha çok okuma-yazma gibi işlemlerin yoğun kullanıldığı ve genel amaçlı veritabanları için
  • Data Warehousing : Daha çok büyük dataların olduğu ve sorgulamanın çok olduğu veritabanları için

Alıntı

Oracle 12c Pattern Matching

Oracle 12c ile gelen Pattern Matching özelliği
Sahipleri : Yusuf Boyacıgil
Oracle Türkiye'nin geçen hafta düzenlediği Oracle 12c etkinliğinde, yeni sürüm ile ilgili birçok yenilik tanıtıldı. Bunlar arasında: Database As Service, Pluggable DB, In-Memory Option ve Pattern Matching daha çok dikkatimi çekti.
Database As Service 12c ile gelen bulut hizmetini verebilmek için olmazsa olmaz bir özellik olarak karşımıza çıkıyor. Veritabanını donanım, kurulum, yedekleme derdini düşünmeden basit bir hizmet satın almak da artık mümkün olabilir. Mesela bir Amazon Elastic Compute Cloud (EC2) servisi gibi internet üzerinde bir Oracle veri tabanı kiralayabiliriz. Etkinlikte daha çok private cloud’dan bahsedildi. İşin public tarafı ile ilgili ne tür opsiyonlar olduğundan çok bahsedilmedi.
Pluggable DB bir Oracle kurulumunda birbirinden tamamen bağımsız ve farklı şekilde yapılandırılabilen birden çok veritabanını çalıştırmayı mümkün kılacak bir teknoloji. Her bir veritabanı için ayrı kurulum olması zorunluluğu çok doğal değil. Yani ilişkisel veri tabanları konseptinde veritabanını da bir obje olarak düşünürsek, neden tek bir veritabanı engine’i aynı anda birden fazla veritabanına hizmet veremesin ki? Pluggable DB ile bu sorunun artık bir cevabı var.
In-Memory Option tablo, partition bazında tüm veya seçilen kolonları hafızaya alıp, veri tutarlılığını da koruyarak sorguları çok hızlı çalışmayı sağlayacak bir yenilik. Onu diğer cache çözümlerinden farklı kılan veriye her zaman en güncel hali ile erişimi sağlaması. Oracle’ın hafızasında (SGA) ayrı bir alan (Column Store) ayrılyor ve verinin en güncel halini “transaction commit” esnasında bu hafıza alanında da yazılıyor. Bu yeni hafıza alanında tablo satır bazlı değil kolon bazlı tutuluyor; böylelikle veriye erişim ve verinin hafızada kapladığı alanı optimum seviyeye çıkartılıyor. Netice itibariyle verinin analizine yönelik sorgularda doğru konfigurasyon yapılırsa sorgu hızında in-memory option’la 1000 kat ve belki daha fazla bir iyileşme yaşandığına dair örnek çalışmaların olduğu söyleniyor. Yalnız verinin devamlı güncellendiği (OLTP) durumda bu kadar hızlı sorgu performansı olmayacağı tabi ki eskisine oranla daha hızlı olacağını bekleyebiliriz.
Pattern Matching SQL dünyasında bir süredir beklenen veri üzerinde belli bir paterne uygun veriyi bulmayı kolaylaştıracak önemli bir özellik. Veriyi analiz ederken trend’leri belirlemek, anormal durumları tespit etmek, sahtekarlık/iç usulsüzlük tespiti tipik kullanım alanları arasında.
Aşağıda bunun nasıl kullanılabileceği ile ilgili bir sorgu örneğini görebiliriz.
CREATE TABLE E_TRANSACTION(EMP VARCHAR2(20), ACCT VARCHAR2(20), TSTAMP DATE, TRX_TYPE VARCHAR(5));
INSERT INTO E_TRANSACTION VALUES('EMP1', 'ACCT1', '01-DEC-11', 'WTD');
INSERT INTO E_TRANSACTION VALUES('EMP1', 'ACCT1', '02-DEC-11', 'XXX');
INSERT INTO E_TRANSACTION VALUES('EMP1', 'ACCT1', '03-DEC-11', 'DEP');
INSERT INTO E_TRANSACTION VALUES('EMP1', 'ACCT1', '04-DEC-11', 'WTD');
INSERT INTO E_TRANSACTION VALUES('EMP2', 'ACCT1', '05-DEC-11', 'WTD');
INSERT INTO E_TRANSACTION VALUES('EMP2', 'ACCT1', '06-DEC-11', 'DEP');
INSERT INTO E_TRANSACTION VALUES('EMP3', 'ACCT1', '07-DEC-11', 'XXX');
INSERT INTO E_TRANSACTION VALUES('EMP3', 'ACCT1', '08-DEC-11', 'XXX');
INSERT INTO E_TRANSACTION VALUES('EMP3', 'ACCT1', '09-DEC-11', 'WTD');
INSERT INTO E_TRANSACTION VALUES('EMP3', 'ACCT1', '10-DEC-11', 'XXX');
INSERT INTO E_TRANSACTION VALUES('EMP3', 'ACCT1', '11-DEC-11', 'DEP');
SELECT * 
FROM E_TRANSACTION MATCH_RECOGNIZE (
	PARTITION BY EMP
	ORDER BY TSTAMP
	MEASURES
		WITHDRAW.emp as withdraw_emp,
		WITHDRAW.tstamp as withdraw_tstamp,
		WITHDRAW.acct as withdraw_acct,
		DEPOSIT.emp as deposit_emp,
		DEPOSIT.tstamp as deposit_tstamp,
		DEPOSIT.acct as deposit_acct
	ONE ROW PER MATCH
	PATTERN (WITHDRAW DEPOSIT+ )
	DEFINE
		WITHDRAW as WITHDRAW.trx_type = 'WTD',
		DEPOSIT as DEPOSIT.trx_type = 'DEP'
  ) MR
WHERE
  withdraw_emp = deposit_emp
  and withdraw_acct = deposit_acct
ORDER BY MR.withdraw_emp;

WITHDRAW_EMP  WITHDRAW_TSTAMP  WITHDRAW_ACCT  DEPOSIT_EMP  DEPOSIT_TSTAMP  DEPOSIT_ACCT
------------  ---------------  -------------  -----------  --------------  ------------
EMP2          05-DEC-11        ACCT1          EMP2         06-DEC-11       ACCT1 
view raworacle12_pattern_matching_sample.sql hosted with ❤ by GitHub
Örnekte bir hesaptan para çekip (WTD) arada başka bir işlem olmaksızın parayı aynı hesaba geri yatıran (DEP) banka çalışanlarını tespit edecek bir sorgu verilmiştir. Banka çalışanının bir hesaptaki parayı zimmetine geçirip bir süre sonra aynı hesaba geri yatırması tespit edilmesi gereken şüpheli bir işlemdir.
Sql’in yapısına geçersek, SELECT ifadesinin sonuna MATCH_RECOGNIZE cümleciği koyarak başlıyoruz. Burada:
  • PARTITION BY EMP ve ORDER BY TSTAMP kayıtlara çalışan bazında ve tarih sırasına göre erişmek istediğimizi
  • MEASURES alt cümleciği sorgu sonucunda pattern’e uyan hangi kolonları listeleyeceğimizi
  • ONE ROW PER MATCH pattern’e uyan tüm eşleşmeler için sadece bir kayıt dönmesini
  • PATTERN bu sorguda kullanmak istediğimiz pattern’i yani önce para çekme (WITHDRAW) sonra en azından bir para yatırmayı (DEPOSIT)
  • DEFINE ise para çekme ve yatırmanın ne demek olduğunu
  • tanımlar

Sorgunun kalan kısmında pattern'e uyan kayıtların aynı çalışan ve aynı hesap üzerinden yapılmış olması koşulunu içermektedir. Eşleşen kayıt sorgunun alt kısmında gösterilmiştir.
Örnekte de görüldüğü gibi MATCH_RECOGNIZE cümleciği ile okuması ve anlaşılması kolay sorgular yazabiliriz.
Oracle 12c veritabanı sistemi en azından bu yeni özelliği ile veri analizinde rakiplerinden bir adım öne çıkıyor.



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir