Ana içeriğe atla

Birinci Normal Form (1NF) nedir?

Tablolarınızda atomikliği sağlayarak veritabanı tasarımınızı nasıl iyileştirebileceğinizi 1NF ile öğrenin.
Güncel 3 Eki 2026  · 8 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Veritabanlarına yeni başlıyorsanız, dağınık, yinelenen verilerin yarattığı kaosu ya da aşırı yavaş sorguların verdiği hayal kırıklığını henüz yaşamamış olabilirsiniz. Ama bana güvenin, farklı girişimlerde ve her tür veritabanı yapısıyla beş yıl çalıştıktan sonra söyleyebilirim ki, bu sorunlar düşündüğünüzden daha sık karşınıza çıkar.

Veritabanı normalizasyonu bu sorunları ele almanın en iyi yollarından biridir ve her şey birinci normal form (1NF) ile başlar. 1NF, tablolarınızda atomiklik sağlayarak verimli, güvenilir ve sürdürülebilir veritabanları oluşturmanıza yardımcı olan basit ama güçlü bir kavramdır. Ayrıca 2NF ve 3NF gibi diğer normalizasyon biçimlerinin de temelini oluşturur.

Bu yazıda size 1NF hakkında bilmeniz gereken her şeyi anlatacağım: nedir, pratikte nasıl uygulanır ve neden önemlidir. İster veritabanı tasarımına yeni başlıyor olun, ister becerilerinizi geliştirmek istiyor olun, bu rehber tablolarınızı güncellemenize ve gelecekteki normalizasyon adımları için sağlam bir temel atmanıza yardımcı olacak.

Veritabanı Normalizasyonunun Tarihsel Evrimi

Veritabanları ilk geliştirildiğinde, yapıları bugün “normalize” olarak kabul ettiğimiz hâlden oldukça uzaktı. Erken dönem veritabanı sistemleri çoğunlukla düz dosyalara veya hiyerarşik yapılara dayanıyordu ve bu durum verilerin yönetilmesini ve getirilmesini zahmetli hâle getiriyordu. Bu tasarımlar; veri fazlalığı, tutarsızlık ve esneksizlik gibi önemli sınırlamalara sahipti. Birinci normal form ile başlayan veritabanı normalizasyonunun evrimi, bu zorlukları ele alarak verileri saklama ve yönetme biçimimizi kökten değiştirdi.

1NF’in kökeni 

Birinci normal form kavramı, ilişkisel veritabanlarının babası olarak kabul edilen Edgar F. Codd tarafından ortaya atılmıştır. 1970’lerde Codd, erken dönem veritabanı sistemlerine hâkim olan hiyerarşik ve ağ modellerine alternatif olarak ilişkisel modeli önerdi. Amacı nettir: fazlalığı azaltan, anormallikleri ortadan kaldıran ve veri işleme verimliliğini artıran sistematik bir veri düzenleme yaklaşımı oluşturmak.

Bu modelin kalbinde, bir veritabanı tablosundaki her hücrenin tek, atomik bir değer içermesi ve tekrarlayan grupların ortadan kaldırılması gerektiğini belirleyen 1NF bulunuyordu. Bu ilke, önceki sistemlerde sıkça rastlanan tutarsız güncellemeler ve iç içe ya da gruplanmış verileri sorgulamadaki zorluklar gibi sorunları giderdi. Codd’un normalizasyon üzerine çalışmaları yalnızca anlık sorunları çözmekle kalmadı, aynı zamanda daha gelişmiş veritabanı yapılarının ve işlemlerinin de önünü açtı.

Erken veritabanlarından modern sistemlere

1NF’in benimsenmesi, veritabanı geliştirmede bir dönüm noktası oldu. Verileri açık ilişkilerle tablolara yerleştirme sürecini resmileştirerek, bugün veritabanı dünyasına hâkim olan SQL tabanlı sistemlerin temelini attı.

1NF öncesinde IBM’in Information Management System (IMS) gibi sistemler, katı ağaç benzeri tasarımlar gerektiren hiyerarşik yapılara dayanıyordu. Bu sistemler, verideki ya da iş ihtiyaçlarındaki değişikliklere uyum sağlamakta zorlanıyordu. 1NF ve ilişkisel modelin ortaya çıkışıyla birlikte veritabanları daha esnek hâle geldi; tablolar arasında dinamik ilişkilere ve daha iyi ölçeklenebilirliğe olanak tanıdı.

Hierarchical Database Model

Kaynak: Airbyte

MySQL, PostgreSQL ve Microsoft SQL Server gibi modern ilişkisel veritabanı yönetim sistemleri (RDBMS), tasarım ilkelerini 1NF’in temel kavramlarına borçludur. Bu sistemler, geliştiricilerin iyi yapılandırılmış verilerle çalışmasına imkân tanır; bu da karmaşık sorguları, güncellemeleri ve entegrasyonları çok daha kolay hâle getirir.

Sektörde benimsenme

1NF’in pratik faydaları – ve genel olarak veritabanı normalizasyonu – kısa sürede çeşitli sektörlerde karşılık buldu. Örneğin bankacılıkta, 1NF verilerin tutarlı ve sorgulanabilir bir formatta saklanmasını sağlayarak müşteri kayıtlarının ve işlem geçmişlerinin yönetimine yardımcı oldu. Perakendeciler, envanteri, satışları ve müşteri siparişlerini takip etmek için 1NF’ten yararlandı. Envanter yönetim sistemleri de 1NF’in büyük değer sağladığı bir diğer alandı. Verileri atomik ve tekrarsız biçimde yapılandırarak üreticiler, bileşenlerin, stok seviyelerinin ve tedarik zinciri hareketlerinin doğru kayıtlarını tutabildi.

Birinci Normal Forma Ulaşma Koşulları

1NF’e ulaşmak için 4 temel koşulun sağlanması gerekir:

  • Satırların benzersizliği: Her satır benzersiz olmalı ve ayırt edici bir tanımlayıcıya sahip olmalıdır. Bu genellikle, yinelenen satırları engelleyen bir birincil anahtar ile sağlanır.
  • Sıralama varsayımı olmaması: Satırların hangi sırada saklandığı veya getirildiği, veritabanı tasarımı açısından önemli olmamalıdır.
  • Atomiklik: Her sütun atomik (bölünemez) değerler içermelidir. Yani tek bir sütunda kümeler, diziler veya listeler bulunmamalıdır.
  • Yinelenen sütun olmaması: Aynı tür bilgiyi depolayan tekrarlı sütunlar olmamalıdır.

İlk iki koşul, modern veritabanlarının çoğunda tasarımla zaten uygulanır; bu nedenle bu yazıda son iki koşula, yani atomikliğe ve benzersiz sütunlara odaklanacağız.

1NF’e Ulaşmak İçin Tabloları Ayrıştırma Adımları

1NF’i ihlal eden bir tabloyu ayrıştırmak için izlenebilecek basit adımlar vardır.

Adım 1: Atomik olmayan değerleri ve tekrarlayan grupları belirleyin

İlk adım, tek bir hücrede birden çok değer saklayan sütunları ya da bunu yapmaktan kaçınmak için tekrarlanan sütunları tespit etmektir. Bu ihlaller genellikle şunlar olarak karşımıza çıkar:

  • Listeler veya diziler (ör. Bir sütunda virgülle ayrılmış birden çok telefon numarası).
  • Tek bir hücre içine gömülmüş iç içe tablolar veya yapılar.
  • Aynı tür veriyi temsil eden birden çok sütun (ör. üç sütun: PhoneNumber1, PhoneNumber2, PhoneNumber3)

Adım 2: Değerleri yeni satırlara ayırın

Sonra, her hücrenin yalnızca tek bir değer içerdiği ve her sütunun tek bir veri türünü temsil ettiği bir yapı kurmak gerekir. Bu genellikle şunları içerir:

  • Her veri kombinasyonunun korunduğundan emin olmak için gerektiğinde satırların çoğaltılması.
  • Veriyi doğru şekilde düzenlemek için yeni satırlar veya hatta yeni tablolar oluşturulması.

Adım 3: Tutarlılığı sağlayın

Yapıyı yeniden kurduktan sonra, tablonuzun aşağıdaki 1NF gereksinimlerini karşıladığını kontrol edin. Emin değilseniz kendinize şunu sorun: “Ek bir işlem olmadan verileri kolayca sıralayabilir, filtreleyebilir veya sorgulayabilir miyim?”. “Her sütun tek bir nitelik türünü, her satır ise benzersiz bir kaydı mı temsil ediyor?”. İki soruya da evet yanıtını verdiyseniz, tablo 1NF’dedir.

Birinci Normal Formun Uygulamadaki Örnekleri

Artık bir tabloyu dönüştürme adımlarını ve 1NF’e ulaşmayı anladığımıza göre, iki pratik birinci normal form örneğine bakalım.

Örnek 1: Müşteri siparişleri tablosu

Şöyle görünen bir Customer Orders tablosunu hayal edin:

CustomerID Name Product1 Product2 OrderDate
1 Alice Apples Bananas 2025-01-10
2 Bob Oranges Grapes 2025-01-11

Sorun ne?

Bu tablo 1NF’i ihlal ediyor çünkü aynı tür veriye (ürünler) atıfta bulunan Product1 ve Product2 gibi birden fazla sütun içeriyor.

Peki bunu nasıl düzeltiriz?1NF’e ulaşmak için, her hücre yalnızca tek bir değer içerecek şekilde verileri ayrı satırlara bölün:

CustomerID Name Product OrderDate
1 Alice Apples 2025-01-10
1 Alice Bananas 2025-01-10
2 Bob Oranges 2025-01-11
2 Bob Grapes 2025-01-11

Neden önemli?

Bu birinci normal form örneğinde belirsizliği ortadan kaldırdık ve verileri sorgulamayı ve analiz etmeyi kolaylaştırdık. Artık muz siparişi veren tüm müşterileri bulmak son derece kolay!

Örnek 2: Öğrenci notları tablosu

Şöyle görünen bir Student Grades tablosunu ele alalım:

StudentID Name Grades
101 Sarah A, B, C
102 Michael B, A, A

Sorun ne?

Grades sütunu, atomik değerler yerine tek bir hücrede birden çok notu sakladığı için 1NF’i ihlal ediyor.

Peki bunu nasıl düzeltiriz?1NF’e uymak için her not için ayrı satırlar oluşturmalıyız:

StudentID Name Grade
101 Sarah A
101 Sarah B
101 Sarah C
102 Michael B
102 Michael A
102 Michael A

Neden önemli?

Notları atomik değerlere ayırmak veri organizasyonunu iyileştirir ve ortalamaları hesaplamayı, en başarılı öğrencileri belirlemeyi veya not dağılımlarını analiz etmeyi kolaylaştırır.

Kendi veritabanlarınızı oluşturmak ve uygulamalı çalışmak isterseniz PostgresQL kursumuza göz atın. Biraz daha ileri düzeyseniz, varlık-ilişki ve boyutsal modelleme gibi kavramları ele alan Snowflake ile Veri Modellemesine Giriş kursunu deneyebilirsiniz.

Birinci Normal Formun Artıları ve Eksileri

Artı ve eksi yönlerine bakalım:

1NF’in faydaları

1NF’i benimsemek, veritabanlarıyla çalışmayı çok daha kolay ve verimli kılan bazı temel faydalar sunar. 

Atomik değerleri zorunlu kılarak bir satırda "Apples, Bananas", başka bir satırda "Apples;Bananas" gibi dağınık, birleştirilmiş verilerin önüne geçer. Bu birlik, veriyi daha temiz ve okunması, sorgulanması ve güncellenmesi daha kolay hâle getirir.

1NF, veri işlemlerini de çok daha yalın hâle getirir. Atomik değerlerle, sorun yaşamadan arama, filtreleme ve güncelleme yapabilirsiniz. Örneğin, “Apples” arayan bir sorgu, her ürün kendi satırında olduğunda çok daha hızlı ve isabetlidir; tek bir sütunda toplanmış olduğunda ise değildir. Ayrıca güncellemeler yapılırken tutarsızlık riskini de azaltır; zira değişiklikler belirli satırlarda sınırlı kalır.

1NF’in sınırlamaları

1NF kusursuz bir çözüm değildir. Tekrarlayan sütunları ayrı satırlara dönüştürmek veya çok değerli hücreleri tekil satırlara bölmek tablonun uzunluğunun artmasına yol açabilir. Daha fazla satır, sıralanacak daha fazla veri anlamına gelebileceğinden, bu durum sorgu performansını etkileyebilir.

Ayrıca 1NF’in başlı başına bir amaç olmadığını; tüm fazlalık türlerini ele almadığını unutmamak gerekir. Kısmi bağımlılıklar veya geçişli bağımlılıklar gibi sorunlar, ikinci normal form ve üçüncü normal form gibi daha yüksek normal formlarda ele alınır. Dolayısıyla 1NF sağlam bir temel olsa da normalizasyonun ilk adımıdır ve tek başına bir veritabanı yapısını tamamen optimize etmez.

Birinci Normal Formun Ötesine Geçmek: İkinci Normal Forma (2NF) Doğru

The first database normalisation forms

İlk veritabanı normalizasyon biçimleri. Kaynak: Yazar

Veritabanınızın birinci normal formda olduğunu doğruladıktan sonra, bir sonraki mantıklı adım ikinci normal forma geçmektir. 2NF, 1NF’in attığı temelin üzerine inşa edilir ve temel bir sorunu ele alır: kısmi bağımlılıklar.

2NF’de amaç, bir asal olmayan özniteliğin (birincil anahtarın parçası olmayan öznitelik) bileşik bir birincil anahtarın yalnızca bir bölümüne bağımlı olduğu durumları, yani kısmi bağımlılıkları ortadan kaldırmaktır. Bu, özellikle birden fazla sütundan oluşan bileşik anahtarlara sahip tablolarda önemlidir. Kulağa biraz soyut gelebilir, ancak bu kavramı parçalara ayıran ve pratik örnekler sunan bir ikinci normal form rehberi yazdım. Kısa sürede iyi bir kavrayışa sahip olacaksınız!

Sonuç

Birinci normal form, veritabanı normalizasyonunun ilk adımıdır; her sütunun atomik değerler içermesini ve tekrarlayan sütunların ortadan kaldırılmasını sağlar.

2NF ve 3NF gibi daha gelişmiş normalizasyon biçimlerine zemin hazırladığı için, karmaşık sorguları ve büyük veri kümelerini kolayca işleyebilen verimli, ölçeklenebilir ve sürdürülebilir veritabanları kurmayı planlıyorsanız muhtemelen 1NF’i benimsemeniz gerekecektir!

Becerilerinizi daha da ileri taşımaya hazırsanız, normalizasyon tekniklerini ve bunların pratik uygulamalarını derinlemesine öğrenmek için Veritabanı Tasarımı kursumuzu keşfedin. Ayrıca SQL Associate Sertifikası ile SQL ve veritabanı yönetimi becerilerinizi doğrulayabilir ve uzmanlığınızı potansiyel işverenlere gösterebilirsiniz!


Marie Fayard's photo
Author
Marie Fayard

İlk prototipten ürün-pazar uyumuna ve ötesine kadar erken aşama girişimleri büyütme konusunda uzmanlaşmış, ürün odaklı bir teknik liderim. İnsanların teknolojiyi nasıl kullandığına dair bitmeyen bir merakım var ve kurucularla ile disiplinler arası ekiplerle yakın çalışarak cesur fikirleri hayata geçirmeyi seviyorum. Ürün inşa etmediğim zamanlarda ya dünyanın yeni köşelerinde ilham peşinde koşuyor ya da yoga stüdyosunda stres atıyorum.

1NF SSS

1NF’i atlayıp doğrudan 2NF veya 3NF gibi daha yüksek normal formlara geçebilir miyim?

Hayır, 1NF veritabanı normalizasyonunda temel bir adımdır. 2NF veya 3NF gibi daha yüksek normal formlara geçmeden önce 1NF’e ulaşmak gerekir; çünkü bu formlar 1NF’in kurduğu yapının üzerine inşa edilir.

1NF tüm veritabanı türleri için aynı mıdır?

İlişkisel veritabanları 1NF’i gerektirirken, NoSQL veritabanları (ör. MongoDB) bu kurala uymayabilir. NoSQL sistemlerde veriler, normalizasyon ilkelerine sıkı sıkıya bağlı kalınmayan şekillerde saklanabilir.

Tablomun 1NF’de olup olmadığını kontrol etmek için hangi araçları kullanabilirim?

1NF’i otomatik olarak kontrol eden belirli bir araç yoktur; ancak MySQL Workbench veya dbdiagram.io gibi veritabanı tasarım araçlarıyla şemanızı görselleştirebilirsiniz. Ayrıca verinizi atomiklik açısından manuel olarak inceleyebilir ve tekrarlayan gruplar veya diziler olmadığından emin olabilirsiniz.

Konular
Veri Mühendisliği
SQL

DataCamp ile öğrenin

Kurs

Veritabanı Tasarımı

4 sa
130.8K
Verileri daha verimli bir şekilde işlemek, depolamak ve düzenlemek için SQL'de veritabanı tasarlamayı öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör