<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CETURK &#187; Oracle</title>
	<atom:link href="http://www.ceturk.com/etiket/oracle/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ceturk.com</link>
	<description>Türkiye&#039;nin Bilişim Platformu</description>
	<lastBuildDate>Sun, 05 Sep 2010 21:36:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Oracle İçinde Otomatik Artan Sütun Oluşturmak</title>
		<link>http://www.ceturk.com/muhendislik/bilgisayar-muhendisligi/oracle-icinde-otomatik-artan-sutun-olusturmak.html</link>
		<comments>http://www.ceturk.com/muhendislik/bilgisayar-muhendisligi/oracle-icinde-otomatik-artan-sutun-olusturmak.html#comments</comments>
		<pubDate>Tue, 24 Aug 2010 10:57:42 +0000</pubDate>
		<dc:creator>Gorkem</dc:creator>
				<category><![CDATA[Bilgisayar Mühendisliği]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[pl/sql]]></category>
		<category><![CDATA[sequence]]></category>
		<category><![CDATA[Triggers]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=6641</guid>
		<description><![CDATA[Merhaba arkadaşlar! Veritabanı ile uğraşanlar bilirler. Sql Server ve Access gibi veritabanı programlarında bir unique veya primary key olan sütunun içindeki değerin otomatik artmasını kolaylıkla sağlayabiliriz. Örneğin Sql Server içinde otomatik artan değerli bir sütun oluşturmak için ilgili sütunun Identity Specification özelliğini yes yapmak yeterlidir. Fakat Oracle içinde otomatik artan bir sütun yapmak için bu [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ceturk.com/images/oracle-logo5.gif"><img class="size-full wp-image-5443  alignright" title="oracle-logo" src="http://www.ceturk.com/images/oracle-logo5.gif" alt="" width="150" height="150" /></a>Merhaba arkadaşlar! Veritabanı ile uğraşanlar bilirler. Sql Server ve Access gibi veritabanı programlarında bir unique veya primary key olan sütunun içindeki değerin otomatik artmasını kolaylıkla sağlayabiliriz. Örneğin Sql Server içinde otomatik artan değerli bir sütun oluşturmak için ilgili sütunun Identity Specification özelliğini yes yapmak yeterlidir. Fakat Oracle içinde otomatik artan bir sütun yapmak için bu tür seçim yapılabilen bir kısım yoktur. Bu sebeble Oracle’de otomatik artan bir sütun oluşturmak için öncelikle bir Sequence tanımlanır. Ardından da bir trigger içerisinde bu sequence’yi kullanarak otomatik artan bir sütun yaparız. Şimdi gelin bu işi nasıl yapacağımızı görelim.</p>
<p>Örneğin Oracle’de Kullanıcı isimli bir tablomuzun içindeki Kullanıcı_Id sütununu otomatik artan yapmak istediğimizi düşünürsek öncelikle aşağıdaki gibi bir Sequence yazmamız gerekir.</p>
<pre>CREATE SEQUENCE SEQ_KULLANICIID

START WITH 1

INCREMENT BY 1;
</pre>
<p>SEQ_KULLANICIID isimli bir sequence oluşturduk. Bu sequence 1’den başlayacak ve birer birer artacak. Şimdi de aşağıdaki gibi bir trigger yani tetikleyici yazalım.</p>
<pre>CREATE OR REPLACE TRIGGER TBI_KULLANICIID

BEFORE INSERT ON TBL_KULLANICI

FOR EACH ROW

BEGIN

SELECT SEQ_KULLANICIID.NEXTVAL INTO :NEW.KULLANICI_ID FROM DUAL;

END;
</pre>
<p>Oluşturmuş olduğum trigger’a TBI_KULLANICIID adını verdim. TBL_KULLANICI isimli tabloma bir kayıt eklemeden önce her bir satır için az once oluşturduğumuz sequence’yi çalıştırır.Her yeni kullanıcı_id için sequence yardımıyla değer bir artar. Bu şekilde oracle içinde otomatik artan bir sütun oluşturulmuş olur. Oracle ile uğraşmaya başlayacaklar için gerekli bir bilgi olduğunu düşündüğümden paylaşmak istedim. Bir sonraki makalemde görüşmek dileğiyle.</p>
<p>Yazar: Görkem Sezgin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/muhendislik/bilgisayar-muhendisligi/oracle-icinde-otomatik-artan-sutun-olusturmak.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Veritabanı Yönetimi Semineri</title>
		<link>http://www.ceturk.com/veri-tabani/oracle-veritabani-yonetimi-semineri.html</link>
		<comments>http://www.ceturk.com/veri-tabani/oracle-veritabani-yonetimi-semineri.html#comments</comments>
		<pubDate>Tue, 29 Jun 2010 20:42:58 +0000</pubDate>
		<dc:creator>Mehmet ACA</dc:creator>
				<category><![CDATA[Etkinlikler]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[Bilginç Akademi]]></category>
		<category><![CDATA[Bilginc IT Academy]]></category>
		<category><![CDATA[Oracle Kariyer]]></category>
		<category><![CDATA[Oracle OCP]]></category>
		<category><![CDATA[Oracle OCP Sertifika]]></category>
		<category><![CDATA[oracle seminer]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=6584</guid>
		<description><![CDATA[
 Bilginc IT Academy tarafından Oracle &#8211; OCP semineri gerçekleştirilecek. Seminer ile ilgili detaylar aşağıdadır.
Seminer Tarihi : 30 Haziran 2010
Seminer Saati   : 15:00-17:00
Seminer Yeri    : http://www.bilginc.com/iletisim.aspx
Seminerde işlenecek olan konular :

 Oracle – OCP seminerinde, katılımcılara Oracle veritabanının yapısı ve yönetimine ilişkin gerekli altyapı hakkında bilgi vermek,
 Bilişim sektöründeki uzmanlık açıkları hakkında bilgi vermek,
 Oracle-OCP [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-6583" href="http://www.ceturk.com/veri-tabani/oracle-veritabani-yonetimi-semineri.html/attachment/oracle-ocp"><img class="alignnone size-full wp-image-6583" title="oracle-ocp" src="http://www.ceturk.com/images/oracle-ocp.gif" alt="" width="150" height="80" /></a></p>
<p><strong> Bilginc IT Academy</strong> tarafından <strong>Oracle &#8211; OCP</strong> semineri gerçekleştirilecek. Seminer ile ilgili detaylar aşağıdadır.</p>
<p>Seminer Tarihi : 30 Haziran 2010<br />
Seminer Saati   : 15:00-17:00<br />
Seminer Yeri    : <a href="http://www.bilginc.com/iletisim.aspx">http://www.bilginc.com/iletisim.aspx</a></p>
<p>Seminerde işlenecek olan konular :</p>
<ul>
<li> Oracle – OCP seminerinde, katılımcılara Oracle veritabanının yapısı ve yönetimine ilişkin gerekli altyapı hakkında bilgi vermek,</li>
<li> Bilişim sektöründeki uzmanlık açıkları hakkında bilgi vermek,</li>
<li> Oracle-OCP sertifikasyon programı nedir?</li>
<li> Oracle-OCP sertifikasyon program hangi sertifikaları kapsar?</li>
<li> Oracle’ın şirketlerdeki kullanım alanı nelerdir?</li>
<li> İş olanakları ve neden tercih edildiği gibi katılımcıların sorularının cevaplanacağı bir seminer olacaktır.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/oracle-veritabani-yonetimi-semineri.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PL/SQL BLOK YAPILARI&amp;VERİ TİPLERİ</title>
		<link>http://www.ceturk.com/veri-tabani/oracle/plsql-blok-yapilariveri-tipleri.html</link>
		<comments>http://www.ceturk.com/veri-tabani/oracle/plsql-blok-yapilariveri-tipleri.html#comments</comments>
		<pubDate>Mon, 31 May 2010 21:41:06 +0000</pubDate>
		<dc:creator>Gorkem</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[pl/sql]]></category>
		<category><![CDATA[pl/sql blok]]></category>
		<category><![CDATA[veritabanı]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=6514</guid>
		<description><![CDATA[Bu makalemizde gelin beraber PL/SQL&#8217;de kullanılan farklı blok yapılarını ve veri tiplerini inceleyelim. PL/SQL&#8217;de bloklar denildiğinde akla birbiri ile ilişkisel olarak bağlı program parçacıklarının bir arada tutulduğu,birleştirildiği yapılar akla gelir. Ayrıca bu bloklar içiçe de kullanılabilirler. Bu blokları üç ayrı türe ayırabiliriz. Bunlar;

Normal Blok
Fonksiyon Bloğu
Prosedürel Blok

Şimdi bu blokları ayrıntılı olarak inceleyelim.

NORMAL BLOK:

Bu tip bloklarda birbiriyle [...]]]></description>
			<content:encoded><![CDATA[<p>Bu makalemizde gelin beraber PL/SQL&#8217;de kullanılan farklı blok yapılarını ve veri tiplerini inceleyelim. PL/SQL&#8217;de bloklar denildiğinde akla birbiri ile ilişkisel olarak bağlı program parçacıklarının bir arada tutulduğu,birleştirildiği yapılar akla gelir. Ayrıca bu bloklar içiçe de kullanılabilirler. Bu blokları üç ayrı türe ayırabiliriz. Bunlar;</p>
<ul>
<li>Normal Blok</li>
<li>Fonksiyon Bloğu</li>
<li>Prosedürel Blok</li>
</ul>
<p>Şimdi bu blokları ayrıntılı olarak inceleyelim.</p>
<ul>
<li><strong>NORMAL BLOK:</strong></li>
</ul>
<p>Bu tip bloklarda birbiriyle ilişkili cümlecik ve tanımlamalar yer alır. Blok yapısı aşağıdaki gibidir.</p>
<p><strong>DECLARE</strong></p>
<p><em> tanımlamalar</em></p>
<p><strong>BEGIN</strong></p>
<p><em> komutlar</em></p>
<p><strong>EXCEPTION</strong></p>
<p><em> hata durumları</em></p>
<p><strong>END;</strong></p>
<p>Declare kısmında blok içinde kullanılacak değişken tanımlamaları yapılır. Begin blok başlangıcını belirtir. End ise blok bitişini işaret eder ve noktalı virgül işaretiyle biter.Komutlar Begin-End bloğu içine yazılırlar. Ayrıca isteğe bağlı olarak Exception kısmında çıkabilecek bir hata durumunda neler yapılması gerektiğini belirten komutlar yazılabilir. Şimdi bu blok türüne ait bir örneği aşağıda belirtiyorum.</p>
<pre>DECLARE
     FIYAT_ARTIS_ORANI:=0.2;
BEGIN</pre>
<pre>UPDATE SEBZE SET FIYAT=FIYAT*(1+FIYAT_ARTIS_ORANI);
COMMIT;
END;</pre>
<p>Yukardaki blok sebze fiyatlarında %20 bir artış yapan PL/SQL bloğudur.</p>
<ul>
<li><strong>FONKSİYON BLOĞU:</strong></li>
</ul>
<p>Fonksiyon blokları bir geri değer döndüren alt programlardır ve aşağıdaki kalıba göre oluşturulur.</p>
<p><strong>FUNCTION </strong>Fonksiyonİsmi</p>
<p>Tanımlamalar</p>
<p><strong>BEGIN</strong></p>
<p><strong> </strong>Komutlar</p>
<p><strong>EXCEPTION</strong></p>
<p>Hata Durumları</p>
<p><strong>END </strong>Fonksiyonİsmi<strong>;</strong></p>
<p>Function ifadesinden sonra fonksiyona vereceğimiz ismi yazarız.Ardından gerekli değişken tanımlamalarımızı da yazarız. Sonraki kısım normal blokta olduğu gibi begin-end arasına yazılan komutlardan oluşur.Şimdi konuyu daha iyi anlamak için bir örnek yapalım.</p>
<pre>FUNCTION MAAS_BUL(PERSONEL_NO INTEGER) RETURN NUMBER IS MAASI NUMBER;
BEGIN
         SELECT MAAS INTO MAASI FROM PERSONEL WHERE PERSONELNO=PERSONEL_NO;
         RETURN MAASI;
END MAAS_BUL;</pre>
<p>Yukardaki yaptığımız örnekte fonksiyon bloğumuzun adını<br />
MAAS_BUL olarak belirledik.Ardından parantez içinde PERSONEL_NO isimli<br />
integer veri tipinde bir fonksiyon girdi parametresi belirttik.Fonksiyonun geri dönüş tipini de number olarak yazdık.<br />
Ayrıca MAASI adında bir değişken tanımladık.Sonra geldik begin-end arasında gerekli kodlarımızı yazmaya.Fonksiyon çalıştırıldığında girilen personel numarası personel tablosunda kayıtlı personel numaralarından biriyse ilgili kaydın maaş bilgisini al ve MAASI isimli değişkene aktar dedik select cümleciğiyle.Son olarakta return komutu ile bulunan bu maaş bilgisini geri döndürmesini istedik. END kısmını da mutlaka fonksiyonun adını yazarak bitirmeyi unutmadık.</p>
<ul>
<li><strong>PROSEDÜREL BLOK:</strong></li>
</ul>
<p>Bu tarz bloklar sonuç olarak birden çok değer döndüren alt programlar olarak çalışırlar. Yapısı aşağıdaki gibidir.</p>
<p><strong>PROCEDURE </strong>Prosedür_İsmi</p>
<p>Tanımlamalar</p>
<p><strong>BEGIN</strong></p>
<p>Komutlar</p>
<p><strong>EXCEPTION</strong></p>
<p>Hata Durumları</p>
<p><strong>END</strong> Prosedür_İsmi<strong>;</strong></p>
<p>Umuyorum ki bu yapı ile ilgili hemen bir örnek yaparsak konu daha iyi anlaşılacaktır.</p>
<pre>PROCEDURE AD_SOYAD_BUL(PERSONEL_NO IN INTEGER,AD OUT CHAR,
SOYAD OUT CHAR) IS MAAS NUMBER(10);
BEGIN
        SELECT ADI,SOYADI,MAASI INTO AD,SOYAD,MAAS FROM PERSONEL
WHERE PERSONELNO=PERSONEL_NO;
END AD_SOYAD_BUL;</pre>
<p>Şimdi bu kod bloğunu açıklamaya çalışalım. Öncelikle işe prosedür bloğumuza isim vererek başladık. Ardından parantez içinde fonksiyonun parametrelerini tanımladık.Sonra begin-end kısmında sql cümleciğimi yazdık.Bu PL/SQL kodları ile yapılmak istenen aranılan bir personelin numarasına göre bulunması ve bulunan kişinin ad,soyad ve maaş bilgilerinin kullanıcıya geri döndürülmesidir.</p>
<p>Sıra geldi PL/SQL&#8217;de kullanılan veri tiplerine değinmeye.</p>
<ul>
<li><strong>PL/SQL VERİ TİPLERİ:</strong></li>
</ul>
<p>NUMBER: 38 basamağa kadar destek sunan nümerik veri tipidir.</p>
<p>BINARY_INTEGER:  Nümerik bir yapıya sahiptir.Number veri tipinden farkı veritabanında daha az yer kaplamasıdır.</p>
<p>CHAR: Karakter veri tipidir.</p>
<p>VARCHAR2: Karakter veri tipidir.Değişken uzunlukta karakterleri tutabilir. Maksimum uzunluğu 32767 bytedır.</p>
<p>LONG: Varchar2 veri tipi gibidir. Fakat karakter tutma sınırı 2GB&#8217;a kadar yükselir.</p>
<p>LONG RAW: Long tipinde binary olarak veri tutan veri tipidir.</p>
<p>BOOLEAN: True-False tipi değerleri depolar.</p>
<p>DATE: Tarih ve saat unsurlarını tutabilen veri tipidir.</p>
<p>TIMESTAMP: Date gibi tarih saat değerlerini tutar. Ayrıntılı olarak yüzyıldan saniyeye kadar olan bütün bilgileri tutar.</p>
<p>Evet kısaca PL/SQL&#8217;deki blok yapılarını ve veri tiplerini inceledik. Umuyorum ki yararlı olmuştur. Bir sonraki makalemizde görüşmek dileğiyle.</p>
<p>YAZAR: Görkem SEZGİN</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/oracle/plsql-blok-yapilariveri-tipleri.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORACLE  VERİTABANINA KUŞBAKIŞI-ders-4</title>
		<link>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi-ders-4.html</link>
		<comments>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi-ders-4.html#comments</comments>
		<pubDate>Tue, 19 Jan 2010 14:30:51 +0000</pubDate>
		<dc:creator>hayrullah ayan</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[Hayrullah Ayan]]></category>
		<category><![CDATA[oracle dersleri]]></category>
		<category><![CDATA[oracle tablo yapıları]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=5288</guid>
		<description><![CDATA[ORACLE VERİTABANI NESNELERİYLE İLGİLİ KOMUTLAR
Bu bolumde artık veritabanı nesneleri oluşturup yönetiyor olacagız.
CREATE TABLE
Tablo oluşturma komutunu anlatırken bir örnekle başlayalım.
CREATE table tbl_ogr

(OgrNum   NUMBER(11) NOT NULL,

Ad            VARCHAR2(15),

Soyad       VARCHAR2(15),

Dogyer      NUMBER(2),

CONSTRAINT cst_OgrNum PRIMARY KEY(OgrNum)

CONSTRAINT cst_dogyer FOREING key(dogyer) REFERENCES il(ilkod))
Bu komut “tbl_ogr” adında bir tablo oluşturuyor. Tablonun dört alanı var. Bunlardan biri özel anahtar(Primary Key) olarak tanımlanmış. Bu [...]]]></description>
			<content:encoded><![CDATA[<h3>ORACLE VERİTABANI NESNELERİYLE İLGİLİ KOMUTLAR</h3>
<p>Bu bolumde artık veritabanı nesneleri oluşturup yönetiyor olacagız.</p>
<h4>CREATE TABLE</h4>
<p>Tablo oluşturma komutunu anlatırken bir örnekle başlayalım.<span id="more-5288"></span></p>
<pre class="brush:csharp">CREATE table tbl_ogr

(OgrNum   NUMBER(11) NOT NULL,

Ad            VARCHAR2(15),

Soyad       VARCHAR2(15),

Dogyer      NUMBER(2),

CONSTRAINT cst_OgrNum PRIMARY KEY(OgrNum)

CONSTRAINT cst_dogyer FOREING key(dogyer) REFERENCES il(ilkod))</pre>
<p>Bu komut “tbl_ogr” adında bir tablo oluşturuyor. Tablonun dört alanı var. Bunlardan biri özel anahtar(Primary Key) olarak tanımlanmış. Bu alanın değeri boş olamaz ve tabloda aynı iki değer bulunamaz.. Bir tablo ile başka bir tablo arasında ilişki kurulacaksa bu ana tabloda PRIMARY KEY tanımıyla, diğer tabloda FOREIGN KEY tanımıyla yapılır. Yani doğum yeri alanı için buradaki tablomuz ana tablo değil. Çünkü aynı yerde doğmuş kişilerin kaydı tablomuzda olabilir. Böylece aynı il kodu birden fazla kayıtta yer alabilir. İlişki kurulan diğer tablonun adını yukarıdan çıkarabiliriz. Bu tablo “il” isminde. Her il bu tabloda kayıtlı ve her birinin bir kodu var. Bu tabloda bir ilin kaydı iki sütunda yer alamaz. Bu yüzden “ilkodu” alanı “il” tablosu için PRIMARY KEY olarak tanımlanmış.</p>
<p>PRIMARY KEY, NOT NULL gibi bildirimler kısıtlamalar olarak tanımlanır. Bir tabloda farklı şekilde kısıtlamalar yapılabilir. Kısıtlama için kullanılan bildirimler 5 adettir.</p>
<ul>
<li>NOT NULL : Bu kısıtlamanın konulduğu bir alanın      mutlaka bir değeri olmak zorundadır.</li>
<li>UNIQUE : Bu kısıtlamanın konulduğu bir alan bir      değerden sadece bir adet içerebilir. Bu kısıtlamaya sahip alan NOT NULL      ile tanımlanmadıysa NULL değer alabilir.</li>
<li>PRIMARY : Bu kısıtlama bu alanın özel anahtar      olmasını sağlar. Bu alan boş geçilemez ve yine tablo içerisinde bir değer      iki kayıtta bulunamaz.</li>
<li>FOREIGN KEY : Bu kısıtlama başka bir tablonun      PRIMARY KEY olan alanıyla ilişki kurmak için gerekir.</li>
<li>CHECK : Bu kısıtlama ile birlikte bir şart      kullanılır. Tabloya kayıt girilirken değerlerin bu şarta uyması beklenir.</li>
</ul>
<h4>ALTER TABLE</h4>
<p>Daha önceden oluşturulmuş bir tablonun yapısını değiştirmek için ALTER TABLE komutu kullanılır.</p>
<pre class="brush:csharp">ALTER TABLE tablo_adı

ADD | MODIFY | DROP (&lt;sütun ismi&gt; veri tipi &lt;sütun kısıtlaması&gt;)

ENABLE ifade1

DISABLE ifade2</pre>
<p>ALTER komutuyla tablolara yeni bir alan ve kısıtlama eklenebilir, var olan alan ve kısıtlamaların durumu değiştirilebilir veya tablodan ksıtlamalar düşürülebilir. Fakat ALTER komutuyla var olan sütunlar düşürülemez. Bir alanın değeri büyültülebilir, fakat küçültülemez.</p>
<pre class="brush:csharp">ALTER TABLE tbl_ogr

ADD CONSTRAINT cst_Bolum

FOREIGN KEY(Bolum)

REFERENCES usr_gazi.tbl_bol(BolKod);</pre>
<p>Yukarıdaki örnekte tbl_ogr adlı tablonun yapısı değiştiriliyor. Bir başka kullanıcının bir tablosu ile ilişki kuruluyor.</p>
<pre class="brush:csharp">ALTER TABLE tbl_ders

MODIFY dersad varchar2(40);</pre>
<p>Bu örnekte de tbl_ders tablosunun bir alanının uzunluğu değiştiriliyor.</p>
<h4>DROP TABLE</h4>
<p>Daha önceden oluşturulmuş bir tablonun düşürülmesi için kullanılan komuttur. Kullanımı:</p>
<pre class="brush:csharp">DROP TABLE &lt;tablo_ismi&gt; [CASCADE CONSTRAINTS]</pre>
<p>Köşeli parantez içerisindeki tanım kullanılırsa master-detay ilişkili tablolarda master tablo düşürülünce detay tabloların da otomatik olarak düşürülmesi sağlanır. Eğer bu seçenek kullanılmazsa diğer tablolarla ilişkisi bulunan bir tablo silinemez. Ancak bu ilişkiler kaldırıldıktan sonra tablo silinebilir.</p>
<p>DROP TABLE tbl_ogr CASCADE CONSTRAINT</p>
<h4>CREATE VIEW</h4>
<p>Görüntü oluşturmak için bir SELECT cümlesi kullanmak gerekir. Bir görüntü bir ya da daha fazla tablodan oluşturulabileceği gibi, bir başka görüntüden de oluşturulabilir.Aşağıdaki örnekte üç farklı kullanıcnın aynı yapıdaki tabloları birleştirilip bir görüntü oluşturuluyor.</p>
<pre class="brush:csharp">CREATE VIEW vi_ogr

AS SELECT * from usr_esef.tbl_ogr
<pre>UNION ALL</pre>
<p>SELECT * FROM usr_tef.tbl_ogr</p>
<p>UNION ALL</p>
<p>SELECT * FROM usr_gef.tbl_ogr;</pre>
<h4>CREATE TABLESPACE</h4>
<p>Tablo uzayı kullanıcılara ait olan nesnelerin veritabanında mantıksal olarak tutulduğu yere denmektedir. Bir tablo uzayı oluştururken, bu tablo uzayının verilerinin hangi veri dosyasına konulacağı ve bu dosyanın dizini ile büyüklüğü bildirilmelidir.</p>
<pre class="brush:csharp">CREATE TABLESPACE tbs_esef

DATAFILE 'c:\orasql\tbs_esef.dat' SIZE 10M
<pre>DEFAULT STORAGE (INITIAL 10K NEXT 50K</pre>
<p>MINEXTENTS 1 MAXEXTENTS 999)</p>
<p>ONLINE;</pre>
<p>SIZE bildirisi veri dosyasının diskte kaplayacağı yeri belirler. Burada 10M, 5K gibi değerler girilebilir. INITIAL bildirisi tablo uzayı oluşturulduğunda, ik alacağı genişleme’nin büyüklüğünü belirler. Next tablo uzayı oluşturulduktan sonra alacağı genişlemelerin büyüklüğünü belirler. MINEXTENTS tablo uzayı oluşturulduğunda ilk olarak alacağı minimum genişleme sayısının belirtildiği bölümdür. MAXEXTENTS bir tablo uzayının ilk olarak aldığı genişleme de dahil olmak üzere alabileceği maksimum genişleme sayısının belirtildiği bölümdür.</p>
<h4>CREATE USER</h4>
<p><strong> </strong>Kullanıcı veritabanı nesnelerinin sahibidir.  Kullanıcılar, nesneleri oluşturur, kullanır ve silerler. Oracle veritabanı ilk kurulduğunda standart olarak üç kullanıcı tanımlanır. Bunlardan bir SYS kullanıcısıdır. SYS kullanıcısı veri sözlüğünün sahibi olan kullanıcıdır. Tüm nesneleri oluşturma hakkına sahiptir ve diğer bütün kullanıcların nesnelerine erişebilir. SYS kullanıcısının ilk şifresi “change_on_install” olarak belirlenmiştir. İkinci kullanıcı SYSTEM kullanıcısıdır. SYSTEM kullanıcısı veri sözlüğünü kullanma hakkına sahiptir. Önemli nesneleri oluşturma hakkına da sahiptir. İlk şifresi “manager” olarak belirlenmiştir. Diğer kullanıcıların nesnelerine erişme hakkına da sahiptir. Üçüncü kullanıcı SCOTT kullanıcısıdır. SCOTT kullanıcısı veritabanına başlangıçta yüklenen demo tabloların sahibidir. Bu kullanıcının nesneleri kullanılarak SQL denemeleri yapılabilir.</p>
<p>“CREATE USER” komutunu SYS ve SYSTEM kullanıcıları standart olarak kullanabilir. Bu hak diğer kullanıcılara da verilebilir. Her kullanıcının nesnelerini tutmak için bir tablo uzayı oluşturmak sistemin performansı açısından gerklidir. Kullanıcı oluşturulurken bu tablo uzayı o kullanıcıya atanır.</p>
<pre class="brush:csharp">CREATE USER usr_esef

IDENTIFIED BY esef

DEFAULT TABLESPACE tbs_esef

QUOTA UNLIMITED ON tbs_esef</pre>
<p>Yukarıdaki örnekte usr_esef adında bir kullanıcı oluşturuluyor. Kullanıcının şifresi IDENTIFIED BY ile “esef” olarak bildiriliyor. Kullanıcının kendi nesnelerini oluşturacağı tablo uzayı için ise “tbs_esef” tablo uzayı bildiriliyor. Kullanıcının bu tablo uzayındaki tüm alanı kullanabileceği QUOTA UNLIMITED ile belirleniyor.</p>
<h4>CREATE ROLE</h4>
<p><strong> </strong>Rol veritabanındaki hakların toplanmış haline denir. Veritabanı yöneticisi rolleri kullanarak sistemin güvenliğini daha kolay sağlayabilir. Roller Oracle tarafından önceden tanımlanmış roller ve kullanıcı tanımlı roller olarak iki şekilde düşünülebilir. Oracle tarafından önceden tanımlanan roller beş tanedir:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="173" valign="top">
<p align="center">Rol</p>
</td>
<td width="390" valign="top">Atanmış Haklar</td>
</tr>
<tr>
<td width="173" valign="top">CONNECT</td>
<td width="390" valign="top">ALTER SESSION,CREATE CLUSTER, CREATE DATABASE LINK, CREATE   SEQUENCE, CREATE SESION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW</td>
</tr>
<tr>
<td width="173" valign="top">RESOURCE</td>
<td width="390" valign="top">CREATE CLUSTER, CREATE PROCEDURE, CREATE SEQUENCE, CREATE   TABLE, CREATE TRIGGER</td>
</tr>
<tr>
<td width="173" valign="top">DBA</td>
<td width="390" valign="top">“WITH ADMIN OPTION” ile birlikte bütün sistem hakları</td>
</tr>
<tr>
<td width="173" valign="top">EXP_FULL_DATABASE</td>
<td width="390" valign="top">SELECT ANY TABLE, BACKUP ANY TABLE, SYS.INCVID, SYS.INCFIL   ve SYS.INCEXP tablolarına INSERT, UPDATE veDELETE hakkı</td>
</tr>
<tr>
<td width="173" valign="top">IMP_FULL_DATABASE</td>
<td width="390" valign="top">BECOME USER, WRITEDOWN</td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p><strong> </strong>CREATE ROLE tabloma_bak</p>
<pre>            GRANT SELECT ON tbl_ogr TO tabloma_bak</pre>
<p>Yukarıdaki örnekte tabloma_bak adında bir rol oluşturuluyor. Daha sonra bu role tbl_ogr tablosu üzerinde listeleme işlemi yapma hakkı veriliyor. Böylece bu rolün atandığı kullanıcı tbl_ogr tablosu üzerinde “SELECT” komutunu çalıştırabilecek.</p>
<h4>CREATE INDEX</h4>
<p><strong> </strong>Daha öncede bahsedildiği gibi indeks tablodaki kayıtlara daha hızlı erişim için kullanılan nesnelerdir. Bir indeks oluşturabilmek için “CREATE ANY INDEX” sistem hakkına sahip olmak gerekir. İndeks bir tablonun bir alanı üzerinde tanımlanabileceği gibi birden fazla alan üzerinde de tanımlanabilir.</p>
<p>CREATE INDEX indeks1 ON tbl_ogr(ogrnum,ad)</p>
<h4>CREATE SEQUENCE</h4>
<p>Sıra, sıralı olarak artan alanlar için veritabanında tutulan nesnedir. Örneğin birden başlayan ve birer birer artan bir sıra yaratmak için:</p>
<p>CREATE SEQUENCE sira1 START WITH 1 INCREMENT BY 1</p>
<h4>CREATE ROLLBACK SEGMENT</h4>
<p>Geri alma parçaları SELECT, INSERT, DELETE, UPDATE gibi komutlarla yapılan işlemlerin gerektiğinde geri alınabilmesi için veritabanında ayrılan alanlara denir. “tbsp_esef” tablo uzayını kullanan, kayıt parametrelerinden ilk parçanın büyüklüğü 10M, sonraki genişlemelerin büyüklüğü 1M, minimum genişleme sayısı 2, maksimum genişleme sayısı 121 ve ortalama değeri 30M olan ve ismi “rol_seg” olan bir geri alma parçası şöyle oluşturulabilir:</p>
<pre class="brush:csharp">CREATE ROLLBACK SEGMENT rol_seg

TABLESPCE “tbsp_esef”

STORAGE(         INITIAL           10M

NEXT                1M

MINEXTENTS    2

MAXEXTENTS   121

OPTIMAL          30M)</pre>
<h4>GRANT</h4>
<p><strong> </strong>Sistem ya da nesne haklarının kullanıcılara veya rollere atanması için kullanılan komuttur.</p>
<pre class="brush:csharp">GRANT DELETE ON tbl_ogr TO usr_gef</pre>
<p>Yukarıdaki örnekte usr_gef kullanıcısına tbl_ogr tablosunda silme yapma yetkisi verilir.</p>
<h4>REVOKE</h4>
<p><strong> </strong>Sistem ya da nesne haklarının kullanıcılardan veya rollerden geri alınnması için kullanılan komuttur.</p>
<p>REVOKE DELETE ON tbl_ogr FROM usr_gef</p>
<p>Yukarıdaki örnekte usr_gef kullanıcısından tbl_ogr tablosunda silme yapma yetkisi geri alınır.</p>
<p>** Veritabanı nesnelerinin yönetilmesiyle ilgili daha bir çok veri tanımlama dili komutu vardır. Bu komutların diğerleri burada anlatılmayacaktır. Bir nesneyi oluşturmak için “CREATE”, silmek için “DROP”, değiştirmek için “ALTER” komutlarının kullanıldığının bilinmesi diğer komutlar için bir temel teşkil edecektir. Komutlar içerisinde kullanılan parametreler Oracle yardım dokümanlarında ayrıntılı olarak verilmektedir.</p>
<p>Hayrullah AYAN</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi-ders-4.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ORACLE  VERİTABANINA KUŞBAKIŞI-ders-3</title>
		<link>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi-ders-3.html</link>
		<comments>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi-ders-3.html#comments</comments>
		<pubDate>Sat, 16 Jan 2010 17:28:42 +0000</pubDate>
		<dc:creator>hayrullah ayan</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[BACKGROUND PROCESSES]]></category>
		<category><![CDATA[Hayrullah Ayan]]></category>
		<category><![CDATA[MEMORY STRUCTURE]]></category>
		<category><![CDATA[ORACLE’DA BELLEK YAPISI]]></category>
		<category><![CDATA[Redo Log Tamponu]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=5286</guid>
		<description><![CDATA[ORACLE’DA BELLEK YAPISI(MEMORY STRUCTURE) VE ARKA PLAN İŞLEMLERİ(BACKGROUND PROCESSES)
 Bu bölüm Oracle veritabanının yönetiminin sağlanmasında kullanılan işlemleri ve bellek yapılarını içermektedir. Tüm bellek yapıları veritabanının oluşturulduğu bilgisayarın ana belleğinde yer almaktadır. Bu bölüm birden fazla kullanıcının aynı anda veritabanına erişip işlemlerini gerçekleştirmesinin nasıl olduğunu anlamak açısından önemlidir. Aşağıdaki şekil bu bölüm için temel alınacaktır.
Bellek Yapıları
Oracle [...]]]></description>
			<content:encoded><![CDATA[<h3>ORACLE’DA BELLEK YAPISI(MEMORY STRUCTURE) VE ARKA PLAN İŞLEMLERİ(BACKGROUND PROCESSES)</h3>
<p><strong> </strong>Bu bölüm Oracle veritabanının yönetiminin sağlanmasında kullanılan işlemleri ve bellek yapılarını içermektedir. Tüm bellek yapıları veritabanının oluşturulduğu bilgisayarın ana belleğinde yer almaktadır. Bu bölüm birden fazla kullanıcının aynı anda veritabanına erişip işlemlerini gerçekleştirmesinin nasıl olduğunu anlamak açısından önemlidir. Aşağıdaki şekil bu bölüm için temel alınacaktır.<span id="more-5286"></span></p>
<h4>Bellek Yapıları</h4>
<p>Oracle işlemlerini gerçekleştirmek için bellek yapıları oluşturur ve bunları kullanır. Örneğin bellek çalışan program kodlarını ve kullanıcılar arasında paylaşılan verileri depolar. Oracle’da birkaç adet bellek yapısı mevcuttur: SGA(System Global Area), veritabanı tamponları(database buffers), redo log tamponları(redo log buffers) ve paylaşım havuzunu(shared pool) içerir.</p>
<h5>SGA(System Global Area)</h5>
<p><strong> </strong>SGA bir oracle veritabanı oturumu için gerekli verileri ve kontrol bilgilerini içeren paylaşımlı bellek bölgesidir. SGA ve Oracle arka plan işlemleri bir Oracle veritabanı oturumunu oluşturur. Veritabanı oturumu başladığında  Oracle SGA’yı oluşturur ve veritabanı kapatıldığında yok eder. Her bir veritabanı oturumunun kendine ait bir SGA ‘sı vardır. Oracle’a bağlanan kullanıcılar SGA içerisinde verileri paylaşımlı olarak kullanırlar. Yüksek performansın sağlanabilmesi için SGA’nın olabildiğince büyük olması gerekir. SGA büyük olursa bu alanda daha fazla bilgi depolanabilir ve sabit diske erişim sayısı azalır.  SGA içerisinde depolanan bilgi veritabanı tamponları, redo log tamponları ve paylaşım havuzunu içeren birkaç tip bellek yapısına bölünmüştür. Bu alanlar sabit büyüklüktedir ve veritabanı açılırken oluşturulurlar.</p>
<h6>Veritabanı Tampon Belleği(Database Buffer Cache)</h6>
<p>En son kullanılan veri blokları SGA içerisinde veritabanı tamponu denilen yerde depolanır. Bu veritabanı tamponlarının hepsi veritabanı tampon belleğini oluşturur. Veritabanı tampon belleği değiştirilmiş ve değiştirilmemiş bilgileri içerir. Son kullanılan verilerin ya da çok kullanılan verilerin bellekte depolanması sayesinde sabit disk erişim işlemleri azalır.</p>
<h6>Redo Log Tamponu(Redo Log Buffer)</h6>
<p>SGA’nın redo log tamponu veritabanı verileri üzerinde yapılan son değişiklikleri depolar. Redo log tamponunda depolanan değişiklik bilgileri veritabanı  kurtarma işlemlerinde gerekli olan redo log dosyalarına kaydedilirler.</p>
<h6>Paylaşım Havuzu(Shared Pool)</h6>
<p><strong> </strong>Paylaşım havuzu SGA’nın paylaşımlı SQL alanları gibi bellek yapılarını içeren kısmıdır. Paylaşımlı SQL alanı veritabanına girilen her farklı SQL komutunu işlemek için gerklidir. Her bir paylaşımlı SQL alanı aynı komutu işleyen birden fazla uygulama tarafından kullanılır. Burada amaç diğer kullanıcılar için daha fazla paylaşımlı bellek alanı bırakabilmektir.</p>
<h6>Geniş Havuz(Large Pool)</h6>
<p><strong> </strong>Geniş havuz SGA içerisinde isteğe bağlı bir alandır. Bu alan yedekleme, yapılan işlemleri geri yükleme, sunucunun giriş/çıkış işlemleri vb. işlemlerde daha geniş bellek ihtiyacı için kullanılan alandır.</p>
<h5>Program Genel Alanı(PGA)</h5>
<p><strong> </strong>PGA sunucu işlemleri için veri ve kontrol bilgilerini içeren bellek tamponudur. Bir sunucu işlemi başlatıldığında PGA Oracle tarafından otomatik olarak başlatılır.  Genellikle PGA bir kullanıcı ya da bağlantı için ayrılan belleğe denir. Bu bellek üç bölümü içerir: Birincisi yığın uzayı’dır(Stack Space). Yığın bir her bir bağlantıya ait değişkenleri, dizileri vb. yapıları tutan bellektir. İkincisi bağlantı bilgisi’dir(Session Information). Bağlantı bilgisi, “multitheraeded” sunucu olarak adlandırılan bir bilgisayarda çalışılmıyorsa PGA alanında, aksi halde SGA da depolanır.(“multithreaded” uygulamalar aynı kod ve data segmenti kullanıp, farklı program sayacı, kayıtlık ve yığın kullanan uygulamalar için kullanılır.) Üçüncüsü Özel SQL alanıdır. Bu alanda farklı amaçla kulanılan bazı değişkenleri tutmak için kullanılır.</p>
<h4>İşlem Yapısı(Process Architecture)</h4>
<p><strong> </strong>İşlem, işletim sistemlerinde, belli bir işi yapmak için bir adımlar dizisinin çalıştırılması olarak adlandırılmaktadır. Normalde her işlemin çalışabilmesi için bellekte kendine özel bir yeri vardır. Oracle’da da iki tür işlem vardır. Kullanıcı işlemleri(User Processes) ve Oracle İşlemleri(Oracle Processes).</p>
<h5>Kullanıcı İşlemleri(User(Client) Processes)</h5>
<p><strong> </strong>Bir kullanıcı işlemi bir uygulama ya da yazılımın çalıştırlmasını sağlamak için oluşturulur. Kullanıcı işlemleri program arayüzü(program interface) yoluyla sunucuyla iletişim işlemlerini sağlar.</p>
<p>Program arayüzü bir kullanıcı işlemlerinin sunucu ile ileitişim kurmasında kullanılan mekanizmalar olark bilinir. Program arayüzü veritabanı ile bir Oracle Forms ya da Reports programı arasında iletişim standartlarını sağlar.</p>
<h5>Oracle İşlemleri(Oracle Processes)</h5>
<p><strong> </strong>Oracle işlemleri diğer işlemler tarafından işlemin belli adımlarını gerçekleştirmesi için çağrılırlar. Oracle işlemleri de sunucu işlemleri(Server Processes) ve arka plan işlemleri(Background Processes) olarak ikiye ayrılır.</p>
<h6>Sunucu İşlemleri(Server Processes)</h6>
<p><strong> </strong>Oracle, veritabanına bağlanan bir kullanıcının isteklerini gerçekleştirebilmek için sunucu işlemlerini başlatır. Örneğin bir kullanıcının, o an SGA’nın veritabanı belleği’nde yer almayan bir bilgiyi sorgulaması, veri bloklarının veri dosyalarından okunup SGA’ya getirilmesini sağlayan sunucu işlemini başlatır. İstemci/Sunucu mimarili sistemlerde kullanıcı işlemleri ve sunucu işlemleri ayrı bilgisayarlarda çalıştırılır.</p>
<h6>Arka Plan İşlemleri(Background Processes)</h6>
<p><strong> </strong>Oracle her veritabanı için ayrı olarak bir dizi arka plan işlemleri oluşturur.  Oracle veritabanına bir anda birden fazla kullanıcının bağlandığını ve belli programları çalıştırdığını düşünelim. Oracle programlar tarafından oluşturulan bu kullanıcı işlemleri’ni gerçekleştirmek için arka planda bazı işlemler gerçekleştirir. Her bir veritabanı kendi arka plan işlmelerine sahiptir. Şimdi bu arka plan işlmelerinin neler olduğuna bakalım:</p>
<p>Veritabanı Yazıcısı(Database Writer- DBWn)</p>
<p><strong> </strong>Veritabanı yazıcısı, veritabanı tampon belleğindeki değiştirilmiş veri bloklarını veri dosyalarına yazmakla görevlidir. Normalde tek bir veritabanı yazım işlemi bir çok sistemde yeterli olmasına rağmen, birden fazla yazım işlemi tanımlanabilir. Bu işlemlere DBW0&#8230;DBW9 şeklinde isim verilir. Veritabanı açılırken bu DB_WRITER_PROCESSES parametresi ile veritabına bildirilir.</p>
<p>Bir kullanıcı yaptığı değişiklikleri “commit” komutuyla onayladığında veritabanı yazıcısı bu değişiklikleri hemen veri dosyalarına kaydetmez. Veritabanı yazıcısı veri dosyalarına yazma işlemini kendi belirler ve ya SGA içerisine çok miktarda başka verilerin alınması gerektiği zaman ya da çok az veritabanı tamponu kaldığı zaman yazma işlemini gerçekleştirir. Veri dosyalarına yazım işlemi en son kullanılan verilerden başlanarak gerçekleştirilir.</p>
<p>Log Yazıcısı(Log Writer LGWR)</p>
<p><strong> </strong>Log yazıcısı SGA’nın redo log tamponundaki bilgileri diske kaydetmek için kullanılır. LGWR tampondaki bilgileri o an kullanımda olan bir redo log dosyasına sıra ile yazar. Bu yazma işlemi veritabanının sahip olduğu birden fazla redo log dosyasına da yapılabilir.</p>
<p>Değişme Noktası(Checkpoint- CKPT)</p>
<p><strong> </strong>Belirli zamanlarda SGA içerisindeki değişikliğe uğramış veritabanı tamponları DBWn tarafından belleğe yazılır. Bu işlem değişme noktası işlemi olarak adlandırılır. Değişme noktası işlemi DBWn’e değişme anlarını haber vermekten ve veritabanındaki bütün veri dosyalarını ve kontrol dosyalarını yeni değişme noktasından haberdar etmek için güncellemekten sorumludur.</p>
<p>Sistem Analizi(System Monitor-SMON)</p>
<p><strong> </strong>Sistem Analizi veritabanı oturumu açılırken oturum için kurtarma yapar, yani kontrol dosyalarını kontrol ederek geri alınması gereken bir işlemin olup olmadığına bakar, eğer varsa geri allma işlemini gerçekleştirir. Birden fazla veritabanı oturumunun olduğu ortamlarda SMON aynı zamanda bozulan sistemler içinde ayrı ayrı kurtarma yapar. SMON aynı zamanda kullanılmayan geçici parçaları(temporary segment) temizlemekte ve herhangi bir problemden dolayı bozulan işlemleri kurtarmaktadır. Bozulan işlemlerin sorgu komutları SMON tarafından tablo uzayı ve veri dosyası tekrar aktif hale getirildikten sonra kurtarılır. Son olarak SMON veritabanında daha fazla boş yer açılsın diye boş genişlemeleri birleştirmektedir.</p>
<p>İşlem analizi(Process Monitor-PMON)</p>
<p>İşlem Analizi herhangi bir kullanıcı işlemi bozulduğunda o işlemin kurtarılmasını yapmaktadır. PMON işlemin kullandığı belleği ve kaynakları temizlemekten sorumludur. PMON aynı zamanda dispatcher(ileride anlatılıyor) ve sunucu işlemlerini         kontrol eder ve kapandıklarında yeniden çalıştırır.</p>
<p>Yedekleyici(Archiver-ARCn)</p>
<p><strong> </strong>Yeekleyici o an kullanılmakta olan redo log dosyalarını, doldukları zaman yedek depolama ünitelerine kopyalar. Tüm sistemler için bir ARC0 işleminin olması yeterli olsa da birden fazla işlem gerçekleştirilebilir. Bu LOG_ARCHIVE_MAX_PROCESSES parametrsei ile belirlenir. ARCn işlemi veritabanı ARCHIVELOG modda çalışırken kullanılır.</p>
<p>Geri Kurtarıcı(Recoverer-RECO)</p>
<p><strong> </strong>Geri kurtarıcı dağıtık veritabanında sistem veya ağ hatalarından dolayı bekleyen işlemleri düzenler. Belli aralıklarla, yerel RECO uzaktaki veritabanına bağlanıp yereldeki dağıtık işlemlerle ilgili “commit” ve “rollback” işlemlerini yapmaktadır.</p>
<p>Dispatcer(Dnnn)</p>
<p>Dispatcher’lar çoklu ortamlarda isteğe bağlı olarak çalıştırılmaktadırlar. Her iletişim protokolü için en az bir dispatcher işlemi (D000,&#8230;.,Dnnn) oluşturulmaktadır. Her dispatcher işlemi kullanıcı işlemlerinden gelen istekleri sunucu işlemlerine yönlendirmekte ve gelen cevapları da uygun kullanıcılara tekrar döndürmekten sorumludur.</p>
<p>Kilit(Lock-LCKO)</p>
<p><strong> </strong>Kilit işlemleri birden fazla veritabanı oturumunun çalıştığı sistemlerde veritabanları arasında gereken bir takım kilitleme işlemlerini gerçekleştirir.</p>
<p>İş Kuyruğu(Job Queue-SNPn)</p>
<p>Dağıtık veri tabanı uygulamalarında 38 adetten fazla (SNP0,&#8230;,SNP9,SNPA,&#8230;.SNPZ)   iş kuyruğu işlemi tablo snapshot’larını otomatik olarak güncelleyebilir. Bu işlemler periyodik olarak başlatılır.</p>
<h3>Oracle’ın Çalışmasına Bir Örnek</h3>
<p>Aşağıdaki örnek bir istemcinin ağ üzerinden sunucudaki veritabanına erişip bir sorgulama yapmasının adımlarını içermektedir.</p>
<ol>
<li>Oracle veritabanı “host” ya da “database server” olarak      adlandırılan bilgisayarda çalışıyor vaziyettedir.</li>
<li>Bir kullanıcı istemci bilgisayarda kullanıcı işlemlerini      gerçekleştiren bir uygulama programını çalıştırmaktadır. İstemci      bilgisayar sunucu bilgisayar ile bağlantısını uygun Net8 sürücüsünü      kullanarak gerçekleştirir.</li>
<li>Sunucu bilgisayarda da uygun bir Net8 sürücüsü çalışıyor      vaziyettedir.  Sunucu uygulama      programından gelen bağlantı isteğini tespit eder ve kullanıcı işlemine      karşılık gelen sunucu işlemini oluşturur.</li>
<li>Kullanıcı bir SQL komutu çalıştırır ve yaptığı değişikliği      “commit” eder, yani onaylar.Örneğin kullanıcı bir tablo içerisindeki      bir  kaydı değiştirir.</li>
<li>Sunucu işlemi komutu alır ve paylaşım havuzunda bu SQL komutuna      benzeyen bir paylaşımlı SQL alanı olup olmadığına bakar. Eğer böyle bir      alan bulunursa sunucu işlemi kullanıcının bu SQL cümlesini çalıştırma      haklarını kontrol eder. Eğer böyle bir alan yoksa  yeni bir paylaşımlı SQL alanı      oluşturulur ve SQL komutu çalıştırılır.</li>
<li>Sunucu işlemi bu SQL komutu için gerekli verilerin SGA’da olup      olmadığına bakar. Eğer burada yoksa ilgili veri dosyasından verileri alıp      SGA’ya getirir.</li>
<li>Sunucu işlemleri komutun gereklerine göre SGA’daki verileri      değiştirir. DBWn değiştirilmiş veri bloklarını gerekli olduğu zaman kalıcı      olarak diske kaydeder. SQL komutu onaylandığı için LGWR işlemi yapılan SQL      işlemini redo log dosyalarına kaydeder.</li>
</ol>
<ol>
<li>Eğer SQL komutunun çalıştırılması başarılı olduysa sunucu işlemi ağ üzerinden istemcideki uygulamaya mesaj gönderir. Eğer başarılı olmadıysa uygun hata mesajını gönderir.</li>
</ol>
<ol>
<li>Tüm bu işlemler yapılırken veritabanı sunucusu diğer      kullanıcıların aynı ya da farklı veriler üzerindeki işlemlerini de      yürütür. Bu işlemlerin yapılabilmesi       ve performansın artırılması için örneğimiz içerisinde anlatılmayan      başka arka plan işlemleride gerçekleştirilir.</li>
</ol>
<h2>Veri Tanımlama Dili Komutları</h2>
<p><strong> </strong>SQL’de veritabanı nesnelerini oluşturma, silme, yapısını değiştirme işlemleri için kullanılan komutlara veri tanımlama dili komutları denir. Bu komutlar “create”, “alter”, “drop”, “grant”, “revoke”, “analyze”, “audit”, “comment” komutlarıdır. Şimdi bu komutları kullanarak veritabanı nesneleri ile işlemler yapacağız.</p>
<h3>Veri Sözlüğü</h3>
<p><strong> </strong>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.</p>
<p>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:</p>
<ul>
<li>USER_xxx : Veritabanına o an bağlı olan kullanıcının sahip olduğu      nesneler ile ilgili görüntülerdir.</li>
<li>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.</li>
<li>DBA_xxx : DBA(veritabanı yöneticisi) veya DBA hakkına sahip      kullanıcıların görebileceği görüntülerdir.</li>
</ul>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="137" valign="top">Görüntü İsimleri</td>
<td width="402" valign="top">Açıklama</td>
</tr>
<tr>
<td width="137" valign="top">USER_TABLES</td>
<td width="402" valign="top">Kullanıcıların sahip olduğu tabloların yapısını   gösteren görüntüdür.</td>
</tr>
<tr>
<td width="137" valign="top">USER_SEQUENCES</td>
<td width="402" valign="top">Kullanıcının sahip olduğu sıralar hakkında bilgi   içeren görüntüdür.</td>
</tr>
<tr>
<td width="137" valign="top">USER_VİEWS</td>
<td width="402" valign="top">Kullanıcının sahip olduğu görüntüler hakkında   bilgi içeren görüntüdür.</td>
</tr>
<tr>
<td width="137" valign="top">ALL_OBJECTS</td>
<td width="402" valign="top">Kullanıcının erişebileceği bütün nesneler hakkında   bilgi içeren görüntüdür.</td>
</tr>
<tr>
<td width="137" valign="top">DBA_USERS</td>
<td width="402" valign="top">Veritabanındaki bütün kullanıcılar hakkında bilgi   içeren görüntüdür.</td>
</tr>
<tr>
<td width="137" valign="top">DBA_TABLESPACES</td>
<td width="402" valign="top">Veritabanındaki bütün tablo uzayları hakkında   bilgi içeren görüntüdür.</td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p>SCOTT kullanıcısının bütün nesnelerini görmesi</p>
<p>SELECT * FROM USER_OBJECTS</p>
<p>Bir kullanıcın kendine ait bütün tabloların adlarını listelemesi</p>
<p>SELECT TABLE_NAME FROM USER_TABLES</p>
<p>Bir kullanıcının tüm indeks bilgilerini listelemesi</p>
<p>SELECT INDEX_NAME,TABLE_NAME,TABLESPACE_NAME FROM ALL_INDEXES</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi-ders-3.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ORACLE  VERİTABANINA KUŞBAKIŞI</title>
		<link>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi.html</link>
		<comments>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi.html#comments</comments>
		<pubDate>Thu, 14 Jan 2010 17:32:08 +0000</pubDate>
		<dc:creator>hayrullah ayan</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[Hayrullah Ayan]]></category>
		<category><![CDATA[oracle dersleri]]></category>
		<category><![CDATA[oracle rdbms]]></category>
		<category><![CDATA[oracle ürünleri]]></category>
		<category><![CDATA[sql plus]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=5280</guid>
		<description><![CDATA[Bu dersleri Oracle veritabanına kuşbakışı bakmamızı sağlaması adına hazırladım.
 Bir çok arkadaşımızın Oracle ile tanışıklığı başlangıcında ençok problem yaşadığı nokta ingilizcesinin yetersiz olduğu idi.Bu derslerde nerdeyse tamamını türkçeleştirdim, fakat burda biraz basitleştirme  veya komik  ifadeler yer aldı. Örneğin tablespaces = tablo uzayları  ama tablespaces’i tablo uzayları olarak bilmek oracle ile ilerledikçe tablespaces’le karşılasınca bu ifadeyi [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>Bu dersleri Oracle veritabanına kuşbakışı bakmamızı sağlaması adına hazırladım.</em></strong></p>
<p><strong><em> Bir çok arkadaşımızın Oracle ile tanışıklığı başlangıcında ençok problem yaşadığı nokta ingilizcesinin yetersiz olduğu idi.Bu derslerde nerdeyse tamamını türkçeleştirdim, fakat burda biraz basitleştirme  veya komik  ifadeler yer aldı. Örneğin tablespaces = tablo uzayları  ama tablespaces’i tablo uzayları olarak bilmek oracle ile ilerledikçe tablespaces’le karşılasınca bu ifadeyi tanımama gibi  yeni problemlere yol açacaktı bu yüzden kimi yerlerde isimleri karışık verdim. 9. ve 10. dersleri hepimizin çok dikkat etmesi gereken bir konu olan  SQL Tuning’e ayırdım.  Faydalı oldumsa ne mutlu&#8230;</em></strong></p>
<p>İlişkisel Veritabanı Yönetim Sistemleri (Relational Database Management Systems &#8211; RDBMS) büyük miktarlardaki verilerin güvenli bir şekilde tutulabildiği, bilgilere hızlı erişim imkanlarının sağlandığı, bilgilerin bütünlük içerisinde tutulabildiği ve birden fazla kullanıcıya aynı anda bilgiye erişim imkanının sağlandığı programlardır. Oracle veritabanı da bir ilişkisel veri tabanı yönetim sistemidir.<span id="more-5280"></span></p>
<p>Oracle veritabanının özellikleri şunlardır:</p>
<ul>
<li>Büyük miktarda veri tutabilmekte ve verilerin      depolandığı alanları ayarlama imkanı vermektedir.</li>
<li>Aynı anda çok sayıda kullanıcıya verilerin      bütünlüğünü bozmadan hizmet verebilmektedir. Oracle 11g sürümü ile      birlikte on binlerce kullanıcıya hizmet verebilmektedir.</li>
<li>Günün 24 saati ve haftalar boyu hiç kapatılmadan      çalışabilmektedir.</li>
<li>İşletim sistemi, veri erişim dilleri ve ağ      iletişim protokolleri standartlarıyla uyumludur.</li>
<li>Yetkisiz erişimleri engelleme ve kontrol      edebilme imkanı sağlamaktadır.</li>
<li>Bütünlüğü veritabanı düzeyinde      sağlayabilmektedir, böylece daha az kod yazılmaktadır.</li>
<li>İstemci/Sunucu mimarisinin bütün avantajlarını      kullanabilmektedir.</li>
</ul>
<p>Oracle ile ilk defa karşılaşan kullanıcılar genellikle Delphi, Visual Basic gibi görsel programlama dillerine benzeyen uygulamalarla karşılaşmayı umarlar. Oysa ki yukarıda da belirttiğimiz gibi Oracle bir ilişkisel veritabanı yönetim sistemidir. Yani bir programlama dili değildir. Fakat Oracle tarafından geliştirilen ve Oracle’ın kendi uygulama geliştirme araçları içerisinde kullanılan bir programlama dili (oracle forms)  vardır. Oracle ürünleri genellikle büyük çaplı veri kontrolünü gerektiren uygulamalarda kullanılır. Öncelikle bir ağda Oracle veritabanı sadece sunucu olarak adlandırılan bilgisayara yüklenir. Bu sunucu Oracle’ın desteklediği herhangi bir işletim sistemiyle çalışıyor olabilir. Yani Oracle’ın faklı işletim sistemleri için farklı sürümleri vardır. Bu sunucu bilgisayara kurulan veritabanı üzerinde tablolar, indeksler, eşanlamlar,tablo uzayları ve ihtiyaç duyulan kayıtlı prosedürler oluşturulur. Bunlar kendi diliyle <img src='http://www.ceturk.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  dersin sonraki bölümlerinde anlatılmaktadır. Oracle’ın bu veritabanına erişerek uygulama programı geliştirmeye yarayan diğer ürünleri de istemci bilgisayarlara kurulur. Tabi sunucu bilgisayara da isteğe bağlı olarak bu ürünler kurulabilir. Şimdi Oracle ürünlerini daha ayrıntılı olarak inceleyelim.</p>
<h2>Oracle Ürünleri</h2>
<p>Aşağıda şu an kullanımı en güncel olan değişik Oracle ürünleri tanıtılımıştır.</p>
<h3>Oracle RDBMS</h3>
<p>Oracle ilişkisel veritabanı yönetim sistemi Oracle şirketinin ana ürünüdür. Bu ürünün şu an en yeni sürümü 11g’dir. Biz bu çalışmada  Oracle8i’den itibaren ele alacagız.</p>
<p><strong>Oracle Uygulama Geliştirme Araçları</strong><strong> </strong></p>
<p>Oracle’ın veritabanı uygulamaları geliştirmek için görsel ürünleri bu grupta yer alır. Oracle’ın program geliştirmek için kullanılan bu ürünlerinin eski adı Oracle Power Objects idi. Daha sonra Oracle Developer 2000 ve sonra da Oracle Developer 6 ürünleri geliştirildi. Developer 2000 ve Developer 6 içerisinde Form Builder, Report Builder, Graphics Builder, Procedure Builder ve Schema Builder ürünlerini içerir. Form Builder kullanıcıya sunulacak arayüzlerin geliştirildiği programdır. İşte bu uygulama görsel bir programlama dilinin uygulama geliştirme ortamına benzer. Report Builder ürünü veritabanından elde edilen bilgiler ile raporlar hazırlamaya yarar. Özellikle banka ve kamu kuruluşlarının ihtiyacı olan fatura, evrak gibi belgelerin hazırlanıp, çıktı alınması için geliştirilmiş bir programdır. Procedure Builder sürekli kullanılacak kodların prosedürler halinde oluşturulup, kütüphaneler olarak kaydedilmesi işlemine yarayan bir programdır. Schema Builder ise veritabanı nesnelerinin görsel olarak oluşturulabilmesi için geliştirilmiş bir uygulamadır. Burada tablo, görüntü, eşanlam oluşturma, tablolar arası ilişki kurma,tablo kısıtlamaları oluşturma işlemleri görsel olarak yapılabilir.</p>
<h3>SQL*Plus ve PL/SQL</h3>
<p>SQL*Plus, Oracle veritabanında sorgulama yapmak ve SQL komutlarını çalıştırmak için kullanılan bir araçtır. SQL*Plus’da SQL komutlarının yanısıra PL/SQL komutları da kullanılabilmektedir. Bu çalışmanın diğer bölümlerinde anlatılan SQL komutları SQL*Plus kullanılarak hazırlanmıştır.</p>
<p>PL/SQL (Procedural Language/SQL), yapısal dillere ait özelliklerin standart SQL’e eklenmesiyle ortaya çıkan Oracle’a has bir dildir. PL/SQL Oracle firmasının piyasaya sürdüğü her üründe önemli bir yere sahiptir. Kullanıcılar PL/SQL’i kullanarak programlarına bir çok yeni özellikler katmaktadırlar. Bunlar arasında;</p>
<ul>
<li>PL/SQL tabanlı kaydedilmiş yordamlar(stored      procedures) ve veritabanı tetiklemeleri(triggers) ile önemli iş      kurallarını programlamak</li>
<li>Oracle Developer ürünleri ile güçlü ve kolay      kullanılabilir görsel ortamlarla programları detaylandırmak ve daha rahat      kontrol etmek</li>
<li>Oracle tabanlı uygulamalarda      nesne-tabanlı(object-oriented) tasarımlar yapma Web sayfalarından Oracle      veritabanlarına link yapma<strong> </strong></li>
</ul>
<p>PL/SQL’in belki de en önemli özelliği istemci-sunucu ortamları tasarlama ile ağ üzerinde dağıtık işlemler yapma ve bir çok sorguyu çalıştırma imkanı sunmasıdır. PL/SQL dili Ada dilinden sonra tasarlanmıştır. PL/SQL’de en gelişmiş yordamsal dillerde olan veri tipleri, blok yapısı, şartlara bağlı ve bağlı olmayan kontrol cümleleri, bir çok döngü tipi, hata durumlarında kullanılacak yordamlar ve kullanıcı tarafından tanımlanabilecek nesneler yer almaktadır.</p>
<h3>Net8</h3>
<p><strong> </strong>Net8 Oracle’ın bir ağ ürünüdür. Farklı bilgisayarların veritabanına bağlantı kurması ve ve istemci-sunucu arasında veri alışverişinin sağlanabilmesi Net8’in ana görevidir. Net8 ağdaki her bilgisayara kurulur. Ağ bağlantısı sağlandığında NET8 istemci ile sunucu arasında bir veri taşıyıcısı gibi işlem görür.</p>
<p>Ağ üzerinde bir istemcinin sunucudaki veritabanına erişebilmesi için, sunucuda bir ağ servis adının(Net Service Name) ve bir dinleyicinin(LISTENER) oluşturulması gerekir. Oracle Enterprise Edition ile birlikte gelen Net8 Assistant ile bu gerçekleştirilebilir. Ağ servis adları, veritabanı gibi bir servisi ağda tanımlamak amacıyla basit bir yöntem olarak kullanılır. Bir kullanıcı ağ servis adını kullanarak bağlantısını şöyle sağlar:</p>
<p>Connect kullanıcı_adı/şifre@ağ_servis_adı</p>
<p>Aşağıda Ne8 Assistant görüntüsü verilmiştir. Verilen şekilde ağ erişimi oluşturmak için gereken işlemler oldukça basittir. Bir ağ servis adı oluşturmak için “Ağ Servis Adları” dizininin üzerine gelip, yandaki artı işaretini tıklamak gerekir. Bundan sonra bazı bilgiler girmemiz istenir. Önce kullancağımız ağ servis adı bilgisi girilir, sonra iletişimde kullanılacak TCP/IP, SPX gibi protokollerden uygun olanın seçilmesi işlemi tamamlanır. Bundan sonra ana bilgisayar adı ve port numarası girilir. Ana bilgisayar adı veritabanının yüklü olduğu bilgisayarın adıdır. Port numarası ise Oracle’ın veritabanları için kullandığı standart numara olarak 1521 girilir. Bu işlemden sonra veritabanın sürümü seçilir ve veritabanı oluşturulurken girilen SID adı bilgisi verilir. Girilecek tüm bilgiler bu kadardır. Erişimin sağlanıp sağlanmadığını anlamak için “Test” butonu ile bağlantı denemesi yapılır. Ağ servis adları TNSNAMES.ORA adlı dosyaya haydedilir. Bu dosyada yaptığımız bir kayıt şu şekilde yer alır.</p>
<p>OGR =</p>
<p>(DESCRIPTION =</p>
<p>(ADDRESS_LIST =</p>
<p>(ADDRESS = (PROTOCOL = TCP)(HOST = bavenoglu)(PORT = 1521))</p>
<p>)</p>
<p>(CONNECT_DATA =</p>
<p>(SERVICE_NAME = ogr)</p>
<p>)  )</p>
<p>Ağ erişimi dinleyici(LISTENER) adı verilen bir yardımcı programla sağlanır. Net8 Assistant içerisinde bir dinleyici oluşturulabilir. Bir istemci sunucuya bağlanmak istediğinde bu isteği dinleyici karşılar ve istemcinin konfigürasyon bilgileri ile kendi bilgilerini karşılaştırır eğer uygunsa bağlantı sağlanır. Dinleyicinin konfigürasyonu ile ilgili bilgiler LISTENER.ORA dosyasında saklanır.</p>
<h3>SQL*Net</h3>
<p>SQL*Net Net8’in yardımcı programıdır. Bir istemci bilgisayara Oracle Forms ürününün yüklendiğini düşünelim. Bunun için istemci bilgisayar SQL*Net ile oluşturulan veritabanı takma adını(alias) kullanır. Yukarıda Net8 konfigürasyonunun istemci bilgisayarlarda da yapılması gerektiğini söylemiştik. İşte bu konfigürasyon istemci bilgisayarlarda SQL*Net sayesinde yapılır. Burada veritabanına verilecek takma isim, protokol adı, ana bilgisayar adı(veritabanının bulunduğu) ve veritabanının SID olarak girilen ismi bilgileri girilerek düzenleme yapılır.</p>
<p><strong>Şimdi genel hatları ile Oracle8i Enterprise Edition’ı kurulumunu inceleyelim.</strong></p>
<h2>Gerekli Donanım</h2>
<p>Oracle8<em>i </em>Enterprise Edition CD’sinde üç farklı ürün yer almaktadır:</p>
<ul>
<li>Oracle8<em>i </em>Enterprise Edition (Server)</li>
<li>Oracle8<em>i</em> Client</li>
<li>Oracle Programmer</li>
</ul>
<h3>Oracle8<em>i</em> Enterprise Edition(Windows NT)</h3>
<p><strong> </strong></p>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td valign="bottom"><strong> </strong><strong>Yükleme   Türü</strong></td>
<td valign="bottom"><strong>Açıklama</strong></td>
</tr>
<tr>
<td valign="top">Typical</td>
<td valign="top">Tam anlamıyla bir veritabanı   kullanmak isteyenler için tavsiye edilen yükleme türüdür. Bir başlangıç   veritabanı, ağ servisleri, Oracle yardımcı ürünleri ve yardım dokümanları   yüklenir.720 MB yer kaplar. Pentium 133 ya da Pentium 166 işlemci ile   kurulabilir. Önerilen işlemci Pentium 200 dür. 96 MB RAM ile çalışabilir.   Tavsiye edilen bellek ise 128 MB ‘tır.</td>
</tr>
<tr>
<td valign="top">Minimal</td>
<td valign="top">Minimum veritabanı paketi   kullanmak isteyenler için önerilir. Bir başlangıç veritabanı, ağ servisleri   ve bazı yardımcı ürünleri içerir. 520 MB yer kaplar. Pentium 133 ya da   Pentium 166 işlemci ile kurulabilir. Önerilen işlemci Pentium 200 dür. 64 MB   RAM ile çalışabilir. Tavsiye edilen bellek ise 96 MB ‘tır.</td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h3>Oracle8<em>i</em> Client(Windows NT ve Windows  )</h3>
<p><strong> </strong></p>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td valign="bottom"><strong>Yükleme Türü</strong></td>
<td valign="bottom"><strong>Açıklama</strong></td>
</tr>
<tr>
<td valign="top">Typical</td>
<td valign="top">Veritabanı yöneticileri için   veritabanına bağlanma ve veritabanı yönetim işlerini gerçekleştirme   araçlarını yükler. 299 MB yer kaplar. Intel 80486 işlemci ile   çalıştırılabilir. Tavsiye edilen Pentium 133 ya da Pentium 166 dır. En az 32   MB RAM ile çalıştırılabilir. Önerilen 64 MB’tır.</td>
</tr>
</tbody>
</table>
<h3>Oracle Programmer(Windows NT ve Windows  )</h3>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<thead>
<tr>
<td valign="bottom"><strong>Yükleme Türü</strong></td>
<td valign="bottom"><strong>Açıklama</strong></td>
</tr>
<tr>
<td valign="top">Typical</td>
<td valign="top">Veritabanına erişebilen    geliştirme araçları ve ara yüzlerini yükler. Bu paket, ön    derleyicileri(precompilers), ağ servislerini ve yardım dokümanlarını    içerir. 267 MB yer kaplar. Intel 80486 işlemci ile çalıştırılabilir.    Tavsiye edilen Pentium 133 ya da Pentium 166 dır. En az 32 MB RAM ile    çalıştırılabilir. Önerilen 64 MB’tır.</td>
</tr>
</thead>
</table>
<h2>Oracle8i Enterprise Edition Kurulumu</h2>
<ol>
<li>Kuruluma başlamadan önce Windows NT sistemine “Administrator” olarak girin.</li>
</ol>
<ol>
<li>Eğer sistemde Oracle’ın daha önceki sürümleri      varsa StartàControl      PanelàServices      içerisinde tüm Oracle ile başlayan servisleri seçip, sağ tıklayın ve      açılan menüden “Stop” seçeneğini seçin.</li>
<li>CD-Rom’u takın ve otomatik olarak çalışmasını      bekleyin. Eğer çalışmazsa cd-rom sürücü dizinine geçip Setup.Exe dosyasını      çalıştırın.</li>
<li>Şimdi “Oracle Universal Installer“ olarak      adlandırılan ürün yükleme sihirbazının çalışmış olması gerekir. Bu ana      pencerede “Install/Deinstall Products” seçeneğini tıklayın.</li>
<li>İlk karşınıza gelen tanıtım penceresidir. Burada      daha önce yüklenmiş ürünlerin listesi görülebilir. Yeni yükleme için      “İleri” butonunu tıklayın.</li>
<li>“Dosya Yerleşimleri” penceresinde kaynak ve      hedef dizin ve dosya adları belirtilir. Kaynak dizin E:\STAGE\PRODUCTS.JAR      şeklinde otomatik olarak belirtilir. Bu dizin adı değiştirilmemelidir.</li>
<li>Hedef olarak bir Oracle giriş dizini adı ve yolu      girmeniz beklenir. Otomatik olarak giriş dizini adı için “OraHome81” ve      yolu içinde  “C:\Oracle\Ora81”      belirtilir. Bu alanlar değiştirilmeden “İleri” butonu tıklanabilir.</li>
</ol>
<ol>
<li>Ürün bilgileri listesinin yüklenmekte olduğunu belirten bir pencere geldikten sonra karşınıza “Yüklenebilecek Ürünler” penceresi gelir. Yukarıda da anlattığımız gibi burada üç ürün vardır. Oracle8i Enterprise Edition seçeneğini işaretleyerek “İleri” butonuna basın.</li>
</ol>
<ol>
<li>“Yükleme Türleri” penceresinde tipik, minimum ya      da özel seçeneklerinden biri seçilerek “İleri” butonuna basılır.</li>
<li>Eğer tipik yükleme, ya da özel yükleme      seçildiyse burada Oracle yardım dosyalarını diskten ya da CD-Rom’dan      çalıştırma seçeneklerinden birini seçmeniz beklenir. Eğer diskte yaklaşık      133MB boş yeriniz varsa diske yükleme seçeneğini seçebilirsiniz.</li>
<li>Bilgisayarınızda daha önceden yüklü bir Oracle      veritabanı varsa bu kısımda bunu güncellemek isteyip istemediğinizi soran      bir pencere gelir. “Migrate an Existing Database”      kutusunu işaretlerseniz yüklemeden hemen sonra “Oracle Data Migration      Assistant” programı çalışır ve eski veritabanınızı yeni sürüme terfi      ettirir.</li>
<li>“İleri” butonunu tıkladığınızda karşınıza “Database Identification” penceresi gelir.      Burada  “Global Database Name” ve “SID” alanlarını doldurmanız      istenir. Buraya vereceğiniz isim veritabanının adı olacaktır. Bu      alanlardan birini doldurduğunuzda diğeri de aynı değeri otomatik olarak      alır.</li>
</ol>
<ol>
<li>“İleri” butonunu tıkladığınızda genel ayarlar,      ürün dilleri, alan gereksinimleri ve yeni yüklenecek ürünleri kapsayan bir      liste gelir. Listede değişiklik yapılamaz. Sadece bildiri amaçlı bir      listedir.</li>
<li>“İleri” butonunu tıkladığınızda ürünler      yüklenmeye başlar. Oracle8i Enterprise Edition sürümünün tipik olarak      yüklenmesi minimum donanım ayarlarında yaklaşık yarım saat sürer.</li>
<li>Dosyaların kopyalanması bittikten sonra      “Konfigürasyon Penceresi” gelir.Veritabanının oluşturulması, başlatılması      ve ağ ayarlarının yapılması burada otomatik olarak yapılır. Veritabanı      oluşturma işlemleri bittikten sonra karşınıza giriş şifrelerinin ve      veritabanı ile ilgili bazı bilgilerin verildiği bir pencere gelir.      Buradaki şifreler daha sonra veritabanı yönetimi için kullanılacak      şifreler olduğundan, önemlidir.</li>
</ol>
<ol>
<li>Bu işlemler tamamlandıktan sonra “Universal      Installer” kapatılabilir.</li>
</ol>
<h2>Oracle8i Enterprise Edition Ürününü Kaldırma</h2>
<ol>
<li>Bu ürünü kaldırmadan önce StartàControl      PanelàServices      seçilerek çalışan tüm Oracle servisleri kapatılmalıdır.(“Oracle” kelimesi      ile başlayan tüm servisler)</li>
<li>“Start &gt; Programs &gt; Oracle Installation      Products &gt; Universal Installer” seçilerek yükleme asistanı      çalıştırılmalıdır.</li>
<li>Burada “Yüklü Ürünler” butonu tıklanır.</li>
<li>Kaldırmak istenilen ürünlerin solundaki kutular      tıklanarak boşaltılır ve “Kaldır” butonuna basılır.</li>
<li>Ekrana bu kaldırılacak ürünlerin listesi gelir      ve kaldırmak için son kez onay istenir.</li>
</ol>
<p>“Evet” butonuna tıklanırsa seçili ürünler kaldırılır. Sonra “Universal Installer” kapatılabilir</p>
<p>Hayrullah AYAN</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/oracle-veritabanina-kusbakisi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PL/SQL Karakter Fonksiyonlarının Yapılar üzerindeki Faydaları</title>
		<link>http://www.ceturk.com/veri-tabani/plsql-karakter-fonksiyonlarinin-yapilar-uzerindeki-faydalari.html</link>
		<comments>http://www.ceturk.com/veri-tabani/plsql-karakter-fonksiyonlarinin-yapilar-uzerindeki-faydalari.html#comments</comments>
		<pubDate>Sun, 10 Jan 2010 13:15:35 +0000</pubDate>
		<dc:creator>Olcay KÜK</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[karakter fonksiyonları]]></category>
		<category><![CDATA[Okcan Yasin Saygılı]]></category>
		<category><![CDATA[pl sql]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=5246</guid>
		<description><![CDATA[PL/SQL dilinde karakter fonksiyonlarının kullanılması oracle developer lar için kullanım kolaylıkları sağlamıştır.Bunların kullanılması database üzerindeki veri yığılmalarınında bir nebze de  olsa  önüne geçmiştir bu bakımdan  oluşturulan fonksiyonların kullanılması diğer database sistemlerine göre daha fazla kullanılması oracle database sistemlerinin yine kullanıcıların ne kadar derinlere  inmesine yardımcı olduğunu göstermektedir.
Aşağıdaki kısımda temel karakterler sıralanmaktadır.



Fonksiyon
Açıklama


ASCII
Girilen değerlerin ASCII sayısal değerini [...]]]></description>
			<content:encoded><![CDATA[<p>PL/SQL dilinde karakter fonksiyonlarının kullanılması oracle developer lar için kullanım kolaylıkları sağlamıştır.Bunların kullanılması database üzerindeki veri yığılmalarınında bir nebze de  olsa  önüne geçmiştir bu bakımdan  oluşturulan fonksiyonların kullanılması diğer database sistemlerine göre daha fazla kullanılması oracle database sistemlerinin yine kullanıcıların ne kadar derinlere  inmesine yardımcı olduğunu göstermektedir.<span id="more-5246"></span></p>
<p>Aşağıdaki kısımda temel karakterler sıralanmaktadır.</p>
<table border="1" cellspacing="0" cellpadding="0" width="609">
<tbody>
<tr>
<td width="96" valign="top"><strong>Fonksiyon</strong></td>
<td width="512" valign="top"><strong>Açıklama</strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>ASCII</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin ASCII sayısal değerini verir.</strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>CHR</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin sayısal değerlerini verir.</strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>CONCAT</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin birbirine bağlamasını sağlar.</strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>INITCAP</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin ilk harflerini büyütür.</strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>LENGTH</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin uzunluğunu verir.</strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>LENGTHB</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin uzunluğunu verir ama byte cinsinden.</strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>LOWER</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin tüm harflerini küçük harfe çevirir.</strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>LTRIM</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin solundaki boşlukları yok eder. </strong></td>
</tr>
<tr>
<td width="96" valign="top"><strong>SUBSTR</strong></td>
<td width="512" valign="top"><strong>Girilen değerlerin belirtilen kısmına göre iş yapar.</strong></td>
</tr>
</tbody>
</table>
<p>Bence karakter fonksiyonların arasında gerçekten yararlı olacağı daha doğrusu gerçekten kullanıcıya yardımcı olacak kısım nvl ve nvl2 kısmıdır bunlar fazla kod yazımamanıza resmen yardımcı olur.</p>
<p>NVL,NVL2 gibi karakter fonksiyonlarının kullanılmasıda oracle sistemlerine bir artı daha getirmiştir bunları da aşağı kısmdan örnek yazacağız fakat ilk önce nvl ve nvl2 yi şöyle üstünden geçmemizde yararvar.</p>
<p>NVL de girilecek değerlerin hangisi null sistem ilk önce bu değerleri bir kontrol edecek ondan sonra ona göre değer döndürmeye karar verecek.</p>
<p><strong>NVL([konulacak değer], [konulacak değer])</strong><strong></p>
<p></strong></p>
<p>NVL2 2 den fazla olan bir değer üzerin de girilecek değerlere bakıldğı zaman içerisinde null olan değerlere bakılmaktadır ve bu sırada hangisi değer verirse onu fonksiyonda döndürür.</p>
<p><strong>NVL2([konulacak değer], [konulacak değer], [konulacak değer])</strong></p>
<p>Aşağıda gerçek zamanlı bir örnek bulunmaktadır.</p>
<p><strong>IF alfa IS NULL</strong></p>
<p><strong>THEN</strong></p>
<p><strong>beta</strong></p>
<p><strong>THEN</strong></p>
<p><strong>Gama</strong></p>
<p><strong>END IF</strong></p>
<p>Aşağadaki gibi bir seçim yaptımız zaman.</p>
<p>Burda aşağıda null olan yere bir değer de girilselde sistem o değeri null olarak görecektir.</p>
<p><strong>SELECT nvl2(null,’ya’,’sin’)</strong></p>
<p><strong>FROM DUAL</strong></p>
<p><strong>/</strong></p>
<p>Çıkacak sonuç aşağadaki gibi olacaktır.</p>
<p><strong>NVL</strong></p>
<p><strong>&#8212;&#8211;</strong></p>
<p><strong>ya</strong></p>
<p><strong>NVL</strong></p>
<p><strong>&#8212;&#8211;</strong></p>
<p><strong>Sin</strong></p>
<p>Kaynakça: http://it.toolbox.com/</p>
<p>Okcan Yasin Saygılı</p>
<p>09.10.2010</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/plsql-karakter-fonksiyonlarinin-yapilar-uzerindeki-faydalari.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neden PL/SQL ?</title>
		<link>http://www.ceturk.com/veri-tabani/neden-plsql.html</link>
		<comments>http://www.ceturk.com/veri-tabani/neden-plsql.html#comments</comments>
		<pubDate>Fri, 08 Jan 2010 22:31:36 +0000</pubDate>
		<dc:creator>Olcay KÜK</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[Okcan Yasin Saygılı]]></category>
		<category><![CDATA[oracle performance]]></category>
		<category><![CDATA[pl/sql]]></category>
		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=5238</guid>
		<description><![CDATA[Her konudan olduğu gibi bu konuda da ezberin olmaması çok önemli çünkü normal şartlar altında bir database in sadece kendini kontrol edeceğini düşünürken, oracle da bu olay sadece bu kadarı ile kalmıyor işletim sisteminizi de iyi bilmeniz gerekiyor, bakıyorsunuz kod çalışıyor ama bu çalışması yetmiyor, bundan dolayı plsql konusunu tamimiyle bitirdikten performans(oracle performance tunning) konusu [...]]]></description>
			<content:encoded><![CDATA[<p>Her konudan olduğu gibi bu konuda da ezberin olmaması çok önemli çünkü normal şartlar altında bir database in sadece kendini kontrol edeceğini düşünürken, oracle da bu olay sadece bu kadarı ile kalmıyor işletim sisteminizi de iyi bilmeniz gerekiyor, bakıyorsunuz kod çalışıyor ama bu çalışması yetmiyor, bundan dolayı plsql konusunu tamimiyle bitirdikten performans(<em>oracle performance tunning</em>) konusu gözünüze batacak bu konular dallana dallana gidecek ama ilk önce pl/sql dilini öğrenmek ve ezberlememek çok önemli bir yerde bulunmaktadır.<span id="more-5238"></span></p>
<p>Bu konuda yani oracle sistemine nasıl başlanması gerektiğine dair çok sevdiğimiz Hasan Tonguç Yılmaz abimiz çok güzel bir yazsıda bulunmaktadır .(<a href="../veri-tabani/oracle-nasil-baslamali-devam.html">http://www.ceturk.com/veri-tabani/oracle-nasil-baslamali-devam.html</a>)</p>
<p>Bazen her şeyin bize yeteceğini zannederiz ama bu yargı genelde doğrudur fakat bu PL/SQL konusunda hayır… Bu dil yapı bakımında önceden söylediğimiz gibi ada diline benziyor olabilir fakat ne olursa olsun bir database engine’ninde nerdeyse yüzde yüz performans veren az da olsa açıklarının bulunduğu bir dildir.</p>
<p>Bu zamana kadar birçok dil yapısı incelemişizdir hepimiz, çoğu programcı SQL dili üzerinden bir kez de olsa geçmiştir ama bunun yetmemesi ve yetmeyişi birden fazla işlemin kısa sürede istenmesinden doğmuştur günümüzde ve bu yüzden database sisteminde oluşan bu kargaşayı önlemesi için çıkartılan ve şu ana kadar çıkarılmış en iyi dillerden biri olarak gösterilen pl/SQL için konuşuyoruz.</p>
<p>Bu kısımda PL/SQL dilinin neden önemli olduğunu sıralayacağız.</p>
<p>PL/SQL dili aslıda ada dilinde bulunan programlama yapıları ile SQL dilinin güçlerini birleştirmelerinden oluşmaktadır. Bu yapıların her sistem üzerinde çalışması gerçekten zordur fakat Oracle’ın arkasındaki desteğiyle şu an yukarı seviyelerde olmasını göstermiştir.</p>
<ol>
<li>Trigger      kullanımı: Birçok dilde Trigger yapısı olmaması ile beraber Trigger a bu      kadar destek veren başka bir dilin olmaması da gözlerden kaçmıyor. Bunlara      örnek olarak</li>
</ol>
<ul>
<li>BEFORE</li>
<li>AFTER</li>
<li>INSTEADOF</li>
<li>B-tree</li>
</ul>
<ol>
<li>İndex:      Oluşturulan indexlere tam destek vermesi. Bununla birlikte database      üzerinde kolaylık sağlaması. Örnek olarak</li>
</ol>
<ol>
<li>Tables:      Oracle database sistemleri gerçekten aşırı şekilde geniştir bu bakımdan      oracle size birden çok table yapısı sunar bunlar üzerinde yapılan şekillendirmeler      size ince ayarlara götürecek anahtar olacaktır.</li>
</ol>
<p>Genel olarak oracle database sistemlerinde oracle tablolarda olsun indexlerde olsun, trigger da olsun kullanıcıya giriş izni veriyor buda sistemlerde özgürlüğün çıkmasını sağlıyor, bu özgürlük sayesinde biryerden sonra sistemlerdeki kodun çalışması değil server ve sistemlerdeki işlemlerin ne kadar zamanda yapılmasının önemli olduğunu gösteriyor.</p>
<p>Bilişim çağında verilerin çalışması değil ne kadar iyi çalışması olması oracle developerları şu an terleten konular arasına girmiştir.</p>
<p>Okcan Yasin Saygılı</p>
<p>07.01.2010</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/neden-plsql.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PL/SQL İle ADA Dili İlişkisi ve PL/SQL Blok Yapısı</title>
		<link>http://www.ceturk.com/veri-tabani/plsql-ile-ada-dili-iliskisi-ve-plsql-blok-yapisi.html</link>
		<comments>http://www.ceturk.com/veri-tabani/plsql-ile-ada-dili-iliskisi-ve-plsql-blok-yapisi.html#comments</comments>
		<pubDate>Sun, 03 Jan 2010 19:18:52 +0000</pubDate>
		<dc:creator>Olcay KÜK</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[ada]]></category>
		<category><![CDATA[ada dili]]></category>
		<category><![CDATA[Okcan Yasin Saygılı]]></category>
		<category><![CDATA[pl sql]]></category>
		<category><![CDATA[pl/sql blok]]></category>
		<category><![CDATA[plsql blok yapısı]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=5228</guid>
		<description><![CDATA[PL/SQL dili Oracle veritabanları için oluşturulmuş bir veri tabanı dilidir.Genel olarak bakıldığı zaman oracle versiyon 7 den itibaren bu dil oracle sevenlerin hayatlarına girmiştir.
PL/SQL dili ADA dilinden esinlenilerek oluşturulmuş bir dildir bu bakımdan yapı ve syntax  ADA dilinden alınmıştır.Ada diline bakıldığında şu an oralce PL/SQL de kullanılan package,procedure,functions gibi yapıların ADA dilinde de mevcut olduğunu [...]]]></description>
			<content:encoded><![CDATA[<p>PL/SQL dili Oracle veritabanları için oluşturulmuş bir veri tabanı dilidir.Genel olarak bakıldığı zaman oracle versiyon 7 den itibaren bu dil oracle sevenlerin hayatlarına girmiştir.</p>
<p>PL/SQL dili ADA dilinden esinlenilerek oluşturulmuş bir dildir bu bakımdan yapı ve syntax  ADA dilinden alınmıştır.Ada diline bakıldığında şu an oralce PL/SQL de kullanılan package,procedure,functions gibi yapıların ADA dilinde de mevcut olduğunu görmekteyiz buda bize şunu göstermektedirki , biz plsql diline çok uzakta değilmişiz.Aşağı kısımda bir ADA dili ile ilgili bir örnek verilmektedir.</p>
<p><span id="more-5228"></span></p>
<pre class="brush:csharp">procedure Print (a: in out Integer) is

function Next (b: in Integer) return Integer is

begin

return b+ 1;

end Next;

begin

Ada.Text_IO.Put_Line (tutar: ', a);

a := Next (a);

end Print;

begin

while s &lt; Integer'Last loop

Print (s);

end loop;

end next;</pre>
<p>PL/SQL dilinin oluşturulmasında tabiki ADA dilinin kullanılması  yeterli olmamakla birlikte bu dil yapılarının sql ile olan uyumu bir o kadar önemlidir.PL/SQL dili sql tabanlı bir dil olmasında rağmen ADA dilinde aldığı bir çok özelliği ile çok derin bir yapı haline bürünmüştür.</p>
<p>PL/SQL dili ADA dilinde olduğu gibi kendiside blok yapısına sahiptir bu bakımdan dili kullanırken yapıda birçok içeriğide görmemiz mümkündür yapı aralıkları genelde başta ve sonunda her dilde olduğu gibi bu dilde belirtilmektedir.Aşağıdaki kısımda PL/SQL dilini blok yapısının nasıl bir şekillendirileceği gösterilmektedir.</p>
<pre class="brush:csharp">DECLARE

-- <em>Bu kısımda genelde verilerin tipleri belirlenmektedir</em>

BEGIN

-- <em>Bu kısımda veri tiplerinin işlemlerinin yapıldığı kısımdır</em><em> </em>

EXCEPTION

<em> </em>

<em> --Bu kısımda aksi duruma karşı olacak işlem için olan kısımdır</em>

END ;</pre>
<p>Bir çok veri tabanı sisteminde olduğu gibi bu sistemde de yapı her zaman önem kazanmaktadır bu bakımdan yapı işlemleri birinci sırada yapı da olacak verilerin tanımlanması ikinci sırada belirtilen işlemlerin yapılması son sırada ise  ikinci sistemde her an olası bir hataya karşı olacak işlem için bulunmaktadır PL/SQL dilinde.</p>
<p><strong>Okcan Yasin Saygılı</strong></p>
<p>02.01.2010</p>
<p><em>Kaynak: <a href="http://en.wikipedia.org/wiki/Ada_%28programming_language%29">http://en.wikipedia.org/wiki/Ada_(programming_language)</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/plsql-ile-ada-dili-iliskisi-ve-plsql-blok-yapisi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bank Asya&#8217;da Kullanılan Veritabanı Sistemleri</title>
		<link>http://www.ceturk.com/veri-tabani/bank-asyada-kullanilan-veritabani-sistemleri.html</link>
		<comments>http://www.ceturk.com/veri-tabani/bank-asyada-kullanilan-veritabani-sistemleri.html#comments</comments>
		<pubDate>Tue, 08 Dec 2009 14:35:17 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[CETURK TV]]></category>
		<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Röportajlar]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[Bank Asya]]></category>
		<category><![CDATA[Gökhan Karagözlü]]></category>
		<category><![CDATA[Gökhan Karagözlü ile Röportaj]]></category>
		<category><![CDATA[veritabanı]]></category>
		<category><![CDATA[Veritabanı Sistemleri]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=1768</guid>
		<description><![CDATA[Bank Asya Veritabanı Yöneticilerinden Gökhan Karagözlü Bank Asya&#8217;da kullanılan veritabanı sistemleri ile ilgili bilgi veriyor. 

					  
						
										        
								var flashvars = {
									plugins: 'rateit-1',
logo: 'http://www.ceturk.com/wp-content/plugins/proplayer/players/watermark.png',
mute: 'false',
									file: 'http://www.ceturk.com/wp-content/plugins/proplayer/playlist-controller.php?pp_playlist_id=1768-0&#038;sid=1283768921',
									enablejs: 'true',
									javascriptid: '1768-0',
									backcolor: '111111',
									frontcolor: 'cccccc',
									lightcolor: '66cc00',
									skin: 'http://www.ceturk.com/wp-content/plugins/proplayer/players/skins/default.swf',
									stretching: 'fill',
									repeat: 'false',
									autostart: 'false'
								};
							
								var params = {
									wmode: 'transparent',
									allowfullscreen: 'true',
									allowscriptaccess: 'always',
									allownetworking: 'all'
								};

								var attributes = {
									id: 'obj-pro-player-1768-0',
									name: 'obj-pro-player-1768-0'
								};
							
								swfobject.embedSWF('http://www.ceturk.com/wp-content/plugins/proplayer/players/player.swf', 'pro-player-1768-0', [...]]]></description>
			<content:encoded><![CDATA[<p>Bank Asya Veritabanı Yöneticilerinden <a href="http://www.ceturk.com/etiket/gokhan-karagozlu">Gökhan Karagözlü</a> Bank Asya&#8217;da kullanılan veritabanı sistemleri ile ilgili bilgi veriyor. <span id="more-1768"></span><br />

					  <!-- ProPlayer by Isa Goksu -->
						<div name="mediaspace" id="mediaspace"><div class="pro-player-container" width="530px" height="253px"><div id="pro-player-1768-0"></div></div></div>
						<script type="text/javascript" charset="utf-8">				        
								var flashvars = {
									plugins: 'rateit-1',
logo: 'http://www.ceturk.com/wp-content/plugins/proplayer/players/watermark.png',
mute: 'false',
									file: 'http://www.ceturk.com/wp-content/plugins/proplayer/playlist-controller.php?pp_playlist_id=1768-0&sid=1283768921',
									enablejs: 'true',
									javascriptid: '1768-0',
									backcolor: '111111',
									frontcolor: 'cccccc',
									lightcolor: '66cc00',
									skin: 'http://www.ceturk.com/wp-content/plugins/proplayer/players/skins/default.swf',
									stretching: 'fill',
									repeat: 'false',
									autostart: 'false'
								};
							
								var params = {
									wmode: 'transparent',
									allowfullscreen: 'true',
									allowscriptaccess: 'always',
									allownetworking: 'all'
								};

								var attributes = {
									id: 'obj-pro-player-1768-0',
									name: 'obj-pro-player-1768-0'
								};
							
								swfobject.embedSWF('http://www.ceturk.com/wp-content/plugins/proplayer/players/player.swf', 'pro-player-1768-0', '530', '253', '9.0.0', false, flashvars, params, attributes);
						</script>						
					
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/veri-tabani/bank-asyada-kullanilan-veritabani-sistemleri.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.ceturk.com/ceturktv/roportaj/GokhanKaragozlu/BankasyadaVeritabaniSistemleri.flv" length="5588701" type="video/x-flv" />
		</item>
	</channel>
</rss>
