Üçü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
Bu yazıyı beğendiyseniz, başkalarının da ilgisini çekebilirsiniz:


1,053 views

6 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.

  3. engin says:

    merhaba yazı için teşekkür ederim. o kadar çabalasam da 2. kural ile 3. kural arasındaki farkı bir türlü anlayamadım :) daha sade bir örnek verilebilir mi bu konuda.

  4. Çok basitçe anlatıyorum. Bir tabloda gereksiz yere tekrar eden veriler varsa, bunların ikinci bir tabloya alınmasını hedefler. Örneğin yukarıdaki örnekte dersler, öğrenciler ile birlikte tek tabloda durmakta ve her öğrenci için aldığı ders tekrar etmekteydi. Bu tekrar tek bir kolona kadar kabul edilebilir ancak iki veya daha fazla kolon, gereksiz yere tekrar ediyorsa bu tekrarların ayrılması gerekir.

    Bu tekrarları bulmak için functional dependency (fonksiyonel bağlılık) ismini verdiğimiz özelliklerden faydalanıyoruz. Bu özellikler ikinci normal formda bulunmaz. Kısacası 2. kural ile 3. kural arasındaki fark bu fonksiyonel bağımlılıklardır denilebilir.

    Fonksiyonel bağımlılıkları çıkardıktan sonra ayrılması gereken kolonlar zaten anlaşılır. Yukarıdaki örnekte öğrenci adı ve doğum tarihi, tablonun anahtar alanlarıdır. Bu alanlar bütün tabloyu eşsiz olarak belirler (uniquely identify). Ayrıca ders ile dersin kredisi arasında da fonksiyonel bağlantı bulunur. Yani ders adı, ders kredisini belirlemede kullanılabilir.

    Sonuç olarak ders adı ve kredisi ayrı bir tabloda durabilir ve öğrenci adı ve doğum tarihinden bu ikinci oluşacak tabloya bir bağlantı tutulması yeterlidir. Bağlantı için ders adı kullanılmıştır.

  5. engin says:

    Evren bey, sabaha karşı bize yardım etmek adına buraya gelip de soruma cevap yazdığınız için çok çok teşekkür ederim. verdiğiniz cevapla yazdığınız yazıyı birleştirip tekrar okuyunca güzel bir şekilde anladım. çok çok sağolun. Başarılar diliyorum. tekrar teşekkürler.

  6. Sorunuza daha iyi bir cevap olması için aşağıdaki yazıyı siteye ekledim. İnşAllah yardımcı olur:

    http://www.bilgisayarkavramlari.com/2012/01/17/normallestirme-normalisation-normalizasyon/

    Başarılar

Leave a Reply


7 - bir =

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ş, toplam1,053 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)