Günümüzde çoğu BT projesinin Oracle 11g ve SQL Server 2008 gibi modern veritabanı motorlarında bulunan zengin özelliklerin göz ardı edilmesinin ( "veritabanı bağımsızlığı" dışında) başlıca nedenleri nelerdir ?
Ya da Helsinki Bildirgesi blogundan ödünç almak gerekirse :
Geçtiğimiz yirmi yılda, DBMS içinde kullanabileceğimiz işlevselliğin (özelliklerin) katlanarak büyüdüğünü gözlemliyoruz. Bu özellikler veritabanı uygulamaları oluşturmamızı sağladı. Doksanlı yıllarda hepimizin yapmaya başladığımız şey buydu.
Ama sonra yeni milenyumun şafağında bir şey oldu. Ve gizemli bir şekilde bir veritabanı uygulama projesi içindeki DBMS'nin rolünü önemsiz hale getirdi. (...) Yeni milenyum itibarıyla, tüm uygulama mantığını DBMS'den orta katman sunuculara itiyoruz. DBMS dışında uygulanan öğelerin işlevselliği patladı ve zengin özelliklere sahip DBMS, satır depolamadan başka bir şey için neredeyse hiç kullanılmıyor.
Gibi şeylerden bahsediyoruz
- Veri API'leri olarak kullanılan depolanan prosedürler (güvenlik için ve aşırı ağ trafiğini önlemek için)
- Gerçekleştirilmiş görünümler
- Tetikleyiciler yerine
- Hiyerarşik sorgular (bağlanma yöntemi)
- Coğrafya (uzamsal veri türleri)
- Analitik (olası satış, gecikme, toplama, küp vb.)
- Sanal Özel Veritabanı (VPD)
- Veritabanı düzeyinde Denetim
- Flashback sorguları
- Veritabanında XML üretimi ve XSL dönüşümü
- Veritabanından HTTP belirtme çizgileri
- Arka plan iş planlayıcı
Bu özellikler neden kullanılmıyor? Neden çoğu Java, .NET ve PHP geliştiricisi "SELECT * FROM mytable" yaklaşımını benimsiyor?