- ER diyagramı nedir, neden çizilir?
- Temel kavramlar: varlık, nitelik, ilişki
- Kardinalite: ilişkinin yönü ve miktarı
- Adım adım ER diyagramı çizmek
- Kavramsal, mantıksal ve fiziksel model
- Normalizasyon ve veri kalitesi
- Sık yapılan hatalar
- Bu beceriyi Mindset programlarında nerede çalışırsınız?
- Sık sorulan sorular
Veritabanı Tasarımı: ER Diyagramı Adım Adım
Varlık ilişki diyagramı çizerek veritabanı tasarlama: varlık, nitelik, ilişki ve kardinalite, anahtar seçimi, kavramsal modelden tabloya geçiş ve örnek.
ER diyagramı nedir, neden çizilir?
Varlık ilişki (ER) diyagramı, bir veritabanında hangi nesnelerin tutulacağını ve bu nesnelerin birbiriyle nasıl ilişkili olduğunu gösteren görsel modeldir. Tabloları ve sütunları yazmadan önce iş alanını anlamak için kullanılır. Diyagram, geliştirici, analist ve iş birimi arasında ortak bir dil sağlar: bir müşterinin kaç siparişi olabileceği, bir siparişin birden çok ürün içerip içermediği gibi iş kuralları çizimde görünür hale gelir.
Çizimin değeri, hataları erken yakalamasındadır. Tablo oluşturulduktan sonra yapılan değişiklik, veri taşıma ve uygulama düzeltmesi gerektirir; kâğıt üzerinde bir ilişkiyi düzeltmek ise dakikalar sürer. Bu yüzden iyi bir tasarım kodlamadan önce, iş alanı uzmanıyla birlikte, modeli sorgulayarak yapılır.
Temel kavramlar: varlık, nitelik, ilişki
Varlık, hakkında bilgi tuttuğunuz nesne ya da kavramdır: müşteri, ürün, sipariş, çalışan. Nitelik, varlığı tanımlayan özelliktir: müşterinin adı, e-posta adresi, kayıt tarihi. İlişki, varlıklar arasındaki bağdır: müşteri sipariş verir, sipariş ürünleri içerir.
Her varlıkta kaydı benzersiz tanımlayan bir birincil anahtar bulunur. İlişkiler yabancı anahtarlarla kurulur: sipariş tablosu, hangi müşteriye ait olduğunu müşteri kimliğiyle gösterir. Anahtar seçerken değişmeyen, benzersiz ve anlamsız bir kimlik (sıra numarası ya da benzersiz tanımlayıcı) çoğunlukla tercih edilir; çünkü e-posta ya da telefon gibi iş verileri zamanla değişebilir.
Bazı varlıklar yalnızca başka bir varlıkla birlikte anlam taşır; örneğin sipariş kalemi tek başına var olmaz. Bunlara zayıf varlık denir ve birincil anahtarı sahibinin anahtarını da içerir.
Kardinalite: ilişkinin yönü ve miktarı
Kardinalite, bir varlığın örneğinin diğer varlıktan kaç örnekle ilişkili olabileceğini gösterir. Temel biçimler bire bir, bire çok ve çoktan çoğadır.
Bire çok en yaygın olandır: bir müşterinin birçok siparişi olur, ama her sipariş tek müşteriye aittir. Yabancı anahtar çok tarafındaki tabloda durur. Bire bir ilişki seyrek görülür; çoğunlukla ayrı tutulması gereken isteğe bağlı bilgiler için kullanılır. Çoktan çoğa ilişkide taraflar birden çok örnekle eşleşir: bir sipariş çok ürün içerir, bir ürün çok siparişte yer alır. İlişkisel veritabanı bu ilişkiyi doğrudan tutamaz; bağlantı tablosu gerekir. Örnekte sipariş kalemi tablosu hem sipariş hem ürün anahtarını taşır, ayrıca miktar ve birim fiyat gibi ilişkiye ait nitelikleri de barındırır.
Zorunluluk da çizilir: bir siparişin müşterisiz olması mümkün mü? Her ilişkinin uçlarında minimum ve maksimum bağlantıyı sormak, iş kuralını netleştirir.
Adım adım ER diyagramı çizmek
Çalışan bir sıra şöyledir: • İş alanını anlayın: süreç anlatımları, formlar ve mevcut raporlar incelenir; kullanıcıya hangi bilgilerin gerektiği sorulur. • Varlık adaylarını listeleyin: metindeki isimler çoğunlukla varlık, fiiller ilişki adayıdır. • Nitelikleri atayın ve birincil anahtarları belirleyin. • İlişkileri çizin; kardinalite ve zorunluluğu işaretleyin. • Çoktan çoğa ilişkileri bağlantı tablosuyla çözün. • Modeli iş birimiyle gözden geçirin: senaryolarla sınayın.
Örnek bir senaryo: Bir çevrimiçi satışta müşteri sipariş verir. Siparişte birden çok ürün bulunur. Ürünler kategorilere ayrılır. Bu metinden müşteri, sipariş, sipariş kalemi, ürün ve kategori varlıkları çıkar. Sonra her ilişkiye sorular sorulur: Bir ürün birden çok kategoride olabilir mi? Müşteri silindiğinde siparişleri ne olur?
Gösterim biçimi olarak kaz ayağı gösterimi ya da Chen gösterimi kullanılabilir. Hangisini seçerseniz seçin, ekip içinde tutarlı olun.
Kavramsal, mantıksal ve fiziksel model
Tasarım kavramsal, mantıksal ve fiziksel düzeylerde ilerler. Kavramsal model, iş alanını teknolojiden bağımsız olarak varlıklar ve ilişkilerle anlatır; iş birimiyle konuşmak içindir. Mantıksal model, bunu ilişkisel yapıya çevirir: tablolar, sütunlar, anahtarlar, bütünlük kuralları. Fiziksel model ise seçilen veritabanı sistemine özgü ayrıntıları ekler: veri tipleri, indeksler, bölümleme, depolama.
Bu ayrımın faydası, kararları doğru düzeyde vermektir. Müşteri ile sipariş arasındaki ilişkinin zorunlu olup olmadığı kavramsal bir iş kuralıdır; sütunun metin mi sayı mı olacağı fiziksel bir ayrıntıdır. Karışırsa iş tartışmaları teknik ayrıntıya boğulur. Fiziksel aşamada sorgu desenleri düşünülür; sık aranan sütunlara indeks eklemek gibi kararlar buradadır.
Normalizasyon ve veri kalitesi
ER modelinden türetilen tablolar normalizasyon ilkeleriyle gözden geçirilir. Amaç, aynı bilginin birden çok yerde tutulup tutarsızlaşmasını önlemektir. Bir tabloda hem müşteri adresi hem sipariş bilgisi yan yana tekrar ediyorsa, adres değiştiğinde birçok satırı güncellemek gerekir. Doğru modelde adres müşteri tablosunda bir kez bulunur.
Bütünlük kısıtları veri kalitesini korur: yabancı anahtarlar yetim kayıtları engeller, benzersizlik kısıtları kopyaları önler, null olamaz kuralları zorunlu alanları sağlar. Kısıtları uygulamaya bırakmak yerine veritabanı katmanında tanımlamak, farklı uygulamaların aynı veriye yazdığı durumlarda tutarlılığı güvenceye alır.
Performans için bazen bilinçli denormalizasyon yapılır; ancak bu, normalize bir modelin üstüne ölçüm sonrası verilen bir karar olmalı, başlangıç noktası olmamalıdır.
Sık yapılan hatalar
Her şeyi tek tabloya koymak, ilk ve en yaygın hatadır. Çoklu değerleri tek sütunda virgülle ayırmak da benzer bir sorundur; sorgulamak ve güncellemek zorlaşır. Çoktan çoğa ilişkiyi bağlantı tablosu olmadan çözmeye çalışmak, anlamsız ya da boş sütunlara yol açar.
Diğer hatalar: anahtar olarak değişebilen iş verisi seçmek, adlandırma kuralı belirlememek, ilişkilerin zorunluluğunu sormamak, geçmiş verinin tutulup tutulmayacağını (örneğin fiyat değişimi) düşünmemek ve modeli iş birimiyle sınamadan onaylamak. Tarihsel bilgi gerekiyorsa, sipariş anındaki fiyatı sipariş kaleminde saklamak ürünün güncel fiyatına bağımlılığı kaldırır.
Bu beceriyi Mindset programlarında nerede çalışırsınız?
Mindset kataloğundaki Veritabanı Tasarımı ve Normalizasyon programının modülleri bu akışı izler: Kavramsal Modelleme ve Varlık İlişki Analizi, Mantıksal Model ve Anahtar Tasarımı, Normalizasyon Formları, Bütünlük Kısıtları ve Veri Kalitesi, Denormalizasyon ve Performans Ödünleşimi, Şema Evrimi ve Tasarım İncelemesi. Veritabanı Yönetim Sistemleri ve Uygulamaları programı ise İlişkisel Veritabanları ve SQL, NoSQL Veritabanları, Veri Modelleme ve Tasarım gibi daha geniş başlıkları kapsar.
İlgili Mindset programı
Veritabanı Tasarımı ve Normalizasyon
Sık sorulan sorular
ER diyagramını hangi araçla çizebilirim?
Kâğıt ve beyaz tahta keşif aşaması için yeterlidir. Kalıcı model için çizim araçları ve veritabanı modelleme araçları kullanılır; bazıları diyagramdan tablo betiği üretir. Araç seçiminden çok, gösterim biçiminin ekip içinde tutarlı olması ve modelin güncel tutulması önemlidir.
ER diyagramı ile tablo şeması aynı şey mi?
Aynı değildir. ER diyagramı iş alanını varlıklar ve ilişkilerle anlatan kavramsal bir modeldir. Tablo şeması ise bunun ilişkisel veritabanına çevrilmiş, sütun ve veri tipleri içeren halidir. Diyagramdan şemaya geçerken bağlantı tabloları ve yabancı anahtarlar eklenir.
Çoktan çoğa ilişki nasıl gösterilir?
Kavramsal diyagramda varlıklar arasında çoktan çoğa çizgisiyle gösterilir. Fiziksel modelde ise bir bağlantı tablosu eklenir; bu tablo ilişkideki varlıkların anahtarlarını yabancı anahtar olarak taşır ve ilişkiye ait ek nitelikleri, örneğin miktarı, tutabilir.
NoSQL veritabanı için de ER diyagramı çizilir mi?
Kavramsal düzeyde iş alanını anlamak için yine yararlıdır. Ancak belge veya anahtar-değer tabanlı sistemlerde fiziksel tasarım sorgu desenlerine göre yapılır ve ilişkisel normalizasyon kuralları aynen uygulanmaz. Diyagram bu durumda başlangıç noktası olarak kullanılır.
İlgili rehberler
İlgili eğitimler
Kategori: Yazılım Geliştirme, Veri Mühendisliği ve MLOps