ilk normal şekil (First Normal Form) 1NF
Yazan : Şadi Evren ŞEKER
Veri tabanı teorisinde geçen ve ilişkisel bir veri tabanının hafızayı daha verimli kullanması (daha az yer kaplaması) için geliştirilen normal şekillerden en ilkelidir.
Bir veri tabanı tasarlanırken normal formda olması göz önüne alınabilir veya daha sonradan normalleştirilebilir (nomalization). Bu sayede veri tabanının daha az yer kaplaması sağlanmış olur. Ancak bazı durumlarda yerden fedakarlık yapılarak hız ön plana çıkar. Bu durumda normalleştirilmiş bir veritabanının bozulması (denormalization) gerekir.
ilk normal şekilde iki temel kural vardır:
- Veri tabanında bulunan tabloların ilişki (bağlantı, join) kurulabilir şekilde tasarlanması.
- Tablolarda veri tekrarı (repeating groups) bulunmaması.
Şayet bir veri tabanı yukarıdaki şartları sağlayan bir haldeyse bu veritabanına ilk normal şekilde denilir.
Örneğin telefon defterinin tutulduğu bir tablo yapılmak istensin ve defterimizde isim, soyisim ve telefon numarası kolonları bulunsun. Bu durumda örnek bir tablo aşağıdaki şekilde olabilir:
| İsim | Soyisim | Telefon No |
| Şadi Evren | ŞEKER | 02163023042 |
| Ali | Yıldız | 02165780000 |
| Ahmet | Demir | 02164890000 |
Yukarıdaki tabloda herşey normal görülebilir çünkü yeni birisi eklenince tablonun sonuna ilave edilecek birisi arandığında isim veya soy isim alanlarında arama yapılıp bulunan numara döndürülecek ve silme işlemi arama sonucunda sağlanacaktır. Ancak problem olan durum aynı kişiye ait ikinci bir telefon eklenemesidir.
Örneğin “Ali Yıldız”‘ın ikinci bir telefonu daha olsun ve rehberimizde bu ikinci kaydı tutmak isteyelim. Bu durumda aşağıdaki tablo alternatifi ile karşılaşırız:
| İsim | Soyisim | Telefon No |
| Şadi Evren | ŞEKER | 02163023042 |
| Ali | Yıldız | 02165780000 |
| Ahmet | Demir | 02164890000 |
| Ali | Yıldız | 02165780001 |
Yukarıdaki tabloda yeni bir kayıt eklenmiş ve ikinci telefon numarası kaydedilmiştir. Ancak bu durum bir problemdir çünkü aynı bilgi tekrar edilmiştir. Yani isim alanında aynı kişiyi ifade eden “Ali” ve soy isim alanında aynı kişiyi ifade eden “Yıldız” bilgisi tekrar edilmiştir.
Bu durumun çözümü olarak tek isim ve soy isim kaydının karşısında iki telefon numarası tutulması gerekir.
Bir çözüm alternatifi olarak aşağıdaki şekilde bir tablo düşünülebilir:
| İsim | Soyisim | Telefon No | TelefonNo2 |
| Şadi Evren | ŞEKER | 02163023042 | |
| Ali | Yıldız | 02165780000 | 02165780001 |
| Ahmet | Demir | 02164890000 |
Yukarıdaki tabloda yeni bir kolon eklenmiştir ve bu kolonda ikinci telefon numarası tutulmaktadır. Burada hemen farkedilebileceğimiz bir problem 3. veya 4. telefon numaralarının bir problem olmaya devam ettiğidir. Diğer bir problem ise tek telefonu olan kişiler için fazladan boş bir alan hafızada işgal edilmektedir.
Problemin çözümü yukarıdaki tablo yapısını 1NF uygun olarak ikiye bölmektir:
Kişiler Tablosu:
| No | İsim | Soyisim |
| 1 | Şadi Evren | ŞEKER |
| 2 | Ali | Yıldız |
| 3 | Ahmet | Demir |
Telefonlar tablosu:
| No | Telefon No |
| 1 | 02163023042 |
| 2 | 02165780000 |
| 3 | 02164890000 |
| 2 | 02165780001 |
Yukarıdaki iki tablo daha öncedentek tabloda tutulmaya çalışılan verileri tutmaktadır. Bu iki tablo arasında bir ilişki (join) kurmak ve iki tablodan bağlantılı olarak bilgi almak mümkündür. Ayrıca yukarıda saydığımız, boş değer bulunması (örneğin 2. telefonu bulunmayan kişiler için boş alan tutulması, null value) veya kayıt tekrarı problemleri çözülmüştür ve yazının başında belirttiğimiz ilişki kurulabilir tablolar elde edilmiştir.
Dikkat edileceği üzere iki ayrı tabloda veriyi tutmak ve arada ilişki kurmak tek tabloda tutmaya göre daha yavaş çalışabilir. Bu durumda normal şekil bozularak (denormalization) tek tabloya indirilmesi gerekebilir.
« Birleştirme (Join) | Aday Anahtar (Candidate Key) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'ilk normal şekil (First Normal Form) 1NF' isimli yazı 16 Jan 2009 tarihinde, saat: 14:56 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1032 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.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Sıralama işleminiz poligonu...
- Şadi Evren ŞEKER: bahsettiğiniz sıralama algoritması...
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
Yakın Yazılar
İkinci Normal Şekil (Second Normal Form) 2NF
Üçüncü normal şekil (Third Normal Form, 3NF)
Uzatılmış Öklit Algoritması (Extended Euclid Algorithm)
extended euclidean ( uzatılmış öklit veya öklid ) bağlantısı ve algoritması
ilk normal şekil (First Normal Form) 1NF
Ortak Bölenlerin En Büyüğü (OBEB, GCD, Greatest Common Divisor)
EBNF (Uzatılmış BNF, Extended Backus Normal Form)
Veri Bütünlüğü (Data Integrity)
2 Boyutlu Şekil Dönüşümleri (2D Transformations)
Bağlantılar