Những lý do hàng đầu ( ngoài "tính độc lập cơ sở dữ liệu" ) mà hầu hết các dự án CNTT ngày nay dường như bỏ qua sự phong phú của các tính năng tồn tại trong các công cụ cơ sở dữ liệu hiện đại như Oracle 11g và SQL Server 2008?
Hoặc, mượn từ blog Tuyên bố Helsinki, viết theo cách này:
Trong hai mươi năm qua, chúng tôi nhận thấy rằng chức năng (tính năng) có sẵn cho chúng tôi bên trong DBMS, đã phát triển theo cấp số nhân. Những tính năng này cho phép chúng tôi xây dựng các ứng dụng cơ sở dữ liệu. Đó là những gì tất cả chúng ta bắt đầu làm trong những năm 90 bùng nổ.
Nhưng rồi vào buổi bình minh của thiên niên kỷ mới, một điều gì đó đã xảy ra. Và điều gì đó bí ẩn đã làm cho vai trò của DBMS bên trong một dự án ứng dụng cơ sở dữ liệu giảm xuống không đáng kể. (...) Kể từ thiên niên kỷ mới, chúng tôi đang đẩy tất cả logic ứng dụng ra khỏi DBMS vào các máy chủ cấp trung bình. Chức năng của những thứ được triển khai bên ngoài DBMS đã bùng nổ và DBMS có nhiều tính năng hầu như không được sử dụng cho bất cứ thứ gì ngoài lưu trữ hàng.
Chúng ta đang nói về những thứ như
- Các quy trình đã lưu trữ được sử dụng làm API dữ liệu (để bảo mật và tránh lưu lượng mạng quá mức)
- Chế độ xem cụ thể hóa
- Thay vì kích hoạt
- Truy vấn phân cấp (kết nối bằng)
- Địa lý (kiểu dữ liệu không gian)
- Phân tích (khách hàng tiềm năng, độ trễ, tổng hợp, khối lập phương, v.v.)
- Cơ sở dữ liệu riêng ảo (VPD)
- Kiểm toán cấp cơ sở dữ liệu
- Truy vấn hồi tưởng
- Tạo XML và chuyển đổi XSL trong cơ sở dữ liệu
- Chú thích HTTP từ cơ sở dữ liệu
- Trình lập lịch công việc nền
Tại sao những tính năng này không được sử dụng? Tại sao hầu hết các nhà phát triển Java, .NET và PHP lại gắn bó với cách tiếp cận "CHỌN * TỪ mytable"?