Uzmanına Sor

İş Zekası Hakkında Her Şey – 9

without comments

Star Schema
Measure ve Dimension’lar data mart’ta iki şekilde saklanırlar. İlk olarak star schema’yı ele alacağız. Bu şemanın ismi, bu türdeki data mart için oluşan ilişkisel database diagramın görünümünden gelir. Star schema 2 tür tablo kullanır: fact table ve dimension table.

Untitled-1_thumb

Bir start schema’nın merkezinde fact table yer alır. Fact table measure için bir sütun içerir ve her dimension’ın üyeleri için bir foreign key alan içerir. Bu tablonun primary key alanı, tüm foreign ket alanların birbirine bağlanması ile ortaya çıkar. Bu yapıya aynı zamanda composite key ismi verilir. Fact table’lar içerdikleri measure’ın isminin sonuna Fact ekinin eklenmesiyle isimlendirilirler. Örneğimizdeki fact table bu şekilde isimlendirilerek SalesFact ismini almıştır.

Dimensionlar dimension tablolarında barındırılırlar. Dimension table’lar dimension’ın üyelerini tanımlamakta kullanılan eşsiz genellikle integer olarak tanımlanan bir anahtar alanına ve bu üyeyi açıklayan bir açıklama alanına sahiptir. Dimension tablosunda saklanan her dimension için ayrı bir satır oluşturulur. Dimension tabloları içerdikleri dimension’a göre başına Dim ön eki getirilerek isimlendirilir. DimProductType dimension tablosunun satırları şu şekilde olacaktır.

ProductTypeId ProductTypeDescription
1 Ankara Serisi
2 İstanbul Serisi
3 İstanbul 2010 Kültür Başkenti
4 Diyarbakır Serisi

Dimension tablolarını şemaya eklediğimizde, aşağıdaki grafiktekine benzer bir görünüm elde ederiz.

Büyük ihtimalle, fact tablosu dimension üyelerinin ortaya çıkaracağı eşsiz kombinasyonları içerecektir. Büyük ihtimalle dememin nedeni, dimension üyelerinin bazı kombinasyonlarının değer içermemesidir.

Untitled-2_thumb[2]

Örneğimize göre, “Milliyet Gazetesi Reklam Kampanyası” “marketing campaign” dimension’ının bir üyesi olursa, Sales Fact tablosunun içeriği şöyle olacaktır.

Year Product Type Sales Region Marketing Campaign Buyer’s Age Total Sales
2009 İstanbul 2010 Kültür Başkenti Marmara Milliyet Gazetesi Reklam Kampanyası 0-25 56.342,00
2009 İstanbul 2010 Kültür Başkenti Marmara Milliyet Gazetesi Reklam Kampanyası 25-35 104.547,00
2009 İstanbul 2010 Kültür Başkenti Marmara Milliyet Gazetesi Reklam Kampanyası 35-45 234.385,00
2009 İstanbul 2010 Kültür Başkenti Marmara Milliyet Gazetesi Reklam Kampanyası 45-55 534.532,00
2009 İstanbul 2010 Kültür Başkenti Marmara Milliyet Gazetesi Reklam Kampanyası 55-65 829.282,00
2009 İstanbul 2010 Kültür Başkenti Marmara Milliyet Gazetesi Reklam Kampanyası 65+ 284.540,00

Örneğimizde “marketing campaign” dimension’ının 8 üyesi olacağını, yıl dimension’ının 6 üyesi olacağını, product type dimension’ının 4 üyesi olacağını, sales region dimension’ının 7 üyesi olacağını ve buyer’s age dimension’ının 6 üyesi olacağını düşünecek olursak Fact tablosunda 8 x 6 x 4 x 7 x 6 adet veya 8.064 adet satırımız olacaktır. Bu yapıda çok büyük bir değer gibi görünmese de, on ya da yüzlerce üyeniz olduğunda, fact tablonuzun boyutu ciddi oranda büyüyecektir.

Gerçekte, fact table dimension üyeleri için açıklama değil identifier bilgilerini içerir. Bu kullanılan disk alanında ciddi tasarruf sağlar. Satır sayınız milyonlara ya da 100 GB ve üzerinde bir veritabanı ile çalışmaya başladığınızda burada bahsettiğim şeyin önemini çok daha iyi anlayabilirsiniz.

Ek olarak, tek bir fact table, birden çok measure içerebilir. Bu iki ya da daha fazla measure’ın, aynı dimension’ı kullandığı durumlarda karşılaşılan bir durumdur. Birden çok measure’ı, aunı dimension’larla aynı fact table’a koymak, data mart tarafından kullanılan disk alanında ciddi tasarruf sağlayacaktır.

Attribute’lar
Bazı durumlarda dimension üyeleriyle ilgili bazı ek bilgileri saklama ihtiyacı duyarız. Bu dimension’ın üyelerini daha iyi tanımlamamıza yardımcı olur. Bu ek bilgiler dimension’ın attribute’ı olarak adlandırılır.

Attribute’lar dimension üyelerini daha iyi tanımlamak için kullanılırlar. Kullanıcılarının çıktı olarak isteyebilecekleri bazı bilgileri içerebilecekleri gibi, data mart’tan analiz esnasında çekilecek verilerin kısıtlanması ya da filtrelenmesi amacıyla kullanılmak üzere bazı bilgileri barındırabilirler. Attribute’lar dimension tablolarında aşağıdaki grafikte görüldüğü gibi ek alanlar şeklinde saklanırlar.

Hiyerarşiler
Çoğu durumda dimensionlar daha büyük bir yapının üyesi durumundadırlar. Bu yapıya hiyerarşi adı verilir. Örneğimizde yıl, product type ve sales region dimension’ları kendi hiyerarşilerinin parçalarını oluştururlar.

Hiyerarşiler iki ya da daha fazla ilişkili dimension’dan meydana gelen yapılardır. Üst seviyede bulunan bir dimenison, bir sonraki seviyeye ait bir daha daha fazla dimension’ı içerir.

Örneğin; Yıl dimension’ı çeyrek, çeyrek dimension’ı ay dimension’ını içerir. Product Type dimension’ı alt ürün gruplarını, alt ürün grupları da ürünleri içerir.

Untitled-3

Hiyerarşiler kullanıcıların data mart içinde yer alan measure’lar içinde hareket ederek eldeki veriyi farklı açılardan görmelerini sağlar. Örnek vermek gerekirse, bir kullanıcı “İstanbul Serisi” ürün ailesinin alt ürün türlerine bakabilir. Sonrasında Karadeniz bölgesi için satış detaylarını inceleyebilir. Sonrasında bu satışların sadece 2007 yılının ilk çeyreğine ait olanlarını görüntüleyebilir. Sonuçta tüm bu verilerin toplamına yani toplam satış tutarına göz atabilir. Kullanıcı verinin içinde hareket ederek karar vermek için gerekli bilgilere kolayca ulaşabilir.

Start şemasında, hiyerarşilerle ilgili bilgiler, dimension tablolarında tutulur. Her dimension tablosunun primary key alanı, hiyerarşinin en alt noktasını oluşturur. Bu nedenle fact tablosu, içerdiği foreign keylerin bu alanları göstereceği şekilde güncellenmelidir. Bu, fact tablosu, hiyerarşinin en alt seviyesinin kombinasyonu için bir kayıt içerecektir.

Untitled-4

Hiyerarşilerin en alt seviyelerinin dışındaki katmanlar data mart’ta saklanmaz, bunun yerine çalışma zamanında saklanan verilere dayanan hesaplamalarla elde edilirler. Örneğin bir kullanıcı Karadeniz bölgesi için toplam satış bilgisini talep ederse, bu veri, Karadeniz bölgesindeki tüm alt bölgelere ait satışlar toplanarak elde edilir.

Bir sonraki bölümde SnowFlake şemasını ele alıyor olacağız.

Written by Kadir Sümerkent

January 22nd, 2010 at 6:42 pm

Posted in İş Zekası

Leave a Reply