Dường như trong các ngôn ngữ truy vấn phổ biến cho cơ sở dữ liệu quan hệ, có thể tạo các truy vấn sẽ cần nhiều tài nguyên để trả lời. Trong thực tế, quản trị viên cơ sở dữ liệu quản lý điều này bằng cách giới hạn số lượng bộ nhớ cho mỗi truy vấn và kiểm tra mọi truy vấn chạy dài nếu có sự chậm chạp trong cơ sở dữ liệu. Điều này có vẻ khá đặc biệt, có một giải pháp TCS cho vấn đề này?
Có ngôn ngữ truy vấn chỉ có thể thực hiện các truy vấn hiệu quả?
Nếu không có ngôn ngữ như vậy, có lý do lý thuyết cho việc này?
Một số lý do tại sao tôi có thể mong đợi những thứ này tồn tại hoặc ít nhất có ý nghĩa:
- chúng tôi có các ngôn ngữ lập trình được thiết kế riêng để chỉ thực hiện các tính toán hiệu quả (thường bằng cách có một số logic hạn chế trong hệ thống loại của chúng)
- các ngôn ngữ truy vấn phổ biến (như SQL) đã được truyền cảm hứng bởi logic, do đó dường như không phải là một sự kéo dài cho người dùng cơ sở dữ liệu để xem xét các logic hạn chế hơn.
- một người dùng cơ sở dữ liệu không độc hại đã cố gắng chuẩn bị các truy vấn thực thi nhanh chóng, vì vậy chúng tôi nên mong đợi các ngôn ngữ truy vấn hạn chế hơn này sẽ chỉ cản trở người dùng độc hại.
Câu hỏi này được lấy cảm hứng từ giao điểm của hai câu hỏi trước: