• Bağış
  • Üçüncü normal şekil (Third Normal Form, 3NF)

    Yazan : Şadi Evren ŞEKER

    Bilgisayar bilimlerinde, veri tabanı teorisinde, bir veri tabanının daha verimli tutulması için geliştirilen şeklin ismidir. Bu şekil birinci ve ikinci normal şekillere göre daha başarılı çalışmayı hedefler.Unutulmamalıdır ki normal şekillerin hepsinde hedeflenen öncelikli performans, hafızanın daha verimli kullanılmasıdır. Hız için bazı durumlarda normal şekillerin dışına çıkılabilir.

    Üçüncü normal şeklin, üzerine inşa edildiği mantık aslında matematikteki işlemlerde bulunan geçişlilik özelliğidir. Bu terim veritabanı teorisinde fonksiyonel bağımlılık (Functional Dependency) olarak isimlendirilmektedir ve kast edilen fonksiyonel bağımlılıkların geçişliliğidir.

    Bu noktada hatırlanacağı üzere bir tablodaki aday anahtarın (candidate key) çıkarılması sırasında kritik olan husus, bu anahtarın tabloyu ifade etme kabiliyetidir. Şimdi aşağıdaki şekilde iki farklı anahtarın diğer anahtarları ifade etme kabiliyetlerini listeleyelim:

    X → Y

    Y → Z

    Yukarıdaki bu gösterimlerin anlamı, X anahtarının Y’yi ve Y anahtarının da Z’yi ifade edebildiğidir. Diğer bir terimle fonksiyonel olarak bağlı olması durumudur.

    Bu iki fonksiyonel bağlılık arasında geçişlilik özelliği (transitive property) kullanılırsa aslında

    X → Z

    Sonucuna da varılabilir.

    İşte tam bu noktada üçüncü normal şekil devreye girer ve der ki bir veri tabanının üçüncü normal şekilde olması için veritabanında bulunan anahtarların birbirine fonksiyonel olarak bağlı olması gerekir. Bu bağlılık ya doğrudan ya da geçişlilik özelliği sayesinde olmalıdır.

    Üçüncü normal şeklin diğer bir kuralı da bu şekilde olan veritabanlarının aynı zamanda ikinci normal şekilde (second normal form) olma zorunluluğudur.

    Kısaca 3. normal şekildeki bir veritabanı:

    1. Anahtarlarının birbirine fonksiyonel bağlı olduğu (doğrudan veya geçişlilik özelliği ile) ve Geçişli bağlılığın bulunmadı (bütün bağlantıların non-transitive olduğu tablolara bölündüğü)
    2. Veri tabanındaki ilişkilerin 2. normal şekilde olduğu

    veri tabanıdır diye tanımlanabilir.

    Örneğin aşağıdaki ikinci normal şekilde bulunan tabloyu ele alalım:

    Öğrenci Adı Doğum Tarihi Dersin Adı Dersin Kredisi
    Ali 1980 JAVA 3
    Rana 2007 Matematik 4
    Elif 1980 Biyoloji 3
    Veli 1979 JAVA 3

    Yukarıdaki bu tablo ikinci normal şekildedir ancak üçüncü normal şekle uymamaktadır. Öncelikle bu tabloda, bütün tabloyu ifade etmeye yarayan aday anahtar olarak “Öğrenci Adı” ve “Doğum Tarihi” kolonlarının birleşimini düşünebiliriz. Bu aday anahtar’a fonksiyonel olarak bağlı olan “Dersin Adı” ve  “Dersin Kredisi” kolonları da kendi aralarında fonksiyonel olarak bağlıdırlar. Yani tablomuzdaki fonksiyonel bağımlılıkları aşağıdaki şekilde ifade etmek mümkündür:

    {Öğrenci Adı, Doğum Tarihi} → Dersin Adı

    Dersin Adı → Dersin Kredisi

    Yukarıdaki bu bağımlılıklardan yola çıkarak {Öğrenci Adı, Doğum Tarihi} aday anahtarının Dersin kredisini ifade edebileceğini söyleyebiliriz. Ancak bu durumda Dersin Adı ve Dersin Kredisi kolonları arasında bir veri bütünlüğü sorunu doğmaktadır.

    Dolayısıyla yukarıdaki fonksiyonel bağlılıkları çıkardıktan sonra aşağıdaki şekilde iki tabloya dönüştürmek veri tabanımızı üçüncü normal şekle getirecektir:

    Öğrenci Adı Doğum Tarihi Dersin Adı
    Ali 1980 JAVA
    Rana 2007 Matematik
    Elif 1980 Biyoloji
    Veli 1979 JAVA

    Ve ikinci bir tabloda da:

    Dersin Adı Dersin Kredisi
    JAVA 3
    Matematik 4
    Biyoloji 3

    Benzer Yazılar:

    Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Üçüncü normal şekil (Third Normal Form, 3NF)' isimli yazı 05 Mar 2009 tarihinde, saat: 01:43 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1830 defa okunmuştur.

    Benzer yazıları Veri Tabanı (Database) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


    Category: Veri Tabanı (Database)
    2 responses to “Üçüncü normal şekil (Third Normal Form, 3NF)”
    1. Anonymous says:

      3. normal form nerede kullanılır acaba

    2. Şadi Evren ŞEKER says:

      En kısa cevapla, veri tabanı tasarımında bir ilişkisel veri tabanının normalleştirilmesinde (normalisation) kullanılan standardın ismidir.

      Bu sayede, veri tabanında gereksiz bilgi tekrarları engellenecek, veri tabanındaki veri miktarı sonsuza giderken verinin daha verimli tutulması sağlanacaktır.

      Örneğin yukarıda verilen örnekte, dersin kredisinin ayrı bir tabloda tutulması sayesinde JAVA dersinin kredisi sadece 1 kere veri tabanında tutulmaktayken, 3. normal şekle getirilmemiş bir önceki örnekte bu bilgi 2 kere tekrarlanmaktadır.

    Leave a Reply