Veri Ambarlama - Şemalar
Şema, tüm veritabanının mantıksal bir açıklamasıdır. İlgili tüm veri öğeleri ve toplamalar dahil olmak üzere tüm kayıt türlerinin kayıtlarının adını ve açıklamasını içerir. Bir veritabanı gibi, bir veri ambarı da bir şemayı sürdürmeyi gerektirir. Bir veritabanı ilişkisel modeli kullanırken bir veri ambarı Star, Snowflake ve Fact Constellation şemasını kullanır. Bu bölümde, bir veri ambarında kullanılan şemaları tartışacağız.
Yıldız Şeması
Bir yıldız şemasındaki her boyut, yalnızca tek boyutlu tablo ile temsil edilir.
Bu boyut tablosu, öznitelik kümesini içerir.
Aşağıdaki diyagram, bir şirketin satış verilerini dört boyuta, yani zamana, maddeye, şubeye ve konuma göre gösterir.
Merkezde bir olgu tablosu var. Dört boyutun her birinin anahtarlarını içerir.
Olgu tablosu, satılan dolar ve satılan birimler gibi nitelikleri de içerir.
Note- Her boyutun yalnızca bir boyut tablosu vardır ve her tablo bir dizi özelliği barındırır. Örneğin, konum boyutu tablosu, {konum_anahtar, cadde, şehir, il_veya_durum, ülke} özellik kümesini içerir. Bu kısıtlama, veri artıklığına neden olabilir. Örneğin, "Vancouver" ve "Victoria" şehirlerinin ikisi de Kanada'nın British Columbia eyaletindedir. Bu tür şehirler için girişler, il_or_state ve country özellikleri boyunca veri fazlalığına neden olabilir.
Kar Tanesi Şeması
Snowflake şemasındaki bazı boyut tabloları normalleştirilmiştir.
Normalleştirme, verileri ek tablolara böler.
Yıldız şemasından farklı olarak, bir kar tanesi şemasındaki boyutlar tablosu normalleştirilir. Örneğin, yıldız şemasındaki öğe boyut tablosu normalleştirilir ve öğe ve tedarikçi tablosu olmak üzere iki boyut tablosuna bölünür.
Artık öğe boyut tablosu item_key, item_name, type, brand ve Supplier-key özelliklerini içerir.
Tedarikçi anahtarı, tedarikçi boyut tablosuna bağlıdır. Tedarikçi boyut tablosu, tedarikçi_anahtar ve tedarikçi_türü niteliklerini içerir.
Note - Snowflake şemasındaki normalizasyon nedeniyle artıklık azalır ve bu nedenle bakımı kolay hale gelir ve depolama alanı tasarrufu sağlanır.
Gerçek Takımyıldızı Şeması
Bir olgu kümesinin birden çok olgu tablosu vardır. Aynı zamanda galaksi şeması olarak da bilinir.
Aşağıdaki şema, satış ve nakliye olmak üzere iki olgu tablosunu göstermektedir.
Satış olgu tablosu, yıldız şemasındaki ile aynıdır.
Gönderim bilgi tablosunun beş boyutu vardır: item_key, time_key, shipper_key, from_location, to_location.
Gönderi bilgi tablosu ayrıca satılan dolar ve satılan birim olmak üzere iki ölçü içerir.
Olgu tabloları arasında boyut tablolarını paylaşmak da mümkündür. Örneğin, zaman, öğe ve konum boyutu tabloları, satış ve sevkiyat bilgi tablosu arasında paylaşılır.
Şema Tanımı
Çok boyutlu şema, Veri Madenciliği Sorgu Dili (DMQL) kullanılarak tanımlanır. İki temel öğe olan küp tanımı ve boyut tanımı, veri ambarlarını ve veri reyonlarını tanımlamak için kullanılabilir.
Küp Tanımı için Sözdizimi
define cube < cube_name > [ < dimension-list > }: < measure_list >
Boyut Tanımı için Sözdizimi
define dimension < dimension_name > as ( < attribute_or_dimension_list > )
Yıldız Şeması Tanımı
Tartıştığımız yıldız şeması, Veri Madenciliği Sorgu Dili (DMQL) kullanılarak aşağıdaki gibi tanımlanabilir -
define cube sales star [time, item, branch, location]:
dollars sold = sum(sales in dollars), units sold = count(*)
define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier type)
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city, province or state, country)
Kar Tanesi Şeması Tanımı
Snowflake şeması, DMQL kullanılarak aşağıdaki gibi tanımlanabilir -
define cube sales snowflake [time, item, branch, location]:
dollars sold = sum(sales in dollars), units sold = count(*)
define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier (supplier key, supplier type))
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city (city key, city, province or state, country))
Gerçek Takımyıldızı Şeması Tanımı
Gerçek takımyıldız şeması, DMQL kullanılarak aşağıdaki gibi tanımlanabilir -
define cube sales [time, item, branch, location]:
dollars sold = sum(sales in dollars), units sold = count(*)
define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier type)
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city, province or state,country)
define cube shipping [time, item, shipper, from location, to location]:
dollars cost = sum(cost in dollars), units shipped = count(*)
define dimension time as time in cube sales
define dimension item as item in cube sales
define dimension shipper as (shipper key, shipper name, location as location in cube sales, shipper type)
define dimension from location as location in cube sales
define dimension to location as location in cube sales