Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

OLTP (Online Transactional Processing), sistemler genellikle ilişkisel veri tabanları üzerine kurulmuş, üzerinde sürekli işlem yapılan veritabanı sistemleridir. Adından da anlaşılacağı gibi çok fazla transactional işlemler içeren yani insert, update, delete şeklide DML (Data Manipulation Language) işlemleri içeren veri depolama sistemleridir. OLTP sistemlerde sürekli yoğun işlemler yapılır. Sağlam bir ilişkisel yapı üzerine kurulmuştur, günlük hayatta kullanılan sistemlerin çoğu OLTP ürüne kurulu sistemlerdir.
OLTP sistemler geçmişe yönelik, birden fazla boyutta rapor oluşturmada, farklı bakış açılarında analiz yapmada zorlanırlar. Bu nedenle raporlama sistemlerinde OLAP tercih edilir. 
OLTP sistemlerde sorgulama dili olarak TSQL kullanılırken, OLAP sistemlerinde MDX (MultiDimensional Expression) dili kullanılır.

Özellikler
Veriler üzerinde uğraşan kişilerden bir uzmanlık (SQL) bekler.
Verinin daha verimli nasıl tutulacağı ile ilgilenir.
Karar vermeyi desteklemez.
İlişkisel veritabanları üzerinde çalışır.
Veri odaklıdır.
Genellikle bilgisayar bilimi ile uğraşan kişiler tarafından kullanılır.
Çoklu kullanıcı desteği sağlar.


Veri kaynağı üzerinde karar vermeye yardımcı olacak şekilde yapılan veri analizi ve sorgulama islemlerine OLAP denir. OLAP, klasik veritabanlarının karar verme işleminde işlevsel olamamasından ve verilere erişim konusunda bir uzmanlık gerektirdiğinden dolayı ortaya çıkmıştır. Klasik veritabanları verinin daha verimli nasıl tutulacağı ile ilgilenilirken, OLAP veriler üzerinde nasıl daha iyi çıkarımlar yapılabileceği ile ilgilenir. Bu yüzden OLAP ile tutulan veriler çok boyutludur. Ayrıca klasik veritabanlarından istediğimiz verilere erişmek için SQL'e hakim olmamız gerekir. İş dünyasında verilere yöneticiler, karar vericiler ve analistler erişmek istediklerinden dolayı bu büyük bir problemdir. OLAP ile bu problem aşılmıştır ve verilere erişmek isteyen kişilerden SQL gibi bir uzmanlık beklenmez. OLAP analitik islemler için tasarlanmış, çok boyutlu ve özet bilgilerin tutulduğu veritabanlarıdır. Burada Analitik işlemlerden kasıt ise  OLTP (klasik veritabanı yaklaşımı) sistemlerinde tutulan verilerin belli kriterlere göre gruplanması ve saklanması islemidir. OLAP sistemlerin en önemli özelliklerinden bir tanesi verilerin zaman boyutlu olmasıdır. Yıldız, kar tanesi, galaksi modeli gibi çeşitleri vardır.

Özellikler
  • Veriler üzerinde uğraşan kişilerden SQL gibi bir uzmanlık beklemez.
  • Verinin nasıl tutulacağı ile değil veri ile doğrudan ilgilenir.
  • Karar vermeyi destekler.
  • Veri ambarı veya özel veritabanları üzerinde çalışır.
  • Özel amaçlı, çok boyutlu, geniş odaklı sorgular ve raporlamalar için kullanılır.
  • Konu odaklıdır.
  • Karar vericiler, yöneticiler ve analistler tarafından kullanılır.
  • Seffaflık, erişilebilirlik, her şarta uygun boyutlandırılabilirlik sunar.
  • Sınırsız sekilde çarpraz raporlama olanağı sağlar.
  • Çoklu kullanıcı desteği sağlar.
  • Esnek raporlama özelliği sunar.
  • Boyut ve gruplamalarda sınırı yoktur.


OLAP TİPLERİ
  • Çok Boyutlu OLAP (MOLAP):  Klasik OLAP formudur. Küçük veri setleri için uygundur.
  • İlişkisel OLAP (ROLAP): İlişkisel veri tabanlarıyla çalışan olap tipidir. Temel veri ve boyut tabloları, ilişkisel tablolar olarak depolanır ve yeni tablolar toplu bilgiyi tutmak için oluşturulur. ROLAP daha ölçeklenebilirdir, fakat yüksek hacimli işlemlerin etkili kurulumu zordur.
  • Hibrid OLAP (HOLAP): Performans olarak MOLAP ile ROLAP arasındadır.Açık bir tanımı olmamakla birlikte, veriyi ilişkisel ve özel depo olarak bölen OLAP tipidir denilebilir. Örneğin bir HOLAP veritabanı, yüksek miktarda detaylı veri için ilişkisel tablolarını, daha detaysız ve düşük miktarda veri için özel depoları kullanabilir.




İlişkisel veritabanı teorisinde geçen ve ilişkisel bir veri tabanının hafızayı daha verimli kullanması için geliştirilen normal şekiller vardır. 1NF, 2NF, 3NF, BCNF ve 4NF olan bu normalizasyon yöntemlerinin hepsini sırayla uyguladığımızda tuttuğumuz veriler hafızayı olabildiğince en iyi şekilde kullanır. Ancak bu durumda hız konusunda ciddi kayıplar yaşayabiliriz. Bu gibi durumlarda denormalization denilen yöntem ile normalizasyon yapmak için veritabanı tasarımında kullanılan kuralların dışına çıkarak veritabanını tekrar tasarlayabiliriz. Aynı şekilde bazı durumlarda da tüm normal formlara uygun hale getirmek yerine istediğimiz seviyeye kadar olan normal formları uygulayarak veritabanı tasarımını yapabiliriz. Örnek verecek olursak tüm normal formları sağlayan bir veritabanı tasarımı yaptık ve çok sık erişilen veri kümesine erişmek için ondan fazla tabloyu birleştirmemiz(join) gerekiyor. Bu durum hem hız hem de kullanılabilirlik açısından sıkıntılar yaratabileceğinden en makul seviyede normal form uygulamak genellikle veritabanı konusunda yapılması gerekendir. Genellikle veritabanı tasarımlarında BCNF'a kadar kurallara uyacak şekilde tasarım yapılır.


İlişkisel veritabanı teorisinde geçen ve ilişkisel bir veri tabanının hafızayı daha verimli kullanması için geliştirilen normal şekillerden beşincisidir. Bir veri tabanı tasarlanırken veya daha sonradan normalleştirilebilir yani normal form kurallarına uyması sağlanabilir. Bu sayede veritabanının daha az yer kaplaması sağlanmış olur. Ancak bazı durumlarda yerden fedakarlık yapılarak hız ön plana çıkar. Bu durumda normalleştirilmiş bir veritabanının bozulması (denormalization) gerekir. Veritabanımızın dördüncü normal şekle uyması için iki temel kural vardır;
  • BCNF'a uymalıdır.
  • Çok-değerli bağımlılıkları (Multli-Valued dependency) olmamalıdır.



İlişkisel veritabanı teorisinde geçen ve ilişkisel bir veri tabanının hafızayı daha verimli kullanması için geliştirilen normal şekillerden dördüncüsüdür. Bu şekle genelde 3.5NF'de denir. Bir veri tabanı tasarlanırken veya daha sonradan normalleştirilebilir yani normal form kurallarına uyması sağlanabilir. Bu sayede veritabanının daha az yer kaplaması sağlanmış olur. Ancak bazı durumlarda yerden fedakarlık yapılarak hız ön plana çıkar. Bu durumda normalleştirilmiş bir veritabanının bozulması (denormalization) gerekir. Veritabanımızın boyce codd normal form'a uyması için iki temel kural vardır;
  • Üçüncü normal şekle uymalıdır.
  • Bir tablodaki anahtarın tanımladığı tüm kolonlar bir aday anahtar (candidate key) olmalıdır.