# Olap küpleri
Bir OLAP küpü, çok boyutlu bir veri dizisidir.
Çevrimiçi analitik işleme (OLAP), verileri analiz ederek içgörü elde etmeye yönelik bilgisayar tabanlı bir tekniktir. Buradaki "küp" terimi, çok boyutlu veri kümesini ifade eder ve boyut sayısı üçten fazla olduğunda bu yapı bazen hiperküp olarak da adlandırılır.


## Terminoloji.
Bir küp, iki veya üç boyutlu bir elektronik tabloyun çok boyutlu genelleştirilmiş hâli olarak düşünülebilir. Örneğin, bir şirket; gerçek ve bütçe giderlerini karşılaştırmak amacıyla finansal verileri ürün, zaman dilimi ve şehir bazında özetlemek isteyebilir. Ürün, zaman, şehir ve senaryo (gerçek ve bütçe) bu verilerin boyutlarıdır.
Küp terimi, çok boyutlu veri kümesini ifade eden bir kısaltma olarak kullanılır; çünkü veriler keyfi sayıda boyuta sahip olabilir. Üçten fazla boyuta sahip veriler için bazen hiperküp terimi de kullanılmaktadır. Küp, matematiksel anlamda bir "küp" değildir; çünkü kenar uzunlukları eşit olmak zorunda değildir. Ancak bu terim, literatürde yaygın olarak kullanılmaktadır.
Slice (dilim), verinin bir alt kümesini ifade eder; bu alt küme, bir boyut için belirli bir değerin seçilmesiyle oluşturulur ve yalnızca o değere ait veriler gösterilir (örneğin yalnızca belirli bir zamana ait veriler). Elektronik tablolar yalnızca iki boyutludur; bu nedenle, dilimleme gibi tekniklerle çok boyutlu verilerin görselleştirilmesi mümkün hâle gelir.
Küpteki her hücre, işletmeye ilişkin bir ölçütü temsil eden bir sayı içerir. Bu ölçütler arasında satışlar, kâr, giderler, bütçe ve tahmin gibi değerler yer alabilir.
OLAP verisi genellikle bir ilişkisel veri ambarında yıldız şeması ya da kar tanesi şeması (snowflake schema) biçiminde depolanır ya da bu amaç için geliştirilmiş özel bir veri yönetim sistemi içinde tutulur. Ölçütler, olay tablosundaki (fact table) kayıtlardan türetilirken; boyutlar, boyut tablolarından elde edilir.


## Hiyerarşi.
Bir boyutun öğeleri, genellikle bir ebeveyn-çocuk ilişkisi şeklinde düzenlenmiş bir hiyerarşi içerisinde yapılandırılabilir. Bu yapıda, bir üst (ebeveyn) öğe, altındaki (çocuk) öğeleri özetler. Ebeveyn öğeler, kendilerinden daha üst düzeydeki başka ebeveynlerin alt öğeleri olarak daha da yukarıya doğru gruplanabilir.
Örneğin, Mayıs 2005, İkinci Çeyrek 2005’in alt öğesidir; İkinci Çeyrek 2005 ise 2005 Yılı’nın bir alt öğesidir. Benzer şekilde, şehirler, bölgelerin alt öğeleridir; ürünler, ürün gruplarına dahil edilir; bireysel gider kalemleri ise gider türleri altında gruplanır.


## İşlemler.
Verilerin hiyerarşik boyutlara sahip bir küp şeklinde modellenmesi, analiz sürecini kolaylaştıran kavramsal olarak sade işlemlerin uygulanmasını mümkün kılar. Verilerin tanıdık bir görselleştirme biçimiyle uyumlu hale getirilmesi, analistlerin öğrenme sürecini hızlandırır ve verimliliğini artırır.
Kullanıcının, dilim belirleme, dönüş (rotation), detaya inme (drill down) veya özet düzeye çıkma (roll up) gibi yöntemlerle etkileşimli olarak veri görünümlerini çağırmasıyla gerçekleşen gezinme süreci, bazen "slice and dice" (dilimle ve parçala) olarak adlandırılır.
Yaygın OLAP işlemleri şunlardır:
  - Slice and Dice (Dilimle ve Parçala)
  - Drill Down (Detaya İnme)
  - Roll Up (Genelleştirme)
  - Pivot (Döndürme)


### OLAP dilimleme.
Dilimleme (slice) işlemi, bir boyut için tek bir değer seçilerek küpten dikdörtgensel bir alt kümenin ayrılmasıdır. Bu işlem sonucunda, bir boyutu eksiltilmiş yeni bir küp oluşturulur. Görsel örnekte, bir şirketin 2005 ve 2006 yıllarına ait tüm satış bölgeleri ve tüm ürün kategorilerinin satış rakamları veri küpünden "dilimlenerek" ayrılmıştır.


### OLAP parçalama.
Parçalama (dice) işlemi, birden fazla boyut için belirli değerler seçilerek bir alt küp (subcube) oluşturulmasını sağlar.
Görsel örnekte, sınırlı sayıda ürün kategorisine ait satış verileri gösterilmektedir; zaman ve bölge boyutları ise aynı kapsamda kalmaktadır.


### OLAP detaya inme ve genelleştirme.
Detaya inme (drill down) ve genelleştirme (roll up) işlemleri, kullanıcının veriler arasında en genel düzeyden (roll up) en ayrıntılı düzeye (drill down) ya da tersine geçiş yapmasını sağlar.
Görseldeki örnekte, analist "Açık hava koruyucu ekipmanları" adlı özet kategori üzerinden detaya inerek, bu gruptaki bireysel ürünlerin satış rakamlarına ulaşmaktadır.
Genelleştirme (roll-up) işlemi, bir boyut boyunca verilerin özetlenmesini ifade eder. Bu özetleme, bir toplama işlevi (aggregate function) aracılığıyla gerçekleştirilebilir; örneğin bir hiyerarşi boyunca toplamların hesaplanması ya da "kâr = satış - gider" gibi formüllerin uygulanması.
Eğer özetleme fonksiyonu doğrudan OLAP küpündeki hücrelerden hesaplanamıyorsa, temel veriden çevrimiçi (yavaş) olarak ya da önceden (çok yer kaplayarak) hesaplanması gerekir.
Parçalanabilir (decomposable) toplama fonksiyonları—örneğin COUNT, MAX, MIN ve SUM—etkin biçimde hesaplanabilir; çünkü alt toplamlar doğrudan üst toplamlar hâlinde birleştirilebilir. Ancak medyan (MEDIAN) gibi fonksiyonlar parçalanabilir olmadığından, her görünüm için ayrı ayrı hesaplanması gerekir.


### OLAP döndürme.
Döndürme (pivot) işlemi, veri küpünün eksenlerinin değiştirilerek farklı açılardan görüntülenmesini sağlar.
Örneğin, bir çeyrek döneme ait veriler görüntülenirken şehirler dikeyde, ürünler yatayda sıralanabilir. Pivot işlemiyle ürünler yerine zaman periyotları yerleştirilerek tek bir ürünün zaman içindeki performansı izlenebilir.
Görseldeki örnekte, küp döndürülerek veriye farklı bir bakış açısıyla yaklaşılmıştır.


## Matematiksel tanım.
Veritabanı kuramında, bir OLAP küpü, bir ilişkisel veritabanı yönetim sistemi (RDBMS) ilişkisinin projeksiyonunun soyut bir temsili olarak tanımlanır.[9]
N dereceli bir ilişki verildiğinde; X, Y ve Z özniteliklerinin anahtar (key), W özniteliğinin ise artık (residual) öznitelik olarak yer aldığı bir projeksiyon düşünelim. Bu yapı, aşağıdaki şekilde bir fonksiyon olarak ifade edilebilir:
f : (X, Y, Z) → W
Burada X, Y ve Z öznitelikleri küpün eksenlerine karşılık gelirken, W değeri her hücreyi dolduran veri öğesini temsil eder.
İki boyutlu çıktı cihazlarının üç boyutlu yapıları doğrudan görselleştirmesi zor olduğundan, veri küpünün dilimleri (slices) üzerinden projeksiyon yapmak daha pratiktir. Bu noktada, klasik vektör analizindeki boyut indirgeme anlamında bir projeksiyondan söz edilir (SQL'deki SELECT ifadesindeki "projection" terimiyle kavramsal olarak benzer olsa da burada farklıdır).
g : (X, Y) → W
Bu tür bir projeksiyon, birincil anahtarı bastırabilir (örneğin Z boyutunu sabitleyerek), ancak hâlâ anlamlı bir semantik içerik taşır. Örneğin, belirli bir Z değeri için üç boyutlu fonksiyonun bir dilimi temsil edilebilir.
OLAP gösterimlerinin ardındaki temel motivasyon,1980'lerdeki veritabanı sistemlerinde kullanılan çapraz tablolu raporlar paradigmasına ve hatta 1904 yılına kadar uzanan olasılık tablolarına (contingency tables) dayanır. Bu yaklaşımın sonucu, klasik elektronik tablo (spreadsheet) biçiminde bir görüntüdür:
X değerleri, satır başlıklarını oluşturur (örneğin satır 1)
Y değerleri, sütun başlıklarını oluşturur (örneğin sütun A)
g : (X, Y) → W fonksiyonu ile elde edilen değerler ise, bu satır ve sütunların kesişim noktalarındaki hücreleri doldurur — yani elektronik tablonun $B$2 hücresinin güneydoğu tarafındaki alanları, $B$2 dahil olmak üzere.