<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Stored Procedure : Kullanmalı mı? Uzak mı Durmalı? yazısına yapılan yorumlar</title>
	<atom:link href="http://kaan.basesistem.com/Index.php?feed=rss2&#038;p=201" rel="self" type="application/rss+xml" />
	<link>http://kaan.basesistem.com/?p=201</link>
	<description>Teknoloji Başkadır.</description>
	<lastBuildDate>Fri, 03 Sep 2010 15:02:12 +0300</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Kaan Arslan tarafından</title>
		<link>http://kaan.basesistem.com/?p=201&#038;cpage=1#comment-1558</link>
		<dc:creator>Kaan Arslan</dc:creator>
		<pubDate>Tue, 05 Jan 2010 12:20:00 +0000</pubDate>
		<guid isPermaLink="false">http://kaan.basesistem.com/?p=201#comment-1558</guid>
		<description>&lt;a href=&quot;http://www.delphiturkiye.com/offline/19/7003.html&quot; rel=&quot;nofollow&quot;&gt;Stored procedurelerin avantaj ve dezavantajları&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p><a href="http://www.delphiturkiye.com/offline/19/7003.html" rel="nofollow">Stored procedurelerin avantaj ve dezavantajları</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Kaan Arslan tarafından</title>
		<link>http://kaan.basesistem.com/?p=201&#038;cpage=1#comment-1451</link>
		<dc:creator>Kaan Arslan</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:41:43 +0000</pubDate>
		<guid isPermaLink="false">http://kaan.basesistem.com/?p=201#comment-1451</guid>
		<description>&lt;p&gt;Cevap : 

Öncelikle izninle bu soruyu ve cevabı yazının altına yorum olarak  
ekleyeceğim.

Bir kere burada önemli olan business logic kavramı.  Biliyorsundur, business logic iş kuralları demek. Yani, bir işi yaparken  oluşan kurallar. Örneğin bir hastane uygulamasında hastayı kaydetmek için  belirli kuralların olması lazım. Örneğin 0-6 yaş arası bebek, 6-15 yaş arası  çocuk vs.

Bir stored procedure&#039;de (örneğin hasta kaydet) sql sorguları  içerisinde bu kontrolleri yaparsan iş kurallarını stored procedure tarafında  yapmış olursun. Normal bir veritabanı uygulamasında ise bu işlemin bir business logic layer&#039;da bulunması gerekir. (bkz  &lt;a href=&quot;http://www.google.com.tr/search?hl=tr&amp;rlz=1C1CHMB_trTR347TR347&amp;q=3+katmanl%C4%B1+mimari&amp;btnG=Ara&amp;meta=lr%3Dlang_tr&amp;aq=0&amp;oq=3+katmanl&quot; rel=&quot;nofollow&quot;&gt;http://www.google.com.tr/search?hl=tr&amp;rlz=1C1CHMB_trTR347TR347&amp;q=3+katmanl%C4%B1+mimari&amp;btnG=Ara&amp;meta=lr%3Dlang_tr&amp;aq=0&amp;oq=3+katmanl&lt;/a&gt;)

Örnek  iş kuralı içeren sql :

IF(@YAS &gt;= 0 AND @YAS&lt;= 6)
 SELECT  .......
ELSE IF (@YAS &gt;6 AND @YAS&lt;= 15)
 SELECT  ......
.....

Bu örnek çook basit bir örnektir, iş kuralları ve yazılan  sql tabi ki çok  daha karışık olabilir.

Benim savunduğum şeyse sadece  native sql sorgularının yani sadece CRUD işlemlerini (&lt;a href=&quot;http://www.itusozluk.com/goster.php/crud&quot; rel=&quot;nofollow&quot;&gt;http://www.itusozluk.com/goster.php/crud&lt;/a&gt;)  gerçekleştiren sql sorgularının stored procedure olarak yazılması idi.  Söylediğim kısaca, yukarıdaki örnekteki if kontrollerinin kod tarafında  yapılması, sadece select sorgularının sql tarafında bulunması. Bu sayede sql  sorgularını iş mantığından sıyırarak sorguların sadece CRUD işlemlerini  (yani salt veritabanına yazma, okuma silme gibi işlemler) gerçekleştirmesini  sağlarız. 

Her kodun yazılması gereken bir yer vardır, sql tarafında iş  kuralı 
çalıştırılması yazıda bahsettiğim nedenlerden dolayı pek güzel bir  şey 
değildir. Ona kalırsa bütün kodu button&#039;un altına yazıp geçebiliriz ama  bu da sakıncalıdır.

Bunların sakıncalı olması sebebiyle design  pattern  (&lt;a href=&quot;http://www.tasarimdesenleri.com/index.action&quot; rel=&quot;nofollow&quot;&gt;http://www.tasarimdesenleri.com/index.action&lt;/a&gt;)  denilen olgular  geliştirilmiştir.

İş kuralları ile ilgili daha fazla  bilgi için :

&lt;a href=&quot;http://en.wikipedia.org/wiki/Business_logic&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Business_logic&lt;/a&gt;
&lt;a href=&quot;http://www.chip.com.tr/blog/kadircamoglu/Yazilim-Gelistirme-ve-Analiz_876.html&quot; rel=&quot;nofollow&quot;&gt;http://www.chip.com.tr/blog/kadircamoglu/Yazilim-Gelistirme-ve-Analiz_876.html&lt;/a&gt;&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Cevap : </p>
<p>Öncelikle izninle bu soruyu ve cevabı yazının altına yorum olarak<br />
ekleyeceğim.</p>
<p>Bir kere burada önemli olan business logic kavramı.  Biliyorsundur, business logic iş kuralları demek. Yani, bir işi yaparken  oluşan kurallar. Örneğin bir hastane uygulamasında hastayı kaydetmek için  belirli kuralların olması lazım. Örneğin 0-6 yaş arası bebek, 6-15 yaş arası  çocuk vs.</p>
<p>Bir stored procedure&#8217;de (örneğin hasta kaydet) sql sorguları  içerisinde bu kontrolleri yaparsan iş kurallarını stored procedure tarafında  yapmış olursun. Normal bir veritabanı uygulamasında ise bu işlemin bir business logic layer&#8217;da bulunması gerekir. (bkz  <a href="http://www.google.com.tr/search?hl=tr&amp;rlz=1C1CHMB_trTR347TR347&amp;q=3+katmanl%C4%B1+mimari&amp;btnG=Ara&amp;meta=lr%3Dlang_tr&amp;aq=0&amp;oq=3+katmanl" rel="nofollow">http://www.google.com.tr/search?hl=tr&amp;rlz=1C1CHMB_trTR347TR347&amp;q=3+katmanl%C4%B1+mimari&amp;btnG=Ara&amp;meta=lr%3Dlang_tr&amp;aq=0&amp;oq=3+katmanl</a>)</p>
<p>Örnek  iş kuralı içeren sql :</p>
<p>IF(@YAS &gt;= 0 AND @YAS&lt;= 6)<br />
 SELECT  &#8230;&#8230;.<br />
ELSE IF (@YAS &gt;6 AND @YAS&lt;= 15)<br />
 SELECT  &#8230;&#8230;<br />
&#8230;..</p>
<p>Bu örnek çook basit bir örnektir, iş kuralları ve yazılan  sql tabi ki çok  daha karışık olabilir.</p>
<p>Benim savunduğum şeyse sadece  native sql sorgularının yani sadece CRUD işlemlerini (<a href="http://www.itusozluk.com/goster.php/crud" rel="nofollow">http://www.itusozluk.com/goster.php/crud</a>)  gerçekleştiren sql sorgularının stored procedure olarak yazılması idi.  Söylediğim kısaca, yukarıdaki örnekteki if kontrollerinin kod tarafında  yapılması, sadece select sorgularının sql tarafında bulunması. Bu sayede sql  sorgularını iş mantığından sıyırarak sorguların sadece CRUD işlemlerini  (yani salt veritabanına yazma, okuma silme gibi işlemler) gerçekleştirmesini  sağlarız. </p>
<p>Her kodun yazılması gereken bir yer vardır, sql tarafında iş  kuralı<br />
çalıştırılması yazıda bahsettiğim nedenlerden dolayı pek güzel bir  şey<br />
değildir. Ona kalırsa bütün kodu button&#8217;un altına yazıp geçebiliriz ama  bu da sakıncalıdır.</p>
<p>Bunların sakıncalı olması sebebiyle design  pattern  (<a href="http://www.tasarimdesenleri.com/index.action" rel="nofollow">http://www.tasarimdesenleri.com/index.action</a>)  denilen olgular  geliştirilmiştir.</p>
<p>İş kuralları ile ilgili daha fazla  bilgi için :</p>
<p><a href="http://en.wikipedia.org/wiki/Business_logic" rel="nofollow">http://en.wikipedia.org/wiki/Business_logic</a><br />
<a href="http://www.chip.com.tr/blog/kadircamoglu/Yazilim-Gelistirme-ve-Analiz_876.html" rel="nofollow">http://www.chip.com.tr/blog/kadircamoglu/Yazilim-Gelistirme-ve-Analiz_876.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Kaan Arslan tarafından</title>
		<link>http://kaan.basesistem.com/?p=201&#038;cpage=1#comment-1450</link>
		<dc:creator>Kaan Arslan</dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:39:35 +0000</pubDate>
		<guid isPermaLink="false">http://kaan.basesistem.com/?p=201#comment-1450</guid>
		<description>&lt;p&gt;Soru :&lt;/p&gt;
&lt;p&gt;Yani sql&#039;i uygulama kodlarinin oldugu tarafa gommekten  bahsediyorum. Bunları bir örnekle açıklayabilir misiniz?

Mesela sql tarafinda kayitlari islemekten kastin nedir  bussines logic nedir? Örnek bir şeyler verirsen kafamizda somut bisey olusur  ve sonra dusundugumuz seyin bussines logic olup olmadigina karar  verebiliriz.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Soru :</p>
<p>Yani sql&#8217;i uygulama kodlarinin oldugu tarafa gommekten  bahsediyorum. Bunları bir örnekle açıklayabilir misiniz?</p>
<p>Mesela sql tarafinda kayitlari islemekten kastin nedir  bussines logic nedir? Örnek bir şeyler verirsen kafamizda somut bisey olusur  ve sonra dusundugumuz seyin bussines logic olup olmadigina karar  verebiliriz.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kaan Arslan tarafından</title>
		<link>http://kaan.basesistem.com/?p=201&#038;cpage=1#comment-1220</link>
		<dc:creator>Kaan Arslan</dc:creator>
		<pubDate>Tue, 27 Oct 2009 10:56:58 +0000</pubDate>
		<guid isPermaLink="false">http://kaan.basesistem.com/?p=201#comment-1220</guid>
		<description>&lt;p&gt;28 Ekim 2008&#039;miş tarihi yukarı sol köşede yazıyor :) Şimdi benim söylemek istediğim kısaca şu, eğer illa sp kullanılacaksa (projenin durumuna bağlı bir karar bu) business logic işlemlerinin spler içerisinde olmaması gerekir. Bu durumda nesneye yönelik yapı ve katmanlı mimarinin bir olayı kalmayacaktır. Düz sql olarak kastettiğim şey, tamamen crud işlemleri. Bugün birçok RMDBS&#039;le beraber gelen sql yapısında (t-sql, pl/sql vs) neredeyse bir programlama dili kadar metod ve özellik var. Örneğin sql içerisinde döngü yapıp kayıtları işleyebilirsiniz. Ama bu işlemi burda yapmak yerine kod tarafında yapmak daha mantıklı.&lt;/p&gt;
&lt;p&gt;Aplikasyon kodlarının olduğu yere yazmakla neyi kastettiğinizi anlamadım ama?&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>28 Ekim 2008&#8242;miş tarihi yukarı sol köşede yazıyor <img src='http://kaan.basesistem.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Şimdi benim söylemek istediğim kısaca şu, eğer illa sp kullanılacaksa (projenin durumuna bağlı bir karar bu) business logic işlemlerinin spler içerisinde olmaması gerekir. Bu durumda nesneye yönelik yapı ve katmanlı mimarinin bir olayı kalmayacaktır. Düz sql olarak kastettiğim şey, tamamen crud işlemleri. Bugün birçok RMDBS&#8217;le beraber gelen sql yapısında (t-sql, pl/sql vs) neredeyse bir programlama dili kadar metod ve özellik var. Örneğin sql içerisinde döngü yapıp kayıtları işleyebilirsiniz. Ama bu işlemi burda yapmak yerine kod tarafında yapmak daha mantıklı.</p>
<p>Aplikasyon kodlarının olduğu yere yazmakla neyi kastettiğinizi anlamadım ama?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Hakkı tarafından</title>
		<link>http://kaan.basesistem.com/?p=201&#038;cpage=1#comment-1218</link>
		<dc:creator>Hakkı</dc:creator>
		<pubDate>Tue, 27 Oct 2009 07:11:21 +0000</pubDate>
		<guid isPermaLink="false">http://kaan.basesistem.com/?p=201#comment-1218</guid>
		<description>Bu yaziyi ne zaman yayinladınız bilemiyorum cünkü post tarihi falan yok:S
Neyse konuya gelelim. düz sql sorgulari dediginiz sey yani kodu aplikasyon kodlarinin oldugu yere mi yazmak? Bu konuyu biraz daha açabilir misiniz?</description>
		<content:encoded><![CDATA[<p>Bu yaziyi ne zaman yayinladınız bilemiyorum cünkü post tarihi falan yok:S<br />
Neyse konuya gelelim. düz sql sorgulari dediginiz sey yani kodu aplikasyon kodlarinin oldugu yere mi yazmak? Bu konuyu biraz daha açabilir misiniz?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Uğur ÇELENK tarafından</title>
		<link>http://kaan.basesistem.com/?p=201&#038;cpage=1#comment-73</link>
		<dc:creator>Uğur ÇELENK</dc:creator>
		<pubDate>Thu, 13 Nov 2008 21:20:59 +0000</pubDate>
		<guid isPermaLink="false">http://kaan.basesistem.com/?p=201#comment-73</guid>
		<description>SP kullanmaktaki en önemli amacım sql injectionı bir nebze önlemek. Biraz da takıntı, SQL kodları sql tarafında olmalı, ordan hemen görüp, düzenleyebilmeliyim, yoksa içime sinmiyor :)
1 satırlık bir select cümlesini için kalkıp sp oluşturmak hiç mantıklı gelmiyor bana, proje süresini de uzatıyor ama 1 den fazla sorgu veya koşul barındıran türdense mutlaka SP kullanıyorum.</description>
		<content:encoded><![CDATA[<p>SP kullanmaktaki en önemli amacım sql injectionı bir nebze önlemek. Biraz da takıntı, SQL kodları sql tarafında olmalı, ordan hemen görüp, düzenleyebilmeliyim, yoksa içime sinmiyor <img src='http://kaan.basesistem.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
1 satırlık bir select cümlesini için kalkıp sp oluşturmak hiç mantıklı gelmiyor bana, proje süresini de uzatıyor ama 1 den fazla sorgu veya koşul barındıran türdense mutlaka SP kullanıyorum.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
