A. To provide an interface for querying databases
B. To ensure data consistency and integrity
C. To handle user authentication
D. To define URL patterns