Google Calendar için veritabanı tasarımı eğitimi
(kb.databasedesignbook.com)Giriş
Bu veritabanı tasarımı eğitiminde, karmaşık gerçek dünya projeleri için veritabanı tablolarının nasıl tasarlanacağı gösteriliyor. Google Calendar'ın bir klonu tasarlanacak. Bu seri, "Database Design using Minimal Modeling" kitabındaki yaklaşımı açıklıyor. Önce takvim verilerini tanımlayan eksiksiz bir mantıksal model kurulacak, ardından bu mantıksal modele dayanarak tablo tasarımına geçilecek.
Hedef okur kitlesi
Bu kitabın amacı, belirsiz bir fikirden veritabanı tablolarının eksiksiz tanımına geçişte yardımcı olmak. Metnin ilk 3/4'lük bölümü yalnızca veritabanları hakkında genel bir anlayış gerektiriyor ve mantıksal modeli açıklıyor. Son 1/4'lük bölüm ise mantıksal modelden fiziksel tablo yapısına nasıl geçileceğini anlatıyor.
İçindekiler
- Giriş
- Bu kitabın yaklaşımı
- Problem tanımı
- Part 1: Temel tüm gün etkinliği
- Part 2: Zamana dayalı etkinlik
- Part 3: Tekrarlanan tüm gün etkinliği
- Part 4: Takvim sayfasını render etme
- Part 5: Zamana dayalı etkinliklerin takvim sayfasında render edilmesi
- Part 6: Şimdiye kadarki eksiksiz mantıksal model
- Part 7: SQL tablo oluşturma
- Sonuç
- Sonraki adımlar
Bu kitabın yaklaşımı
İnsanlar çoğu zaman tablo tasarımıyla başlar, ancak burada farklı bir yaklaşım izleniyor. Önce mantıksal model yazılıyor ve veri öznitelikleri ile varlıklar arasındaki ilişkiler tanımlanıyor. Mantıksal model netleştirildikten sonra fiziksel tablolar tasarlanıyor.
Problem tanımı
Google Calendar'ın temel özellikleri uygulanacak. Kullanıcıyla ilgili veriler minimum düzeyde ele alınacak. Etkinlikler başlık, açıklama, konum gibi özniteliklere sahip. En karmaşık kısım ise zaman ve tarih.
Part 1: Temel tüm gün etkinliği
Anchor
Önce anchor'ları bulmak gerekiyor. Anchor bir varlıktır; örneğin User ve Event. Anchor'lar ID ve sayımı yönetir.
Kullanıcı öznitelikleri
Kullanıcı için minimum veri modelleniyor. Örneğin e-posta.
Tüm gün etkinliği öznitelikleri
Etkinlik adı, başlangıç tarihi ve bitiş tarihi saklanmalı.
Link
Belirli bir kullanıcının belirli bir etkinliği oluşturduğu bilgisinin nerede saklanacağına karar vermek gerekiyor. Bu, bir öznitelik olarak değil bir link olarak ele alınıyor.
Part 2: Zamana dayalı etkinlik
Saat dilimi
Saat dilimleri birçok ülke ve bölgede kullanılır. Saat dilimi tanımları zaman zaman değişir. Saat dilimiyle ilgili asgari bir model uygulanacak.
Saat dilimi öznitelikleri
Saat diliminin insanlar tarafından okunabilir adı saklanacak.
Zamana dayalı etkinlik öznitelikleri
Etkinlik adı, başlangıç saati ve bitiş saati saklanacak. Yerel saat kullanılacak.
Link
Saat dilimi ile zamana dayalı etkinlik arasındaki link tanımlanıyor.
Tarih etkinlikleri ile zaman etkinlikleri arasındaki benzerlikler
İki etkinlik türü arasındaki benzerlikler değerlendirilecek. Mantıksal modelleme sayesinde kararlar ertelenebilir.
Part 3: Tekrarlanan tüm gün etkinliği
Öznitelik #1, periyot
Etkinliğin ne kadar sık tekrarlandığına ilişkin öznitelik tanımlanıyor.
Öznitelik #2, iç içe geçmiş öznitelikler
Tekrarlanan etkinliğin periyodu tanımlanıyor.
Öznitelik #3
Aylık etkinlikler için, aynı günde mi yoksa aynı haftanın gününde mi tekrarlandığı tanımlanıyor.
Haftanın günü: mikro anchor
Haftanın gününün nerede saklanacağına karar veriliyor. Yeni bir anchor tanıtılıyor.
Link
Haftanın günü ile etkinlik arasındaki link tanımlanıyor.
Tamamlanma kontrolü
Modellemenin tamamlanıp tamamlanmadığını doğrulamak için ilk gereksinimler yeniden gözden geçiriliyor.
Tekrar sınırı: daha fazla iç içe geçmiş öznitelik
Etkinliğin ne zamana kadar tekrarlanacağına ilişkin öznitelik tanımlanıyor.
Part 4: Takvim sayfasını render etme
Şimdiye kadar takvimin kayıt tutma kısmı ele alındı. Şimdi kullanıcının takvim haftalık görünümünü göstermek gerekiyor.
GN⁺ Özeti
Bu eğitim, karmaşık veritabanı tasarımını adım adım açıklayarak yeni başlayanların da kolayca anlayabilmesini sağlıyor. Google Calendar'ın temel işlevleri modellenerek gerçek projelere uygulanabilecek faydalı bir örnek sunuluyor. Mantıksal modelleme sayesinde veritabanı tasarımındaki hatalar önleniyor ve fiziksel tablo tasarımına doğal bir geçiş süreci anlatılıyor. Benzer işlevlere sahip projeler arasında Microsoft Outlook Calendar da yer alıyor.
Henüz yorum yok.