Ana Sayfa

Belki de Veritabanı Haklıydı

1 dk okuma

Yazılım geliştirmeye başlandığında, veritabanları genellikle sistemin alt katmanlarında, etki alanı modelinden (domain model) izole tutulması gereken bir "uygulama detayı" olarak öğretilirdi. Amaç, kalıcılığın (persistence) üst katmanları etkilemesini engellemek ve sistemin bellekteki nesnelerle modellenmesiydi. Bu yaklaşım, nesne yönelimli programlamanın (OOP) 1990'larda yükselişiyle daha da pekişti. Java, C++ ve C# gibi diller, yazılımı nesneler üzerinden modelleme fikrini yaygınlaştırdı. Design Patterns, Refactoring ve Domain-Driven Design gibi etkili kitaplar, etki alanı modelinin bellekte yaşadığını ve veritabanının ona hizmet etmesi gerektiğini vurguladı. ORM'ler (Object-Relational Mappers) bu ortamda gelişerek, veritabanını soyutlama ve geliştiricileri SQL karmaşıklığından koruma vaadiyle popüler oldu. Bu dönemde veritabanı, gerekli ama biraz da "utanç verici" bir detay olarak görüldü. Mimari düzeyde de benzer bir eğilim gözlendi. REST, Service-Oriented Architecture (SOA) ve daha sonra mikroservisler gibi yaklaşımlar, endişeleri izole etmeyi, paylaşılan durumu en aza indirmeyi ve net sınırlar çizmeyi hedefledi. Özellikle paylaşılan bir veritabanı, özerkliğin önünde bir engel olarak algılandı. NoSQL hareketinin ortaya çıkmasıyla birlikte, Google'ın Bigtable ve Amazon'un DynamoDB gibi sistemleri, veri depolamayı ölçeklenebilirlik ve erişilebilirlik etrafında yeniden şekillendirdi. Cassandra ve MongoDB gibi çözümler, şema esnekliğini bir avantaj olarak sunarken, join işlemlerinin maliyetli ve şemaların kısıtlayıcı olduğu fikri yaygınlaştı. İlişkisel düşünce, "eski moda" olarak çerçevelendi. Makale, tüm bu çabalara rağmen, veritabanının sistemin şeklini dolaylı yoldan ve çoğu zaman daha karmaşık bir şekilde belirlemeye devam ettiğini öne sürüyor. Bu durum, veritabanlarının yazılım mimarisindeki rolünün yeniden değerlendirilmesi gerektiğini düşündürüyor. Belki de veritabanını bir "uygulama detayı" olarak görmek yerine, sistemin temel bir parçası olarak kabul etmek, daha doğal ve etkili tasarımlara yol açabilir.

İçgörü

Yazılım mimarisinde veritabanlarının geleneksel olarak ikincil bir rol oynamasına rağmen, aslında sistemin şeklini derinden etkilediği ve bu etkinin yeniden değerlendirilmesi gerektiği vurgulanıyor.

Kaynak