Каковы основные причины (помимо "независимости базы данных" ), что сегодня большинство ИТ-проектов игнорируют множество функций, существующих в современных СУБД, таких как Oracle 11g и SQL Server 2008?
Или заимствовать у блог Хельсинкской декларации, который ставит его так:
За последние двадцать лет мы заметили, что функциональность (функции), доступная нам внутри СУБД, экспоненциально растет. Эти функции позволили нам создавать приложения баз данных. Это то, что мы все начали делать в быстро развивающиеся девяностые годы.
Но затем на заре нового тысячелетия произошло что-то. И что-то загадочно сделало роль СУБД внутри проекта приложения базы данных уменьшительным до незначительного. (...) Начиная с нового тысячелетия мы выводим всю прикладную логику из СУБД на серверы среднего уровня. Функциональность материала, реализованного вне СУБД, взорвалась, а функционально-функциональная СУБД вряд ли использовалась ни для чего, кроме хранилища строк.
Мы говорим о таких вещах, как
- Хранимые процедуры, используемые в качестве API данных данных (для обеспечения безопасности и предотвращения чрезмерного сетевого трафика)
- Материализованные представления
- Вместо триггеров
- Иерархические запросы (connect by)
- География (пространственные типы данных)
- Аналитика (свинец, лаг, rollup, куб и т.д.)
- Виртуальная частная база данных (VPD)
- Аудит на уровне базы данных
- Запросы Flashback
- Генерация XML и преобразование XSL в базе данных
- Выноски HTTP из базы данных
- Планировщик фоновых заданий
Почему эти функции не используются? Почему большинство разработчиков Java,.NET и PHP придерживаются подхода "SELECT * FROM mytable"?