- DataBase Management System
- Abstraction (i.e. program-data independence)
- Conceptual representation (data models)
- Multiple views and User Interfaces
- Data sharing and transaction processing
- Access restriction
- Redundancy removal/optimisation
- Persistent storage (Program objects) & Integrity
- Relationship management & Inference
- Backup and recovery
Here's a summary of what we need from a DBMS