Які основні причини ( крім "незалежності баз даних" ) полягають у тому, що більшість ІТ-проектів сьогодні ігнорують багатство функцій, що існують у сучасних механізмах баз даних, таких як Oracle 11g та SQL Server 2008?
Або запозичити з блогу Гельсінкської декларації, який пише це так:
За останні двадцять років ми спостерігаємо, що функціональність (функції), доступна нам всередині СУБД, зросла в геометричній прогресії. Ці функції дозволили нам створювати додатки для баз даних. Це те, що ми всі почали робити в бурно дев'яностих.
Але тоді на світанку нового тисячоліття щось сталося. І це щось загадково зробило роль СУБД у проекті програми баз даних зменшеною до незначної. (...) З нового тисячоліття ми витісняємо всю логіку програм із СУБД на сервери середнього рівня. Функціональність матеріалів, реалізованих поза СУБД, вибухнула, і СУБД, що має багато можливостей, навряд чи використовується для чогось іншого, крім зберігання рядків.
Ми говоримо про такі речі
- Збережені процедури, що використовуються як API даних (для безпеки та уникнення надмірного мережевого трафіку)
- Матеріалізовані погляди
- Замість тригерів
- Ієрархічні запити (підключити за)
- Географія (просторові типи даних)
- Аналітика (потенційний клієнт, відставання, зведення, куб тощо)
- Віртуальна приватна база даних (VPD)
- Аудит на рівні бази даних
- Запити щодо зворотного зв’язку
- Генерація XML та перетворення XSL у базі даних
- Виноски HTTP з бази даних
- Фонове планувальник завдань
Чому ці функції не використовуються? Чому більшість розробників Java, .NET та PHP дотримуються підходу "SELECT * FROM mytable"?