Gerçekten de veritabanı ve programlama dilini tek bir ortamda birleştiren çok sayıda sistem vardır.
Smalltalk muhtemelen tanımladığınız şeye en yakın olanıdır. Bellekteki nesne bir "görüntü" içinde kalıcıdır, böylece dil ortamı kutunun dışında bir (nesne) veritabanı kullanılabilir. Ve çoğu modern dil, dil ortamındaki nesnelerin dilin kendisi kullanılarak kalıcı ve sorgulanabileceği anlamına gelen bir çeşit yerleşik kalıcı mekanizmaya sahiptir.
Bu, tek kullanıcılı uygulamalar için çok uygundur. Ancak yaklaşım birden fazla kullanıcıya ölçeklenmeyecektir, çünkü aynı bellek alanını paylaşmaya ihtiyaç duyacaklardır, bu da açıkça kullanıcı miktarına bir sınır koymaktadır. Ölçeklenebilir bir çözüm, eşzamanlılığı yöneten ayrı bir veritabanı sunucusu gerektirir. O zaman bile, belirli bir dil ortamıyla bütünleşen ve dilin kendisindeki nesneleri sürdürmenize ve sorgulamanıza izin veren birden fazla NoSql veritabanı vardır.
Şeylerin ilişkisel yönünden, SQL'in bir üst kümesi olan tam teşekküllü bir programlama dili olan T-SQL gibi dillerimiz var, bu nedenle sorgulama ve DML, keyfi karmaşık prosedürel mantık ile karıştırılabilir. Karmaşık iş uygulaması T-SQL kullanılarak inşa edilmiştir, bu yüzden bu kesinlikle yapılabilir, ancak mevcut eğilim, prosedürel iş mantığını veritabanından uzak tutmaktır.
Bu durumlarda, veritabanının programlama diliyle bütünleştirilmesi ve "empedans uyumsuzluğundan" kaçınması gerçekten çok şık ve kullanışlıdır. Peki neden insanlar hala ilişkisel veritabanlarını programlama ortamından ayrı kullanıyorlar ve bazı ORM-çamurlarıyla köprü kurmaya çalışıyorlar?
Belirli bir programlama dilinden ve ortamından ayrı olarak veriye ve sorgulamaya sahip olmanın birçok avantajı olduğu ortaya çıkıyor.
- Veri bağımsızlığı. Çoğu kuruluşta verilere aslında birden fazla uygulama tarafından erişilir. Bir mağazanın web kullanıcı arabirimi, bir müşteri destek aracı, bir raporlama motoru vb. Tarafından kullanılan bir veritabanı olabilir. Verilerin kendisi genellikle uzun ömürlüdür, uygulamalar gelir ve gider. Verilerin belirli bir programlama ortamına bağlanması, belirli bir programlama ortamına kilitlenir. Ancak veri sonsuza dek yaşarken programlama dilleri gelir ve gider.
- Özel sorgulama. Bir veritabanı istemi açmak ve bir sorgu yazmak son derece uygundur. Sorgulama programlama ortamına sıkıca bağlı olsaydı, bu bir programlama görevi olurdu ve sadece geliştiriciler bunu yapabilirdi.
- Kilitlenmekten kaçının. SQL bir standart olduğu için, birden çok tedarikçi az ya da çok değiştirilebilir veritabanı yönetim sistemleri sağlayabilir. Bu, satıcı kilitlenmesini önler ve ürünleri karşılaştırmayı kolaylaştırır.
- Gevşek bağlantı. Uygulama katmanı ve veritabanı arasında iyi tanımlanmış bir arayüze sahip olmak, veritabanını uygulama mantığından bağımsız olarak ayarlamayı ve optimize etmeyi mümkün kılar.
- Paylaşılan arayüz. Veritabanı arayüzü uygulama mantığından bağımsız olduğu için, hazır araçlar profil oluşturma, çoğaltma, analiz ve benzeri işlemler için kullanılabilir.