Doldurulmayan Alana Default Değer Verme

27 Haziran 2007

Veri tabanımızda boş geçilmesini istemedeğiniz bir alanınız varsa, ve boş geçildiği taktirde hata vermek yerine default bir değer atanmasını istiyorsanız aşağıdaki kod işinize yarayacaktır :)


Yukarıdaki koda göre Fax colonu boş geçilemez olmalı. Fakat faxı olmayabilir. Koda göre Faxı olmayanların yerine (orası boş bırakılırsa) default değer olarak tanımlanmış - (eksi) yazılıyor

SQL Editörlerinde Intellisense

26 Haziran 2007



Database uygulaması geliştiren arkadaşların en büyük sıkıntılarından biri SQL editörlerinde intellisense olmayışı. Sadece bu sebepten bir sürü zaman kaybedilip, enerjimizin bölündüğünü farketmişizdir. Bu yaraya merhem olabilmesi için iki program önereceğim.

1-SoftTree SQL Assistant:

Bu programı Oracle, SQL Server, DB2 ve MySQL de kullanabiliyorsunuz.
http://www.softtreetech.com/isql.htm


2-SQL Prompt :

SQL Prompt, Microsoft Query Analyzer ve SQL Server 2005 Management Studio ile çalışıyor.
http://www.red-gate.com/products/SQL_Prompt/index.htm

Normalizasyon

21 Haziran 2007

Normalizasyon nedir? Ne işe yarar?

Merhaba arkadaşlar bu yazımda veri tabanı tasarımında önemli bir yeri olan
normalizasyonu konu alacağım.

Konu başlığı ile ilgili derlediğim bilgileri sizinle paylaşacağım. Öncelikle bir
sözlük araştırmasında aşağıdaki tanımlara ulaştım;


Normalizasyon nedir?

  • Tane küçültme, homojen mikro yapı elde etme.

  • Modelin tamamını değerlendirerek, kararlı(stable), iyi ilişkilendirilmiş
    ve niteliklerin dağılımı düzenlenmiş bir model oluşturma işlemidir.

  • Büyük tabloların küçük tablolara ayrıştırılması ve niteliklerin
    düzenlenmesidir.


Tanımlardan sonra asıl olarak ne işe yarar, mikro yapılar elde edeceğim de ne
olacak, benim projeme bir normalizasyonun faydası ne olacak, uygulamalarıma ne
gibi artılar katacak gibi sorulara cevap arayalım.


Normalizasyonun faydaları nelerdir?

  • Normalizasyon kuralları vardır ve uygun şekilde uygulanırsa, bir
    niteliğin birden fazla tabloda yer almasına gerek kalmaz.

    Önemli bir husus. Peki bilginin sadece bir yerde kaydının tutulmasının
    faydaları neler;

    • Bilgiyi güncellemek ve silmek kolaydır

    • Birli bir yerde saklanır, diğer tablolardan referans ile çağrılırsa,
      bilginin tekrar kaydedilmesi (duplicate record) önlenmiş olur

    • Bilginin tutarsızlığı(inconsistency of data) önlenmiş olur

  • Bir çok kayıt için genelde büyük tabloların tüm alanları kullanılmaz. Büyük tablolar, veritabanında gereksiz büyümeye yol açarlar.
    Gereksiz büyüme bir programın prestij kaynaklarından olan hızı müthiş azaltır.

    Programcı böyle bir sıkıntı ile karşılaşmak istemez
    Denormalize bir veritabanına göre daha iyi performansa sahiptir.


Normalizasyon nasıl yapılır? Kuralları nelerdir?


Normalizasyonun temel 5 sorusu vardır, normalize işlemi de bu cevapların
kurallarının uygulanması ile oluşur. Sorular şunlardır;

  1. Nitelik bir kez mi tekrar edecek?

  2. Bu nitelik birleşik eşsiz tanımlayıcının tümüne mi bağlı?

  3. Bu nitelik diğer niteliklerden bağımsız mı? Başka bir deyişle, bu
    nitelik, eşsiz tanımlayıcılar dışında başka bir niteliğe bağımlımı?

  4. Bu nitelik sadece birkaç kez tekrar edebilir mi?

  5. Bu varlık, en az üç eşsiz niteliğe sahip mi ve veri kaybetmeden ve veri
    tekrarına yol açmadan, bu eşsiz niteliklerin her biri için bir varlık
    oluşturabilir miyiz?


En çok kullanılan bu sorulardan üçüdür. İlker Köse Beyin bu başlıklar için
hazırladığı örnekleri yazmakta fayda görüyorum


  1. Nitelik bir kez mi tekrar edecek?

    Örnek: Personel tablosundaki ‘ADI’, ‘SOYADI’,
    ‘DOĞUM_TARIHI’ve ‘ADRESI’alanlarıbir defa yer alacaktır.









    Örnek: Yedek_Parca tablosundaki ‘RENK’özelliği, aynı koda sahip
    yedek parçalar için birden fazla olabilir, bu durumda RENK adında
    yeni bir tablo oluşturulmalı ve renk değeri oradan referans etmelidir.

  2. Bu nitelik birleşik eşsiz tanımlayıcının tümüne mi bağlı?


    Örnek: Üstteki Evlilik tablosundaki evlenme tarihi ve salon,

    sadece erkeğe ya da kadına değil; her ikisinin birleşimine bağlı

    bir değerdir. Oysa alttaki evlilik tablosundaki doğum tarihi ve

    saç rengi, sadece erkeğe yada kadına ait özelliklerdir.

    Bu özellikler, başka tablolarda tutulmalıdır.

  3. Bu nitelik diğer niteliklerden bağımsız mı? Başka bir deyişle, bu
    nitelik, eşsiz tanımlayıcılar dışında başka bir niteliğe bağımlımı?



    Örnek: Muayene tablosundaki Doktor_Diploma_No, muayene kodundan çok, doktora
    bağlı bir nitelik. Dolayısıyla başka bir tabloda (Doktorlar... gibi)
    yeralması doğru olacaktır.

Normalizsayonun bu kurallarına uyarak veritabanımızı daha etkin bir şekilde kullanmış olacağız.. Bol normalizasyonlu günler.. Hoşça bakın zatınıza.

Access Modifiers

12 Haziran 2007

Erişim denetleyicileri (Access Modifiers) program
içerisinde tanımlanan değişkenlere nasıl ulaşılabileceğini belirtir. Erişim
denetleyicilerini bir değişken, sınıf ya da yöntem deklere ederken mutlaka
kullanırız.

public

Bir üye public olarak tanımlandığında, kod içerisinde herhangi bir yerden
erişilebilir durumdadır.

protected

Protected üyeler, public ve private üyelerin bir birleşimi gibidir. Bir
sınıf içerisinde üyeyi protected olarak tanımladığınızda, bu sınıftan
türetilen sınıflar aynı üyeye erişebilir. Bu açıdan public üyelere benzer.
Ama bu sınıftan türetilmeyen başka bir sınıf protected üyeye erişemez. Bu
yönden de private üye gibi davranır.

Private


Private üyelere sadece kendi sınıfının diğer üyeleri tarafından
erişilebilir. Private erişim denetleyicileri varsayılan denetleyici tipidir.

internal

Internal erişim denetleyicisi birden fazla uygulamanız olduğunda oldukça
yararlıdır. Internal olarak tanımlanmış bir üye, aynı assembly içerisindeki
tüm dosyalar tarafından bilinir ama farklı assembly içerisindeki dosyalar
tarafından erişlemez. Diğer bir deyişle, internal üyeyi aynı program
içerisinde kullanabilirsiniz ama bu üyeye farklı bir program içerisinden
erişemezsiniz. Bir DLL hazırladınız. Bu DLL içerisinde bir değişkeni
internal olarak tanımladığınızda, istediğiniz kadar sınıf ekleyin, bu
sınıfların hepsi tarafından kullanılabilir. Ama bu DLL i başka bir uygulama
içerisinde kullanırsanız, DLL içerisinde internal olarak tanımlanan üyeleri,
diğer uygulama içerisinden göremezsiniz.

Static


Static üyeleri diğerlerinden ayıran fark, bu üyelere erişmek için sınıfın
örneklenmesinin gerekmemesidir. Doğrudan SinifAdi.StatikUyeAdi;şeklinde
erişilebilir. Hem yöntemler hem de değişkenler static olarak tanımlanabilir.static
olarak tanımlanan üyeler, sınıftan nesneler türetildikçe tekrar tekrar
türetilmezler. Bir sınıftan on tane nesne türetsek bile bu on nesne aynı
static üyeyi kullanır.

Const

Program içerisinde değeri kod tarafından kesinlikle değiştirilemeyecek
değişkenler için kullanılır. Bu değişkenlere ilk değerleri, değişken deklere
edilirken verilmelidir. const string EnBuyukTakim=”Fenerbahçe”;EnBuyuk
programın geri kalanında sadece Fenerbahçe değerini kullanabilir. Değeri
kesinlikle çalışma zamanında değişmez.

Readonly


Readonly değişkenler const değişkenlere benzer. Tek farkı ilk değerlerinin
çalışma zamanında atanabilir olmasıdır. Sınıf yapılandırıcısında çalışma
zamanında elde edilen değer readonly bir değişkene aktarılır ve bu değişken
programın geri kalanında değiştirilmeden kullanılabilir.

.NET ve MOBİL TEKNOLOJİLER SEMİNERİ


.NET ve MOBİL TEKNOLOJİLER SEMİNERİ

CETURK, Mayıs ayının konusuna uygun olarak .NET ve MOBİL TEKNOLOJİLER konulu bir seminer gerçekleştiriyor. Katılımın ücretsiz olduğu seminer, 16 Haziran Cumartesi günü 13:00-15:00 saatleri arasında Microsoft Türkiye İstanbul ofisinde gerçekleştirilecektir.

Konuşmacı :Mobile Device MVP ERALP ERALT

Seminer Yeri :
Microsoft İstanbul Ofisi
Barbaros Plaza 145-C, Dikilitaş
34349 İstanbul

Kayıt olmak için : http://www.ceturk.com/etkinlikkayit.asp?id=26