ER modeli: veri tabanı tasarlamak
Kısaca: Bir varlık-ilişki modeli, tablolar oluşturulmadan önce hangi şeylerin (varlıkların) bulunduğunu, hangi özelliklere sahip olduklarını ve birbirleriyle nasıl ilişkili olduklarını çizer.
Biraz daha ayrıntılı: Bir veri tabanı kurmadan önce neyin saklandığını anlamalısın. ER modeli (Peter Chen’den, 1976) bunun için bir plandır. Tablolar daha sonra ondan türetilir. Meslek eğitiminde sabit bir sınav konusudur.
Ayrıntılı
Yapı taşları
- Varlık: gerçekliğin bir nesnesi, örneğin müşteri, sipariş, ürün (daha sonra bir tablo olur).
- Nitelik: özellik, örneğin ad, fiyat. Anahtar nitelik bir varlığı benzersiz biçimde tanımlar (müşteri numarası).
- İlişki: varlıklar arasındaki bağlantı, örneğin “müşteri sipariş verir”.
- Kardinalite: kaç varlığın dahil olduğu.
Kardinaliteler
- 1 : 1: bir kişinin tam olarak bir kimlik kartı vardır.
- 1 : n: bir müşterinin çok siparişi vardır, her sipariş bir müşteriye aittir.
- n : m: öğrenciler birkaç ders alır, bir dersin birkaç öğrencisi vardır.
Gösterim (min, max) belirtimlerini, karga ayağını veya UML sınıf diyagramlarını kullanabilir.
ER modelinden tablolara
- Her varlık bir tablo, her nitelik bir sütun, anahtar nitelik birincil anahtar olur.
- 1 : n: “1” tarafının birincil anahtarı “n” tablosunda yabancı anahtar olur (
order.customer_id). - n : m: iki yabancı anahtarlı bir ara tabloya ihtiyaç duyar (
enrolment(student_id, course_id)), çoğu zaman not gibi kendi niteliklerle. - 1 : 1:
UNIQUEile yabancı anahtar veya ortak bir tablo.
İyi tasarım
Verileri iki kez saklama, bağla. Bir adres değişirse bu tek bir yerde olmalıdır. Normal formlar (normalleştirme) buna hizmet eder: birinci normal form (atomik değerler), ikinci (anahtara kısmi bağımlılık yok), üçüncü (anahtar olmayan nitelikler arasında bağımlılık yok). Performans için bilerek denormalize edilebilir. Araçlar: draw.io, dbdiagram.io, MySQL Workbench, pgAdmin.
Ayrıca bak: Veri tabanı, SQL, Modelleme: UML, EPC, BPMN, SQL dizini