Veritabanı Tasarımı

Kağan Saygın
3 min readJun 8, 2021

--

Veritabanı tasarımına başlamadan önce ihtiyaçları belirlemeliyiz. Hangi tablolara, kolonlara ve tiplere ihtiyacımız var? Bunları düşünmemiz gerekir. Bunları ister kağıt kalem ister excel veya diyagram oluşturucu programlar ile nasıl kolayınıza geliyorsa tasarlayıp sonra veritabanı oluşturma aşamasına geçmemiz daha iyi olur.

Photo by Tobias Fischer on Unsplash

Normalizasyon

Normalizasyon, ilişkisel veri tabanları planlanırken lüzumsuz veri tekrarını veya yetersiz verileri önlemek için oluşturulan kurallardır. Bu kurallar sayesinde aynı zamanda veritabanı performansını da sağlamış oluruz. Bu kurallara Normal Form (NF) denir.

Bu kuralları aşağıdaki tablomuza göre adım adım göreceğiz.

Örnek olarak inceleceğimiz veritabanı
Örnek Olarak İnceleceğimiz veritabanı

1.Normal Form (1NF)

  • Aynı tablo içinde tekrarlayan kolonlar olmamalıdır.
  • Her kolonda yalnızca bir değer bulunmalıdır.
  • Her satır bir eşsiz anahtarla tanımlanmalıdır.
NF-1
NF-1

KitapTur kolonundaki tekrarlayan kitap türlerini düzenledik fakat satır sayımız yükseldi ve sorunlarımız devam ediyor. Seçme, ekleme, güncelleme, silme gibi işlemlerimizi yaparken karışık ve zor olacak, bunun için diğer kuralımıza geçiyoruz.

2.Normal Form (2NF)

  • Tablo 1NF olmalıdır.
  • Anahtar olmayan değerler ile bileşik anahtarlar arasında kısmi bağımlılık durumu oluşmamalıdır. Kısmi bağımlılık durumu, anahtar olmayan herhangi bir değer bileşik bir anahtarın sadece bir kısmına bağıl ise oluşur.
  • Ana tablo ile yeni tablolar arasında, foreign key kullanılarak ilişkiler tanımlanmalıdır.
  • Herhangi bir veri alt kümesi birden çok satırda tekrarlanmamalıdır. Bu tür veri alt kümeleri için yeni tablolar oluşturulmalıdır.
NF-2

Aynı verileri tekrar edenleri tablolara böldük ve ilişkilendirdik fakat yine bir sorunumuz var Kitaplar tablosunun KitapTur kolonundaki verilerimiz tekrar ediyor bunun için diğer kuralımıza geçiyoruz.

3.Normal Form (3NF)

  • Tablo 2NF olmalıdır.
  • Anahtar olmayan hiçbir kolon bir diğerine (anahtar olmayan diğer bir kolona) bağlı olmamalı diğer bir deyişle her kolon eşsiz anahtara tam bağımlı olmak zorundadır.
NF-3

Kitap Türlerimizi ayrı bir tabloya alarak ilişkilendirdik fakat yine bir sorunumuz var bu sefer de Id numaralarımız tekrar ediyor bu sorun için diğer kuralımıza geçiyoruz.

4.Normal Form (4NF)

  • Satır tekrarlarını azaltmak için N-N yani çoka çok ilişkili tablolar oluşturulmalıdır.

Bir kitabın birden fazla türü olabiliyor. Kitaplar tablosunda ki KitapTurId kolonunu kaldırdık. Kitaplar_KitapTurleri tablosu oluşturduk çoka çok ilişki kurduk.

Bir müşteriye birden fazla satış yapılabilir. SatislarDetay adında bir tablo oluşturduk.

MSSQL Diagram

--

--

Responses (1)