Öncelikle belirtmem gerekiyor ki OLTP bir teknoloji değildir. Bir tasarım örüntüsüdür ve bu tasarım örüntüsünün tanımı içinde verilerin ilişkisel veri tabanı kurallarına göre saklanması, bu verilere paralel erişimin sağlanması, veriler üzerindeki CRUD işlemleri ve en önemlisi de verilerinin tutarlılığını sağlamak için transaction yapılarını barındırır. Ki OLTP tanımının içinde de Transactional işlemler sözü bu yüzden yer almaktadır.
Genel tanımlardan sonra isterseniz konuyu biraz daha bilindik örnekler üzerinden anlatmaya çalışayım. Örneğin bir alışveriş sitesine girdiğinizi düşünün. Sizinle birlikte bu alışveriş sitesine binlerce kişi girebilir ve sizin incelediğiniz ürünleri de başka birileri farklı kriterler incelemiş olabilir. Stokta 3 ürün olmasına rağmen 5 kişi bu ürünü aynı zamanlarda almaya çalışırsa ne olacak?
İşte bu gibi sorunları çözmek için veri tabanları içinde transaction yapıları vardır. OLTP kavramı ise biraz da örnekten farklı verilerin tablolara dağıtılması ile alakalı bir konudur ki ilişkisel veri tabanı söz konusu olduğunda anlamlıdır. Eğer sizin sadece bir tablonuz varsa bu tabloya veri yazıp veri okumak belirli işlem sıralamaları ile yapıldığı sürece hiç bir sıkıntı yaşamayacaktır. Ama örneğin bir işlem için bir kaç tabloda güncelleme yapılıyorsa o zaman işlemlerinizin ve verilerinizin tutarlılığı için transaction yapılarının çok doğru kurulmasına ihtiyaç vardır.
Verdiğim örneğin amacı aslında OLTP kavramını açıklamak için değil, genel veri tabanı yapılarını anlatmak içindi. Bunun nedeni ise veri tabanı yapılarının anlaşılması durumunda OLTP kavramının da anlaşılacağıdır. Çünkü OLTP kavramı aslında bir çoğumuzun bildiği veri tabanları Oracle, SQL Server, IBM DB2, PostgreSQL, MySql, SQLite ve b. ilişkisel veritabanlarının genel mantığını oluşturur. İlişkisel veritabanı teorileri verilerin bir biriyle ilişkilerini ve tablo tasarımlarını düzenlerken OLTP biraz daha genel tanımları içerir ve İlişkisel veri tabanı kavramını da bir anlamda içinde barındırır...
Bu anlatılandan sonra "OLTP nedir?" sorusunun yanıtı biraz daha derinlere inerek açıklamaya çalışalım. OLTP bir anlamda verilere paralel erişimi sağlamak ve verilerin tutarlılığını sağlamak için bir standarttır. Veri tutarlığını sağlamak için verilerin veri tabanında sadece bir yerde tutulmasını normlar formlar sayesinde garanti eder. Makalenin başında da bahsettiğim gibi OLTP kavramı günümüzde İlişkisel Veri tabanı tanımlarıyla hemen hemen aynıdır. Tek farkı İlişkisel veri tabanı tablolar arasındaki ilişkileri tanımlarken, OLTP verileri barındırma, verilere erişim ve bu verilerin tutarlılığını sağlama standartlarıdır diyebiliriz...
OLAP ve OLTP karşılaştırması yapıldığında da genelde OLTP'in verileri tutma biçiminden, veriler arasındaki ilişkilerden, çok fazla tablo sayılarından bahsedilse de OLTP'in en önemli özelliği sürekli işlemlerin aktığı, verilerin yazılıp, okunup, güncellendiği ortamlarda veri tutarlığını sağlamak ve hizmetlerin kesintisiz akmasını sağlamaktır...
Konuya ilgi gösterip okuduğunuz için teşekkürler. Makede eksik anlatılan konularla ilgili eksik noktaları yorumlarda bana bildirebilirsiniz. Konuyla alakalı sorularınız olursa fırsat buldukça yanıtlamaya çalışacağım...
Yorumlar
Yorum Gönder