film indir
Ocak
4th 2008
SQL DMO(Sql Distributed Management Objects) İşlemeleri

Posted under Programlama

Bugünkü makalemizde, Sql Distributed Management Objects (SQL Dağıtık Yönetim Nesneleri) kütüphanesini incelemeye çalışacağız. SQL_DMO kütüphanesi bir COM uygulaması olup, SQL sunucusu ile birlikte sisteme kurulmaktadır. Bu kütüphanedeki sınıflar yardımıyla, var olan bir sql sunucusu üzerinde yönetimsel işlemler gerçekleştirebiliriz. Örneğin, kullanıcı tanımlayabilir, yeni bir veritabanı yaratabilir bu veritabanına ait tablolar oluşturabilir, var olan bir veritabanı için yedekleme işlemleri gerçekleştirebilir, yedeklenmiş veritabanlarını geri yükleyebilir ve bunlar gibi pek çok yönetsel işlemi gerçekleştirebiliriz.

Uygulamalarımızda bu tip işlemleri kodlayabilmek için, Microsoft SQL Distributin Control�un projemize referans edilmesi gerekmektedir. Bir uygulamaya bunu referans etmek için VS.NET ortamında, Add Reference kısmında, COM nesneleri altında Microsoft SQL Distribution Control 8.0 seçilmelidir. Aşağıdaki şekilde bunun nasıl yapıldığını görebilirsiniz.
Continue Reading »

No Comments »

Ocak
4th 2008
ADO.NET ile Transaction Yönetimi

Posted under Programlama

Bu makalemizde sizlere veritabanı programcılığında ve özellikle de çok katlı mimaride çok önemli bir yere sahip olan Transaction�lar hakkında bilgi vermeye çalışacağım. Her zaman olduğu gibi konuyu iyi anlayabilmek için bir de örnek uygulamamız olacak.

Öncelikle Transaction nedir , ne işe yarar bunlardan bahsedelim. Çoğu zaman programlarımızda ardı arkasına veritabanı işlemleri uygulatırız. Örneğin, bir veritabanındaki bir tablodan kayıt silerken, aynı olayın sonucunda başka bir ilişkli tabloya silinen bu verileri ekleyebilir veya güncelleyebiliriz. Hatta bu işlemin arkasından da silinen kayıtların bulunduğu tablo ile ilişkili başka tablolaradan da aynı verileri sildiğimiz işlemleri başlatabiliriz. Dikkat edicek olursanız burada birbirleriyle ilintili ve ardışık işlemlerden söz ediyoruz.

Farzedelim ki , üzerinde çalıştığımız bu tablolara farklı veritabanı sunucularında bulunsun. Örneğin, birisi Adana�da diğeri Arnavutluk�ta ortağı olduğumuz şirketin sunucularında. Hatta bir diğeride Kazakistandaki ortağımızın bir kaç sunucusunda bulunuyor olsun. E hadi bir tanede bizim sunucumuzda farklı bir veya bir kaç tablo olsun. Şimdi düşünün ki, biz Kazakistan� a sattığımız malların bilgisini , Arnavutluk� taki ortağımızın sunucularınada bildiriyoruz. Stoğumuzda bulunan mallarda 1000 adet televizyonu Kazakistana göndermek amacıyla ihraç birimimize rapor ediyoruz. İhraç birimi ilgili işlemleri yaptıktan sonra, Kazakistandaki sunuculardan gelen ödeme bilgisini alıyor. Sonra ise stok tan� 1000 televizyonu düşüyor , muhasebe kayıtlarını güncelliyor, Kazakistan� daki sunucularda stok artışını ve hesap eksilişlerini bildiriyor. Daha sonra ise , Arnavutluk� taki sunuculara stok artışı ve stok azalışlarını ve muhasebe hareketlerini belirtiyor. Senaryo bu ya. Çok hızlı bir teknolojik alt yapıya sahip olduğumuzu ve bankalardan şirkete olan para akışlarının anında görülüp , tablolara yansıtılabildiğini ve bu sayede de stoklardaki hareketlerin ve şirket muhasebe kayıtlarındaki hareketlerin hemen gerçekleşebileceğini yani mümkün olduğunu düşünelim. (Değerli okuyucalarım biliyorum ki uzun bir cümle oldu ama umarım gelmek istediğim noktayı anlamaya başlamışsınızdır)

Continue Reading »

No Comments »

Ocak
4th 2008
ADO.NET için İlişkisel Veritabanı Tasarımı

Posted under Programlama

Günümüzde hemen hemen her web tabanlı hem de büyük çaplı kurumsal uygulamlarda verilerin işlenmesi gerekiyor. Verileri bir veritabanında saklamak ve bunları programlama dilleri ile işlemek için uyugulama geliştirme ara birimleri (API) kullanılır.

Microsoft Windows ortamında geçtiğimiz üç beş yılda ençok kullanılan uygulama geliştirme arabirimi olarak ADO (Activex Data Object) öne çıkmıştır. .NET ile ise ADO.NET’i kullacağız. ADO.NET ADO’ya nazaran birçok yenilik ve kolaylıklar getirmiştir. Bunları ilerleyen yazılarımızda detaylı olarak inceleyeceğiz.

Veritabanları ve İlişkisel Veritabanı Modeli

Veritabanı Nedir?

Veritabanı verilerimizi düzenli bir biçimde tablolar halinde saklamamızı sağlayan programlardır. Veritabanları ile ayrıca verilerimizi güvenli ve hızlı bir biçimde işlememize yardımcı olurlar. Milyonlarca kayıtı aynı anda içinde barındıran ve bir çok gelişmiş araçlar sunan veri tabanı programlarına, veri tabanı yönetim sistemleri denir. Mesela MS Access bir veritabanı programıdır. Diğer taraftan MS SQL Server, Oracle, Sysbase, DB2 ve İnformix tam birer veritabanı yönetim sistemleridir. Veritabanı yönetim sistemleri tam donanımlı olarak veriler üzerinde her türlü işlemi kolayca ve verilerin güvenliğini sağlayarak çalışmamıza izin verirler.

Veritabanı Modelleri

Veritabanı programları günümüze gelene kadar veriler üzerinde çalışırken bir çok veri modellerini kullanmışlardır. Bunların en ünlüleri; Hiyerarşik, Ağ, İlişkisel ve Nesne Yönelimli veri modelleridir. İsterseniz bu veri modellerine kısaca bir göz atalım:

  • Hiyerarşik Veri Modeli: Bu modelde veriler ağaç yapısına benzer bir biçimde modellenir. En üste kök ve kökün dalları bulunur. Ayrıca her dalın alt dalı sayesinde dallanma ve çeşitlilik artar. Bu modelde her bir alt dalın sadece bir tane noktadan bağlanma şartı bu modelin en büyük kısıtlamalarından biridir. Hiyerarşik veri modeli 1960 ve 1970 yılları arasında popüler olan bir modeldi.
  • Ağ Veri Modeli: Ağ veri modeli 1970′li yıların başında geliştirilmiştir. Bir verinin doğası gereği birden çok veri ile ilişkisinin olmasından dolayı hızlıca kabul görmüştür. Bu modelde verilerin birrinie ağ şeklinde bağlandığı varsayılır.
  • İlişkisel Veri Modeli: Şu anda kullanılan veri tabanlarının çoğu ilişkisel veri modeline daha çok destek verirler. Bu modelde alakalı veriler tablolar içinde saklanır. Ayrıca tablolar arasında değişik türde ilişki kurulur. İlişkiler kurulurken birincil anahtar (Primary key) ve yabancı anahtarlar (Foreign Key) kullanılır. Anahtar alanlar sayesinde indeksleme (indexing) yapma olanığı sunan ilişkisel veri tabanlarında erişim ve işlemler daha hızlı yapılabilir.
  • Nesne Yönelimi Veri Modeli: Diğerlerinden daha sonra ortaya atılan ve karmaşık uygulamarda başarısını kanıtlamış nesne yönelimli programlamaya dayanan veri modelidir. Bu modelin öngörüsü giderek çözülmesi daha zor hale gelen programlama problemlerini çözen nesne yönelimli modelin veri modelleme de etkili olacağıdır.

İlişkisel Veritabanı Tasarımı Örneği

İlişkisel veri tabanı tasarımı ile verilerimizin duplikasyonunu (duplication) önleme şansımız vardır. Bu sayede veritabanımızı yönetmek daha kolay olduğu gibi verilerimizin saklama aygıtlarında kapladıkları alanlar da daha küçük olur. Dahası bu sayede veritabanı ile olan işlemerimiz de daha hızlı gerçekleşir ki veritabanı işlemleri genelde diğer işlemlere göre masraflı işlemler olarak bilinirler.

İlişkisel veritabanlarında verilerin tablolar içinde saklandıklarını öğrenmiştik. Tablolarda her bir satır bir kayıtı tutar. Bir kayıtta genelde birden fazla alan olur.

Şekil 1.’deki Telefon_Defteri tablosunda alalar: id, isim, soyisim, alan_kodu ve telf_no’dur. Aynı zamanda tabloda 5 tane kayıt olduğu görülmektedir.

İlişkisel veritabanı tasarımı üniversitelerde ayrı bir ders olarak okutulduğu gibi profesyonel kurslarda birlerce dolarlarla verilen bir eğitimdir. Biz burada hızlıca ilişkisel veri tasarımının nasıl yapılacağını canlı bir örnek üzerinde görerek olayın özünü öğreneceğiz.

Bir web uygulaması için anket modülü geliştireceğimizi varsayılm. Ankatemizde anket sorusunu, anketin seçeneklerini, ve hangi anketin hangi seçeceğine hangi kayıtlı kullanıcının cevap verdiğini tutmamız gerekiyor. Eğer tüm veritabanını tek bir tabloda toplarsak aşağıdaki gibi bir tablo oluştururduk.


Şekil 2′de yeralan tablo ile en basit veritabanı tasarım yapılmış ver veriler ile doldurulmuştur. Yalnız yukarıdaki tablo ilişkisel veri tasarımı kurallarına göre tasarlanmadığı ortadadır. Her kullanılan oy için anket_sorusu alanında bulunan veri tekrar tekrar veri tabanında depolanır. secenek_1, secenek_2, secenek_3, secenek_4 ve secenek_5, alanları da kendileri için kullanılan her bir oy için depolanıyor. Bu durumda veritabanımız kısa sürede şişek, gereksiz yere aynı verileri depolamak pek anlamdı olmaz. Bir de elimizdeki veritabanı tek bir tablodan oluşan küçük bir model! Peki biz daha karmaşık bir veritabanını bu biçimde depolarsak hem saklama alanı hem de işlem hızı konularında israf etmiş olmazmıyız?

Bu durumda çözüm tabiki ilişkisel veri tabanı modeline göre veri tabanımızı tasarlamamızdır. Bu tasarımda önemli noktalardan biri tabloları olabildiğince çok sayıda alttabloya bölmek olacaktır. Şekil 2′deki tabloya tekrar bir bakalım. Bu tabloda solda bulunan anket_soru alanı her kullanılan oy için tekrar ediyor. Bizim ise aslında sedece her anket için sadece bir tane anket_soru alanına ihitiyacamız var. Aynı şekilde seçenekler her oylandıklarında tekrar tekrar veritabanına yazılır. Yine bizim her seçenek için sadece birer tane seçenek alanına ihtiyacımız olduğu açıktır.

Sonuç olarak Şekil 2′deki tablomuzu üç farklı tabloya bölebiliriz. Bu tablolar aşağıda Şekil 3′de verilmiştir:

Şekil 3′te gördüğümüz gibi Anket tablosunda iki alan bulunmaktadır. Birincisi, anket_id, her anketin özel numarasını içerir. Bu numara her anket için farklıdır. Diğeri anket_soru alanıdır. Bu alanda ise anaketin sorusu yeralıyor.

İkinci tablomuz olan secenekler tablosunda en soldaki secenek_id alanı tamsayı değerlerini depolar. Bu sayılar her seçenek için farklıdır ve seçeneğe özeldir. Tıpki Anket tablomuzda yeralan anket_id alanı gibi. Ortadaki alan ise, secenek_metni, seçeneklerin içerikleridir. Burada dikkat edilmesi gereken noktalardan birisi secenekler tablosundaki anket_id alanıdır. Bu alan hangi seçeneğin hangi ankete ait olduğunu gösterrir.

Son tablomuz olan oylar tablosunda yine 3 tane alan vardır. Bunlardan ilki secenek_id alanı her kullanılan oyun hangi seçeneğin seçildiğidir. user_id, alanı ise kullanılan oyu hangi kullanıcının oyladığını göserir. Son olarak en sağdaki OyId alanının neden orda bulduğunu birazdan öğreneceğiz.
Dikkat ederseniz Anket ve secenekler tablolarının sol taraflarında bulunan artı (+) işaretleri vardır. Bunun sebebi tablolar arasında kurduğumuz ilişkilerdir.

Anket uygulaması için hazırladığımız veritabanımızın ilişkilerini MS Access içerisinde şu şekilde görünür:

Yukarıdaki şekil 4′te iki farklı ilişki kurlumuştur. Anket tablosunun anket_id alanı ile secenekler tablosunun anket_id arasındaki birinci ilişkimizdir. Diğeri secenekler tablosunun secenek_id alanı ile oylar tablosunun yine secenek_id alanları arasındadır. Genelde ilişkili olacak alanların isimleri aynı olur. Ama bu zorunda bir kural değildir. Alan isimlerinin aynı olması durumunda programlama ve veritabınını yönetmek daha kolay olur.

No Comments »

Aralık
11th 2007
ADO.NET ile Veritabanlarına Bağlanma

Posted under C# (csharp)

 Şimdiye kadar geliştirilen profesyonel yazılımların hemen hepsinde bir şekilde dosyalarda veya bir veritabanında saklanmış veriye erişim ve bu veriyi kullanmak gerekmiştir. Microsoft.NET ile geliştirilen uygulamarın büyük bir kısmında veriye ihityacımızın olacağını da tartışmak pek mümkün değildir. Bu bağlamda, geleceğin programlama platformu olan Microsoft.NET verilere erişimi ve bu veriler üzerinde işlemler yapmayı çok kolay hale getiren ADO.NET’i de geliştirmiştir. ADO.NET’e giriş amaçlı olarak şu makalemizi okumanızı tavsiye ederim.

ADO.NET ile SQL Server’a SqlClient sınıfı ile veya OleDb provider ile bağlanabiliriz. Access veritabanımıza ise hızlı bir biçimde bağlanmak için yine OleDb provider’ı kullanmamız mümkün. Bunların yanında .NET XLM verilerine de erişim konusunda geniş sınıf kütüphanlerine sahip olduğunu belirtmekte yarar vardır. ADO.NET ile çalışmaya başlamadan önce isterseniz veritabanlarımıza nasıl bağlanırız bir görelim. Böylelikle verilere değişik şekilde ulaşmayı başararak programlarımızda daha esnek ve etkili olabiliriz.
Continue Reading »

No Comments »

Aralık
11th 2007
ADO.NET temelleri ve yenilikler

Posted under PHP

 Bu makalemizde dotNET platformunun en önemli yeniliklerinde olan veriye ulaşım tekniklerinden bahsedeceğiz. Bildiğiniz gibi Microsoft firmasının veritabanı erişim sınıflarının genel adı ADO idi. ActiveX teknolojisi ile geliştirilmiş olan ADO sınıflar topluluğu local yada uzaktaki makinalarda bulunan verleri erişmemizi sağlıyordu. ADO.NET ile değişmeyen tek felsefe veriye erişim dersek doğru söylemiş oluruz, zira ADO.NET ‘in klasik ADO’dan çok büyük farklılıkları vardır. Bu farkılılıklardan yeri geldikçe bahsedeceğiz. Makalenin ilerleyen bölümlerinde ADO.NET’in en büyük yeniliklerinden olan offline çalışma ve programlama yoluyla tablolar arasında ilişki kurmanın ne demek olduğunu göreceğiz.
Continue Reading »

No Comments »

yeliiniz Silinmitir.Ltfen Sayfanzdan Kodu Kaldrnz. Sayfa Bloggoayrılık yazılarıoyunlarkurye web tasarımı broşürlük dizi izle dizi izleKombi Tesisat Radyo DinleChat paysafe paysafe kartSohbet arkadaş travestitravesti travesti travesti Film izle Sicak Videolar Porno izle film izle e-okul arog Ask-i Memnu Sehitler Olmez sohbet Chat K�zlarla Sohbet sohbet chat kale kapi mirc Bedava Program Yukle Turkce Program Indir Celik Konstr�ksiyon evden eve nakliyat Toplist