Beyza'nın Blogu

Veri Tabanı Tasarım Aşamaları ve Normalizasyon

• Tasarımın Önemi:

Veritabanı Tasarımı (database design) verinin yapısının belirlenmesinden, verinin kaydedilmesi ve kaydedilen verinin güncellenmesi ve yönetilmesi için ihtiyaç duyulan bütün aşamaları içerir.

• Normalizasyonun Önemi:

Tekrarlı verileri engellemek, veri güncelleme sorunlarını ortadan kaldırmak, veri tutarlılığını sağlamak, veri kümeleri için en basit yapıyı kurmak ve sorguları birleştirmek için yapılır.

Veritabanı tasarımı ve normalizasyon birbiriyle iç içe olan kavramlardır. Veritabanı tasarımı içerinde normalizasyon işlemleri gerçekleşir. Sonrasında da gözden geçirmeler yapılarak veritabanı son şekline getirilir.

➤ Veri Tabanı Tasarım Aşamaları

4 aşamadan oluşur:
İhtiyaç Analizi (Requirements Analysis)
Kavramsal Tasarım (Conceptual Design)
Mantıksal Tasarım (Logical Design)
Fiziksel Tasarım (Pyhsical Design)

Bu 4 aşama tamamlandığında artık nesneler oluşturulabilir hale geldi demektir.

• İhtiyaç Analizi (Requirements Analysis)

Yapılacak işlerin iş sahipleri ile yapılan toplantılarla belirlendiği aşamadır. Beklenen sonuç elde edilene kadar sürekli toplantılar yapılır. Toplantı şu konulardan oluşur:
– Tasarlanacak veri tabanından beklentiler belirlenir.
– Veri tabanına kaydedilecek veriler tanımlanır.
– Veriyi işleyecek uygulamalardan beklenilen özellikler belirlenir.
– Performans ve öncelik gereken işlemler belirlenir.
– Beklentilerin öncelik sırası belirlenerek bir ihtiyaç listesi elde edilir.

• Kavramsal Tasarım (Conceptual Design)

Varlık-İlişki Modeli (ER Diagram) oluşturulur.

– İhtiyaç analizi aşamasında belirlenen istekler doğrultusunda veritabanına kaydedilecek verinin varlık-ilişki modeli (ERD) oluşturulur.
– Veritabanına işlenecek verinin kullanıcılar ve geliştiriciler tarafından ortak kullanılabilen ve yüksek seviyeli görüntüsü oluşturulur.
– Veritabanı tasarımcısı istenilen özellikler doğrultusunda tasarımı gerçekleştirir.

• Mantıksal Tasarım (Logical Design)

Varlık-İlişki Modeli (ERD) şemaya dönüştürüldükten sonra mantıksal tasarım aşamasında sıra gelir. Mantıksal tasarımda nesnelerin özelliklerine yer verilir.

 

• Fiziksel Tasarım (Pyhsical Design)

Mantıksal tasarımda elde edilen ER diagramındaki tablolar arasındaki ilişkiler ve tablolar arasındaki index’ler oluşturulur.
-Herbir tabloda hangi kolonlar tutulacak, kolonların veri tipleri neler, maksimum uzunlukları neler, bu tablolar üzerindeki key’ler neler, tablolar arasındaki ilişkiler de tanımlanır.

 

Her aşamada bir toplantı yapılır ve ideal bir yapı ortaya çıkar.

➤ Normalizasyon Nedir ?

Veri tabanlarını en başta ilişkisel(SQL) ve ilişkisel olmayan(NoSQL) olmak üzere iki kategoriye ayırmıştık.

– NoSQL veritabanı normalleşmeyi desteklemez.
Çünkü NoSQL’deki bir koleksiyonun tüm satırları tek bir düğümde depolanamaz, birden çok düğüme bölünür.

– SQL veritabanları tasarlanırken gereksiz veri tekrarını ve veri kaybını önlemek, veri işlemeyi kolaylaştırmak için normalizasyon uygulanır. Böylelikle tablolar arası ilişkilerin normal forma getirilmesi sağlanır.

– Normalizasyon işleminde taslak halindeki bir veritabanı üzerinde birtakım işlemler yapılarak taslak veritabanı son haline getirilir.

• Temel Mantık
Temel mantık özelliği olan her varlığı ayrı tablolarda tutmaktır. Her varlığın özelliği daha küçük parçaya yani atomik parçaya indirgenemeyecek şekilde olmalıdır. Ayrıca Tablolar arasında ilişkiler bulunmalıdır.

Yukarıdaki örnekte öğrenci, ders ve eğitmen tablolarında ilgili özellikleri tanımlayan alanlar unique alanlardır. Bu unique alanları ayrı bir tabloda tanımladığımızda bu üç tablo arasında ilişki kurmuş oluruz.

• Normalizasyon Adımları:

1NF (First Normal Form)
2NF (Second Normal Form)
3NF (Third Normal Form)
BCNF (Byte Code Normal Form)
4NF (Fourth Normal Form)
5NF (Fifth Normal Form)

Veritabanında nesnelerin tutulacağı bir uygulama geliştireceğimizi ve bütün verileri tek bir tabloya koyduğumuzu (yani tüm veriler tekrarlı halde) düşünelim. (Bu duruma de-normalization denir.)

Tekrar edilen verileri kaldırdığımızda 1.NF’yi elde etmiş oluruz.

Parçalı bağımlılıkları kaldırdığımızda 2.NF’yi elde etmiş oluruz.

Geçişli bağımlılıkları kaldırdığımızda 3.NF’yi elde etmiş oluruz.

Çoklu üye anahtarlardan anomaly yani güncelleme ve silme durumunda yaşanan veri kaybı yaşayan verileri kaldırırsak BCNF’yi elde etmiş oluruz.

Çoklu bağımlılıkları kaldırırsak 4.NF’yi elde etmiş oluruz.

Eğer varsa diğer anomaly’leri kaldırırsal 5.NF’yi elde etmiş oluruz.

Genellikle 3.NF’de tablomuz ideal yapıya ulaşır. Kalan normal formlar daha karmaşık ve büyük uygulamalarda kullanılır.

 
➤ NORMALİZASYON ÖRNEĞİ (1NF - 2NF - 3NF)
• De-Normalizasyon

Normalizasyonun ters halidir. Yapacağımız bir uygulamadaki tüm varlıkların özelliklerini bir tabloda tutarız. Tablo bu haldeyeken de-normalize haldedir.

• 1NF (Birinci Normal Form)

Her kolon sadece bir değere sahip ve her satır benzersiz (Unique) oldu.

• 2NF (İkinci Normal Form)

1NF içinde olmalıdır yani 1NF’teki bilgileri içermelidir. Veri kaybı olmamalıdır. Anahtarı olmayan kolonlar bir anahtar ile temsil edilmelidir ve her tablo benzersiz anahtara sahip olup birbiriyle ilişki kurmalıdır.

• 3NF (Üçüncü Normal Form)

2NF içinde olmalıdır yani 2NF’teki bilgileri kaybetmemelidir.
Aynı tabloda geçişli bağımlılıklar olmamalıdır. A->B->C ise A->C’ye gidebilmeli.

Özelliği olan her varlık ayrı bir tabloda tutulmuş oldu. Tablolar arasında bağımlılıklar oluşturuldu.

Scroll to Top