Dimensional Data Models (Boyutsal Data Modelleri)
Boyutsal Data modellemesi, database sistemlerinde sıkça kullanılan bir modeldir. 3NF (3rd Normal Form) sisteminden farklı olarak OLTP sistemlerinde kullanılır. 3NF form ile aynı data kayıtlarını kullanılmasına rağmen data, boyutlu (dimensional) olarak kayıt edilir.
Terimler :
Dimension (Boyut) : Bilgini kategori edilme biçimidir. Örneğin; zaman
boyutu.
Attribute (Nitelik) : Her dimension ( boyut ) içinde yer alan benzersiz
bir kayıt biçimidir. Örneğin; zaman boyutu içindeki Ay bilgisi.
Hierarchy (Hiyerarşi): Katmanlar arasında kurulan ilişkiler farklı
attributes içindeki dimensionları ifade eder.. Örneğin; zaman boyunda (time
dimension) tek türlü bir ilişki olabilir:
Yıl → Çeyrek
→ Ay → Gün
Fact Table (Olay Tablosu): Olay tablosu ilgili olayın kayıtlarını ve
ölçülerini içerir. Örneğin; satış miktarı bir ölçü çeşididir. Bu ölçü çeşidi
olay tablosunda kendisine uygun ayrıntılarla kayıtlıdır. Örneğin satış
miktarları gün ölçüsünde kayıt edilir. Böyle bir örnekte olay tablosu en az 3
kolon içermelidir: Tarih kolonu, mağaza adı kolonu ve satış miktarı kolonu.
Lookup Table
(Arama Tablosu): Arama
tablosu attribute'ler hakkında detaylı bilgiler içerir. Bir bakıma Olay
Tablosunun ham halidir diyebiliriz. Örneğin; çeyrekler bazında bir arama tablosu tüm çeyreklerdeki olayların toplu
bir listesini içerir. Her satır (yani her çeyrek) çeşitli kolonlara sahiptir ve kendine özgü bir ID alanı içerir ki bu alan hangi çeyreğin gösterildiği alandır. Bunun dışında alanlar söz konusu
çeyrek raporunda nasıl gösterildiğini içeren bilgileri içerir. Örneğin 2001
yılının ilk çeyreği “2001 Q1“ şeklinde belirtilebilir.
Dimensional Model
(Boyutsal Model) çeşitli olay tabloları ve arama tabloları içerir. Olay
tabloları bir veya birden fazla arama tablosuna (lookup table) bağlıdır ama olay tabloları
birbiri arasında direkt ilişki kurmazlar. Boyutlar ve hiyerarşi, arama
tablolarında belirtilir. Attributes (Nitelikler) arama tablolarında key ID olarak
kullanılmazlar.
Datamart ve veri
ambarlarının tasarlanmasında en çok Yıldız Şeması (Star Schema) ve Kartanesi
Şeması (Snowflake Schema) kullanılır.
Star veya Snowflake
şemalarının kullanılmasının amaçları çok çeşitli olmakla birlikte temel
olarak mimarın tercihine ve işin
ihtiyaçlarına göre karar verilmektedir.
Örnek Slowflake Şeması:
Örnek Star Şeması:
Star Schema
(Yıldız Şeması) :
Bu şemada ortada tek bir
olay tablosu (Fact Table) bulunmaktadır
ve bu tablo tıpkı bir yıldız şekli gibi etrafındaki diğer boyutsal arama
tablolarına (Dimensional Lookup Tables ) bağlanmaktadır. Her arama tablosu tek tablo halindedir bu tabloların altında başka tablolar bulunmaz. Arama
tablolarındaki her bir primary key (PK) olay tablosundaki bir foreign key (FK)
ile ilişkilendirilmiştir.
Olay tablosundaki tüm ölçüler
arama tablolarındaki tüm boyutlar ile ilişkilendirilmiştir. Diğer bir deyişle,
hepsi aynı ayrıntı düzeyine sahiptir.
Yıldız şemaları basit ya
da karmaşık şekilde olabilir. Basit Yıldız şemaları yalnızca bir olay tablosu
içerir. Karmaşık olanlar ise birden fazla olay tablosu barındırabilir. Bu tarz
yıldız şemalarına Galaxy Schema (Galaksi Şeması) da denilmektedir.
Örnek: Veri ambarımızın mağaza satış bilgilerini
hakkında bilgileri içerdiğini farz edelim. Bu bilgiler farklı boyutlarda (Zaman,
mağaza, ürün, müşteri) saklanıyor olsun. Böyle bir örnekte yıldız şeması
kullanılabilir. Her arama tablosu Primary Key’ler ile olay tablosuna bağlıdır
ve arama tabloları arasında bir bağlantı kurulmaz.
Snowflake Schema
Snowflake şeması, Star
şemasının genişletilmiş versiyonudur. Star şemasındaki arama tablolarının boyutsal
olarak genişletilmiş halidir. Star şemasında her boyut tek bir arama tablosu
ile ifade edilirken snowflake şemasında boyut, hiyerarşik olarak birbirine
bağlı birden fazla arama tablosu ile ifade edilir.
Başka bir deyişle Star şemasının normalizasyon uygulanmış halidir.
Yandaki örnekte, Zaman boyutunda hiyerarşik olarak
birbirine bağlanmış 2 arama tablosu daha vardır.
1. Yıl → Ay → Gün
2. Hafta → Gün
Örnekte Snowflake
şemasında 4 lookup tablosu gösteriliyor: Yıllar için bir tablo, aylar için bir
tablo, haftalar için bir tablo ve günler için bir tablo. Yıllar tablosu aylar
tablosuna daha sonra da günler tablosuna bağlanır. Haftalar tablosu ise sadece
gün tablosuna bağlıdır. Bu tablolar time dimension altındaki örnek tabloları
göstermektedir.
Snowflake şemasının en
önemli avantajlarından biri küçük arama tablolarını birbirine bağlayıp datanın kapladığı
yeri minimumda tutarak sorgu performansını arttırmaktır. Bu şemanın dezavantajı ise çok sayıda arama tablosu oluşturduğu için bu tabloların bakım
maliyetinin yüksek olmasıdır. Diğer bir dezavantaj ise eğer şemadaki boyutlar 6-7 den fazla olursa son kullanıcıların bu tablolar içinde kaybolması ihtimali yani kullanımı zorlaştırmasıdır.
Star ve Snowflake şemaları genellikle OLAP modellerinde kullanılmaktadır ve hem anlık hem de tarihsel verileri saklarlar. Query cevaplama süreleri çok yüksektir. Terabaytlarca veri üzerinden hızlı şekilde analiz yapılmasını sağlarlar.
Etiketler: 3NF, Attribute, Big data, Dimension, Dimensional Data Model, ETL, Hierarchy, snowflake schema, star schema






0 Yorum:
Yorum Gönder
Kaydol: Kayıt Yorumları [Atom]
<< Ana Sayfa