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